database - LOG4J Multiple Loggers in same class -
i have java project has log4j logging. uses rolling file appender , multiple loggers log file. want add dbappender , have seperate logger writes appender, none of other loggers sending messages it. need, 1 class have 2 loggers, 1 writing fileappender , 1 writing dbappender. possible, if configuration it?
thanks
it's possible use 2 loggers in 1 class.
first idea: 2 loggers different names:
package com.mycompany.apackage.myclass; public class myclass { private static final logger = logger.getlogger(myclass.class) private static final dblogger = logger. getlogger(myclass.class.getname() + ".dblogger") } config package of dblogger:
<root> <appender-ref ref="mainlog" /> </root> <logger name="com.mycompany.apackage.myclass.dblogger"> <appender-ref ref="dbappender" /> </logger> (not tested.) in case dblogger logs mainlog appender. if it's not appropriate use custom filter in mainlog (and other) appenders filters out messages of dblogger. solution using different prefix dblogger:
private static final logger = logger.getlogger(myclass.class) private static final dblogger = logger. getlogger("dblogger." + myclass.class.getname()) log4j config:
<root> </root> <logger name="com.mycompany"> <appender-ref ref="mainlog" /> </logger> <logger name="dblogger.com.mycompany"> <appender-ref ref="dbappender" /> </logger> note if pass same parameter getlogger() method same logger object, have use different names.
Comments
Post a Comment