Обеспокоенность по поводу использования асинхронных регистраторов log4j2 в приложении Java EE

Я хотел бы использовать асинхронные регистраторы Log4j2 в приложениях Java EE 7.

Это влечет за собой использование разрушителя LMAX-3.0.0.jar или более поздней версии в пути к классам.

Я обеспокоен тем, что это нарушает правило, связанное с запуском «пользовательских» потоков в контейнере Java EE.

Обнаруживает ли автоматическая конфигурация log4j2 наличие контейнера Jee? или мне нужно передать log4j2 ManagedExecutorService? использовать в WorkerPool?


person Hector    schedule 01.11.2015    source источник


Ответы (1)


Возможно, вы правы в том, что использование асинхронных регистраторов (или, если уж на то пошло, AsyncAppender) нарушает правила J2EE. На данный момент Log4j 2 создает свой ExecutorService (с вызовом Executors.newSingleThreadExecutor).

Я рекомендую вам создать запрос функции в Log4j 2 Jira, чтобы предложить добавить возможность для пользовательского кода (или конфигурации) указать ManagedExecutorService для использования Disruptor.

person Remko Popma    schedule 02.11.2015