В моем приложении на основе сервлета я хотел бы регистрировать события для запуска и выключения.Запись из контекста разрушенного сервлета
Я пытался реализовать интерфейс 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 управляет своим жизненным циклом с помощью аналогичного прослушивателя, что инфраструктура регистрации больше не доступна во время этого события.
Есть ли способ зарегистрировать событие для закрытия приложения?
Я бегу в контейнере Servlet 3.0 и не выполнял никакой ручной настройки компонентов сервлета Log4j. –