使用Log4J 2查找JNDI变量查找时如何设置默认值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Log4J 2查找JNDI变量查找时如何设置默认值?相关的知识,希望对你有一定的参考价值。

我已经用log4j2.xml文件成功配置了Log4J 2,并且我通过Property成功地在文件中设置了JNDI variable lookup的值。

但是,如果JNDI变量不存在,我想为Property提供默认值。

这可能吗?

答案

试试这个:

<Root level="${jndi:yourJndiVariableName:-DEFAULT}">

通常所有Log4j2查找都遵循以下模式:${type:key:-defaultValue}

另一答案

是的:这可以通过使用默认属性映射来完成:

<Configuration status="DEBUG" name="Example">
    <Properties>
        <Property name="yourJndiVariableName">
            the value used if the JNDI variable cannot be found
        </Property>
    </Properties>

    ... more configuration ...

    <Loggers>
        <Root level="${jndi:yourJndiVariableName}">
            <AppenderRef ref="console"/>
        </Root>
    </Loggers>

    ... more configuration ...
</Configuration>

According to the Log4J 2 configuration documentation for property substitution,这也适用于其他属性来源(例如环境变量,系统属性等)。

以上是关于使用Log4J 2查找JNDI变量查找时如何设置默认值?的主要内容,如果未能解决你的问题,请参考以下文章

log4j 中 LDAP 查找功能背后的意义

如何从 Web 容器外部查找 JNDI 数据源?

如何在 Coherence 12.2.1 中启用缓存服务器 JNDI 查找支持?

如何在使用 JNDI 的应用程序中查找数据源 [重复]

log4j的bug演示与修复

使用arquillian测试远程客户端jndi查找