0
我在SpringBoot應用程序中使用Log4J 2。Log4J 2 XML配置不寫入文件
執行日誌類是:
package guru.springframework.blog.log4jproperties;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
public class PropertiesConfigurationDemo {
private static Logger logger =LogManager.getLogger("PropertiesConfigurationDemo.class");
public void performSomeTask(){
logger.debug("This is a debug message");
logger.info("This is an info message");
logger.warn("This is a warn message");
logger.error("This is an error message");
logger.fatal("This is a fatal message");
}
}
我log4j2.xml是SRC-> main->資源。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Properties>
<Property name="log-path">logs</Property>
</Properties>
<Appenders>
<File name="A1" fileName="${log-path}/A1.log" >
<PatternLayout pattern="%d{MM.dd.yyyy HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="guru.springframework.blog.log4jproperties" level="debug" additivity="false">
<AppenderRef ref="A1" level="debug"/>
</Logger>
<Root level="info" additivity="false">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
</Configuration>
當我呼籲PropertiesConfigurationDemo的performSomeTask()方法,將日誌消息發送到控制檯:
7:39:12.619 [main] DEBUG PropertiesConfigurationDemo.class - This is a debug message
07:39:12.643 [main] INFO PropertiesConfigurationDemo.class - This is an info message
07:39:12.647 [main] WARN PropertiesConfigurationDemo.class - This is a warn message
07:39:12.653 [main] ERROR PropertiesConfigurationDemo.class - This is an error message
07:39:12.655 [main] ERROR PropertiesConfigurationDemo.class - This is a fatal message
爲什麼日誌消息沒有發送到文件?即使如果我將根記錄器的AppenderRef設置爲A1,仍然會將消息發送到控制檯。
<Root level="info" additivity="false">
<AppenderRef ref="A1"/>
</Root>
看來我的log4j2.xml有一些問題,或根本沒有得到提取。任何幫助將被誠摯承認。
順便說一句,我在我的MAVEN POM中有以下log4j依賴項。
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.5</version>
</dependency>
感謝 Simanta