Ich finde es hilfreicher, über Schweregrade aus der Perspektive der Anzeige der Protokolldatei nachzudenken.
Schwerwiegend / kritisch : Gesamtanwendung oder Systemfehler, die sofort untersucht werden sollten. Ja, wecken Sie den SysAdmin auf. Da wir unseren SysAdmins-Alarm bevorzugen und ausgeruht sind, sollte dieser Schweregrad sehr selten verwendet werden. Wenn es täglich passiert und das kein BFD ist, hat es seine Bedeutung verloren. In der Regel tritt ein schwerwiegender Fehler nur einmal in der Prozesslebensdauer auf. Wenn die Protokolldatei an den Prozess gebunden ist, ist dies normalerweise die letzte Meldung im Protokoll.
Fehler : Auf jeden Fall ein Problem, das untersucht werden sollte. SysAdmin sollte automatisch benachrichtigt werden, muss aber nicht aus dem Bett gezogen werden. Durch Filtern eines Protokolls nach Fehlern und höher erhalten Sie einen Überblick über die Fehlerhäufigkeit und können schnell den auslösenden Fehler identifizieren, der möglicherweise zu einer Kaskade zusätzlicher Fehler geführt hat. Das Verfolgen von Fehlerraten im Vergleich zur Anwendungsnutzung kann nützliche Qualitätsmetriken wie MTBF ergeben, anhand derer die Gesamtqualität bewertet werden kann. Diese Metrik kann beispielsweise dazu beitragen, Entscheidungen darüber zu treffen, ob vor einer Veröffentlichung ein weiterer Beta-Testzyklus erforderlich ist oder nicht.
Warnung : Dies könnte ein Problem sein oder auch nicht. Beispielsweise sollten erwartete vorübergehende Umgebungsbedingungen wie ein kurzer Verlust der Netzwerk- oder Datenbankkonnektivität als Warnungen und nicht als Fehler protokolliert werden. Das Anzeigen eines Protokolls, das so gefiltert wird, dass nur Warnungen und Fehler angezeigt werden, gibt möglicherweise einen schnellen Einblick in frühe Hinweise auf die Grundursache eines nachfolgenden Fehlers. Warnungen sollten sparsam verwendet werden, damit sie nicht bedeutungslos werden. Der Verlust des Netzwerkzugriffs sollte beispielsweise eine Warnung oder sogar ein Fehler in einer Serveranwendung sein, kann jedoch nur eine Information in einer Desktop-App sein, die für gelegentlich getrennte Laptop-Benutzer entwickelt wurde.
Info : Dies sind wichtige Informationen, die unter normalen Bedingungen protokolliert werden sollten, z. B. erfolgreiche Initialisierung, Starten und Stoppen von Diensten oder erfolgreicher Abschluss wichtiger Transaktionen. Das Anzeigen eines Protokolls mit Informationen und höher sollte einen schnellen Überblick über wichtige Statusänderungen im Prozess geben und einen Kontext auf oberster Ebene bieten, um eventuell auftretende Warnungen oder Fehler zu verstehen. Haben Sie nicht zu viele Info-Nachrichten. Wir haben normalerweise <5% Info-Nachrichten in Bezug auf Trace.
Trace : Trace ist bei weitem der am häufigsten verwendete Schweregrad und sollte einen Kontext bieten, um die Schritte zu verstehen, die zu Fehlern und Warnungen führen. Die richtige Dichte an Trace-Nachrichten macht Software viel wartbarer, erfordert jedoch einige Sorgfalt, da sich der Wert einzelner Trace-Anweisungen im Laufe der Zeit ändern kann, wenn sich Programme weiterentwickeln. Der beste Weg, dies zu erreichen, besteht darin, das Entwicklerteam daran zu gewöhnen, Protokolle regelmäßig zu überprüfen, um die vom Kunden gemeldeten Probleme zu beheben. Ermutigen Sie das Team, Trace-Nachrichten zu entfernen, die keinen nützlichen Kontext mehr bieten, und bei Bedarf Nachrichten hinzuzufügen, um den Kontext nachfolgender Nachrichten zu verstehen. Beispielsweise ist es häufig hilfreich, Benutzereingaben zu protokollieren, z. B. das Ändern von Anzeigen oder Registerkarten.
Debug : Wir betrachten Debug <Trace. Der Unterschied besteht darin, dass Debug-Nachrichten aus Release-Builds kompiliert werden. Wir raten jedoch von der Verwendung von Debug-Nachrichten ab. Das Zulassen von Debug-Nachrichten führt dazu, dass immer mehr Debug-Nachrichten hinzugefügt und keine jemals entfernt werden. Mit der Zeit werden Protokolldateien dadurch fast unbrauchbar, da es zu schwierig ist, Signale von Rauschen zu filtern. Dies führt dazu, dass Entwickler die Protokolle nicht verwenden, was die Todesspirale fortsetzt. Im Gegensatz dazu ermutigt das ständige Beschneiden von Trace-Nachrichten Entwickler, diese zu verwenden, was zu einer tugendhaften Spirale führt. Dadurch wird auch die Möglichkeit von Fehlern ausgeschlossen, die aufgrund der erforderlichen Nebenwirkungen im Debug-Code auftreten, die nicht im Release-Build enthalten sind. Ja, ich weiß, dass das in gutem Code nicht passieren sollte, aber besser sicher als leid.
notice
in dieser Sammlung vermissen, jemand wird nicht ...