[英]How to get logs from current thread only in log4j
我想在一段时间内拦截来自应用程序中特定线程的日志。 我正在使用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()在这里不是很好的解决方案,但我没有其他想法。
您可以使用MDC.put.
例如
MDC.put("threadName",Thread.currentThread().getName());
使用它,您可以放置线程名称。
使用Log4j附加程序,您可以在日志中打印线程名称[%X {threadName}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.