java - Log4j2:将某些字符串添加到每个记录的行
问题描述
我们在我们的 tomcat 应用程序中使用 log4j2。我们想在每个日志行中添加会话 ID(请不要为此评判我们,也许这不是最好的做法,但它非常实用)。
所以我们想实现这样的目标:
2018-05-08 21:55:20,828 INFO SessionId CurrentClass LogMessage
为此,我们需要为每个记录的行创建某种回调。这对 log4j2 可行吗?
解决方案
您可以通过执行以下操作在日志中添加任何信息:
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。
推荐阅读
- javascript - 在ajax调用期间从控制器返回视图时出现错误500
- postgresql - Django同时保存数据和发送电子邮件
- asp.net-core - 如何撤销存储在身份服务器数据库中的 aspnet 核心中的刷新令牌
- python - 使用 pandas 数据框样式调整列宽
- python - 美丽的汤阿拉伯文编码
- spring-data-jpa - 单向 @OneToMany 在 jon 表上创建唯一索引,这是不期望的
- .net - 在 IIS windows 10 上部署时的 angular 和 .net core 2.2 Web.config 文件问题
- php - header() 函数在 siteground/wordpress 上重定向
- excel - 在 Excel 上,我如何判断依赖项所在的其他工作表?
- android - Dart 中的 Kotlin `apply()` 方法模拟