如何在文件创建时避免Spring Boot Logback的快速失败?

时间:2017-05-15 13:50:11

标签: java logging spring-boot logback startup

启动时,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)

1 个答案:

答案 0 :(得分:3)

作为mentioned in the documentation,您可以使用值org.springframework.boot.logging.LoggingSystem配置none系统属性以禁用Spring Boot的日志记录系统。然后,您可以像通常那样使用logback.xml来配置日志记录,或者省略它以使用Logback的默认配置。