Spring 启动 + Logback 弹簧属性。 Spring属性 日志级别更改后未定义
Spring Boot + Logback springProperty. SpringProperty undefined after logging level changing
我有 Spring 引导应用程序并在 application.properties 下一个变量中设置:
logging.config=file:./xxx_logback.xml
appName=myapp
appVersion=1.0
应用程序在启动后正确创建日志文件。但是当我更改日志记录级别时,logback 会创建名称为“appName_IS_UNDEFINED-appVersion_IS_UNDEFINED”的新日志文件。我使用下一个 logback 配置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds">
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>
<!-- To enable JMX Management -->
<jmxConfigurator/>
<springProperty scope="context" name="appName" source="appName"/>
<springProperty scope="context" name="appVersion" source="appVersion"/>
<appender name="FILE-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/${appName}-${appVersion}.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>logs/${appName}-${appVersion}-%d{yyyy-MM-dd}-%i.log.zip</fileNamePattern>
<!-- keep 30 days' worth of history -->
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<charset>utf-8</charset>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>
<root level="warn">
<appender-ref ref="FILE-APPENDER"/>
</root>
<logger name="xxx.xxx" level="warn"/>
</configuration>
无法理解如何修复它。
最有可能的原因是:
这些扩展不能与 Logback 的配置扫描一起使用。如果您尝试这样做,更改配置文件会导致错误。
我有 Spring 引导应用程序并在 application.properties 下一个变量中设置:
logging.config=file:./xxx_logback.xml
appName=myapp
appVersion=1.0
应用程序在启动后正确创建日志文件。但是当我更改日志记录级别时,logback 会创建名称为“appName_IS_UNDEFINED-appVersion_IS_UNDEFINED”的新日志文件。我使用下一个 logback 配置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds">
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>
<!-- To enable JMX Management -->
<jmxConfigurator/>
<springProperty scope="context" name="appName" source="appName"/>
<springProperty scope="context" name="appVersion" source="appVersion"/>
<appender name="FILE-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/${appName}-${appVersion}.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>logs/${appName}-${appVersion}-%d{yyyy-MM-dd}-%i.log.zip</fileNamePattern>
<!-- keep 30 days' worth of history -->
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<charset>utf-8</charset>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>
<root level="warn">
<appender-ref ref="FILE-APPENDER"/>
</root>
<logger name="xxx.xxx" level="warn"/>
</configuration>
无法理解如何修复它。
最有可能的原因是:
这些扩展不能与 Logback 的配置扫描一起使用。如果您尝试这样做,更改配置文件会导致错误。