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?