Spring boot 无法覆盖spring boot的spring boor v1.2.6中的文件日志模式
我做了很多搜索,但没有找到正确的答案。默认情况下,spring引导以毫秒记录消息。我只需要以秒或微秒为单位记录时间戳。(我想,对于微秒级,我可以在毫秒级结束时达到1000) 因此,我想覆盖这个属性Spring boot 无法覆盖spring boot的spring boor v1.2.6中的文件日志模式,spring-boot,logback,Spring Boot,Logback,我做了很多搜索,但没有找到正确的答案。默认情况下,spring引导以毫秒记录消息。我只需要以秒或微秒为单位记录时间戳。(我想,对于微秒级,我可以在毫秒级结束时达到1000) 因此,我想覆盖这个属性 <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } --- [%t] %-40.40logger{39} : %m%n%wex"/> Spring引导文档说,如果类路径中
<property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } --- [%t] %-40.40logger{39} : %m%n%wex"/>
Spring引导文档说,如果类路径中有logback.xml,它将覆盖它的属性。(我知道,1.2.x分支不允许在application.properties中重写)。然后我在类路径中添加了logback.xml文件,如下所示
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="15 seconds">
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm} %5p ${PID:- } --- [%t] %-40.40logger{39} : %m%n%wex"/>
</configuration>
但这对我不起作用。任何帮助都将不胜感激。我还不想将我的应用程序升级到1.3.x 终于明白了。我们需要覆盖整个默认的logback配置。因此,我们将logback.xml放在类路径中。 这是我的文件,它覆盖了控制台和文件的日志模式
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
<!-- Defined variables etc. -->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<!-- overridden two properties -->
<property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}000){faint} %clr(%5p) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wex"/>
<property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS}000 %5p ${PID:- } --- [%t] %-40.40logger{39} : %m%n%wex"/>
<!-- copied from base.xml -->
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</configuration>
终于明白了。我们需要覆盖整个默认的logback配置。因此,我们将logback.xml放在类路径中。 这是我的文件,它覆盖了控制台和文件的日志模式
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
<!-- Defined variables etc. -->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<!-- overridden two properties -->
<property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}000){faint} %clr(%5p) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wex"/>
<property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS}000 %5p ${PID:- } --- [%t] %-40.40logger{39} : %m%n%wex"/>
<!-- copied from base.xml -->
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</configuration>
在我看来,spring-boot.jar的defaults.xml中有一个与文件appender相关的“bug”。无法重写该值。请参见以下内容:
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
在我看来,spring-boot.jar的defaults.xml中有一个与文件appender相关的“bug”。无法重写该值。请参见以下内容:
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
检查是否删除包含标记行帮助检查删除包含标记行是否有帮助