关注在 Java EE 应用程序中使用 log4j2 AsynchronousLoggers

Concern over using log4j2 AsynchronousLoggers in Java EE application

我想在 Java EE 7 应用程序中使用 Log4j2 异步记录器。

这需要在类路径上使用 LMAX disruptor-3.0.0.jar 或更高版本。

我担心这会违反与在 Java EE 容器中启动 "user" 线程相关的规则。

log4j2 自动配置是否检测到 Jee 容器的存在?还是我需要通过 log4j2 ManagedExecutorService?在 WorkerPool 中使用?

您可能是对的,使用 Async Loggers(或 AsyncAppender,就此而言)违反了 J2EE 规则。目前,Log4j 2 创建了自己的 ExecutorService(调用 Executors.newSingleThreadExecutor)。

我建议您在 Log4j 2 Jira 上创建一个功能请求票,以建议添加用户代码(或配置)的功能以指定 ManagedExecutorService 供 Disruptor 使用。