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 logger
s 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