使用tomcat上下文变量配置log4j2

时间:2014-09-04 09:47:04

标签: java tomcat log4j2

我需要使用tomcat上下文变量作为源设置一些log4j配置字段。有什么想法吗?

1 个答案:

答案 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>
    ....