如何在web应用程序中查找log4j2的属性参数?

时间:2015-03-03 08:50:12

标签: java spring tomcat log4j log4j2

我想配置log4j2以从web启动(tomcat)动态查找日志记录路径。

从文档(http://logging.apache.org/log4j/2.x/manual/lookups.html)中可以找到具有不同参数可能性的web:查找。

起初我正在尝试提供的示例:

<Appenders>
   <File name="ApplicationLog" fileName="${web:rootDir}/app.log"/>
</Appenders>

结果:ERROR Unable to create file ${web:rootDir}/app.log java.io.IOException

我还尝试了其他buildin属性,例如servletContextNamecontextPath,并使用相同的错误消息。

所以我可能仍然缺少重要的东西。但是什么?

2 个答案:

答案 0 :(得分:3)

要自动替换日志记录配置中的${web:...}占位符,您需要log4j-web jar以及log4j-core。如果没有前者,Log4j2将起作用,但它不会取代这些占位符。

也许你错过了项目中的依赖?

Log4j-web on Maven Central

答案 1 :(得分:0)

$ {web:rootDir}是值吗?占位符不会被其实际值替换。

在页面中你可以红色:

  

有关如何在配置文件中使用Lookup的信息,请参阅属性替换:http://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution