1

可能重复:
使用 log4j 创建多个不同内容的日志文件

我想将调试日志和信息日志存储在单独的文件中,任何人都可以给我示例。

log4j.rootLogger=debug,R1,R2

log4j.appender.R2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R2.File=/Test/ex/ex.log
log4j.appender.R1.DatePattern='.'dd-MM-yy
log4j.appender.R2.layout=org.apache.log4j.PatternLayout
log4j.appender.R2.layout.ConversionPattern=%d{dd/MM/yy kk:mm:ss.SSS} %-5p [%t] %x (%F:%L) - %m%n

当我尝试上述方法时,调试和信息日志存储在示例文件中。但是我怎么能分开存放。

4

1 回答 1

1

关键是使用 log4j 提供的 LevelMatchFilter。

这里是您的配置的更新版本

log4j.rootLogger=debug,R1,R2

log4j.appender.R1.DatePattern='.'dd-MM-yy 
log4j.appender.R1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R1.File=/Test/error.log
log4j.appender.R1.layout=org.apache.log4j.PatternLayout 
log4j.appender.R1.layout.ConversionPattern=%d{dd/MM/yy kk:mm:ss.SSS} %-5p [%t] %x (%F:%L) - %m
log4j.appender.R1.filter.1=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.R1.filter.1.LevelToMatch=ERROR
log4j.appender.R1.filter.1.AcceptOnMatch=true
log4j.appender.R1.filter.2=org.apache.log4j.varia.DenyAllFilter

log4j.appender.R2.DatePattern='.'dd-MM-yy 
log4j.appender.R2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R2.File=/Test/info.log
log4j.appender.R2.layout=org.apache.log4j.PatternLayout 
log4j.appender.R2.layout.ConversionPattern=%d{dd/MM/yy kk:mm:ss.SSS} %-5p [%t] %x (%F:%L) - %m
log4j.appender.R2.filter.1=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.R2.filter.1.LevelToMatch=INFO
log4j.appender.R2.filter.1.AcceptOnMatch=true
log4j.appender.R2.filter.2=org.apache.log4j.varia.DenyAllFilter

log4j.appender.debug.DatePattern='.'dd-MM-yy 
log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender
log4j.appender.debug.File=/Test/debug.log
log4j.appender.debug.layout=org.apache.log4j.PatternLayout 
log4j.appender.debug.layout.ConversionPattern=%d{dd/MM/yy kk:mm:ss.SSS} %-5p [%t] %x (%F:%L) - %m
log4j.appender.debug.filter.1=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.debug.filter.1.LevelToMatch=DEBUG
log4j.appender.debug.filter.1.AcceptOnMatch=true
log4j.appender.debug.filter.2=org.apache.log4j.varia.DenyAllFilter

参考: PropertyConfiguration LevelMatchFilter

于 2012-10-09T11:39:30.557 回答