Wir haben mehrere Java-Anwendungsserver, die hier laufen, mit mehreren Apps. Sie loggen alle mit Log4J in das gleiche Dateisystem ein, das wir nur aus diesem Grund erstellt haben. Von Zeit zu Zeit kommt es vor, dass das Dateisystem aus dem Raum läuft und die App wirdLog4J kann von Festplatte voll wiederherstellen?
log4j:ERROR Failed to flush writer,
java.io.IOException
Leider ist Log4J nicht diesem Fehler beheben, so dass auch nach Raum im Dateisystem befreit, nicht mehr Protokolle werden aus dieser App geschrieben. Gibt es programmtechnische oder Einstellungsoptionen, um Log4J wieder in Betrieb zu nehmen und die App neu zu starten?
Von dem, was ich von http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/helpers/OnlyOnceErrorHandler.html erhalte, wird der Fehler einmal geworfen und danach ist es vorbei. Was ich mir wünschen würde ist, dass, obwohl der Fehler nur einmal ausgelöst wird, der Appender weiterhin versucht, in dieses Dateisystem zu schreiben ... vielleicht mit 5 Minuten Pausen ... es scheint, als wäre ein Wrapper um den Appender eine brauchbare Idee – dertoni
Wenn Sie den OnlyOnceErrorHandler verwenden, können Sie stattdessen den FallbackErrorHandler (http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/varia/FallbackErrorHandler.html) verwenden. Auf diese Weise können Sie einen zweiten Appender (vielleicht einen E-Mail-Appender) angeben, wenn der erste nicht mehr schreiben kann. Das wird viel von dem handhaben, was Wrapping tun würde. – GaryF