Ведение журнала из события сервлета уничтожено
В моем приложении на основе сервлетов я хотел бы регистрировать события для запуска и завершения работы.
Я пытался реализоватьServletContextListener
интерфейс для этого:
public class DiagnosticListener
implements ServletContextListener {
private static final Logger LOG = LogManager.getLogger(DiagnosticListener.class);
@Override
public void contextInitialized( final ServletContextEvent sce ) {
LOG.info("Context initialized.");
}
@Override
public void contextDestroyed( final ServletContextEvent sce ) {
LOG.info("Context destroyed.");
}
}
Инициализированное событие регистрируется как ожидалось, но уничтоженное событие никогда не появляется. Я предполагаю, что это связано с тем, как log4j2 управляет своим жизненным циклом с использованием аналогичного прослушивателя, что инфраструктура ведения журналов больше не доступна во время этого события.
Есть ли способ зарегистрировать событие для закрытия приложения?