java - Get TRACE logs for a session (when root logger level is WARN) -
java - Get TRACE logs for a session (when root logger level is WARN) -
i able debug specific requests on server. followed kc baltz's response on conditional logging log4j log requests of involvement own log file.
when starting process request:
fileappender fileappender = new fileappender(new patternlayout(pattern), logfilename, true); fileappender.setname(sessionid); fileappender.setthreshold(level.trace); // add together filter identify logs belonging current thread fileappender.addfilter(new mycustomfilter(sessionid)); logger.getrootlogger.addappender(fileappender); // utilize log4j mdc identify logs mdc.put("log-key", sessionid); then after request done processing:
appender appender = logger.getrootlogger().getappender(sessionid); logger.getrootlogger().removeappender(appender); mdc.remove("log-key"); the corresponding filter:
public class mycustomfilter extends filter { private final string id; public mycustomfilter(string id) { this.id = id; } @override public int decide(loggingevent event) { object mdc = event.getmdc("log-key"); if (id.equals(mdc)) { homecoming filter.accept; } homecoming filter.deny; } } the problem level of root logger set 'warn' , want logs (trace level) given sessionid.
java tomcat log4j
Comments
Post a Comment