问题描述

如果你是MacOS系统,那么可能在clone别人的Springboot项目并运行时报类似以下错误

Logging system failed to initialize using configuration from 'config/logback.xml'
java.lang.IllegalStateException: Logback configuration error detected: 
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[ROLLING] - Failed to create parent directories for [xxx]
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[ROLLING] - openFile(xxx.log,true) call failed. java.io.FileNotFoundException: xxx.log (No such file or directory

问题分析

这是由于此项目使用的是logback日志方案,而clone下来路径是别人的因此找不到此目录。

Windows没有此问题是由于Windows用户权限高,找不到时会自动创建目录。而Mac由于权限不够,需要更换目录或者提高目录权限

解决办法

首先找到logback.xml文件,里面应该有一个value值是报错的那个目录,可能类似下面

<property scope="system" name="LOG_DIR" value="/Users/xxx/xxx/xxx/log" />

将value的值修改成你已有的目录,并确保此目录有相应的权限。如果此目录权限不够你可以手动右键文件夹简介修改,或者使用如下指令

sudo chmod -R 777 目录

顺便说下 读、写、运行三项权限可以用数字表示,就是:r=4, w=2, x=1
而777就是rwx--rwx--rwx,也就是最高权限的意思了

结语

不单单是日志问题,有些项目可能在第一次运行的时候要创建一个文件夹,就很有可能会因为权限问题而报错。因此,如果同样的项目在windows可以跑但是在mac上不行,就应该想想是不是权限的问题。

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

To see the world as it is and to love it.