【问题标题】:logback-spring.xml log to file while using org/springframework/boot/logging/logback/base.xmllogback-spring.xml 在使用 org/springframework/boot/logging/logback/base.xml 时记录到文件
【发布时间】:2020-12-19 00:24:31
【问题描述】:

我已经使用 Spring Boot 创建了一个测试项目,以了解有关使用 logback-spring.xml 文件的信息。我想使用 Spring 的默认设置写入控制台,所以我使用以下行

<include resource="org/springframework/boot/logging/logback/base.xml" />

我还想滚动记录到一个文件,并在系统上保留最大数量的日志文件。写入控制台按预期工作。但是,不会将任何日志写入日志文件。名为“logs”的文件夹被创建,文件“logfile.log”也被创建。但是没有任何记录。

下面是填写logback-spring.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml" />
    <property name="LOG_PATH" value="logs" />
    <property name="LOG_ARCHIVE" value="${LOG_PATH}/archive" />

    <appender name="File-Appender" class="ch.qos.logback.core.FileAppender">
        <file>${LOG_PATH}/logfile.log</file>
        <encoder>
            <pattern>%d{dd-MM-yyyy HH:mm:ss.SSS} %magenta([%thread]) %highlight(%-5level) %logger{36}.%M - %msg%n</pattern>
            <outputPatternAsHeader>false</outputPatternAsHeader>
        </encoder>
    </appender>

    <logger name="test" level="DEBUG" />
</configuration>

下面是 TestApplication.java 文件,它是 test 包的一部分

@SpringBootApplication
public class TestApplication {

    private static final Logger logger = LoggerFactory.getLogger(TestApplication.class);

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
        logger.trace("Trace Message!");
        logger.debug("Debug Message!");
        logger.info("Info Message!");
        logger.warn("Warn Message!");
        logger.error("Error Message!");
    }

}

为什么没有记录到文件中?

【问题讨论】:

    标签: spring-boot logback spring-logback


    【解决方案1】:

    我认为有几个问题。

    首先,删除行 &lt;logger name="test" level="DEBUG" /&gt; 。这会为 test 包下的类设置一个记录器,但没有定义附加程序,因此不会记录任何内容。

    一旦消失,添加

    <root level="DEBUG">
        <appender-ref ref="File-Appender"/>
    </root>
    

    这将在调试级别配置根记录器(所有记录器都继承)并将所有日志输出到File-Appender

    另外,我不记得 logback 是否创建了丢失的目录,因此您可能需要在启动应用程序之前确保 logs 目录确实存在。

    【讨论】:

      猜你喜欢
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      • 2017-05-08
      • 2021-10-16
      • 2019-05-31
      • 2017-09-07
      • 1970-01-01
      相关资源
      最近更新 更多