Python Json -logging

Python Json -logging
Logging lar oss følge med på hendelser som skjer mens viss programvare fungerer. Når programvaren mislykkes og vi ikke har noen loggingsposter, er det veldig få muligheter som vi vil finne ut roten til problemet. Men med loggingspostene kan vi opprettholde alle feilene. Selv om et system må analysere loggene som ikke følger et forhåndsdefinert mønster eller modul, blir ting komplisert. Python inneholder derfor JSON som organiserer dataene på en formatert måte ved hjelp av objekter som fester seg til et spesifisert mønster. Python-Json-Logger er standard Python-loggingsmodul som viser logghendelsene som et JSON-objekt. JSON Logger -modulen forbedrer maskinens lesbarhet til våre logger og forhindrer å skape de unike analyserne for oppføringer av syslog -typen.

Hvordan bruke Python Json -logging?

Biblioteket “Python_json_logger” er nødvendig for logger i JSON -formatet. Vi kan installere dette Python -biblioteket med PIP -kommandoen. Følgende er kommandoen for å installere det. Når den er installert, viser ledeteksten også bekreftelsesmeldingen med bibliotekets nylige versjon.

Pip installer Python-Json-logger

Eksempel 1:

Loggingsmodulens grunnleggende bruk er relativt enkel, og den kan brukes til å logge hendelsene til filer. Her gir vi først den enkle implementeringen av Python -logging. Vi oppretter loggen og konfigurerer den ved hjelp av BasicConfig () -metoden. Denne metoden tar navnet på filen der loggene opprettes fordi den gitte filen er åpen i skrive “w” -modus. Formatet er også satt for loggene. Deretter erklærer vi “Logger” -objektet der med getLogger () -metoden. Vi returnerer loggeren med det tildelte navnet.

Deretter justeres loggerens nivå gjennom metoden SetLevel () for å tjene som sporingsgrensen for feilsøking som er basert på de numeriske verdiene som er tildelt hvert nivå. Etter det distribuerer vi noen loggerklassemetoder inkludert den spesielle meldingen som en parameter. Debug () -metoden skriver ut feilsøkingsmeldingen. Info () -metoden genererer en melding som er logget på denne loggeren med info -nivået. Deretter viser den kritiske () metoden det kritiske nivået av den gitte loggeren. Advarselen () og feil () -metodene viser advarselen for loggeren og ethvert unntak som heves av loggeren.

Importlogging
hogst.BasicConfig (filnavn = "Newfile.Logg",
format = ' %(asctime) s %(melding) s', filemode = 'w')
Logger = logging.getLogger ()
Logger.SetLevel (logging.Debug)
Logger.Debug ("Safe Debug Statement")
Logger.info ("det er en informasjon")
Logger.Advarsel ("genererer advarsel")
Logger.feil ("feil oppstår i.e når deler med null ")
Logger.Kritisk ("Internett -tilkobling er treg")

Programmet oppretter en fil med gitt navn. Når vi åpner filen, inneholder den informasjonen mot hver spesifiserte loggermetode som er oppført i det følgende:

Eksempel 2:

I det nevnte programmet har vi Python -loggfunksjonaliteten. Nå har vi et program der Python JSON Logger Library brukes til å lagre loggene i JSON-formatet ved hjelp av de innebygde loggingsmetodene. Her begynner vi Python JSON -loggingskoden ved å sette inn loggingsmodulen og JSONLogger -modulen for PythonjsonLogger -klassen. Etter dette erklærer vi “Formatter” -objektet som er satt med JSONFormatter () -metoden for å få resultatene i JSON -format. Deretter definerer vi "JSON_Handler" -objektet for å påkalle FileHandler () -metoden som gir den medfølgende JSON -filen.

Deretter setter vi formatet for JSON -filen ved hjelp av SetFormatter () -metoden der formaterobjektet sendes som input. Deretter får vi gjenstand for loggeren fra getLogger () -metoden. “JSON_Handler” blir lagt til gjennom AddHandler () -metoden. Til slutt, loggeren.Feil () Metode som møter enhver feil fra loggingen i JSON -format, heves her.

Importlogging
Fra Pythonjsonlogger import jsonlogger
Formatter = jsonlogger.Jsonformatter ()
json_handler = logging.FileHandler (filnavn = 'newlog.json ')
JSON_HANDLER.setFormatter (Formatter)
Logger = logging.getlogger ('my_json')
Logger.AddHandler (JSON_Handler)
Logger.Feil ('en feil oppstått', ekstra = 'type': 'dødelig')

Følgende JSON -loggen opprettes i “Newlog.JSON ”-filen når vi åpner den fra JSONLogger -modulen til Python:

Eksempel 3:

Det grunnleggende JSON -loggformatet er gitt i forrige eksempel. Nå demonstrerer vi unntaket og sporingen av formateringen av loggen på JSON ved hjelp av JSONLogger -modulen. Tracebacks gir spesifikk informasjon om feilen i programmet, og logging dem er derfor ofte verdifull. Vi kan bruke loggingen.Unntaksmetode som er en innebygd Python-loggingsmodul for å logge feilene og legge til våre tilpassede feilmeldinger.

Videre logging.Unntak () Metode har en feilsalder for feil. Først bruker vi importuttalelsen for å laste inn loggingsmodulen og JSONLogger -modulen for JSON -logger. Etter dette oppretter vi forekomsten av loggen ved hjelp av getLogger () -metoden for å få tilgang til loggeren. Loggen unntak og traceback håndteres og genereres i “badcalculationdemo.JSON ”-fil.

Deretter gir vi JSONFormatter () -metoden i "Formatter" -objektet for å formatere loggene i JSON -strukturen og angi den medfølgende formateren med SetFormatter. Deretter legger vi til den opprettet “LogHandlerjson” -behandleren til AddHandler () -metoden. Try-bortfallsblokken er brukt for å fange tømmerstokkene fra følgende sporback. Her har vi en prøveuttalelse der heltallet er delt av strengverdien som er en dårlig beregningspraksis. Unntatt uttalelsen fanger dette loggen unntaket i loggingen.Unntak () som skriver ut den oppgitte meldingen sammen med en Traceback -rapport i JSON -formatet til BadcalculationDemo.JSON -fil.

Importlogging
Fra Pythonjsonlogger import jsonlogger
Mylogger = logging.getLogger ()
LogHandlerjson = logging.FileHandler ("BadcalculationDemo.json ")
Formatter = jsonlogger.Jsonformatter ()
Loghandlerjson.setFormatter (Formatter)
Mylogger.AddHandler (Loghandlerjson)
prøve:
1 / "Melk"
unntatt:
hogst.unntak ('Beregningen din var dårlig')

Når skriptet utføres, vises et strenget JSON -objekt i BadcalculationDemo.JSON -filens innhold. Følgende er bildet av Badmathdemo.JSON -fil som viser feilmeldingen med sporingsinformasjonen:

Eksempel 4:

Attributtene med JSON-spesifikke tegn kan føre til at JSON-objektet blir korrupt. Vi kan tilpasse det unike loggingssystemet ved hjelp av Formatter -klassen og la JSON -modulen på riktig måte unnslippe alle attributter. Her gir vi den tilpassede JSON -loggingen som gir tilleggsattributtene for hendelsene i loggene. Vi setter inn JSON-, loggings- og SYS -moduler for å lage logghendelser i systemet vårt. Deretter etablerer vi "JsonFormatter" -klassen som tar inngangsloggen og formateringen som parametere. Etter dette skaper vi “Self” og “Records” -attributtene for denne klassen.

Deretter genererer vi "ekstra" objekt der getAtt () -metoden kalles for å få tilgang til loggingen.LogRecord -attributter i JSON -formatet. JSON -posten brukes til å få tid, nivånavn, filnavn, linjenummer og den oppgitte meldingen for loggen til systemet.

Videre henter vi også ut flere detaljer angående systemlogger. Deretter bruker vi JSON.dump () -metode der Python “JSON_Record” -objektet sendes for konvertering til JSON -objektet. JSON -attributtene fra Python er konfigurert fra JSONConfig () -metodedefinisjonen. IF-Else-teknikken brukes til å lage den tilpassede behandleren som gir loggene i den spesifiserte filen eller formen av utgangsstrømmen til konsollen. Rotloggeren er konfigurert med den tilpassede behandleren. Deretter påkaller vi JSONConfig () -metoden og metoden for logging som gir nivået på loggmeldingene i form av JSON.

Importer json, logging, sys
Klasse JsonFormatter (logging.Formater):
def format (selv, post):
Extra = getAtt (Record, "__dict__", )
json_record =
"Tid": ekstra.få ("definert"),
"Nivå": getAtt (Record, "LevelName", ingen),
"Fil": getAtt (post, "filnavn", ingen),
"Line": getAtt (Record, "Lineno", ingen),
"Msg": getAtt (plate, "msg", ingen),
"tilleggs_detail": ekstra.få ("tilleggs_detail"),

Returner JSON.Dumps (JSON_Record)
def jsonconfig (filnavn = ingen):
Hvis filnavn:
Handler = logging.FileHandler (filnavn)
ellers:
Handler = logging.StreamHandler (Sys.stdout)
handler.setFormatter (jsonformatter ())
hogst.getLogger ().AddHandler (Handler)
JsonConfig ()
hogst.getLogger ().SetLevel (logging.Debug)
hogst.Debug ("Eksempel på Python")
hogst.ADVARSEL ("JSON LOGGING", EXTRA = "ELTITION_DETAIL": 999)

Python JSON -loggskriptet genererer utgangen fra følgende JSON -ordbøker:

Konklusjon

Den beste måten å organisere loggene og sentralisere visualiseringen deres er med Python JSON -logging og et loggstyringsprogram. For å formatere og få de mest relevante detaljene, bør vi også se på Python -loggingsprosedyrene. Det er viktig å bli informert om våre Python Json Log -begrensninger fordi de kan forhindre oss i å gi et betydelig bidrag. Loggingshendelsen i form av JSON -objekter er langt bedre enn den enkle teksten. Ved hjelp av et JSON-basert spørringsspråk er det enkelt å legge postene til databaser ved hjelp av JSON-formatet.