Programiranje

Prijava u Python - Vodič za sve na jednom mjestu

Prijava u Python - Vodič za sve na jednom mjestu

Zapisivanje je presudan korak koji treba izvršiti programer tijekom razvoja softvera. Pomaže programerima da prate događaje koji se događaju tijekom izvršavanja programa, što može biti korisno za budući postupak uklanjanja pogrešaka. Ako ste novi učenik ili radite na novom projektu, dobra je praksa koristiti bilježenje za praćenje toka koda i za rješavanje pogrešaka.

Dok pišemo kratke programe, većina nas obično zanemaruje bilježenje, ali kad program postane složen, to je bitan i koristan korak korištenja zapisnika za ispravljanje pogrešaka koje sprečavaju nesmetano funkcioniranje softvera. Zapisivanje nije ništa drugo nego zapisivanje događaja u softveru u datoteku dnevnika ili izlaz u terminalu.

Zapisivanje se ne koristi samo za otklanjanje pogrešaka. To je također koristan postupak za prikupljanje podataka, prikupljanje podataka o korištenju i mnoge druge korisne zadatke. To je također jedna od najčešćih funkcija za web programere, ne samo otkrivanje pogrešaka, već i prikupljanje korisničkih podataka poput IP adresa, koje se mogu koristiti za daljnju poslovnu analitiku.

U Pythonu većinu objekata za bilježenje omogućuje sječa drva modul predstavljen u pythonovoj standardnoj knjižnici, tako da ne moramo raditi nikakve dodatne konfiguracije. Pogledajmo kako ga koristiti za prijavu u python. Prije praćenja ovog vodiča, potrebno je u vaš sustav instalirati najnoviju verziju pythona. Ako u vašem sustavu nije instaliran najnoviji python, možete slijediti naš korak po korak vodič za instaliranje i ažuriranje pythona na Linuxu.

Python modul za bilježenje

Pythonov modul za bilježenje jedna je od najčešće korištenih knjižnica za bilježenje u pythonu. Najbolje je to što dolazi s predinstaliranom standardnom bibliotekom pythona, tako da ne moramo konfigurirati ili instalirati. Modul za bilježenje robustan je i jednostavan, što znači da je koristan i za početnike i za poduzeća. Da bismo koristili modul za bilježenje u pythonu, trebamo ga uvesti u naš program kao što to radim u sljedećem retku koda.

bilježenje uvoza

Sada ćemo vidjeti demonstraciju kako možemo prijaviti neke poruke u terminal. Samo kopirajte sljedeći kod u svoj omiljeni python IDE i pokrenite.

import logging prijava.upozorenje ("Ovo je upozorenje")

Pokretanjem gornjeg koda dobit ćemo izlaz kao što je prikazano na donjoj slici.

Kao što se vidi u izlazu, program ispisuje poruku upozorenja. Modul za bilježenje također ima neke druge razine zapisivanja, poput informacije, pogreške itd., koji nam olakšavaju zadatak. Razmotrimo ih ukratko s primjerima.

Python razine zapisivanja

Mnogo razina zapisivanja može se koristiti za bilježenje različitih poruka na razini ozbiljnosti. Razine koje pruža python sječa drva modul su

Te se razine prikazuju prema opadajućem redoslijedu njihove ozbiljnosti. Pogledajmo kako koristiti ove razine u našem programu. Samo kopirajte sljedeći kôd i pokrenite u Python IDE-u.

import logging prijava.kritično ("Ovo je kritična poruka") zapisivanje.prijava pogreške ("Ovo je poruka o pogrešci").bilježenje upozorenja ("Ovo je poruka upozorenja").zapisivanje informacija ("Ovo je info poruka").otklanjanje pogrešaka ("Ovo je poruka za otklanjanje pogrešaka")

Pri pokretanju gornjeg koda u IDE-u, izlaz koji terminal prikazuje prikazan je na donjoj slici.

Kao što možete vidjeti u izlazu, DEBUG i INFO poruke se ne ispisuju na terminalu, jer je modul za bilježenje, prema zadanim postavkama, bilježio samo poruke sigurnosne razine veće ili jednake upozorenju. Da bismo na terminalu prikazali INFO i DEBUG, moramo ručno promijeniti Osnovnu konfiguraciju zapisnika. Da bismo to učinili, možemo koristiti basicConfig (**kvargovi) metoda koju osigurava modul za bilježenje. Da biste vidjeli jednostavan demo konfiguracije, samo pokrenite sljedeći kod u svoj Python IDE.

import logging prijava.basicConfig (razina = bilježenje.DEBUG) sječa.kritično ("Ovo je kritična poruka") zapisivanje.prijava pogreške ("Ovo je poruka o pogrešci").bilježenje upozorenja ("Ovo je poruka upozorenja").zapisivanje informacija ("Ovo je info poruka").otklanjanje pogrešaka ("Ovo je poruka za otklanjanje pogrešaka")

U gornjem kodu postavili smo razinu sječa drva.DEBUG, što znači da će se zabilježiti svi nivoi koji su iznad razine otklanjanja pogrešaka. Tako će u gornjem kodu sve poruke biti zabilježene kao što je prikazano na donjoj slici.

Razmotrimo više metodu basicConfig () modula za prijavu.

Osnovne konfiguracije

Modul za bilježenje pruža vrlo korisnu metodu basicConfig (** Kwargs), koja se koristi za postavljanje konfiguracija za bilježenje podataka. Neki od najčešće korištenih parametara funkcije basicConfig () su:

Pogledajmo kako možemo koristiti ove konfiguracije u pythonovom modulu za evidentiranje istražujući primjer jedan za drugim.

Parametar level koristi se za postavljanje razine ozbiljnosti, da biste vidjeli praktični demo o tome kako ga koristiti, kopirajte donji kod u python IDE i pokrenite.

import logging prijava.basicConfig (razina = bilježenje.INFO) sječa.kritično ("Ovo je kritična poruka") zapisivanje.prijava pogreške ("Ovo je poruka o pogrešci").bilježenje upozorenja ("Ovo je poruka upozorenja").zapisivanje informacija ("Ovo je info poruka").otklanjanje pogrešaka ("Ovo je poruka za otklanjanje pogrešaka")

Pri pokretanju koda možda ćete vidjeti izlaz, kao što je prikazano na donjoj slici. Kao što vidite, poruke koje su iznad razina informacija ispisuju se, ali poruka na razini ispravljanja pogrešaka se ne ispisuje.

Parametar razine korisna je konfiguracija koju treba obaviti tako da datoteke dnevnika ne budu prevelike sadrže nepotrebne podatke i da imaju samo potrebne podatke.

Prijava u datoteku

Vidjeli smo samo kako se prijaviti na terminal, ali prijava na terminal nije uvijek korisna jer ga ne možemo spremiti za kasniju upotrebu. Za bolje rješenje možemo zapise ispisati u tekstualnu datoteku koju spremimo i kasnije analiziramo. Zapisnici su tekstualni i mogu se čuvati u tekstualnoj datoteci bilo kojeg formata, ali univerzalno je prihvaćeno da se dnevnici spremaju u datoteku s .nastavak dnevnika. Te su datoteke poznate kao datoteke dnevnika i univerzalno se koriste za spremanje zapisnika programa, web aplikacija i drugog softvera.

Zapisnike možemo spremiti u datoteku postavljanjem konfiguracije modula za bilježenje uz pomoć funkcije basicConfig (). Moramo dati ime datoteke u koju želimo spremiti zapisnike u parametar ime datoteke funkcije basicConfig (), nakon čega će se zapisi automatski ispisati u datoteku dnevnika koju odredimo. Pogledajmo praktični primjer kako bismo znali kako to funkcionira.

import logging prijava.basicConfig (razina = bilježenje.INFO, naziv datoteke = "mylog.zapisnik ") sječa.kritično ("Ovo je kritična poruka") zapisivanje.prijava pogreške ("Ovo je poruka o pogrešci").bilježenje upozorenja ("Ovo je poruka upozorenja").zapisivanje informacija ("Ovo je info poruka").otklanjanje pogrešaka ("Ovo je poruka za otklanjanje pogrešaka")

Tijekom pokretanja koda možete vidjeti da je nova datoteka kreirana u trenutnom nazivu radnog imenika mylog.zapisnik. Otvarajući datoteku pomoću uređivača teksta, mogli biste primijetiti da su zapisi spremljeni u datoteku.

Ako ponovno izvedemo kôd, vidjet ćemo da će se zapis dodati u datoteku. To možemo promijeniti specificiranjem parametra filemode u funkciji basiconfig (). Prema zadanim postavkama parametar filemode ima vrijednost "a", što znači dodatak. Ali ponekad također želimo izbrisati prethodno evidentirane podatke i nove zapisnike zapisati samo u datoteku. Da bismo to učinili, parametru filemode možemo dati vrijednost "w", što znači zapisivanje, a on briše sve prethodne podatke u datoteci i zapisuje nove. Za demonstraciju pogledajte sljedeći primjer.

import logging prijava.basicConfig (razina = bilježenje.INFO, naziv datoteke = "mylog.zapisnik ", filemode =" w ") zapisivanje.kritično ("Ovo je kritična poruka") zapisivanje.prijava pogreške ("Ovo je poruka o pogrešci").bilježenje upozorenja ("Ovo je poruka upozorenja").zapisivanje informacija ("Ovo je info poruka").otklanjanje pogrešaka ("Ovo je poruka za otklanjanje pogrešaka")

Tijekom izvođenja gornjeg koda, mogli biste primijetiti da su raniji zapisnici prisutni u datoteci uklonjeni iz datoteke, a dodani su novi zapisnici. Svaki put kad pokrenemo kôd, dodavat će se novi zapisnici, a prethodni će se izbrisati, što je korisno kada nam za daljnju upotrebu ne trebaju zapisi.

Oblikovanje dnevnika

Vidjeli smo da izlazni zapisnici imaju zadani izgled, ali format možemo promijeniti postavljanjem parametra formata funkcije basicConfig (). Pogledajmo praktičnu demonstraciju kako bismo znali kako možemo koristiti parametar format u funkciji basicConfig () za promjenu formata dnevnika.

import logging prijava.basicConfig (razina = bilježenje.INFO, format = "% (ime datoteke) s:% (ime_razine) s:% (poruka) s") zapisivanje.kritično ("Ovo je kritična poruka") zapisivanje.prijava pogreške ("Ovo je poruka o pogrešci").bilježenje upozorenja ("Ovo je poruka upozorenja").zapisivanje informacija ("Ovo je info poruka").otklanjanje pogrešaka ("Ovo je poruka za otklanjanje pogrešaka")

Izlaz gornjeg koda je prikazan na donjoj slici.

Kao što vidite u izlazu, prikazano je i ime datoteke. Možemo upotrijebiti parametar formata za označavanje mnogih drugih formata koji omogućuju raspravu o nekim od njih.

% (asctime) s: To se koristi za prikaz razumljivog vremena u zapisnicima. Da biste vidjeli kako prikazuje vrijeme, pokrenite sljedeći kôd u Python IDE-u.

import logging prijava.basicConfig (razina = bilježenje.INFO, format = "zapisivanje% (asctime) s:% (message) s").upozorenje ("Ovo je poruka upozorenja")

Pri pokretanju koda možda ćete vidjeti izlaz, kao što je prikazano na donjoj slici.

% (stvoreno) f: Ovo će prikazati vrijeme u kojem je zapisnik kreiran.

% (naziv datoteke) s: To se koristi za prikaz imena datoteke u poruci dnevnika. Da biste vidjeli kako to radi, samo pokrenite sljedeći primjer koda u svom Python IDE-u.

import logging prijava.basicConfig (razina = bilježenje.INFO, format = "% (asctime) s:% (naziv datoteke) s:% (poruka) s") zapisivanje.upozorenje ("Ovo je poruka upozorenja")

Izlaz koji daje kod prikazan je na sljedećoj slici. U izlazu je prikazano ime datoteke. To je korisno tijekom rada na projektu koji uključuje više datoteka kako bismo brzo mogli dobiti datoteku koja ima pogrešku.

% (levelname) s: To se koristi za prikaz naziva razine koja se koristi poput UPOZORENJA, DEBUG-a itd.

% (levelno) s: Ovim se ispisuje numerička vrijednost razine kojoj je poruka dio.

% (lineno) d: To se koristi za ispis broja retka trenutnog retka koji prikazuje poruku. Ovo je vrlo korisno jer nam daje broj retka na kojem moramo paziti na pogrešku, pa pomaže u procesu uklanjanja pogrešaka. Pogledajmo primjer koda kako bismo vidjeli kako to koristiti za oblikovanje izlaza dnevnika.

uvoz dnevnika Format = '% (asctime) s:% (naziv datoteke) s:% (lineno) d:% (poruka) s' zapisivanje.basicConfig (razina = bilježenje.INFO, format = Format) zapisivanje.upozorenje ("Ovo je poruka upozorenja")

Ovaj kod također će ispisati redak br, kao što je prikazano na donjoj slici.

% (poruka) s: Koristi se za prikaz poruke koju smo zabilježili.

% (ime puta) s: To se koristi za prikaz punog imena puta datoteke izvornog koda.

% (proces) d: Ovo će prikazati ID postupka ako je dostupan.

% (ime procesa) s: Ovo će prikazati Naziv postupka ako je dostupan.

% (nit) d: Ovo će prikazati ID niti ako je dostupan.

% (threadName) s: Ovo će prikazati naziv niti ako je dostupno.

Zapisivanje promjenljivih podataka

Mi smo sami dali poruke u zapisnike, a to su statični podaci. Ipak, u stvarnim aplikacijama podaci koje smo zabilježili bit će uglavnom dinamičke informacije iz naše aplikacije. Da bismo to učinili, trebamo izlaziti varijable s zapisnikom poruka. To možemo učiniti na više načina. Na primjer, možemo uključiti varijable i oblikovati niz s rezerviranim mjestima, a zatim ih proslijediti u dnevnik poruka tako da će vrijednosti varijabli biti prikazane u zapisima.

Na primjer, pogledajte donji kod; kôd možete kopirati u pokretu u vašem python IDE-u.

import logging var_message = "interna greška" zapisivanje.upozorenje ("Poslužitelj je zaustavljen zbog% s", var_message)

Nakon pokretanja koda, vidjet ćete izlaz, kao što je prikazano na donjoj slici. Kao što vidite na slici, vrijednost pohranjena u varijabli također se ispisuje na ekranu.

Također možemo prikazati varijable u zapisnicima pomoću f-nizova koji su uvedeni u python 3.6. Ali da biste koristili f-žice, trebat će vam python 3.6 ili noviji instalirani u vašem sustavu. Pokretanjem sljedeće naredbe u terminalu možete provjeriti koja je inačica pythona instalirana u vašem sustavu.

python --verzija # za python 2 na Linuxu python3 --verzija # za python 3 u Linuxu

Ovo će ispisati verziju pythona koju koristite u vašem sustavu. Dobra je praksa koristiti najnoviju verziju pythona za postizanje boljih performansi; možete vidjeti naš vodič za ažuriranje vaše verzije pythona u Linuxu.

Da bismo formatirali nizove pomoću f-nizova u pythonu, trebamo koristiti sljedeću sintaksu koda. Kôd možete kopirati i pokrenuti u svom omiljenom python IDE-u.

import logging var_message = "interna greška" zapisivanje.upozorenje (f "Poslužitelj je zaustavljen zbog var_message")

Pri pokretanju koda dobit ćete izlaz sličan onome koji dobivamo pri pokretanju gornjeg koda. Ali kad vidimo kod, možemo primijetiti f na početku niza, što predstavlja da je to f-niz, a varijable u f-nizovima možemo izravno koristiti stavljanjem u kovrčave zagrade.

Traganje zapisa tragova

Modul za bilježenje također se može koristiti za hvatanje tragova stoga. Tragovi stoga su poruke iznimke koje se bacaju kad se u programu dogodi greška. Iznimku možemo uhvatiti postavljanjem parametra exc_info na True tijekom poziva funkcije zapisivanja. Ovaj je parametar koristan jer cijelu poruku o iznimci možemo prijaviti s porukom pogreške u datoteku ili zaslon terminala.

Da biste dobili praktičnu demonstraciju kako bismo znali kako ukloniti tragove steka, kopirajte sljedeći kod u svoj python IDE i pokrenite.

pokušaj uvoza zapisivanja: a = 1/0, osim iznimke kao e: zapisivanje.pogreška ("Dogodila se pogreška", exc_info = True)

Nakon pokretanja koda, iznimka će se zabilježiti u terminalu. Vidjet ćete izlaz koda, kao što je prikazano na donjoj slici. Iznimku također možete prijaviti u datoteku pomoću parametra ime datoteke u metodi basicConfig (), kao što smo gore raspravljali.

Ova metoda je također kritična u izgradnji opsežne aplikacije, jer možemo imati rukovanje iznimkama s bilježenjem, što je izvrsno za postupak uklanjanja pogrešaka.

Predmeti drvosječe

Modul za bilježenje također nudi neke korisne klase koje se mogu koristiti za bolje bilježenje, uglavnom za širu primjenu. Pogledajmo neke od najčešće korištenih klasa modula za bilježenje te što i kako funkcioniraju.

Ako želite potpune detalje o korištenju ovih klasa, možete se obratiti službenoj dokumentaciji python modula za prijavu.

Zaključak

U ovom smo članku naučili osnove prijavljivanja u python. Modul za bilježenje jednostavan je i moćan način za prijavu u python. Pretpostavimo da se do sada ne bavite bilježenjem, danas je dan za započinjanje prijavljivanja dok ste čitali članak i naučili kako je lako koristiti prijavu u python. Sada možete koristiti prijavu i u malim i u značajnim aplikacijama.

Ako se pravilno prijavite, to će zaista biti korisno na ovaj ili onaj način. Savjetujem vam da ga počnete koristiti iz malih programa, jer će vam pomoći da dobro upoznate stvar ili dvije, a bit će neprocjenjiv za velike projekte. Možda ćete htjeti vidjeti i kako raditi s SQLite bazama podataka u pythonu. 

Kako promijeniti lijevu i desnu tipku miša na računalu sa sustavom Windows 10
Sasvim je normalno da su svi uređaji računalnog miša ergonomski dizajnirani za dešnjake. Ali postoje dostupni uređaji za miš koji su posebno dizajnira...
Emulirajte klikove mišem lebdeći mišem bez klika u sustavu Windows 10
Korištenje miša ili tipkovnice u pogrešnom držanju pretjerane upotrebe može rezultirati mnogim zdravstvenim problemima, uključujući naprezanje, sindro...
Dodajte geste miša u sustav Windows 10 pomoću ovih besplatnih alata
Posljednjih godina računala i operativni sustavi uvelike su se razvili. Bilo je vrijeme kada su korisnici morali koristiti naredbe za navigaciju kroz ...