Logowanie Pythona JSON

Logowanie Pythona JSON
Rejestrowanie pozwala nam śledzić zdarzenia, które działają, gdy funkcjonuje pewne oprogramowanie. Gdy oprogramowanie się nie powiedzie, a my nie mamy żadnych rekordów rejestrowania, istnieje bardzo niewiele możliwości, że ustalilibyśmy źródło problemu. Ale dzięki rekordom rejestrowania możemy utrzymać wszystkie awarie. Chociaż, gdy system musi przeanalizować dzienniki, które nie podążają za predefiniowanym wzorem lub modułem, sprawy się komplikują. Python zawiera zatem JSON, który organizuje dane w sformatowany sposób, używając obiektów przylegających do określonego wzoru. Python-Json-Logger to standardowy moduł rejestrowania Pythona, który wyświetla zdarzenia dziennika jako obiekt JSON. Moduł JSON Logger poprawia czytelność maszyny naszych dzienników i zapobiega tworzeniu unikalnych parserów dla wpisów typu syslog.

Jak korzystać z rejestrowania JSON Python?

Biblioteka „Python_Json_logger” jest wymagana dla dzienników w formacie JSON. Możemy zainstalować tę bibliotekę Python za pomocą polecenia PIP. Poniżej znajduje się polecenie do zainstalowania. Po jego zainstalowaniu monit wyświetla również komunikat potwierdzający z najnowszą wersją biblioteki.

PIP Instaluj Python-Json-Logger

Przykład 1:

Podstawowe użycie modułu rejestrowania jest stosunkowo proste i można go użyć do rejestrowania zdarzeń w plikach. Tutaj najpierw zapewniamy prostą implementację rejestrowania Pythona. Tworzymy dziennik i konfigurujemy go za pomocą metody BasicConfig (). Ta metoda przyjmuje nazwę pliku, w którym są tworzone dzienniki, ponieważ podany plik jest otwarty w trybie zapisu „W”. Format jest również ustawiony dla dzienników. Następnie deklarujemy obiekt „logger”, w którym za pomocą metody getLogger (). Zwracamy logger z przypisaną nazwą.

Następnie poziom loggera jest dostosowywany metodą setlevel (), aby służyć jako próg śledzenia do debugowania, który jest oparty na wartościach numerycznych, które są przydzielane na każdy poziom. Następnie wdrażamy niektóre metody klas logger, w tym konkretny komunikat jako parametr. Metoda debug () drukuje wiadomość debugowania. Metoda info () generuje komunikat, który jest zalogowany do tego rejestratora z poziomem informacyjnym. Następnie metoda krytyczna () pokazuje poziom krytyczny danego loggera. Metody ostrzegawcze () i błędów () pokazują ostrzeżenie dla rejestratora i wszelkie wyjątek, który jest podniesiony przez logger.

Rejestrowanie importu
Logowanie.BasicConfig (filename = "NewFile.dziennik",
format = ' %(asctime) s %(komunikat) s', filemode = 'w')
logger = logowanie.getLogger ()
logger.setLevel (logowanie.ODPLUSKWIĆ)
logger.debugowanie („Bezpieczne wyciąg debugowania”)
logger.Informacje („To informacja”)
logger.Ostrzeżenie („generuje ostrzeżenie”)
logger.błąd („występuje błąd i.e podczas podziału przez zero ”)
logger.krytyczne („Połączenie internetowe jest powolne”)

Program tworzy plik o podanej nazwie. Po otwieraniu pliku zawiera on informacje w stosunku do każdej określonej metody logger, która jest wymieniona w następujący sposób:

Przykład 2:

We wyżej wymienionym programie mamy funkcję rejestrowania Pythona. Teraz mamy program, w którym biblioteka Python Json Logger jest wykorzystywana do przechowywania dzienników w formacie JSON za pomocą wbudowanych metod rejestrowania. Tutaj rozpoczynamy kod rejestrowania Pythona JSON, wkładając moduł rejestrowania i moduł JSONLOGGER dla klasy PythonJsonLogger. Następnie deklarujemy obiekt „formattera”, który jest ustawiony metodą JSONFormatter (), aby uzyskać wyniki w formacie JSON. Następnie definiujemy obiekt „JSON_HANDLER”, aby wywołać metodę FileHandler (), która podaje dostarczony plik JSON.

Następnie ustawiamy format pliku JSON za pomocą metody setFormatter (), w której obiekt formattera jest przekazywany jako wejście. Następnie otrzymujemy obiekt rejestratora z metody getLogger (). „JSON_HANDLER” jest dodawany metodą AddHandler (). W końcu rejestrator.Metoda błędu (), która napotyka każdy błąd z rejestrowania w formacie JSON, jest tutaj podniesiona.

Rejestrowanie importu
od PythonJSONLogger import JsonLogger
formatter = JSONLOGGER.Jsonformatter ()
json_handler = logowanie.FileHandler (nazwa pliku = 'newLog.JSON ')
JSON_HANDLER.setFormatter (formatter)
logger = logowanie.GetLogger („my_Json”)
logger.Addhandler (JSON_HANDLER)
logger.Błąd („Błąd napotkany”, extra = „typ”: „fatal”)

Poniższy dziennik JSON jest tworzony w „NewLog.plik JSON ”, gdy otwieramy go z modułu JSONLOGGER PYTHON:

Przykład 3:

Podstawowy format dziennika JSON jest podany w poprzednim przykładzie. Teraz demonstrujemy wyjątek i śledzenie formatowania dziennika do JSON za pomocą modułu JSONLOGGER. Traceback podają konkretne informacje o awarii programu, dlatego je rejestrowanie jest często cenne. Możemy użyć rejestrowania.Metoda wyjątku, która jest wbudowanym modułem rejestrowania Pythona w celu rejestrowania błędów i dodania naszych niestandardowych komunikatów o błędach.

Ponadto logowanie.Metoda wyjątku () ma domyślne nasilenie błędu. Najpierw używamy instrukcji importu modułu rejestrowania i modułu JSONLOGGER dla dzienników JSON. Następnie tworzymy instancję dziennika za pomocą metody getLogger () w celu uzyskania dostępu do rejestratora. Wyjątek logarytmiczny i traceback są obsługiwane i generowane w „badcalculationDemo.plik JSON ”.

Następnie podajemy metodę JSONFormatter () w obiekcie „Formatter”, aby sformatować dzienniki w strukturze JSON i ustawić podany formatter z setFormatter. Następnie dodajemy utworzoną obsługę „loghandlerJSON” do metody addHandler (). Blok próba jest wykorzystywany do złapania dzienników z następującego traceback. Tutaj mamy instrukcję Try, w której liczba całkowita jest podzielona przez wartość ciągu, która jest złą praktyką obliczeniową. Oprócz instrukcji przyciąga ten dziennik wyjątek w rejestrowaniu.wyjątek (), który drukuje podaną wiadomość wraz z raportem Traceback w formacie JSON do badcalculationDemo.plik JSON.

Rejestrowanie importu
od PythonJSONLogger import JsonLogger
MyLogger = rejestrowanie.getLogger ()
logHandlerJson = logowanie.FileHandler („BadcalculationDemo.JSON ”)
formatter = JSONLOGGER.Jsonformatter ()
loghandlerJson.setFormatter (formatter)
Mylogger.AddHandler (loghandlerJson)
próbować:
1 / „Mleko”
z wyjątkiem:
Logowanie.Wyjątek („Twoje obliczenia były złe”)

Po wykonywaniu skryptu w badcalculationDemo pojawia się porynny obiekt JSON.Zawartość pliku JSON. Poniżej znajduje się obraz badmathdemo.plik JSON, który wyświetla komunikat o błędzie za pomocą informacji o śledzeniu:

Przykład 4:

Atrybuty z postaciami specyficznymi dla JSON mogą spowodować, że obiekt JSON stał się uszkodzony. Możemy dostosować unikalny system rejestrowania za pomocą klasy formattera i pozwolić module JSON odpowiednio uciec. Tutaj podajemy niestandardowe rejestr JSON, które zapewnia dodatkowe atrybuty zdarzeń dzienników. Wkładamy moduły JSON, logowanie i sys, aby utworzyć logarytmiczne zdarzenia naszego systemu. Następnie ustalamy klasę „JSONFormatter”, która przyjmuje rejestrowanie wejściowe i formatter jako parametry. Następnie tworzymy atrybuty „ja” i „rekordy” dla tej klasy.

Następnie generujemy obiekt „dodatkowy”, w którym wywoływana jest metoda getAttr (), aby uzyskać dostęp do rejestrowania.Atrybuty Logrecord w formacie JSON. Rekord JSON służy do uzyskania czasu, nazwy poziomu, nazwy pliku, numeru wiersza i podanej wiadomości dla dziennika systemu.

Ponadto wyodrębniamy również dodatkowe szczegóły dotyczące dzienników systemu. Następnie używamy JSON.Metoda zrzutowa (), w której obiekt „JSON_RECORD” jest przekazywany w celu konwersji do obiektu JSON. Atrybuty JSON z Pythona są skonfigurowane z definicji metody JSONCONFIG (). Technika IF-ELSE służy do utworzenia niestandardowego obsługi, który podaje dzienniki w określonym pliku lub formie strumienia wyjściowego do konsoli. Loger root jest skonfigurowany z dostosowanym obsługi. Następnie wywołujemy metodę JSONCONFIG () i metodę rejestrowania, które podają poziom komunikatów dziennika w formie JSON.

importować JSON, logowanie, sys
JSONFormatter klasy (rejestrowanie.Formatter):
Format def (ja, rekord):
extra = getAttr (Record, „__dict__”, )
JSON_RECORD =
„Czas”: dodatkowe.Get („Zdefiniowany”),
„Level”: getAttr (rekord, „poziomeName”, brak),
„File”: getAttr (nagrywanie, „nazwa pliku”, brak),
„Linia”: getAttr (Record, „Lineno”, None),
„MSG”: getAttr (Record, „Msg”, None),
„dodatkowy_detail”: dodatkowe.get („dodatkowy_detail”),

powrót JSON.Zrzuty (JSON_RECORD)
def JsonConfig (nazwa pliku = brak):
Jeśli nazwa pliku:
Handler = rejestrowanie.FileHandler (nazwa pliku)
w przeciwnym razie:
Handler = rejestrowanie.StreamHandler (sys.stdout)
treser.setFormatter (jsonformatter ())
Logowanie.getLogger ().Addhandler (przewodnik)
JSONCONFIG ()
Logowanie.getLogger ().setLevel (logowanie.ODPLUSKWIĆ)
Logowanie.Debug („Przykład Pythona”)
Logowanie.Ostrzeżenie („Logowanie JSON”, extra = „dodatkowe_detail”: 999)

Skrypt rejestrowania Pythona JSON generuje dane wyjściowe następujących słowników JSON:

Wniosek

Najlepszym sposobem na zorganizowanie dzienników i scentralizowanie ich wizualizacji jest rejestrowanie Pythona JSON i program zarządzania dziennikiem. Aby sformatować i uzyskać najbardziej odpowiednie szczegóły, powinniśmy również spojrzeć na procedury rejestrowania Pythona. Ważne jest, aby poinformować o naszych ograniczeniach typu Python JSON, ponieważ mogliby uniemożliwić nam znaczący wkład. Zdarzenie rejestrowania w postaci obiektów JSON jest znacznie lepsze niż prosty tekst. Korzystając z języka zapytania opartego na JSON, łatwo jest dodać rekordy do baz danych za pomocą formatu JSON.