How can I set log4j to log to a different file according to package name?
for example:
com.myname.fred logs to fred.log
com.myname.derek logs to dere
log4j.logger.com.myname.fred=LEVEL, appenderNameForFred
log4j.logger.com.myname.derek=LEVEL, appenderNameForDerek
You have to create two new appenders and set additivity accordingly.
log4j.appender.FRED=org.apache.log4j.RollingFileAppender
log4j.appender.FRED.File=/path/to/fred.log
log4j.appender.FRED.layout=org.apache.log4j.PatternLayout
log4j.appender.DEREK=org.apache.log4j.RollingFileAppender
log4j.appender.DEREK.File=/path/to/derek.log
log4j.appender.DEREK.layout=org.apache.log4j.PatternLayout
log4j.additivity.com.myname.fred=false
log4j.additivity.com.myname.derek=false
log4j.logger.com.myname.fred=DEBUG, FRED
log4j.logger.com.myname.derek=DEBUG, DEREK
Update: Just check if you need to add the below line.
log4j.rootLogger=DEBUG, R, FRED, DEREK
Where R
is your regular log file that logs everything except FRED
and DEREK
.