我正在使用 SLF4J 和 Log4J 后端。
我有独立的 Java 服务,它从队列中获取“任务”并在单独的线程中执行任务(Akka Actors,如果这很重要)。我想将日志消息发送到每个任务的日志文件(因此每个任务都开始登录到它自己的唯一日志文件)。
我的要求是:
- 使用日志消息隐式传递任务 ID
- 选择要按该 ID 记录的文件
- 任务结束时删除ID,因此后续任务不会意外登录到错误的文件
到目前为止,看起来我必须创建自己的日志附加程序,它将通过某些标准“识别”任务(这是一个大问题,因为我看不到如何轻松地将任务 ID 传递给记录器,并且不能依赖ThreadLocal 因为有些任务可能会启动线程池/fork-join,所以继承线程上下文会很复杂)
您知道任何可能对我有用的现有日志记录实现吗?可能是 Log4J 的一些扩展?