java - log4j,只需要在日志文件中显示INFO和ERROR信息

标签 java log4j

我是 log4j 的新手,致力于在 eclipse 上进行设置及其运行。我了解级别中的优先级链,这是我的属性文件配置:

log4j.rootLogger=ALL, file, console

log4j.appender.console=org.apache.log4j.ConsoleAppender
logrj.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %c{1} - %m%n

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/justfortesting.log
log4j.appender.file.Append=true
log4j.appender.file.ImmediateFlush=true
log4j.appender.file.MaxFileSize=1KB
log4j.appender.file.MaxBackupIndex=2
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %d{Z} [%t] %-5p (%F:%L) - %m%n

我的问题是

是否可以在具有属性文件配置的日志文件中仅打印 INFO 和 ERROR 类型的消息

最佳答案

最终我得到了满足我要求的解决方案。这里我使用了过滤器的概念,即 LevelRangeFilter。对于每个日志记录级别,我们都定义了 appender。

log4j.rootLogger=DEBUG, file, console, file1

log4j.appender.console=org.apache.log4j.ConsoleAppender
logrj.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %c{1} - %m%n

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/justfortesting.log
log4j.appender.file.Append=true
log4j.appender.file.ImmediateFlush=true
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.filter.a=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.file.filter.a.LevelMin=INFO
log4j.appender.file.filter.a.LevelMax=INFO
log4j.appender.file.MaxFileSize=1KB
log4j.appender.file.MaxBackupIndex=2
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %d{Z} [%t] %-5p (%F:%L) - %m%n

log4j.appender.file1=org.apache.log4j.RollingFileAppender
log4j.appender.file1.File=logs/justfortesting.log
log4j.appender.file1.Append=true
log4j.appender.file1.ImmediateFlush=true
log4j.appender.file1.Threshold=DEBUG
log4j.appender.file1.filter.g=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.file1.filter.g.LevelMin=ERROR
log4j.appender.file1.filter.g.LevelMax=ERROR
log4j.appender.file1.MaxFileSize=1KB
log4j.appender.file1.MaxBackupIndex=2
log4j.appender.file1.layout=org.apache.log4j.PatternLayout
log4j.appender.file1.layout.ConversionPattern=%d %d{Z} [%t] %-5p (%F:%L) - %m%n

log4j.logger.com.log4j=DEBUG, file, console, file1

log4j.additivity.com.log4j=false

如果有人建议为相同的要求减少上述属性配置,请发表评论。

关于java - log4j,只需要在日志文件中显示INFO和ERROR信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44067976/

相关文章:

java - Hibernate:分离的实体传递到持久化

logging - 如何隐藏 hazelcast INFO 日志?

log4j - 使用 Log4j Bridge 从 log4j1 迁移到 log4j2

java - 使用@Parameter 注解或ITestContext 读取TestNG 配置文件?

java - BigDecimal如何做到没有 float 不准确?

用于读取包含多个文件的 multipart/form-data http 正文的 Java 库

Java 程序调用时导入项目

java - java.util.logging 配置属性文件中的 log4j.appender.console.target 等效项

java - 如何用Java构建日志接收器?

java - 是否有可能以任何方式在 slf4j 配置中使用 Spring 通配符? (不是作为根记录器!)