gpt4 book ai didi

java - 如何在jar内部xml配置更改和应用程序重启后进行SL​​F4J+Logback刷新设置?

转载 作者:行者123 更新时间:2023-12-02 09:35:21 26 4
gpt4 key购买 nike

我使用SLF4JLogback在我的桌面应用程序中。

应用程序可以找到配置文件(target/classes/logback.xml )并以正确的方式配置记录器。但是,当我更改配置文件( <root level="debug"> )并重新启动应用程序时,我的记录器设置没有任何变化。

这是我的配置:

<configuration debug="true" scan="true" scanPeriod="10 seconds">

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${consoleLayoutPattern}</pattern>
</encoder>
</appender>

<appender name="LOG_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${fileName}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${filePattern}</fileNamePattern>
<maxHistory>60</maxHistory>
<totalSizeCap>3GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${rollingFilePatternLayoutPattern}</pattern>
</encoder>
</appender>

<root level="error">
<appender-ref ref="LOG_FILE" />
<appender-ref ref="CONSOLE" />
</root>

</configuration>

我做错了什么?有没有办法跟踪jar内部xml应用程序重新启动后配置更改并刷新日志记录设置?

最佳答案

为了不重新构建您的项目,您实际上必须将日志配置文件放在项目之外。我的意思是在您的应用程序属性中放置此文件的路径。

如果您使用 Spring Boot,您可以在 application.properties 文件中配置日志配置文件的路径,如下所示:

logging.config=/home/path_to/logback.xml

在启动应用程序时执行此操作,它将使用指定的应用程序,并且您不必重建项目。

由于此路径可能会根据您的环境而变化,因此我强烈建议您在暂存或生产中将日志配置文件外部化(如前面所示),但也使用外部 application.properties 文件。

您可以在启动 java 程序时简单地执行此操作:

java -Dspring.config.location=file:///home/.../application.properties

像这样的良好实践在十二因素网站上有进一步的解释,配置部分是here .

希望这有帮助

关于java - 如何在jar内部xml配置更改和应用程序重启后进行SL​​F4J+Logback刷新设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57574685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com