我想使用log4j日志记录从INFO的输出日志记录消息中删除时间戳和类名。现在,似乎我的程序没有使用ConversionPattern布局行,因为该行甚至没有引用C,它将是拥有logger对象的Java类。
log4j.properties加载如下:
URL logConfigUrl = ClassLoader.getSystemResource("log4j.properties");
PropertyConfigurator.configure(logConfigUrl);
这是我的log4j.properties文件内容:
log4j.rootLogger=INFO, stdout
log4j.rootLogger=ERROR, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
现在,输出看起来像这样:
14:24:17.387 [main] INFO com.nim.tools.recontool.ReconTool
我希望它看起来像这样:
[主要] INFO
答案 0 :(得分:2)
我认为加载了错误的“log4j.properties”文件,因为输出甚至与您的配置不匹配。
URL logConfigUrl = ClassLoader.getSystemResource("log4j.properties");
加载类搜索路径上的FIRST“log4j.properties”。一些包含“log4j.properties”的罐子/目录可能已经在您的课程之前加载。要验证加载了哪个log4j.properties,可以打印出URL。
要配置所需的输出,您需要:
log4j.appender.stdout.layout.ConversionPattern=[%t] %-5p: %m%n