【问题标题】:how to set system properties before log4j2 load it's configuration?如何在 log4j2 加载它的配置之前设置系统属性?
【发布时间】:2013-12-05 06:32:08
【问题描述】:

我在 servlet 3.0+ 环境中使用 log4j2-beta09.jar。我希望在 log4j2.xml 中使用 ${sys:logPath} 之类的查找,这样我就可以设置系统属性。但是官方网站说“Log4j 2 Core JAR 文件是一个配置为在您的任何其他 Web 片段之前排序的 Web 片段应用程序”,因此它不会替换 ${sys:logPath} 变量。如何在 log4j2 加载它的配置之前设置系统属性?

【问题讨论】:

    标签: lookup servlet-3.0 log4j2 system-properties


    【解决方案1】:

    一种方法是更改​​ Web 容器的配置。通常,Web 容器具有设置全局系统属性的方法。

    如果您无法控制容器配置,或者您需要为不同的 Web 应用程序提供不同的系统属性,您可以在 Web 应用程序初始化时简单地调用 System.setProperty(name, value)。这里的棘手部分是确保在加载任何调用LogManager.getLogger() 的类作为其静态字段初始化的一部分之前设置系统属性。

    【讨论】:

      猜你喜欢
      • 2023-03-17
      • 2012-12-20
      • 1970-01-01
      • 2017-08-12
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多