如何给java程序添加关联ID?

How to add correlation ID to the java program?

我不熟悉日志记录。所以,我想学习有关日志记录的任何知识。谁能告诉我如何将关联 ID 添加到 java 程序。我刚刚学习 log4j 并将其添加到我的简单 java 程序中,例如 logger.info("bla") 我想添加相关 ID,但仍然不太了解什么是相关 ID?如何添加相关ID?,使用它有什么作用?

我已经尝试找到一些源代码和代码示例,但解释并没有真正帮助我

如果你能给我,我想知道简单的代码示例。

What is Correlation ID?

A correlation ID 通常用于将相关请求的日志消息分组到多个 applications/microservices,即如果服务 A 在某些用户请求中调用服务 B,您想知道来自哪个日志消息两个服务属于同一个请求。

How to add correlation ID?

您可以将其作为 header 添加到通常称为 X-Correlation-ID 的 http 请求中。 在大多数情况下,您的入口点将是一些网络服务器,例如 Apache Httpd 或 Nginx - 因此它们会生成并填充 header.

然后您可以在您的服务前面放置一个 filter/interceptor,以从该 header 中提取相关 ID,并将其放入 Log4J 的 Thread Context 中。您还可以配置日志模式以从线程上下文获取相关 ID 并将其显示在所有日志消息中。