Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 无法覆盖spring boot的spring boor v1.2.6中的文件日志模式_Spring Boot_Logback - Fatal编程技术网

Spring boot 无法覆盖spring boot的spring boor v1.2.6中的文件日志模式

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引导文档说,如果类路径中

我做了很多搜索,但没有找到正确的答案。默认情况下,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引导文档说,如果类路径中有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}"/>

检查是否删除包含标记行帮助检查删除包含标记行是否有帮助