2

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

4

1 回答 1

0

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

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

于 2013-12-05T11:04:21.440 回答