代码之家  ›  专栏  ›  技术社区  ›  Vojtěch

Log4j2:向每个记录的行添加特定字符串

  •  2
  • Vojtěch  · 技术社区  · 7 年前

    我们在tomcat应用程序中使用log4j2。我们希望将会话ID添加到每个日志行中(请不要因此评判我们,也许这不是最好的做法,但它非常实用)。

    因此,我们希望实现以下目标:

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

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

    1 回复  |  直到 7 年前
        1
  •  3
  •   Thiago Procaci    7 年前

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

    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
    

    之后,记录器将打印会话ID。