Log4j2 - 配置

Posted

技术标签:

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

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

这是我实际所做的:

    已将log4j-api-2.0-beta3.jar 添加到我的项目中 创建了一个log4j2.xml 文件并将其放在类路径中的某个位置(当前位于/usr/local/tomcat/home/lib。事实上,我从Log4J2 网页中获取了一个示例文件。 重新启动 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 %C1. [%t] %m%n</pattern>
      </PatternLayout>
    </File>
  </appenders>
  <loggers>
    <root level="trace">
      <appender-ref ref="MyFile"/>
    </root>
  </loggers>
</configuration>

【问题讨论】:

【参考方案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>

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

    将 2.0.1 添加到属性部分

    添加日志核心依赖:

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

【讨论】:

【参考方案3】:

更新到2.7版本

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

log4j-api-2.7.jar log4j-core-2.7.jar

如果您使用的是 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。它应该可以解决问题。

【讨论】:

以上是关于Log4j2 - 配置的主要内容,如果未能解决你的问题,请参考以下文章

Log4j2配置

log4j2 配置简要分析

log4j2配置详解

配置播放框架以使用 log4j2

【日志】Log4j2配置

你知道 log4j2 各项配置的全部含义吗?带你了解 log4j2 的全部组件