除非测试,否则不会创建日志

时间:2016-07-06 10:52:02

标签: java spring log4j log4j2

我正在使用log4j2登录我的应用程序。基本上它记录了未捕获的异常(Error.log)并记录了服务层(journal.log; journalJSON.log)中数据的更改。

就是这样,当我开始服务层测试时,每个日志出现在文件和控制台中,但是当我使用部署在tomcat中的应用程序时,它们只在控制台中。发生了什么事?

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="WARN">
<appenders>
    <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>


    <File name="Error" fileName="logs/error.log"
          immediateFlush="true" append="true">
        <PatternLayout pattern=" \n\n %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </File>

    <RandomAccessFile name="Journal" fileName="logs/journal.log" immediateFlush="true" append="true">
        <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] %msg%n"/>
    </RandomAccessFile>

    <File name="JournalJSON" fileName="logs/journalJSON.log" immediateFlush="true" append="false">
        <JSONLayout complete="true" charset="UTF-8" compact="false" eventEol="false"/>
    </File>

</appenders>

<Loggers>

    <Logger name="com.user.controller" level="error" additivity="false">
        <AppenderRef ref="Error" level="error"/>
        <AppenderRef ref="Console" level="error"/>
    </Logger>

    <Logger name="com.user.service" level="info" additivity="false">
        <appender-ref ref="JournalJSON" level="info"/>
        <appender-ref ref="Journal" level="info"/>
        <appender-ref ref="Console" level="info"/>
    </Logger>

    <Root level="warn">
        <AppenderRef ref="Console"/>
    </Root>
</Loggers>

1 个答案:

答案 0 :(得分:1)

嗯,我可以想到几种可能性:

  1. 找不到您的配置文件,它正在使用默认配置。
  2. 您的应用程序的记录器不是com.user.controller或com.user.service,并且正在使用根记录器。