Registro do evento destruído do contexto do servlet

No meu aplicativo baseado em Servlet, gostaria de registrar eventos para inicialização e desligamento.

Eu tentei implementar oServletContextListener interface para fazer isso:

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.");
    }
}

O evento inicializado é registrado como esperado, mas o evento destruído nunca aparece. Suponho que isso esteja relacionado à maneira como o log4j2 gerencia seu ciclo de vida usando um ouvinte semelhante, que a infraestrutura de log não esteja mais disponível durante esse evento.

Existe uma maneira de registrar um evento para o aplicativo ser desligado?

questionAnswers(2)

yourAnswerToTheQuestion