Innerhalb meiner Servlet-basierten Anwendung möchte ich Ereignisse zum Starten und Herunterfahren protokollieren.Protokollierung von Servlet-Kontext zerstört Ereignis
Ich habe versucht, die ServletContextListener
Schnittstelle zu implementieren, dies zu tun:
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.");
}
}
Das initialisierte Ereignis wird wie erwartet angemeldet, aber das zerstörte Ereignis wird nie. Ich gehe davon aus, dass dies damit zu tun hat, wie log4j2 seinen Lebenszyklus mit einem ähnlichen Listener verwaltet, dass die Protokollierungsinfrastruktur während dieses Ereignisses nicht mehr verfügbar ist.
Gibt es eine Möglichkeit, ein Ereignis für die heruntergefahrene Anwendung zu protokollieren?
Ich bin in einem Servlet 3.0-Container ausgeführt und habe keine manuelle Konfiguration von Log4j-Servlet-Komponenten vorgenommen. –