我有多个应用程序使用 log4j 进行日志记录,每个应用程序从类路径加载的单独 log4j.properties 中加载设置(只是磁盘上的文件,而不是 .jar 或任何使其只读的文件)。在每个应用程序中,我希望允许通过常规 UI 更新日志级别。
我为此使用了一个通用实用程序类,它在应用程序之间共享。我可以在应用程序的生命周期内执行此操作,但由于更改不会保留回相应的 log4j.properties 文件,因此在下次重新启动时,它会重置为属性文件中的特定级别。
由于它只是从类路径加载,所以我不知道每个应用程序中日志文件的完整路径,而且由于它是一个公共(public)类,我宁愿不硬编码路径。 有没有办法让 log4j 将其更改写回其磁盘配置?
最佳答案
我建议你彻底解决这个问题。
始终将更改写入磁盘上的 log4j.properties 文件,然后安装监听器来检查该文件中的更改并更新相应的日志级别。
关于java - 在应用程序内更新 log4j 并更新 log4j.properties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8360841/