user3575174
user3575174

Reputation: 17

How do I write error info in a separate file using log4j

My log4j configuration below. I want to write error in a separate file. But if I use the configuration below error info is captured in both main log file as well as error log file. How to prevent error log being written into main log file?

# LOG4J configuration
log4j.rootLogger=DEBUG,Appender1,Appender2
log4j.appender.Appender1=org.apache.log4j.FileAppender
log4j.appender.Appender1.File=/Log/Main.log
log4j.appender.Appender1.layout=org.apache.log4j.PatternLayout
log4j.appender.Appender1.Threshold=info
log4j.appender.Appender1.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%n
log4j.appender.Appender2=org.apache.log4j.FileAppender
log4j.appender.Appender2.File=/Log/Error.log
log4j.appender.Appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.Appender2.Threshold=error
log4j.appender.Appender2.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%n 

Upvotes: 0

Views: 331

Answers (1)

davidgiga1993
davidgiga1993

Reputation: 2853

You can use the LevelMax and LevelMin configuration parameters for that

log4j.appender.Appender1.filter.a=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.Appender1.filter.a.LevelMin=INFO
log4j.appender.Appender1.filter.a.LevelMax=WARN

log4j.appender.Appender2.filter.a=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.Appender2.filter.a.LevelMin=ERROR
log4j.appender.Appender2.filter.a.LevelMax=ERROR

Related: https://stackoverflow.com/a/26768859/3542400

Upvotes: 1

Related Questions