为什么log4j找不到配置文件

问题描述 投票:0回答:1

为什么 Intellij Idea 会出现错误 log4j:WARN 找不到记录器 (org.gerosd.Manager) 的附加程序。 log4j:WARN 请正确初始化 log4j 系统。 log4j:警告有关更多信息,请参阅 http://logging.apache.org/log4j/1.2/faq.html#noconfig。?

Manager.java

package org.gerosd;

import org.apache.log4j.PropertyConfigurator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Manager {
    private static final Logger logger = LoggerFactory.getLogger(Manager.class);

    public static void main(String[] args) {
        PropertyConfigurator.configure("D:/work/projects/Log4j/src/main/resources/log4j2.xml");
        logger.info("Hello World");
    }
}

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="LogToConsole" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <RollingFile name="LogToRollingFile" fileName="logs/app.log"
                     filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout>
                <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB"/>
            </Policies>
        </RollingFile>

    </Appenders>
    <Loggers>
        <!-- avoid duplicated logs with additivity=false -->
         <Logger name="org.gerosd.Manager" level="warn" additivity="false">
            <AppenderRef ref="LogToRollingFile"/>
        </Logger>
        <Root level="warn">
            <AppenderRef ref="LogToConsole"/>
        </Root>
    </Loggers>
</Configuration>

构建.gradle

plugins {
    id 'java'
}

group = 'org.gerosd'
version = '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.apache.logging.log4j:log4j-core:2.20.0'
    implementation 'org.apache.logging.log4j:log4j-api:2.20.0'
    implementation 'org.slf4j:slf4j-api:2.0.9'
    implementation 'org.slf4j:slf4j-reload4j:2.0.9'
}

我尝试添加 'org.apache.logging.log4j:log4j-slf4j2-impl:2.20.0',但在这种情况下,配置也没有被读取,错误也没有写入控制台。

java gradle intellij-idea log4j slf4j
1个回答
0
投票

不应该是

log4j.xml
吗?在资源路径中。

© www.soinside.com 2019 - 2024. All rights reserved.