如何在Web应用程序之外定义任意文件以配置log4j2

时间:2019-04-05 14:15:53

标签: configuration log4j2

我的Web应用程序将部署到不同环境中的Windows和Linux / Unix上的Weblogic应用程序服务器。日志文件的位置,附加程序和日志级别在不同的部署之间会有所不同,我们希望能够在运行时(通过交换配置文件)更改日志记录配置,因此我无法嵌入log4j2.xml(或任何其他配置)文件)放入我的部署中。而且由于我在无法控制的应用程序服务器上运行,因此我没有机会添加环境变量以指向另一个配置位置。

当前,我的log4j2.xml驻留在我的应用程序的类路径中,并被打包到我的war文件中。有什么办法告诉Log4J2使用配置文件e。 G。相对于应用程序根目录(例如Log4J的configureAndWatch(fileLocation)方法)?

我找到了许多有关如何配置Log4J2的示例,但是我发现的有关配置文件位置的所有内容都指向应用程序类路径。

1 个答案:

答案 0 :(得分:0)

我终于找到了解决我问题的方法。我添加了一个名为

的文件
log4j2.component.properties

到我的项目(在src / main / resources中)。该文件包含一个指向我的log4j2配置文件位置的属性:

log4j.configurationFile=.//path//on//my//application//server//someLog4j2ConfigFile.xml

这将导致log4j2读取该文件并根据其内容进行自我配置。