我想使用 /refresh 端点更改日志级别。我知道执行器公开了一个不同的端点来处理日志级别,但我想从配置服务器的属性中做到这一点。
如果我将 logging.level.com.foo.bar=ERROR 放在我的本地属性文件中,Spring 能够配置这些值,但是如果我尝试从配置服务器覆盖 logging.level.com.foo.bar 的值,则不是选择,如果我不提供本地属性并且仅通过配置服务器提供它,它会失败并进行调试。
我认为这与 logback-spring.xml 上不存在 @RefreshScope 有点相关。
如何使 logback-spring.xml 符合 /refresh
这就是我的 logback-spring.xml 目前的样子。
<configuration scan="true" scanPeriod="15 seconds">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<springProperty scope="context" name="logLevel" source="logging.level"/>
<logger name="com.foo.bar.springclient.spring.boot.management.logging" level="INFO" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
<configuration scan="true" scanPeriod="15 seconds">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<springProperty scope="context" name="logLevel" source="logging.level"/>
<logger name="com.foo.bar.springclient.spring.boot.management.logging" level="INFO" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>