我想在一段时间内截取我的应用程序中特定线程的日志。我正在使用log4j。 下面的代码就是这样,但我也从其他线程获取日志。
WriterAppender appender = new WriterAppender(new PatternLayout("%d{ISO8601} %p - %m%n"), consoleWriter);
appender.setName("STR_APPENDER");
appender.setThreshold(org.apache.log4j.Level.INFO);
Logger.getRootLogger().addAppender(appender);
//Some Logic here (I'm using other classes and jars here and I want to get this logs as well)
Logger.getRootLogger().removeAppender("STR_APPENDER");
我知道Logger.getRootLogger()在这里不是一个好的解决方案,但我没有任何其他想法。
答案 0 :(得分:0)
您可以使用MDC.put.
例如
MDC.put("threadName",Thread.currentThread().getName());
使用它可以放置线程名称。
使用Log4j appender,您可以在日志中打印线程名称[%X {threadName}