log4j2的文件追加器在独立的tomcat中不起作用

时间:2018-03-05 08:07:42

标签: tomcat spring-boot log4j2

我使用spring-boot,log4j2和tomcat遇到了问题。

我有一个log4j2 xml配置文件用于记录,有2个appender,一个控制台和一个文件追加器。

问题是每当我使用Application类的main方法运行应用程序时,一切正常,但是当我构建应用程序的war文件并将其部署到独立的tomcat时,文件appender不起作用。

实际上会发生的事情是控制台appender正常工作[日志在控制台中打印]并且创建了log4j2配置文件中指定的文件,但它仍然是空的。

这是log4j2配置文件:

<Properties>
    <Property name="LOG_PATTERN">
        %d{yyyy-MM-dd HH:mm:ss} %5p ${hostName} --- [%15.15t] %-40.40c{1.} %L : %m%n%ex
    </Property>
    <Property name="LOG_PATH">
        <!-- <absolute_path_to_log_file_directory> -->
    </Property>
</Properties>

<Appenders>
    <Console name="ConsoleAppender" target="SYSTEM_OUT">
        <PatternLayout pattern="${LOG_PATTERN}"/>
    </Console>

    <RollingFile name="FileAppender"
                 fileName="${LOG_PATH}/mylogfile.log"
                 filePattern="${LOG_PATH}/mylogfile-%d{yyyy-MM-dd}-%i.log">
        <PatternLayout>
            <Pattern>${LOG_PATTERN}</Pattern>
        </PatternLayout>
        <Policies>
            <TimeBasedTriggeringPolicy interval="1" />
        </Policies>
    </RollingFile>
</Appenders>

<Loggers>
    <Logger name="my.package.name" level="debug" additivity="false">
        <AppenderRef ref="FileAppender" />
        <AppenderRef ref="ConsoleAppender" />
    </Logger>


    <Root level="info">
        <AppenderRef ref="ConsoleAppender" />
        <AppenderRef ref="FileAppender" />
    </Root>
</Loggers>

对此事的任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:-2)

您可以将以下内容添加到您的tomcat启动中,并添加到catalina opts

-Dlogging.config=<<external-folder>>\log4j2.xml