log4j:WARN没有为logger找到appender(org.springframework.core.env.StandardEnvironment)

时间:2017-10-06 15:18:07

标签: spring maven logging log4j log4j2

我正在尝试使用log4j的log4j2.xml,但我一直在

log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
log4j:WARN Please initialize the log4j system properly.

文件位于src / main / resources

 <?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="WIP">
  <Appenders>
    <Console name="console" target="SYSTEM_OUT">
        <PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %MDC{threadTrackId} %40c{1.} - %msg%n"/>
    </Console>
</Appenders>
<Loggers>
    <Root level="warn">
        <AppenderRef ref="console"/>
    </Root>
    <Logger name="com.test" level="debug"/>
    <Logger name="org.springframework" level="info"/>
</Loggers>
</Configuration>

我不确定文件是否正确定位但是其中的appender未正确读取或文件未找到。

在我的pom文件中,我有以下依赖项

<dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
    </dependency>
<dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-1.2-api</artifactId>
    </dependency>

这是我在pom中的构建部分

  <build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.4.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>java</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>com.wirecard.wip.db.RecreateDatabase</mainClass>
                <cleanupDaemonThreads>false</cleanupDaemonThreads>
            </configuration>
        </plugin>
    </plugins>
</build>

在我的班级中,这是我初始化记录器的方式

private static final Logger LOG =   LoggerFactory.getLogger(MyClass.class);

我的导入是

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

我使用此命令通过maven运行我的课程

mvn -B -f pom.xml exec:java -Dlog4j.configurationFile=log4j2.xml

我也试过

mvn -B -f pom.xml exec:java -Dlog4j.configurationFile=classpath:log4j2.xml

感谢任何帮助

2 个答案:

答案 0 :(得分:7)

消息

log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
log4j:WARN Please initialize the log4j system properly.

来自log4j1。您仍必须在类路径上使用jar。运行“mvn dependency:tree”,看看它带来了什么,然后为它添加一个排除。

答案 1 :(得分:0)

如果要从自定义位置引用log4j.properties文件,请在自定义位置也使用以下方式创建日志文件:

  1. 弹簧靴
  2. log4j 1.2+版

并且您排除了

  

“ spring-boot-starter-logging”

来自

  

“ spring-boot-starter”

然后在maven中的上述依赖项之后添加此依赖项

<dependency>
        <groupId>log4j</groupId>
        <artifactId>apache-log4j-extras</artifactId>
        <version>1.2.17</version>
    </dependency>

执行干净的构建。

它将从自定义位置引用文件并创建日志文件。 希望这会帮助某人。