log4j: package-specific logging

前端 未结 2 710
失恋的感觉
失恋的感觉 2020-12-01 01:26

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         


        
相关标签:
2条回答
  • 2020-12-01 02:06
    log4j.logger.com.myname.fred=LEVEL, appenderNameForFred
    log4j.logger.com.myname.derek=LEVEL, appenderNameForDerek
    
    0 讨论(0)
  • 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.

    0 讨论(0)
提交回复
热议问题