Wie behandelt man volle Festplattenfehler während der Anmeldung in lobgack?

8

Ich benutze slf4j + logback für die Anmeldung in unserer Anwendung. Früher haben wir jcl + log4j verwendet und kürzlich verschoben.

Aufgrund der hohen Anzahl an Anmeldungen in unserer Anwendung besteht die Möglichkeit, dass die Festplatte in der Produktionsumgebung voll ist. In solchen Fällen müssen wir aufhören zu protokollieren und die Anwendung sollte gut funktionieren. Was ich im Web gefunden habe, ist, dass wir den Logback-StatusManager für solche Fehler abfragen müssen. Dies wird jedoch eine Abhängigkeit mit Logback für die Anwendung hinzufügen. Für log4j habe ich festgestellt, dass wir einen Appender erstellen können, der die Anmeldung in solchen Szenarien stoppt. Das wiederum wird eine Anwendungsabhängigkeit mit log4j verursachen.

Gibt es eine Möglichkeit, dies nur mit slf4j zu konfigurieren, oder gibt es einen anderen Mechanismus, um damit umzugehen?

    
Girish 06.07.2011, 12:54
quelle

3 Antworten

7

Sie müssen nichts tun oder konfigurieren. Logback wurde entwickelt, um diese Situation gut zu behandeln. Sobald die Zielfestplatte voll ist, wird die FileAppender des Logbacks für eine bestimmte kurze Zeit nicht mehr darauf schreiben. Sobald diese Verzögerung verstrichen ist, versucht sie, sich zu erholen. Wenn der Wiederherstellungsversuch fehlschlägt, wird die Wartezeit schrittweise auf maximal 1 Stunde erhöht. Wenn der Wiederherstellungsversuch erfolgreich ist, beginnt FileAppender erneut mit der Protokollierung.

Der Prozess ist vollständig automatisch und erstreckt sich nahtlos auf RollingFileAppender . Siehe auch Anmutige Wiederherstellung.

Eine persönlichere Anmerkung ist, dass die Wiederherstellung der Wiederherstellung eine meiner Lieblings-Logback-Funktionen ist.

    
Ceki 06.07.2011, 16:46
quelle
0

Sie können versuchen, die Klasse slf4j.Logger, insbesondere die Methoden info, debug, trace und andere Methoden zu erweitern und manuell nach dem verfügbaren Platz (über File.getUsableSpace ()) vor jedem Aufruf abzufragen.

Auf diese Weise brauchen Sie keine Anwendungsabhängigkeit

    
obaqueiro 06.07.2011 13:37
quelle
0

2 echte Optionen:

  • fügen Sie eine Cron-Aufgabe auf Linux (oder geplante auf Windows), um Ihre Unordnung aufzuräumen (incl. gzip einige, wenn nötig).
  • kaufe eine größere Festplatte und führe die Wartung manuell durch

  • + - Protokollierung reduzieren

Festplatte voll ist wie OOM, Sie können nicht wissen, was 1 fehlschlägt, wenn Sie es fangen. Der Umgang mit nicht genügend Arbeitsspeicher (oder Festplatte) verhindert dies. Es kann viele Fälle geben, in denen zusätzlicher Speicherplatz benötigt wird und die Aufgabe fehlgeschlagen ist.

    
bestsss 07.07.2011 18:22
quelle

Tags und Links