小编Cod*_*Lab的帖子

log4j2如何将文件中的属性变量读入log4j2

背景:像往常一样,我们有各种生命周期,如开发.stage,lt,prod所有这些都是在部署时从环境变量$ {lifecycle}中挑选出来的.所以JNDI设置我们将$ {lifecycle} .properties存储为变量datasource.jndi.name = jdbc/xxx.由于其他bean也在使用此属性文件,因此验证此类变量已加载且文件位于类路径中,但不知何故,我无法在下面的JDBC Appender中的log4j2.xml中使用此变量.

<JDBC name="DBAppender" tableName="V1_QUERY_LOG" bufferSize="4" ignoreExceptions="false">
    <DataSource jndiName="${sys:datasource.jndi.name}" />
    <Column name="event_date" isUnicode="false" isEventTimestamp="true" />
    <Column name="log_level" isUnicode="false" pattern="%level" />
    <Column name="logger" isUnicode="false" pattern="%logger" />
    <Column name="message" isUnicode="false" pattern="%message" />
    <Column name="exception_msg" isUnicode="false" pattern="%ex{full}" />
</JDBC>
Run Code Online (Sandbox Code Playgroud)

我也试过像"$ {datasource.jndi.name}"这样的选项,或者我有什么方法可以适应这个解决方案

<Properties>
 <Property name="datasource.jndi.name">get datasource.jndi.name from {lifecycle}.properties</property>
</Properties>
Run Code Online (Sandbox Code Playgroud)

java logging log4j jdbc log4j2

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

java ×1

jdbc ×1

log4j ×1

log4j2 ×1

logging ×1