启动时,Logback尝试创建/打开日志文件。但是,在当前Spring Boot的实现中,如果无法打开文件,应用程序将被关闭。
这似乎是一种故意行为,如SpringBoot's git所示。
我更喜欢的是默认使用Tomcat的日志,或者完全禁用日志,但允许我的应用程序继续运行。由于我们需要在各种环境中部署它并且使用寿命很短,我宁愿不必在每个要部署的实例上自定义日志路径。
尽管如此,我还没有在Spring Boot和Logback设置上找到任何可能允许我这样做的属性。
有没有办法绕过IllegalStateException
?
这是启动时抛出的错误:
java.lang.IllegalStateException: Logback configuration error detected:
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE-MESSAGES-BODIES] - Failed to create parent directories for [C:\MY_PATH\file.log]
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE-MESSAGES-BODIES] - openFile(C:\MY_PATH\file.log,true) call failed. java.io.FileNotFoundException: C:\MY_PATH\file.log (The device is not ready)
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE-LOG] - Failed to create parent directories for [C:\MY_PATH\file.log]
使用Spring Boot(v1.5.3)
答案 0 :(得分:3)
作为mentioned in the documentation,您可以使用值org.springframework.boot.logging.LoggingSystem
配置none
系统属性以禁用Spring Boot的日志记录系统。然后,您可以像通常那样使用logback.xml
来配置日志记录,或者省略它以使用Logback的默认配置。