Uważam, że bardziej pomocne jest myślenie o istotności z perspektywy przeglądania pliku dziennika.
Krytyczny / krytyczny : ogólna awaria aplikacji lub systemu, którą należy natychmiast zbadać. Tak, obudź SysAdmin. Ponieważ wolimy, aby nasze SysAdmins były czujne i wypoczęte, tego poziomu ważności należy używać bardzo rzadko. Jeśli dzieje się to codziennie i nie jest to BFD, traci sens. Zazwyczaj błąd krytyczny występuje tylko raz w całym cyklu życia procesu, więc jeśli plik dziennika jest powiązany z procesem, zazwyczaj jest to ostatni komunikat w dzienniku.
Błąd : Zdecydowanie problem, który należy zbadać. SysAdmin powinien zostać powiadomiony automatycznie, ale nie trzeba go wyciągać z łóżka. Filtrując dziennik pod kątem błędów i wyżej, uzyskuje się przegląd częstotliwości błędów i można szybko zidentyfikować błąd inicjujący, który mógł spowodować kaskadę dodatkowych błędów. Śledzenie poziomów błędów w porównaniu do użycia aplikacji może dostarczyć użytecznych wskaźników jakości, takich jak MTBF, które można wykorzystać do oceny ogólnej jakości. Na przykład te dane mogą pomóc w podjęciu decyzji o tym, czy przed wydaniem potrzebny jest kolejny cykl testów beta.
Ostrzeżenie : może to być problem lub nie. Na przykład oczekiwane przejściowe warunki środowiskowe, takie jak krótka utrata łączności z siecią lub bazą danych, powinny być rejestrowane jako Ostrzeżenia, a nie Błędy. Wyświetlanie filtrowanego dziennika w celu wyświetlenia tylko ostrzeżeń i błędów może dać szybki wgląd we wczesne wskazówki dotyczące pierwotnej przyczyny kolejnego błędu. Ostrzeżenia należy stosować oszczędnie, aby nie stały się bez znaczenia. Na przykład utrata dostępu do sieci powinna być ostrzeżeniem, a nawet błędem w aplikacji serwera, ale może być tylko informacją w aplikacji komputerowej przeznaczonej dla użytkowników laptopów, którzy czasami nie są podłączeni.
Informacje : Jest to ważna informacja, którą należy rejestrować w normalnych warunkach, takich jak pomyślna inicjalizacja, uruchomienie i zatrzymanie usług lub pomyślne zakończenie znaczących transakcji. Przeglądanie dziennika zawierającego informacje i powyżej powinno dać szybki przegląd głównych zmian stanu w procesie, zapewniając kontekst najwyższego poziomu do zrozumienia wszelkich pojawiających się ostrzeżeń lub błędów. Nie masz zbyt wielu wiadomości informacyjnych. Zwykle mamy <5% wiadomości informacyjnych w odniesieniu do śledzenia.
Śledzenie : Śledzenie jest zdecydowanie najczęściej używaną dotkliwością i powinno zapewniać kontekst umożliwiający zrozumienie kroków prowadzących do błędów i ostrzeżeń. Właściwe zagęszczenie komunikatów śledzenia sprawia, że oprogramowanie jest łatwiejsze w utrzymaniu, ale wymaga pewnej staranności, ponieważ wartość poszczególnych instrukcji śledzenia może zmieniać się w czasie w miarę ewolucji programów. Najlepszym sposobem na osiągnięcie tego jest skłonienie zespołu programistów do regularnego przeglądania dzienników jako standardowej części rozwiązywania problemów zgłaszanych przez klientów. Zachęcaj zespół do przycinania wiadomości Śledzenie, które nie zapewniają już użytecznego kontekstu, i dodawania wiadomości tam, gdzie jest to konieczne, aby zrozumieć kontekst kolejnych wiadomości. Na przykład często pomocne jest rejestrowanie danych wejściowych użytkownika, takich jak zmiana wyświetlaczy lub kart.
Debugowanie : Rozważamy Debugowanie <Śledzenie. Różnica polega na tym, że komunikaty debugowania są kompilowane z kompilacji wersji. To powiedziawszy, odradzamy korzystanie z wiadomości debugowania. Zezwalanie na wiadomości debugowania powoduje, że coraz więcej wiadomości debugowania jest dodawanych i nigdy nie jest usuwanych. Z czasem sprawia to, że pliki dziennika są prawie bezużyteczne, ponieważ zbyt trudno jest odfiltrować sygnał z szumu. To powoduje, że deweloperzy nie używają dzienników, które kontynuują spiralę śmierci. W przeciwieństwie do tego, ciągłe przycinanie wiadomości Trace zachęca twórców do korzystania z nich, co skutkuje cnotą spirali. Eliminuje to także możliwość wprowadzenia błędów z powodu wymaganych efektów ubocznych w kodzie debugowania, które nie są zawarte w kompilacji wydania. Tak, wiem, że to nie powinno się zdarzyć w dobrym kodzie, ale lepiej być bezpiecznym niż przepraszać.
notice
w tej kolekcji, ktoś nie będzie ...