我正在开发一个使用 forkjoinpool 进行多线程和 log4j 进行日志记录的项目。在我们的项目中,有多个“作业”并发运行,每个作业仅由一个线程处理。
日志记录的问题在于工作的主要流程中,我们可以将作业 ID 前缀到记录器,以便相应的日志条目将具有作业 ID 信息。但是,在每个作业的处理过程中,都会调用许多实用程序 API,并且来自此类 API 的日志条目没有作业信息。log4j 确实打印线程 ID,因此这是区分不同作业日志的一种方法,但我想知道将作业 ID 添加到实用程序 API 日志的最简单/最佳方法是什么?
我大概有两个想法,我不确定我是否走对了方向,
- 如果有办法让我用我的工作 ID 替换线程名称,那么我认为我对 log4j 的默认线程前缀很好。
- 或者我应该使用实用程序方法将记录器作为输入,以便记录器可以打印作业信息?
请指教,谢谢。