Spring boot logback 不记录到文件

iMa*_*kre 2 java logback spring-boot

我在我的 web mvc 应用程序中使用 spring-boot-start-web 依赖项并使用 logback。我的静态资源目录中有一个 logback-spring.xml 文件,其配置如下

<property name="MY_LOG_FILE" value="C:\mylog.log" />

<appender name="MY_APPENDER"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <encoder>
        <pattern>${FILE_LOG_PATTERN}</pattern>
    </encoder>
    <file>${MY_LOG_FILE}</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
        <fileNamePattern>${MY_LOG_FILE}.%i</fileNamePattern>
    </rollingPolicy>
    <triggeringPolicy
        class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <MaxFileSize>10MB</MaxFileSize>
    </triggeringPolicy>
Run Code Online (Sandbox Code Playgroud)

<logger name="com.mydomain.myapp" level="INFO" additivity="false">
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="MY_APPENDER" />
</logger>
Run Code Online (Sandbox Code Playgroud)

当我在控制器中使用记录器时,它会正确记录到控制台输出,但找不到该文件。至于我可以在网上找到的内容,看起来我设置正确,但显然我不是。

编辑:它最终通过在父项目上执行 Maven 更新项目来解决,该项目是更大的模块系统的一部分。

lih*_*gxu 6

将 logback-spring.xml 放在您的资源目录中,而不是静态目录中。

用 maven 构建你的项目,然后检查你的 target/classes 目录是否有 logback-spring.xml

默认情况下,如果您将 logback.xml 放在类路径的根目录中,它将从那里获取(或 logback-spring.xml 以利用 Boot 提供的模板功能)