gpt4 book ai didi

java - 如何在执行时更改log4j2中的日志路径

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

嗨,我正在使用 slf4j 而不是 log4j2。如何动态更改日志路径?

我的 log4j2.xml 看起来像

   <Properties>
<Property name="home">/path/logs</Property>
</Properties>
<Appenders>
<RollingFile name="default" fileName="${home}/error.log"
filePattern="...">
.......

</RollingFile>
</Appenders>

有什么方法可以更改运行时写入日志的路径吗?

我尝试在路径中包含系统属性并在运行时设置它,但 log4j2 不考虑更新的值。系统属性方法-

<RollingFile name="default" fileName="${sys:home}/error.log"
filePattern="...">

(In java class: System.setProperty("home","/newPath"))

这是否需要重新配置。我没有看到任何需要重新配置的 slf4j 公开服务。

最佳答案

使用DOMConfigurator.doConfigure() ,其中第二个参数是 LogManager.getLoggerRepository()。这样,您不仅可以更改日志记录路径,还可以更改其他所有内容,例如,包括特定记录器的级别。

我认为您不能使用“与实现无关”的方式重新配置 SLF4j 实现。当我们将应用程序从 Log4j 切换到 Logback 时,我们还更改了在运行时重新读取配置文件的方式。对于 Logback,这使用 JoranConfigurator.doConfigure()

关于java - 如何在执行时更改log4j2中的日志路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30839123/

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