我只想将INFO
日志写入logfile
,下面是我的log4j
配置
log4j.properties
文件是:
log4j.rootLogger = INFO, FILE,
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=logs.out
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.Threshold=INFO
log4j.appender.FILE.Append=true
log4j.appender.FILE.MaxFileSize=100KB
log4j.appender.FILE.MaxBackupIndex=2
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss} %5p - %m%n
Java文件是:
import org.apache.log4j.Logger;
public class Log4jDemo {
private static Logger log=Logger.getLogger(Logger.class.getName());
public static void main(String[] args) {
log.info("info");
log.error("error");
log.fatal("fatal");
log.warn("warn");
}
}
logs.out
文件是:
12 Apr 2016 15:38:35 INFO - info
12 Apr 2016 15:38:35 ERROR - error
12 Apr 2016 15:38:35 FATAL - fatal
12 Apr 2016 15:38:35 WARN - warn
这里我的logs.out
文件中的日志是INFO, ERROR, FATAL, WARN
,但我只想将INFO
日志写入logs.out
文件?
任何人都建议,如何实现这一目标?
我的问题很独特,不是关于 log4j日志记录层次结构顺序 log4j logging hierarchy order
这显示了log4j
框架的默认配置,但我想实现自定义框架,请您帮我解决问题。
答案 0 :(得分:2)
我刚找到你要找的过滤器:org.apache.log4j.varia.LevelMatchFilter
但是:
“请注意,只有DOMConfigurator支持过滤.PropertyConfigurator不支持过滤器。”
(资料来源:https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/spi/Filter.html)
所以你可能不得不切换到XML-Configuration-File。
对于Log4j2,有评论中已经提到的ThresholdFilter。