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



我的程序在其主要功能背后包含了独立操作的恶魔背景线程,并且大多数情况下是空闲的。如果出现问题,线程会默默失败(它们显示GUI警告,终止,但程序仍在继续)。由于这些线程在与主应用程序不同的上下文上运行,因此,如果它们每个人都可以拥有自己的日志文件,那将是很好的。所有线程都运行一个可运行的可运行,这是我的Robot类的某个实例。

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

甚至有一种简单的方法吗?来自线程的日志消息与主要程序日志混合在一起。

RoutingAppender可能会做您想要的。此工作的方式是,每个线程在log4j2 threadContextMap中设置一个唯一值,而RoutingAppender将使用此值将其路由到单独的日志文件。Log4j2 FAQ页面包含一个详细的示例。

最新更新