我想配置 log4j2
以从 Web 启动 (tomcat) 动态查找日志记录路径。
在文档 ( http://logging.apache.org/log4j/2.x/manual/lookups.html ) 中,有一个 web:
具有不同参数可能性的查找。
起初我正在尝试提供的示例:
<Appenders>
<File name="ApplicationLog" fileName="${web:rootDir}/app.log"/>
</Appenders>
结果:错误无法创建文件 ${web:rootDir}/app.log java.io.IOException
我还尝试了其他内置属性,如 servletContextName
和 contextPath
,但出现相同的错误消息。
所以我可能仍然遗漏了一些重要的东西。但是什么?
最佳答案
添加 log4j-web JAR
您常用的 log4j-core
JAR 文件本身是不够的。
还有一个名为 log4j-web
的附加组件.
要自动替换日志配置中的 ${web:...}
占位符,您需要额外的 log4j-web
JAR 文件。如果您没有这个 log4j-web JAR 文件,那么 Log4j2 本身仍然可以工作,但它不会用任何东西替换这些占位符。因此,例如 ${web:rootDir}
将以文字文本 ${web:rootDir}
结束。
也许您的项目中缺少该依赖项?
关于java - 如何在 log4j2 的 Web 应用程序中查找属性参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28827506/