logback-spring.xml 在使用 org/springframework/boot/logging/logback/base.xml 时记录到文件
logback-spring.xml log to file while using org/springframework/boot/logging/logback/base.xml
我已经使用 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!");
}
}
为什么没有任何内容记录到文件中?
我觉得有几个问题。
首先,删除行 <logger name="test" level="DEBUG" />
。这在包 test
下为 类 设置了一个记录器,但没有定义附加程序,因此没有记录任何内容。
完成后,添加
<root level="DEBUG">
<appender-ref ref="File-Appender"/>
</root>
这将在调试级别配置根记录器(所有记录器继承)并将所有日志输出到 File-Appender
。
此外,我不记得 logback 是否创建了丢失的目录,因此您可能需要确保 logs
目录在启动应用程序之前确实存在。
我已经使用 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!");
}
}
为什么没有任何内容记录到文件中?
我觉得有几个问题。
首先,删除行 <logger name="test" level="DEBUG" />
。这在包 test
下为 类 设置了一个记录器,但没有定义附加程序,因此没有记录任何内容。
完成后,添加
<root level="DEBUG">
<appender-ref ref="File-Appender"/>
</root>
这将在调试级别配置根记录器(所有记录器继承)并将所有日志输出到 File-Appender
。
此外,我不记得 logback 是否创建了丢失的目录,因此您可能需要确保 logs
目录在启动应用程序之前确实存在。