Log4j2保存文件(使用RollingFile appender)

时间:2012-11-25 12:45:32

标签: java rollingfileappender log4j2

我正在尝试使用log4j2来创建我正在开发的系统的日志文件,我已经按照site上的说明进行了操作,并且在运行时没有发生错误,但是日志没有保存在哪里我设置它(例如“D:\ logs \ app.log”)。

这是我的log4j.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
  <appenders>
    <RollingFile name="MyRollingFile" fileName="D:/logs/app.log"
                 filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
      <PatternLayout>
        <pattern>%d %p %C{1.} [%t] %m%n</pattern>
      </PatternLayout>
      <Policies>
        <TimeBasedTriggeringPolicy />
        <SizeBasedTriggeringPolicy size="250 MB"/>
      </Policies>
      <DefaultRolloverStrategy max="20"/>
    </RollingFile>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </appenders>
  <loggers>
    <logger name="Log_RollingFile" level="TRACE" additivity="false">
      <appender-ref ref="MyRollingFile"/>
    </logger>
    <root level="ERROR">
      <appender-ref ref="Console"/>
    </root>
  </loggers>
</configuration>

我试图:

  • 删除app.log以查看我的配置(D:\ logs \ app.log)是否有效。当我运行应用程序时,它会创建app.log,所以我认为这意味着它会看到配置,唯一的问题就是它没有保存我在java应用程序中执行的log.info
  • 将根级别更改为“TRACE”,并打印log.info。

[编辑:]

我的类路径中还有这些库

  • 的log4j-API-2.0-beta3.jar
  • log4j的核-2.0-beta3.jar

我在RollingFile配置或库(可能)上遗漏了什么?

提前致谢。

1 个答案:

答案 0 :(得分:3)

您的记录器名称不正确。

如您所链接的配置说明中所述,应根据您要捕获的日志包来命名记录器。

在他们的示例中,名为com.foo.Bar的记录器会记录Barcom.foo类中TRACE级{{1}}的所有内容。