使用 log4j 进行线程特定日志记录

问题描述 投票:0回答:1

我们有一个大型的java应用程序,它通过各种方式接受作业,运行它们并返回结果。目前,有一个 log4j 日志收集所有日志记录。我们想保留这个,但添加:

特定于作业的日志记录。当作业启动时,启动一个新的日志文件,并从属于作业线程树的任何线程附加到该文件。 (每个作业确实在它自己的线程中启动。)我们还需要能够指定用于该日志的日志级别。当作业完成时,我们将发送回带有作业结果的日志。 (是的,拉链)

我想我已经弄清楚如何通过 ThreadContextMapFilter 处理 LogLevel,看起来我可以使用路由定义来选择将数据写入哪个日志文件。 请参阅log4路由

一个问题是如何告诉 log4j 停止记录到文件并刷新缓冲区以便我可以读取文件?

multithreading log4j2
1个回答
0
投票

我放弃了。据我所知,一旦 Routing Appender 创建了一个新的 RandomAccessFileAppender - 它就永远存在,并且没有任何方法可以将其关闭并丢弃。 我编写了一个私有附加程序,允许侦听器收集日志行并自行过滤它们。

© www.soinside.com 2019 - 2024. All rights reserved.