如何在 log4j2 的 Web 应用程序中查找 属性 参数?
How to lookup property parameter in web app for log4j2?
我想配置 log4j2
以从网络启动时动态查找日志记录路径 (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
我还尝试了其他内置属性,如 servletContextName
和 contextPath
,但出现相同的错误消息。
所以我可能还遗漏了一些重要的东西。但是什么?
${web:rootDir} 是一个值吗?占位符未被其实际值替换。
在页面中你可以红:
Information on how to use Lookups in configuration files can be found in the Property Substitution: http://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution
添加 log4j-web JAR
您常用的 log4j-core
JAR 文件本身是不够的。
还有一个名为 log4j-web
的附加组件。
要自动替换日志配置中的 ${web:...}
占位符,您需要额外的 log4j-web
JAR 文件。如果您没有这个 log4j-web JAR 文件,那么 Log4j2 本身仍然可以工作,但它不会用任何东西替换这些占位符。因此,例如 ${web:rootDir}
最终将作为文字文本 ${web:rootDir}
.
也许您的项目中缺少该依赖项?
我想配置 log4j2
以从网络启动时动态查找日志记录路径 (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
我还尝试了其他内置属性,如 servletContextName
和 contextPath
,但出现相同的错误消息。
所以我可能还遗漏了一些重要的东西。但是什么?
${web:rootDir} 是一个值吗?占位符未被其实际值替换。
在页面中你可以红:
Information on how to use Lookups in configuration files can be found in the Property Substitution: http://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution
添加 log4j-web JAR
您常用的 log4j-core
JAR 文件本身是不够的。
还有一个名为 log4j-web
的附加组件。
要自动替换日志配置中的 ${web:...}
占位符,您需要额外的 log4j-web
JAR 文件。如果您没有这个 log4j-web JAR 文件,那么 Log4j2 本身仍然可以工作,但它不会用任何东西替换这些占位符。因此,例如 ${web:rootDir}
最终将作为文字文本 ${web:rootDir}
.
也许您的项目中缺少该依赖项?