gpt4 book ai didi

跨多个线程的 Java 日志记录

转载 作者:行者123 更新时间:2023-12-03 12:57:35 26 4
gpt4 key购买 nike

我们有一个使用线程的系统,因此它可以并行处理不同的功能位。我们想找到一种方法将特定“事务”的所有日志条目联系在一起。通常,人们可能会使用“threadName”将它们收集在一起,但显然在多线程情况下会失败。

没有通过每个方法调用向下传递“交易 key ”,我看不到将它们联系在一起的方法。并且将 key 传递到每个方法中都是丑陋的。

此外,我们有点依赖 Java 日志记录,因为我们的系统是基于它的修改版本构建的。因此,我会对其他平台感兴趣,以作为我们可能尝试的示例,但切换平台的可能性很小。

有没有人有什么建议?
谢谢,
彼得

编辑:不幸的是,我无法控制线程的创建,因为这一切都由工作流包处理。否则,为每个线程缓存一次 ID 的想法(可能在 ThreadLocal 上?)然后在创建新线程时在新线程上设置它是一个好主意。反正我可以试试。

最佳答案

您可以考虑创建一个全局可访问的 Map映射一个 Thread的名称为其当前事务 ID。在开始一个新任务时,为该事务生成一个 GUID 并让线程在 Map 中注册自己。 .对任何 Thread 执行相同操作s 它产生以执行相同的任务。然后,当你需要记录一些东西时,你可以简单地从全局 Map 中查找事务 ID。 ,基于当前Thread的名字。 (有点笨拙,但应该工作)

关于跨多个线程的 Java 日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2976750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com