Programiranje

Prijava v Python - Vaš vodnik na enem mestu

Prijava v Python - Vaš vodnik na enem mestu

Beleženje je ključni korak, ki ga mora programer izvesti med razvojem programske opreme. Razvijalcem pomaga slediti dogodkom, ki se dogajajo med izvajanjem programa, kar je lahko v pomoč pri prihodnjem postopku odpravljanja napak. Če ste nov učenec ali delate na novem projektu, je dobra praksa, da za sledenje toku kode in reševanje napak uporabite beleženje.

Med pisanjem kratkih programov večina od nas običajno ignorira beleženje, toda ko program postane zapleten, je to nujen in koristen korak uporabe dnevnika za odpravljanje napak, ki preprečujejo nemoteno delovanje programske opreme. Beleženje ni nič drugega kot zapisovanje dogodkov v programski opremi v datoteko dnevnika ali izpis v terminalu.

Beleženje se ne uporablja samo za odpravljanje napak. Prav tako je koristen postopek za zbiranje informacij, zbiranje podatkov o uporabi in številna druga koristna opravila. To je tudi ena najpogostejših funkcij za spletne razvijalce, ne samo zaznavanje napak, temveč tudi zbiranje uporabniških podatkov, kot so naslovi IP, ki se lahko uporabljajo za nadaljnjo poslovno analitiko.

V Pythonu večino naprav za beleženje zagotavlja sečnja modul, predstavljen v standardni knjižnici pythona, zato nam ni treba dodatno konfigurirati. Poglejmo, kako ga uporabiti za prijavo v python. Preden sledite tej vadnici, morate imeti v sistemu nameščeno najnovejšo različico pythona. Če v vašem sistemu ni nameščen najnovejši python, lahko sledite našemu vodniku po korakih za namestitev in posodabljanje pythona v Linuxu.

Modul za beleženje Python

Pythonov dnevniški modul je ena najpogosteje uporabljenih dnevniških knjižnic v pythonu. Najboljši del je, da je vnaprej nameščen s standardno knjižnico pythona, zato nam ni treba izvajati nobene konfiguracije ali namestitve. Modul za beleženje je robusten in enostaven, kar pomeni, da je uporaben tako za začetnike kot za podjetja. Če želite uporabiti modul za beleženje v pythonu, ga moramo uvoziti v naš program, kot to storim v naslednji vrstici kode.

beleženje uvoza

Zdaj pa si oglejmo predstavitev, kako lahko nekaj sporočil prijavimo v terminal. Preprosto kopirajte naslednjo kodo v svoj najljubši python IDE in zaženite.

uvoz beleženja dnevnika.opozorilo ("To je opozorilo")

Ko zaženemo zgornjo kodo, bomo dobili izhod, kot je prikazano na spodnji sliki.

Kot je razvidno iz izhoda, program natisne opozorilno sporočilo. Modul za beleženje vsebuje tudi nekatere druge stopnje beleženja informacije, napake itd., ki nam olajšajo nalogo. O njih se na kratko pogovorimo s primeri.

Python ravni beleženja

Za zapisovanje različnih sporočil na ravni resnosti je mogoče uporabiti številne ravni beleženja. Ravni, ki jih zagotavlja python sečnja modul so

Te ravni so prikazane v padajočem vrstnem redu glede na njihovo resnost. Poglejmo, kako uporabiti te ravni v našem programu. Preprosto kopirajte naslednjo kodo in zaženite v Python IDE.

uvoz beleženja dnevnika.kritično ("To je kritično sporočilo") beleženje.prijava napake ("To je sporočilo o napaki").opozorilo ("To je opozorilno sporočilo").beleženje informacij ("To je informativno sporočilo").debug ("To je sporočilo za odpravljanje napak")

Pri zagonu zgornje kode v IDE je izhod, ki ga prikazuje terminal, prikazan na spodnji sliki.

Kot lahko vidite v izhodu, sporočila DEBUG in INFO v terminalu niso natisnjena, ker je dnevniški modul privzeto zapisoval le sporočila varnostne ravni, višja ali enaka opozorilu. Za prikaz INFO in DEBUG v terminalu moramo ročno spremeniti osnovno konfiguracijo zapisovalnika. Za to lahko uporabimo basicConfig (**kwargs) metoda, ki jo zagotavlja modul za beleženje. Če želite videti preprosto predstavitev konfiguracije, preprosto zaženite naslednjo kodo v svoj Python IDE.

uvoz beleženja dnevnika.basicConfig (nivo = beleženje.DEBUG) beleženje.kritično ("To je kritično sporočilo") beleženje.prijava napake ("To je sporočilo o napaki").opozorilo ("To je opozorilno sporočilo").beleženje informacij ("To je informativno sporočilo").debug ("To je sporočilo za odpravljanje napak")

V zgornji kodi smo nastavili raven sečnja.DEBUG, kar pomeni, da bodo zabeležene vse ravni, ki so nad ravnjo odpravljanja napak. Tako bodo v zgornji kodi zapisana vsa sporočila, kot je prikazano na spodnji sliki.

Pogovorimo se še o metodi basicConfig () modula za beleženje.

Osnovne konfiguracije

Modul za beleženje ponuja zelo uporabno metodo basicConfig (** Kwargs), ki se uporablja za nastavitev konfiguracij za beleženje podatkov. Nekateri najpogosteje uporabljeni parametri funkcije basicConfig () so:

Poglejmo, kako lahko uporabimo te konfiguracije v modulu za beleženje pythona tako, da raziščemo primer enega za drugim.

Parameter level se uporablja za nastavitev stopnje resnosti, ogled praktičnega predstavitvenega načina uporabe, kopiranje spodnje kode v python IDE in zagon.

uvoz beleženja dnevnika.basicConfig (nivo = beleženje.INFO) beleženje.kritično ("To je kritično sporočilo") beleženje.prijava napake ("To je sporočilo o napaki").opozorilo ("To je opozorilno sporočilo").beleženje informacij ("To je informativno sporočilo").debug ("To je sporočilo za odpravljanje napak")

Ko zaženete kodo, boste morda videli izhod, kot je prikazano na spodnji sliki. Kot lahko vidite, se sporočila nad nivoji informacij natisnejo, sporočilo na ravni odpravljanja napak pa se ne natisne.

Parameter ravni je uporabna konfiguracija, ki jo je treba izvesti tako, da dnevniške datoteke ne vsebujejo prevelikih podatkov in vsebujejo le zahtevane podatke.

Prijava v datoteko

Videli smo le, kako se prijaviti na terminal, vendar prijava na terminal ni vedno koristna, saj ga ne moremo shraniti za kasnejšo uporabo. Za boljšo rešitev lahko dnevnike natisnemo v besedilno datoteko, ki jo shranimo in analiziramo pozneje. Dnevniki so besedilni in jih je mogoče hraniti v besedilni datoteki katere koli oblike, vendar je splošno sprejeto, da se dnevniki shranijo v datoteko z .razširitev dnevnika. Te datoteke so znane kot dnevniške datoteke in se splošno uporabljajo za shranjevanje dnevnikov programov, spletnih aplikacij in druge programske opreme.

Dnevnike lahko shranimo v datoteko tako, da s pomočjo funkcije basicConfig () nastavimo konfiguracijo dnevnika. Ime datoteke, kamor želimo shraniti dnevnike, moramo podati v parametru imena datoteke funkcije basicConfig (), nato pa se bodo zapisi samodejno natisnili v datoteko dnevnika, ki jo določimo. Oglejmo si praktičen primer, da bomo vedeli, kako deluje.

uvoz beleženja dnevnika.basicConfig (nivo = beleženje.INFO, ime datoteke = "mylog.log ") beleženje.kritično ("To je kritično sporočilo") beleženje.prijava napake ("To je sporočilo o napaki").opozorilo ("To je opozorilno sporočilo").beleženje informacij ("To je informativno sporočilo").debug ("To je sporočilo za odpravljanje napak")

Ko zaženete kodo, lahko vidite, da je bila v trenutnem imenu delovnega imenika ustvarjena nova datoteka mylog.log. Ko odprete datoteko z urejevalnikom besedil, boste morda opazili, da so bili dnevniki shranjeni v datoteko.

Če znova zaženemo kodo, bomo videli, da bo dnevnik dodan v datoteko. To lahko spremenimo tako, da v funkciji basiconfig () določimo parameter filemode. Parameter filemode ima privzeto vrednost "a", kar pomeni dodatek. Včasih pa želimo izbrisati tudi predhodno zabeležene podatke in nove dnevnike zapisati samo v datoteko. Za to lahko parametru filemode damo vrednost "w", ki pomeni zapis, in izbriše vse prejšnje podatke v datoteki in zapiše nove. Za predstavitev glejte naslednji primer.

uvoz beleženja dnevnika.basicConfig (nivo = beleženje.INFO, ime datoteke = "mylog.log ", filemode =" w ") beleženje.kritično ("To je kritično sporočilo") beleženje.prijava napake ("To je sporočilo o napaki").opozorilo ("To je opozorilno sporočilo").beleženje informacij ("To je informativno sporočilo").debug ("To je sporočilo za odpravljanje napak")

Ko zaženete zgornjo kodo, boste morda opazili, da so bili prejšnji dnevniki, ki so prisotni v datoteki, odstranjeni iz datoteke in dodani novi dnevniki. Vsakič, ko zaženemo kodo, bomo dodali nove dnevnike in izbrisali prejšnje, kar je koristno, če zapisov ne potrebujemo za nadaljnjo uporabo.

Oblikovanje dnevnikov

Videli smo, da imajo izhodni dnevniki privzeto postavitev, vendar lahko format spremenimo tako, da nastavimo parameter formata funkcije basicConfig (). Oglejmo si praktično predstavitev, da bomo vedeli, kako lahko s parametrom format v funkciji basicConfig () spremenimo obliko dnevnika.

uvoz beleženja dnevnika.basicConfig (nivo = beleženje.INFO, format = "beleženje dnevnika% (ime datoteke) s:% (ime ravni) s:% (sporočilo) s").kritično ("To je kritično sporočilo") beleženje.prijava napake ("To je sporočilo o napaki").opozorilo ("To je opozorilno sporočilo").beleženje informacij ("To je informativno sporočilo").debug ("To je sporočilo za odpravljanje napak")

Izhod zgornje kode je prikazan na spodnji sliki.

Kot lahko vidite v izhodu, je bilo prikazano tudi ime datoteke. Parameter formata lahko uporabimo za označevanje številnih drugih formatov, o katerih lahko razpravljamo.

% (asctime) s: To se uporablja za prikaz človeško berljivega časa v dnevnikih. Če si želite ogledati, kako prikazuje čas, zaženite naslednjo kodo v Python IDE.

uvoz beleženja dnevnika.basicConfig (nivo = beleženje.INFO, format = "beleženje dnevnika% (asctime) s:% (message) s").opozorilo ("To je opozorilno sporočilo")

Ko zaženete kodo, boste morda videli izhod, kot je prikazano na spodnji sliki.

% (ustvarjeno) f: To bo prikazalo čas, v katerem je dnevnik ustvarjen.

% (ime datoteke) s: To se uporablja za prikaz imena datoteke v dnevniškem sporočilu. Če želite videti, kako deluje, zaženite naslednjo primer kodo v vašem Python IDE.

uvoz beleženja dnevnika.basicConfig (nivo = beleženje.INFO, format = "beleženje dnevnika% (asctime) s:% (ime datoteke) s:% (sporočilo) s").opozorilo ("To je opozorilno sporočilo")

Izhod, ki ga nudi koda, je prikazan na naslednji sliki. V izhodu je prikazano ime datoteke. To je koristno pri delu na projektu, ki vključuje več datotek, tako da lahko datoteko z napako hitro dobimo.

% (levelname) s: To se uporablja za prikaz imena uporabljene ravni, kot so OPOZORILO, RAZLAGA itd.

% (levelno) s: S tem se natisne številska vrednost ravni, katere del je sporočilo.

% (lineno) d: To se uporablja za tiskanje številke vrstice trenutne vrstice, ki prikazuje sporočilo. To je zelo koristno, saj nam daje številko vrstice, kjer moramo paziti na napako, zato pomaga pri odpravljanju napak. Oglejmo si primer kode, da vidimo, kako to uporabiti za oblikovanje izhoda dnevnikov.

beleženje uvoza Format = '% (asctime) s:% (filename) s:% (lineno) d:% (message) s' logging.basicConfig (nivo = beleženje.INFO, format = Format).opozorilo ("To je opozorilno sporočilo")

Ta koda bo natisnila tudi vrstico št., Kot je prikazano na spodnji sliki.

% (sporočilo) s: Uporablja se za prikaz sporočila, ki smo ga zabeležili.

% (pathname) s: To se uporablja za prikaz celotnega imena poti datoteke izvorne kode.

% (proces) d: To bo prikazalo ID procesa, če je na voljo.

% (ime_procesa) s: To bo prikazalo Ime procesa, če je na voljo.

% (nit) d: To bo prikazalo ID niti, če je na voljo.

% (threadName) s: To bo prikazalo ime niti, če je na voljo.

Beleženje spremenljivk

Sporočila v dnevnikih smo dali sami, to so statični podatki. Kljub temu bodo v resničnih aplikacijah podatki, ki smo jih zabeležili, večinoma dinamični podatki iz naše aplikacije. Za to moramo spremenljivke izpisati z dnevnikom sporočil. To lahko storimo na več načinov. Na primer, lahko vključimo spremenljivke in niz oblikujemo z ogradami ter jih nato posredujemo v dnevnik sporočil, tako da bodo vrednosti spremenljivk prikazane v zapisih.

Na primer, glejte spodnjo kodo; lahko kopirate kodo, ki se izvaja v vašem python IDE.

import logging var_message = "notranja napaka".opozorilo ("Strežnik je bil ustavljen zaradi% s", var_message)

Ko zaženete kodo, boste videli izhod, kot je prikazano na spodnji sliki. Kot lahko vidite na sliki, je vrednost, shranjena v spremenljivki, natisnjena tudi na zaslonu.

Spremenljivke lahko v dnevnikih prikažemo tudi s pomočjo f-nizov, ki so predstavljeni v python 3.6. Toda za uporabo f-nizov boste potrebovali python 3.6 ali več, nameščenih v vašem sistemu. Z izvedbo naslednjega ukaza v terminalu lahko preverite, katera različica pythona je nameščena v vašem sistemu.

python --version # za python 2 v Linuxu python3 --version # za python 3 v Linuxu

To bo natisnilo različico pythona, ki jo uporabljate v sistemu. Dobra praksa je, da uporabljate najnovejšo različico pythona za boljše delovanje; si lahko ogledate naš vodnik za posodabljanje različice pythona v Linuxu.

Za formatiranje nizov z uporabo f-nizov v pythonu moramo uporabiti naslednjo sintakso kode. Kodo lahko kopirate in zaženete v svojem najljubšem IDEju python.

import logging var_message = "notranja napaka".opozorilo (f "Strežnik je bil ustavljen zaradi var_message")

Ko zaženete kodo, boste dobili izhod, podoben tistemu, ki ga dobimo pri zagonu zgornje kode. Ko pa zagledamo kodo, lahko na začetku niza opazimo f, kar pomeni, da gre za niz f, in lahko spremenljivke v f-nizih uporabimo neposredno tako, da jih damo v zavite oklepaje.

Beleženje sledi skladb

Modul za beleženje se lahko uporablja tudi za zajemanje sledi skladov. Sledi skladov so sporočila o izjemah, ki se vržejo, ko pride do napake v programu. Izjemo lahko zajamemo tako, da nastavimo parameter exc_info na True med klicanjem funkcije beleženja. Ta parameter je uporaben, saj lahko celotno sporočilo o izjemi s svojim sporočilom o napaki zapišemo v zaslon datoteke ali terminala.

Če želite dobiti praktično predstavitev, kako lahko izsledimo sledi sklada, kopirajte naslednjo kodo v svoj python IDE in zaženite.

poskusite uvoziti beleženje: a = 1/0, razen izjeme kot e: beleženje.napaka ("Prišlo je do napake", exc_info = True)

Ob zagonu kode se izjema zabeleži v terminalu. Videli boste izhod kode, kot je prikazano na spodnji sliki. Izjemo lahko v datoteko vpišete tudi s parametrom imena datoteke v metodi basicConfig (), kot smo že omenili.

Ta metoda je ključnega pomena tudi pri gradnji obsežne aplikacije, saj imamo lahko urejanje izjem z beleženjem, kar je odlično za postopek odpravljanja napak.

Predmeti beležnika

Modul beleženja vsebuje tudi nekaj uporabnih razredov, ki jih lahko uporabimo za boljše beleženje, predvsem za širšo aplikacijo. Oglejmo si nekatere najpogosteje uporabljene razrede modula za beleženje in kaj ter kako delujejo.

Če želite popolne podrobnosti o uporabi teh razredov, se lahko obrnete na uradno dokumentacijo modula za beleženje python.

Zaključek

V tem članku smo se naučili osnov prijavljanja v python. Modul za beleženje je preprost in zmogljiv način za beleženje v pythonu. Recimo, da se doslej ne ukvarjate z beleženjem, danes je dan, da začnete z beleženjem, ko ste prebrali članek in spoznali, kako enostavno je prijavljanje v python. Zdaj lahko dnevnike uporabljate tako v majhnih kot pomembnih aplikacijah.

Če se pravilno prijavite, vam bo res tako ali drugače v pomoč. Svetujem vam, da ga začnete uporabljati iz majhnih programov, saj vam bo pomagal dobro poznati stvar ali dve in bo za velike projekte neprecenljiv. Morda boste želeli videti tudi, kako delati z bazami podatkov SQLite v pythonu. 

Kako spremeniti levi in ​​desni gumb miške na računalniku z operacijskim sistemom Windows 10
Povsem normalno je, da so vse naprave računalniške miške ergonomsko zasnovane za desničarje. Na voljo pa so miške, ki so posebej zasnovane za levičarj...
Posnemajte klike miške tako, da v Windows 10 lebdite z miško Clickless Mouse
Uporaba miške ali tipkovnice v napačni drži čezmerne uporabe lahko povzroči veliko zdravstvenih težav, vključno s sevom, sindromom karpalnega kanala i...
S temi brezplačnimi orodji dodajte gibe miške v sistem Windows 10
V zadnjih letih so se računalniki in operacijski sistemi močno razvili. Včasih so morali uporabniki uporabljati ukaze za krmarjenje po upraviteljih da...