问题描述
我在几个地方 (Log4j) 的代码中添加了 Logger。 像 Logger.info(" some thing "); 我的日志很多地方都是这样的,
Timestamp LogLevel SometText SomeMoreText
每当有新的请求出现时, 我想在每个 logLevel 中添加一些像 ID:CurrentValuetime 这样的值,这将是相同的,直到请求出现在所有 LogLevel 中,所以我的日志应该像
Timestamp LogLevel ID:CurrentValuetime SometText SomeMoreText
ID:CurrentValuetime 在所有地方都应该相同,它应该是全局的和最终的,应该自动附加到所有日志级别
我怎样才能做到这一点?
解决方法
在 MDC 的帮助下实现了
在
的帮助下创建了一个servlet过滤器 MDC.put("UniqueID",UIDValue);
我能够立即将唯一值添加到日志中。
try {
chain.doFilter(request,response);
} finally {
MDC.remove("UniqueID");
}
并在请求完成后删除值