Korzystanie z Biblioteki Loggera - Jak pisać komunikaty dziennika w Ruby

Kobieta i mężczyzna pracujący w dużym, otwartym, nowoczesnym biurze

Erik Von Weber/Stone/Getty Images





Korzystanie z biblioteki rejestratorów w Rubin to łatwy sposób na śledzenie, kiedy coś poszło nie tak z Twoim kodem. Gdy coś pójdzie nie tak, posiadanie szczegółowego opisu tego, co się stało, co doprowadziło do wystąpienia błędu, może zaoszczędzić godziny na zlokalizowaniu błędu. Ponieważ programy stają się większe i bardziej złożone, możesz dodać sposób pisania komunikatów dziennika. Ruby ma wiele przydatnychzajęciaoraz biblioteki zwane biblioteką standardową. Wśród nich jest biblioteka rejestratorów, która zapewnia priorytetowe i rotacyjne rejestrowanie.

Podstawowe użycie

Ponieważ biblioteka loggera jest dostarczana z Rubim, nie ma potrzeby instalowania żadnych gemów ani innych bibliotek. Aby rozpocząć korzystanie z biblioteki rejestratora, po prostu wymagać 'logger' i utwórz nowy obiekt Logger. Wszelkie komunikaty zapisywane w obiekcie Logger zostaną zapisane w pliku dziennika.



#!/usr/bin/env ruby
wymagaj 'logger'
log = Logger.new('log.txt')
log.debug 'Utworzono plik dziennika'

Priorytety

Każdy komunikat dziennika ma priorytet. Priorytety te ułatwiają przeszukiwanie plików dziennika w poszukiwaniu poważnych komunikatów, a także pozwalają obiektowi rejestrującemu automatycznie odfiltrowywać pomniejsze komunikaty, gdy nie są one potrzebne. Możesz myśleć o tym jak o liście zadań do wykonania na dany dzień. Pewne rzeczy absolutnie muszą być zrobione, niektóre rzeczy naprawdę powinny być zrobione, a niektóre rzeczy można odłożyć, dopóki nie będziesz mieć na to czasu.

W poprzednim przykładzie priorytetem było: odpluskwić , najmniej ważny ze wszystkich priorytetów („odłóż, aż będziesz miał czas” z listy zadań do wykonania, jeśli chcesz). Priorytety komunikatów dziennika, od najmniej do najważniejszego, są następujące: debug, info, warn, błąd i śmiertelne. Aby ustawić poziom komunikatów, które rejestrator powinien ignorować, użyj poziom atrybut.



#!/usr/bin/env ruby
wymagaj 'logger'
log = Logger.new('log.txt')
log.level = Logger::WARN
log.debug 'To zostanie zignorowane'
log.error 'To nie zostanie zignorowane'

Możesz utworzyć tyle komunikatów dziennika, ile chcesz i możesz rejestrować każdą drobną rzecz, którą robi twój program, co sprawia, że ​​priorytety są niezwykle przydatne. Kiedy uruchamiasz swój program, możesz pozostawić poziom rejestratora na czymś takim jak ostrzeżenie lub błąd, aby przechwycić ważne rzeczy. Następnie, gdy coś pójdzie nie tak, możesz obniżyć poziom rejestratora (w kodzie źródłowym lub za pomocą przełącznika wiersza poleceń), aby uzyskać więcej informacji.

Obrót

Biblioteka rejestratorów obsługuje również rotację dzienników. Rotacja dzienników zapobiega zbyt dużym rozmiarom dzienników i pomaga w przeszukiwaniu starszych dzienników. Gdy rotacja dziennika jest włączona i dziennik osiągnie określony rozmiar lub określony wiek, biblioteka rejestratora zmieni nazwę tego pliku i utworzy nowy plik dziennika. Starsze pliki dziennika można również skonfigurować tak, aby były usuwane (lub „wychodziły z rotacji”) po pewnym wieku.

Aby włączyć rotację dzienników, przekaż „co miesiąc”, „co tydzień” lub „codziennie” do konstruktora Loggera. Opcjonalnie możesz przekazać konstruktorowi maksymalny rozmiar pliku i liczbę plików, które mają być rotowane.

#!/usr/bin/env ruby
wymagaj 'logger'
log = Logger.new( 'log.txt', 'codziennie' )
log.debug 'Gdy dziennik stanie się co najmniej jednym'
log.debug 'dzień stary, zostanie zmieniona i'
log.debug 'Zostanie utworzony nowy plik log.txt.'