我想配置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属性,例如servletContextName
和contextPath
,并使用相同的错误消息。
所以我可能仍然缺少重要的东西。但是什么?
答案 0 :(得分:3)
要自动替换日志记录配置中的${web:...}
占位符,您需要log4j-web
jar以及log4j-core
。如果没有前者,Log4j2将起作用,但它不会取代这些占位符。
也许你错过了项目中的依赖?
答案 1 :(得分:0)
$ {web:rootDir}是值吗?占位符不会被其实际值替换。
在页面中你可以红色:
有关如何在配置文件中使用Lookup的信息,请参阅属性替换:http://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution