我需要使用 tomcat 上下文变量作为源来设置一些 log4j 配置字段。有什么想法吗?
最佳答案
我将 jndi 查找 ( http://logging.apache.org/log4j/2.x/manual/lookups.html#JNDILookup ) 与属性替换 ( http://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution ) 结合使用 这里是 tomcat 上下文的摘录:
<Environment name="MongoDB.serverAddress.1.host" value="..." type="java.lang.String"/>
<Environment name="MongoDB.serverAddress.1.port" value="..." type="java.lang.String"/>
<Environment name="MongoDB.password" value="..." type="java.lang.String"/>
这里是 log4j2 配置的摘录:
<Configuration status="warn">
<Properties>
<Property name="MongoDbServer">$${jndi:MongoDB.serverAddress.1.host}:$${jndi:MongoDB.serverAddress.1.port}</Property>
<Property name="MongoDbPassword">$${jndi:MongoDB.password}</Property>
</Properties>
<Appenders>
<NoSql name="databaseAppender">
<MongoDb databaseName="SISTEMA" collectionName="applicationLog"
server="${MongoDbServer}" username="SISTEMA"
password="${MongoDbPassword}" />
</NoSql>
....
关于java - 使用 tomcat 上下文变量配置 log4j2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25662269/