如何从log4j2中的catalina.properties中读取

时间:2019-03-01 17:13:58

标签: spring-boot log4j log4j2

我的系统配置是: Windows上的Tomcat 9.0.14 Java 8 春季靴 log4j2

在我的catalina.properties中,定义了以下属性:

server_log_root=D:/Bharath/Projects/Logs

在我的log4j2.xml文件中,我尝试按以下方式访问上述属性:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Properties>
        <Property name="LOG_HOME">${sys:server_log_root}</Property>
        <Property name="CONVERSION_PATTERN">%d{yyyy-MM-dd HH:mm:ss,SSS} tId=%X{TRANSACTION_ID} %-5p %C{1}:%L - %m%n</Property>
    </Properties>
    <Appenders>
        <Console name="CONSOLE_APPENDER" target="SYSTEM_OUT">
            <PatternLayout pattern="${CONVERSION_PATTERN}" />
        </Console>

        <File name="API_SERVICES_FILE_APPENDER" fileName="${LOG_HOME}/api_services_log.log">
            <PatternLayout pattern="${CONVERSION_PATTERN}" />
        </File>
    </Appenders>
    <Loggers>
        <Root>
            <AppenderRef ref="CONSOLE_APPENDER" level="debug"/>
        </Root>

        <Logger name="API_SERVICES_FILE_LOGGER" level="debug" additivity="false">
            <AppenderRef ref="API_SERVICES_FILE_APPENDER" />
        </Logger>
    </Loggers>
</Configuration>

在运行我的应用程序时,未在文件夹(D:/ Bharath / Projects / Logs)中创建日志。

我尝试将文件夹路径样式从/更改为\,但是还是没有运气。 此外,我尝试使用以下方法,但没有用:

$${sys:server_log_root}
${env:server_log_root}
$${env:server_log_root}
${server_log_root}
$${server_log_root}

有人可以帮助我吗? 预先感谢!

此致, 巴拉斯

1 个答案:

答案 0 :(得分:0)

我通过将属性作为环境变量放在“ context.xml”(而不是catalina.properties)中来解决了此问题