首页 文章

Log4J仍然使用Log4j2运行

提问于
浏览
1

我有一个spring-boot项目,我正在从Log4j转换到Log4j2 . 我已按照文档here中的步骤操作 . 具体来说,我已经修改了我的log4j.xml以符合log4j2标准,并将其重命名为log4j2.xml我已经通过使用log4j2.xml中的 <Configuration status="debug"> 设置启用了对log4j2的调试,因此我可以看到log4j2启动 . 在启动我的 Spring 季启动应用程序时,我使用以下系统设置:

-Dlog4j.configurationFile = log4j2.xml -Dorg.jboss.logging.provider = log4j2

我可以在调试输出中看到我的log4j2.xml启动appenders等,然后最后的log4j2消息说明:

日志提供程序:通过系统属性找到的org.jboss.loggin.Log4j2LoggerProvider

我正在使用以下 jar :

编译组:'org.slf4j',名称:'slf4j-log4j12',版本:'1.7.12'编译组:'org.apache.logging.log4j',名称:'log4j-api',版本:'2.4 .1'编译组:'org.springframework.boot',名称:'spring-boot-starter-log4j2',版本:'1.4.0.RELEASE'

但是,我仍然收到来自Log4j的消息:

log4j:WARN没有为logger log4j找到appender:WARN请正确初始化log4j系统log4j WARN有关详细信息,请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig

所以我的基本问题是如何关闭log4j并仅使用log4j2?我将从log4j2收到一条消息,它会明确告诉我何时正确配置它?是否有任何特殊配置我缺少使用Log4j2?

3 回答

  • 0

    您必须仅对log4j2使用这些依赖项 .

    <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>${log4j2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>${log4j2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-slf4j-impl</artifactId>
                <version>${log4j.slf4j.impl.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-web</artifactId>
                <version>${log4j2.version}</version>
                <scope>runtime</scope>
            </dependency>
    

    您还需要从spring-boot中排除spring-boot-starter-logging . 像这样

  • 1

    Log4j2常见问题解答现在excluding conflicting dependencies上有一个项目 .

    我想你需要这个:

    <dependencies>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
        <scope>provided</scope>
      </dependency>
    </dependencies>
    
  • 0

    我的项目是使用log4j2和spring-boot .

    以下是pom.xml的一部分 . 请试一试 .

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
    </dependencies>
    

相关问题