java - 使用 tomcat 上下文变量配置 log4j2

标签 java tomcat log4j2

我需要使用 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/

相关文章:

log4j2 运行时重新配置不起作用 - 创建了空文件

java - Android studio-transformClassesWithDexForDebug 错误

java 正确理解 OOP 概念

java - 已注册的 Tomcat 服务器未出现在 netbeans 中

java - 如何诊断 Tomcat 7 中的 OutOfMemory 错误?

tomcat - 为什么我无法从 tomcat 服务器访问 crossdomain.xml 文件

logging - 如何以编程方式向现有 XML 配置添加新的记录器和附加器

java - 如何向 Spring Boot 应用程序添加日志记录属性

java - DataStax Java 驱动程序 4.0 : is object mapping going to be supported?

java - 用java从Oracle数据库中读取阿拉伯语数据