Registro desde el evento de servlet contexto destruido

Dentro de mi aplicación basada en Servlet, me gustaría registrar eventos para el inicio y el apagado.

He intentado implementar elServletContextListener interfaz para hacer esto:

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

El evento inicializado se registra como se esperaba, pero el evento destruido nunca aparece. Supongo que esto tiene que ver con la forma en que log4j2 administra su ciclo de vida utilizando un oyente similar, que la infraestructura de registro ya no está disponible durante este evento.

¿Hay alguna forma de registrar un evento para que la aplicación se cierre?

Respuestas a la pregunta(2)

Su respuesta a la pregunta