Log4j2 向每个日志调用添加单词

Log4j2 add word to every log call

所以我有一个从中央应用程序启动的 java 应用程序问题是你可以同时午餐许多应用程序为什么导致日志几乎不可读我的解决方案只是添加app_instance_id 到每个日志调用,但这意味着要修改太多 类 .

我的问题是:log4j 是否具有与此类似的功能?或者有更好的方法吗?

PS:我不知道每个应用程序实例都有一个单独的文件

使用MDC。您可以在 bootstrap 时间在 MDC 中设置您的 app-instance-id。之后生成的任何线程都将继承该值。

MDC.put("instanceId", instanceId);

然后,在您的 log4j 模式中,指定 %X{instanceId} 以将 instanceId 添加到每个日志行。这样,log4j 配置对于所有实例都是相同的。