Log4j2:为每个记录的行添加一定的字符串

时间:2018-05-08 19:57:05

标签: java log4j log4j2

我们在tomcat应用程序中使用log4j2。我们想在每个日志行中添加会话ID(请不要对此进行评判,也许这不是最好的事情,但它非常实用)。

所以我们希望实现这样的目标:

2018-05-08 21:55:20,828 INFO SessionId CurrentClass LogMessage

为实现这一目标,我们需要为每条记录的行创建某种回调。这对log4j2是否可行?

1 个答案:

答案 0 :(得分:3)

您可以通过执行以下操作在日志中添加任何信息:

String sessionId = "my-session" // this is dynamic.. You can get it in a filter..
org.apache.log4j.MDC.put("sessionId", sessionId);

然后,将您的日志模式定义为:

 %d{ISO8601}] %X{sessionId} %p %c - %m%n

之后,记录器将打印sessionId。