【问题标题】:Spring boot logback not logging to fileSpring Boot logback未记录到文件
【发布时间】:2017-06-07 15:51:22
【问题描述】:

我在我的 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>

<logger name="com.mydomain.myapp" level="INFO" additivity="false">
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="MY_APPENDER" />
</logger>

当我在控制器中使用记录器时,它会正确记录到控制台输出,但找不到该文件。就我在网上可以找到的内容而言,我似乎设置正确,但显然我没有。

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

【问题讨论】:

  • 更改logback配置文件,让看看有没有问题,你的配置是否OK。此外,写入 C:\ 是否需要管理权限?尝试将路径更改为不同的路径。
  • @vempo 感谢您的想法。我尝试更改日志文件以写入绝对不需要权限的其他地方,但仍然没有运气。启动应用程序时设置 debug="true" 似乎没有任何效果。嗯
  • 这可能表明您没有使用此配置文件运行。查看docs.spring.io/spring-boot/docs/current/reference/html/… 以确保加载了正确的文件。

标签: java spring-boot logback


【解决方案1】:

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

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

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

【讨论】:

  • 对不起,我完全搞砸了这个问题,我的资源中有它,而不是资源/静态。我知道它正在被拾取,因为如果我指定一个不存在的附加程序,那么它就会爆炸
  • 出于某种原因,对她的父项目进行 maven 更新使其开始工作。这个答案最终让我弄清楚了,所以我将其标记为已接受。谢谢。
  • 没关系。有时您需要重建、重新启动、重新导入....如您所知,它既快速又简单!
  • 救命,文档似乎没有告诉必须将 logback-spring.xml 纳入目标..
猜你喜欢
  • 1970-01-01
  • 2015-07-10
  • 2017-01-21
  • 2021-03-15
  • 2020-12-19
  • 1970-01-01
  • 2018-09-17
  • 2021-08-27
  • 2019-02-27
相关资源
最近更新 更多