Log4j 2没有记录到文件

时间:2015-10-14 19:38:59

标签: log4j2

我第一次尝试使用log4j 2,但无法让我的代码登录到文件。

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.3</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.3</version>
</dependency>

我的代码未记录到我的File Appender或Console Appender:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout>
            <Pattern pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </PatternLayout>        
    </Console>
    <File name="File" fileName="resources/app-log.log">
        <PatternLayout>
            <Pattern pattern="%d{MM.dd.yyyy HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </PatternLayout>
    </File>
  </Appenders>
  <Loggers>
    <Logger name="x.y" level="ALL" additivity="true">
      <AppenderRef ref="File"/>
      <AppenderRef ref="Console"/>
    </Logger>
  </Loggers>
</Configuration>

这是我的Java代码,使用日志记录:

    package x.y;    

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;    

    public class Foo {
            private static Logger logger = LogManager.getLogger(Foo.class.getName());

            public static void main(String[] args) {
                Foo foo = new Foo;
                logger.info("Application starting");

             }

        }

编辑:我的应用程序正在登录到控制台但未使用我指定的模式布局。我的应用程序是一个Maven应用程序,我已将log4j2.xml放在src / main / resources中。我知道我的配置xml正在读取,因为当我输入无效的东西时,我得到一个例外。

1 个答案:

答案 0 :(得分:0)

想出来。改为:

<PatternLayout pattern="%d{MM.dd.yyyy HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>

现在它登录到我的文件。