【问题标题】:Log4j2 - configuringLog4j2 - 配置
【发布时间】:2012-11-06 11:50:50
【问题描述】:

我正在尝试在我的新项目中采用 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。

我正在使用 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>

【问题讨论】:

    标签: java logging configuration log4j log4j2


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      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>
        

      【讨论】:

        【解决方案3】:

        更新到2.7版本

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

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

            如果是maven项目,需要添加如下依赖,

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

            log4j2.xml 或 log4j2.properties 文件应该在 src/main/resources 文件夹下。在这种情况下,您不需要在类路径中显式添加文件夹或 jar。它应该可以解决问题。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-04-09
              • 2014-10-18
              • 2018-05-17
              • 2015-09-24
              • 2013-12-20
              • 1970-01-01
              • 2016-07-04
              • 1970-01-01
              相关资源
              最近更新 更多