想法是能够在不重新部署的情况下更改 logback 配置。项目中使用了 Slf4j 和 logback。logback.xml 文件在耳中,但它从属性文件中读取一些属性,这些属性文件放在耳外。像这样的东西:
<configuration scan="true" scanPeriod="5 seconds">
<property file="${logconfig}"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${logback.consolePattern}</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
</configuration>
问题是扫描检查 logback.xml 是否已更改(并且文件始终相同)。这就是为什么更改属性文件中的值不会更改 logback 的配置。更改仅在重新部署后应用。
那么在不重新部署的情况下修改 logback 配置的最佳方法是什么?是否有一些机制可以实现它?
upd:很少会进行更改。但应尽快应用它们。性能也很重要。