让一组中的每个类都拥有它自己的Log4j2日志记录环境

时间:2015-05-06 16:18:49

标签: java multithreading logging log4j2

我的程序,它背后的主要功能,包含独立运行的恶魔背景线程,大部分时间都处于空闲状态。如果出现问题,线程将无声地失败(它们显示GUI警告,终止,但程序继续)。由于这些线程在与主应用程序不同的上下文中运行,因此如果每个线程都可以拥有自己的日志文件,那就太好了。所有线程都在运行runnable,这是我的Robot类的一些实例。

Robot类定义setLoggergetLogger方法,并使用给定的记录器来记录数据。但只要整个项目的记录器配置相同,我就无法为恶魔线程分离日志。

还有一种简单的方法吗?来自与主程序日志混合的线程的日志消息是无用的。

1 个答案:

答案 0 :(得分:0)

RoutingAppender可以做你想要的。这种方式的工作方式是,每个线程在Log4j2 ThreadContextMap中设置一个唯一值,而RoutingAppender将使用此值路由到单独的日志文件。 Log4j2常见问题页面包含ngrok