Log4j2 - 配置

时间:2012-11-18 09:15:24

标签: java logging configuration log4j log4j2

我正在尝试在我的新项目中采用Log4j2,但我在catalina.out中获取了我的日志,第一个始终是:ERROR StatusLogger Unable to locate a logging implementation, using SimpleLogger。看来我已根据Log4j2文档完成了所有工作,但仍然如此。

这是我实际做的事情:

  1. log4j-api-2.0-beta3.jar添加到我的项目
  2. 创建了一个log4j2.xml文件,并将其放在类路径上的位置(目前在/usr/local/tomcat/home/lib中。实际上,我从Log4J2网页中获取了一个示例文件。
  3. 重启tomcat。
  4. 我正在使用Tomcat 7,MacOS X 10.8,Java 7.

    我错过了什么?

    以防万一,这是我正在使用的log4j2.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration status="warn" name="MyApp" packages="">
      <appenders>
        <File name="MyFile" fileName="logs/app.log">
          <PatternLayout>
            <pattern>%d %p %C{1.} [%t] %m%n</pattern>
          </PatternLayout>
        </File>
      </appenders>
      <loggers>
        <root level="trace">
          <appender-ref ref="MyFile"/>
        </root>
      </loggers>
    </configuration>
    

4 个答案:

答案 0 :(得分:36)

我遇到了同样的问题。将 log4j-core-2.0-beta3.jar 添加到它运行的类路径之后。

答案 1 :(得分:15)

Maven 中,您通常具有此日志记录配置:

<properties>    
    <slf4j-version>1.7.7</slf4j-version>
    <slf4j-log4j2-version>2.0.1</slf4j-log4j2-version>
</properties>

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>${slf4j-version}</version>
</dependency>

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>${slf4j-log4j2-version}</version>
</dependency>

要添加日志核心库,您必须:

  1. 将2.0.1添加到属性部分
  2. 添加日志核心依赖项:

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>${log4j2-version}</version>
    </dependency>
    

答案 2 :(得分:5)

New icon已更新至2.7版

将下一个罐子添加到您的项目中:

如果您使用的是Maven,请添加依赖项:

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

答案 3 :(得分:2)

我使用log4j2.8.2并通过将log4j2.xml放入web classes文件夹(WEB-INF / classes / log4j2.xml)来成功自动配置