我需要使用tomcat上下文变量作为源设置一些log4j配置字段。有什么想法吗?
答案 0 :(得分:1)
我将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>
....