属性文件存在,但仍然得到 "WARN No appenders could be found"
properties file exists, but still getting "WARN No appenders could be found"
我在我的应用程序中使用 pcap4j 库,当我 运行 它时,我得到:
log4j:WARN No appenders could be found for logger (org.pcap4j.core.NativeMappings).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
我也在我的应用程序中使用了 log4j:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.1</version>
</dependency>
配置在main/resources/log4j2-test.properties
:
log4j.rootLogger=INFO, fileLogger
log4j.appender.fileLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.fileLogger.layout.ConversionPattern=%d [%t] %-5p (%F:%L) - %m%n
log4j.appender.fileLogger.File=application.log
log4j.appender.fileLogger=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fileLogger.datePattern='.'yyyy-MM-dd-HH-mm
所以配置文件在那里,无论我在其中更改什么,它都会产生影响,这意味着 log4j 可以看到它并且可以正常工作,所以当我到处都读到这种警告是由丢失引起的时,我很无助或者错误的配置文件。
难道是依赖出错了,我无能为力?如果是这样,有没有办法完全禁用此依赖项中的日志记录?事实上,这是我首先想要的。
跑题了,抱歉:)
您可以使用此手动设置日志配置文件:
org.apache.log4j.xml.DOMConfigurator.configure("<path>\log4j2-test.properties");
<path>
可以是绝对的,也可以是相对于您的 maven 模块根目录的。
该消息来自 log4j 1,而您使用的是 log4j2,因此它是无害的。
https://github.com/apache/log4j/blob/trunk/src/main/java/org/apache/log4j/Hierarchy.java
public
void emitNoAppenderWarning(Category cat) {
// No appenders in hierarchy, warn user only once.
if(!this.emittedNoAppenderWarning) {
LogLog.warn("No appenders could be found for logger (" +
cat.getName() + ").");
LogLog.warn("Please initialize the log4j system properly.");
LogLog.warn("See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.");
this.emittedNoAppenderWarning = true;
}
}
我在我的应用程序中使用 pcap4j 库,当我 运行 它时,我得到:
log4j:WARN No appenders could be found for logger (org.pcap4j.core.NativeMappings).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
我也在我的应用程序中使用了 log4j:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.1</version>
</dependency>
配置在main/resources/log4j2-test.properties
:
log4j.rootLogger=INFO, fileLogger
log4j.appender.fileLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.fileLogger.layout.ConversionPattern=%d [%t] %-5p (%F:%L) - %m%n
log4j.appender.fileLogger.File=application.log
log4j.appender.fileLogger=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fileLogger.datePattern='.'yyyy-MM-dd-HH-mm
所以配置文件在那里,无论我在其中更改什么,它都会产生影响,这意味着 log4j 可以看到它并且可以正常工作,所以当我到处都读到这种警告是由丢失引起的时,我很无助或者错误的配置文件。
难道是依赖出错了,我无能为力?如果是这样,有没有办法完全禁用此依赖项中的日志记录?事实上,这是我首先想要的。
跑题了,抱歉:)
您可以使用此手动设置日志配置文件:
org.apache.log4j.xml.DOMConfigurator.configure("<path>\log4j2-test.properties");
<path>
可以是绝对的,也可以是相对于您的 maven 模块根目录的。
该消息来自 log4j 1,而您使用的是 log4j2,因此它是无害的。
https://github.com/apache/log4j/blob/trunk/src/main/java/org/apache/log4j/Hierarchy.java
public
void emitNoAppenderWarning(Category cat) {
// No appenders in hierarchy, warn user only once.
if(!this.emittedNoAppenderWarning) {
LogLog.warn("No appenders could be found for logger (" +
cat.getName() + ").");
LogLog.warn("Please initialize the log4j system properly.");
LogLog.warn("See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.");
this.emittedNoAppenderWarning = true;
}
}