请初始化log4j系统正确警告

2022-09-01 14:10:00

这是错误消息 -

log4j:WARN No appenders could be found for logger (SerialPortUtil).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

这是类中的调用 -SerialPortUtil

private static final Logger log = Logger.getLogger(SerialPortUtil.class.getSimpleName());
.
.
.
log.info("Serial port " + port.getName() + " is available");

这是我的log4j.properties文件的内容 -

log4j.rootLogger=DebugAppender

#Debug logging
log4j.appender.DebugAppender=org.apache.log4j.RollingFileAppender
log4j.appender.DebugAppender.Threshold=DEBUG
log4j.appender.DebugAppender.File=activityLog.log
log4j.appender.DebugAppender.MaxFileSize=200KB
log4j.appender.DebugAppender.MaxBackupIndex=5
log4j.appender.DebugAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.DebugAppender.layout.ConversionPattern=%d{DATE} %t - %m%n

属性文件位于类路径上。

对我来说,一切都很正确,所以发生了什么?阈值难道不应该也捕获日志记录吗?DEBUGINFO


答案 1

添加代码

BasicConfigurator.configure();

在您的静态主类中,如下所示..

注意:添加 “ \hadoop-2.7.1\share\hadoop\common\lib\commons-logging-1.1.3.jar & \hadoop-2.7.1\share\hadoop\common\lib\log4j-1.2.17.jar ” 作为外部引用

import org.apache.log4j.BasicConfigurator;

public class ViewCountDriver extends Configured implements Tool{

    public static void main(String[]args) throws Exception{

        BasicConfigurator.configure(); 

        int exitcode = ToolRunner.run(new ViewCountDriver(), args);
        System.exit(exitcode); 
    }
}

答案 2

好吧,所以我通过改变这个来让它工作

log4j.rootLogger=DebugAppender

到这个

log4j.rootLogger=DEBUG, DebugAppender

显然,您必须将日志记录级别指定到第一个?如果我浪费了任何人的时间,我很抱歉。rootLogger

另外,我决定回答我自己的问题,因为这不是类路径问题。


推荐