我在servlet 3.0+环境中使用log4j2-beta09.jar。我希望在log4j2.xml中使用$ {sys:logPath}之类的查找,因此我可以设置系统属性。但是官方网站上写着“Log4j 2 Core JAR文件是一个网络片段,配置为在你的任何其他网络片段之前订购应用程序“,因此它不会替换$ {sys:logPath}变量。如何在log4j2加载配置之前设置系统属性?
答案 0 :(得分:0)
一种方法是更改Web容器的配置。通常,Web容器可以设置全局系统属性。
如果您无法控制容器配置,或者您需要为不同的Web应用程序使用不同的系统属性,则可以在Web应用程序初始化时调用System.setProperty(name,value)。这里棘手的部分是确保在加载任何调用LogManager.getLogger()
的类作为其静态字段初始化的一部分之前设置系统属性。