Programmēšana

Pieteikšanās Python - jūsu vienas pieturas rokasgrāmata

Pieteikšanās Python - jūsu vienas pieturas rokasgrāmata

Reģistrēšana ir izšķirošs solis, kas programmētājam jāveic programmatūras izstrādes laikā. Tas palīdz izstrādātājiem izsekot notikumiem, kas notiek programmas izpildes laikā, un tas var būt noderīgs turpmākajā atkļūdošanas procesā. Ja esat jauns apmācāmais vai strādājat pie jauna projekta, ieteicams izmantot reģistrēšanu koda plūsmas izsekošanai un kļūdu novēršanai.

Rakstot īsas programmas, lielākā daļa no mums parasti ignorē reģistrēšanu, bet, kad programma kļūst sarežģīta, tad tas ir būtisks un noderīgs solis, izmantojot reģistrēšanu, lai novērstu kļūdas, kas neļauj programmatūrai darboties nevainojami. Reģistrēšana ir nekas cits kā notikumu ierakstīšana programmatūrā žurnāla failā vai izvade terminālā.

Reģistrēšana tiek izmantota ne tikai atkļūdošanai. Tas ir arī noderīgs process informācijas vākšanai, lietošanas datu apkopošanai un daudziem citiem noderīgiem uzdevumiem. Tā ir arī viena no visizplatītākajām tīmekļa izstrādātāju funkcijām, lai ne tikai noteiktu kļūdas, bet arī apkopotu lietotāja datus, piemēram, IP adreses, ko var izmantot turpmākajai biznesa analīzei.

Python lielāko daļu mežizstrādes iespēju nodrošina mežizstrāde modulis, kas tiek parādīts pitona standarta bibliotēkā, tāpēc mums nav jāveic nekāda papildu konfigurācija. Apskatīsim, kā to izmantot, lai reģistrētos pitonā. Pirms sekojat šai apmācībai, sistēmā ir jābūt instalētai jaunākajai pitona versijai. Ja jūsu sistēmā nav instalēts jaunākais pitons, varat sekot mūsu soli pa solim par python instalēšanu un atjaunināšanu Linux.

Python reģistrēšanas modulis

Pitona reģistrēšanas modulis ir viena no visbiežāk izmantotajām mežizstrādes bibliotēkām pitonā. Labākā daļa ir tā, ka tā ir iepriekš instalēta kopā ar python standarta bibliotēku, tāpēc mums nav jāveic nekāda konfigurācija vai instalēšana. Mežizstrādes modulis ir izturīgs un vienkāršs, kas nozīmē, ka tas ir noderīgs gan iesācējiem, gan uzņēmumiem. Lai izmantotu mežizstrādes moduli python, mums tas ir jāimportē mūsu programmā, kā es daru šajā koda rindiņā.

importa reģistrēšana

Tagad apskatīsim demonstrāciju par to, kā mēs varam reģistrēt dažus ziņojumus terminālā. Vienkārši nokopējiet šo kodu iecienītākajā pitona IDE un palaidiet.

importēt mežizstrādi.brīdinājums ("Šis ir brīdinājums")

Palaižot iepriekš minēto kodu, mēs iegūsim izvadi, kā parādīts zemāk esošajā attēlā.

Kā redzams izvadē, programma izdrukā brīdinājuma ziņojumu. Mežizstrādes modulim ir arī daži citi reģistrēšanas līmeņi, piemēram, informācija, kļūda utt., kas atvieglo mūsu uzdevumu. Ļaujiet mums tos īsumā apspriest ar piemēriem.

Python reģistrēšanas līmeņi

Lai reģistrētu dažādus ziņojumus smaguma pakāpē, var izmantot daudzus reģistrēšanas līmeņus. Līmeņi, kurus nodrošina pitons mežizstrāde modulis ir

Šie līmeņi tiek parādīti to smaguma pakāpes dilstošā secībā. Ļaujiet mums redzēt, kā izmantot šos līmeņus mūsu programmā. Vienkārši nokopējiet šo kodu un palaidiet programmu Python IDE.

importēt mežizstrādi.kritiskā ("Šis ir kritisks ziņojums") reģistrēšana.kļūdu ("Šis ir kļūdas ziņojums") reģistrēšana.brīdinājuma ("Šis ir brīdinājuma ziņojums") reģistrēšana.informācijas ("Šī ir informatīvā ziņa") reģistrēšana.atkļūdošana ("Šis ir atkļūdošanas ziņojums")

Palaižot iepriekš minēto kodu IDE, izeja, kuru parāda termināls, ir parādīta zemāk esošajā attēlā.

Kā redzat izvadē, DEBUG un INFO ziņojumi netiek drukāti terminālā, jo reģistrēšanas modulis pēc noklusējuma reģistrēja tikai tos drošības līmeņa ziņojumus, kas ir augstāki vai vienādi ar brīdinājumu. Lai terminālā parādītu INFO un DEBUG, mums ir manuāli jāmaina reģistrētāja pamata konfigurācija. Lai to izdarītu, mēs varam izmantot basicConfig (**kwargs) metodi, ko nodrošina mežizstrādes modulis. Lai redzētu vienkāršu konfigurācijas demonstrāciju, vienkārši palaidiet šo kodu savā Python IDE.

importēt mežizstrādi.basicConfig (līmenis = reģistrēšana.DEBUG) reģistrēšana.kritiskā ("Šis ir kritisks ziņojums") reģistrēšana.kļūdu ("Šis ir kļūdas ziņojums") reģistrēšana.brīdinājuma ("Šis ir brīdinājuma ziņojums") reģistrēšana.informācijas ("Šī ir informatīvā ziņa") reģistrēšana.atkļūdošana ("Šis ir atkļūdošanas ziņojums")

Iepriekš minētajā kodā mēs esam iestatījuši mežizstrāde.Atkļūdot, tas nozīmē, ka tiks reģistrēti visi līmeņi, kas atrodas virs atkļūdošanas līmeņa. Tādējādi iepriekš minētajā kodā visi ziņojumi tiks reģistrēti, kā parādīts zemāk esošajā attēlā.

Ļaujiet mums vairāk apspriest reģistrēšanas moduļa metodi basicConfig ().

Pamata konfigurācijas

Reģistrēšanas modulis nodrošina ļoti noderīgu metodi basicConfig (** Kwargs), ko izmanto, lai iestatītu konfigurācijas datu reģistrēšanai. Daži no funkcijas basicConfig () bieži izmantotajiem parametriem ir:

Apskatīsim, kā mēs varam izmantot šīs konfigurācijas pitona reģistrēšanas modulī, izpētot piemēru viens pēc otra.

Līmeņa parametrs tiek izmantots, lai iestatītu smaguma pakāpi, lai skatītu praktisku demonstrāciju, kā to izmantot, nokopējiet zemāk esošo kodu python IDE un palaidiet.

importēt mežizstrādi.basicConfig (līmenis = reģistrēšana.INFO) mežizstrāde.kritiskā ("Šis ir kritisks ziņojums") reģistrēšana.kļūdu ("Šis ir kļūdas ziņojums") reģistrēšana.brīdinājuma ("Šis ir brīdinājuma ziņojums") reģistrēšana.informācijas ("Šī ir informatīvā ziņa") reģistrēšana.atkļūdošana ("Šis ir atkļūdošanas ziņojums")

Palaižot kodu, jūs varat redzēt izvadi, kā parādīts zemāk esošajā attēlā. Kā redzat, ziņojumi, kas atrodas virs informācijas līmeņiem, tiek izdrukāti, bet atkļūdošanas līmenī ziņojums netiek izdrukāts.

Līmeņa parametrs ir noderīga konfigurācija, kas jāveic, lai žurnāla faili nebūtu pārāk lieli, saturot nevajadzīgus datus, un tajos būtu tikai nepieciešamā informācija.

Pieteikšanās failā

Mēs esam redzējuši tikai to, kā pieteikties terminālā, taču pieteikšanās terminālī ne vienmēr ir noderīga, jo mēs nevaram to saglabāt vēlākai lietošanai. Lai iegūtu labāku risinājumu, žurnālus mēs varam izdrukāt teksta failā, kuru mēs vēlāk saglabājam un analizējam. Žurnāli ir teksts, un tos var glabāt jebkura formāta teksta failā, taču parasti tas tiek pieņemts, lai žurnālus saglabātu failā ar .žurnāla pagarinājums. Šie faili ir pazīstami kā žurnālfaili, un tos universāli izmanto programmu, tīmekļa lietojumprogrammu un citas programmatūras žurnālu glabāšanai.

Mēs varam saglabāt žurnālus failā, ar basicConfig () funkcijas palīdzību iestatot reģistrēšanas moduļa konfigurāciju. Funkcijas basicConfig () faila nosaukuma parametrā mums jānorāda faila nosaukums, kurā mēs vēlamies saglabāt žurnālus, pēc kura ieraksti tiks automātiski izdrukāti mūsu norādītajā žurnāla failā. Apskatīsim praktisku piemēru, lai uzzinātu, kā tas darbojas.

importēt mežizstrādi.basicConfig (līmenis = reģistrēšana.INFO, faila nosaukums = "mylog.žurnāls ") mežizstrāde.kritiskā ("Šis ir kritisks ziņojums") reģistrēšana.kļūdu ("Šis ir kļūdas ziņojums") reģistrēšana.brīdinājuma ("Šis ir brīdinājuma ziņojums") reģistrēšana.informācijas ("Šī ir informatīvā ziņa") reģistrēšana.atkļūdošana ("Šis ir atkļūdošanas ziņojums")

Palaižot kodu, jūs varat redzēt, ka pašreizējā darba direktorijas nosaukumā ir izveidots jauns fails mylog.žurnāls. Atverot failu ar teksta redaktoru, iespējams, pamanīsit, ka žurnāli tika saglabāti failā.

Ja mēs atkārtoti palaidīsim kodu, mēs redzēsim, ka žurnāls tiks pievienots failam. Mēs to varam mainīt, funkcijā basiconfig () norādot parametru filemode. Pēc noklusējuma faila režīma parametram ir vērtība “a”, kas apzīmē pielikumu. Bet dažreiz mēs arī vēlamies izdzēst iepriekš reģistrētos datus un ierakstīt jaunos žurnālus tikai failā. Lai to izdarītu, filemode parametram varam piešķirt vērtību “w”, kas nozīmē rakstīt, un tas izdzēš visus iepriekšējos datus failā un raksta jaunos. Demonstrāciju skatiet šajā piemērā.

importēt mežizstrādi.basicConfig (līmenis = reģistrēšana.INFO, faila nosaukums = "mylog.log ", filemode =" w ") reģistrēšana.kritiskā ("Šis ir kritisks ziņojums") reģistrēšana.kļūdu ("Šis ir kļūdas ziņojums") reģistrēšana.brīdinājuma ("Šis ir brīdinājuma ziņojums") reģistrēšana.informācijas ("Šī ir informatīvā ziņa") reģistrēšana.atkļūdošana ("Šis ir atkļūdošanas ziņojums")

Palaidot iepriekš minēto kodu, jūs varat pamanīt, ka failā esošie agrākie žurnāli ir noņemti no faila un ir pievienoti jaunie žurnāli. Katru reizi, kad palaižam kodu, jaunie žurnāli tiks pievienoti un iepriekšējie tiks izdzēsti, kas ir noderīgi, ja mums nav vajadzīgi ieraksti turpmākai lietošanai.

Žurnālu formatēšana

Mēs redzējām, ka izejas žurnāliem ir noklusējuma izkārtojums, taču mēs varam mainīt formātu, iestatot funkcijas basicConfig () formāta parametru. Apskatīsim praktisku demonstrāciju, lai uzzinātu, kā mēs varam izmantot formāta parametru funkcijā basicConfig (), lai mainītu žurnāla formātu.

importēt mežizstrādi.basicConfig (līmenis = reģistrēšana.INFO, format = "% (faila nosaukums) s:% (levelname) s:% (message) s") reģistrēšana.kritiskā ("Šis ir kritisks ziņojums") reģistrēšana.kļūdu ("Šis ir kļūdas ziņojums") reģistrēšana.brīdinājuma ("Šis ir brīdinājuma ziņojums") reģistrēšana.informācijas ("Šī ir informatīvā ziņa") reģistrēšana.atkļūdošana ("Šis ir atkļūdošanas ziņojums")

Iepriekš minētā koda izeja ir tāda, kā parādīts zemāk esošajā attēlā.

Kā redzat izvadē, faila nosaukums ir parādīts arī. Mēs varam izmantot formāta parametru, lai norādītu daudzus citus formātus, kas ļauj apspriest dažus no tiem.

% (faktiskais laiks) s: To izmanto, lai žurnālos parādītu cilvēkiem lasāmo laiku. Lai redzētu, kā tas parāda laiku, palaidiet šo kodu Python IDE.

importēt mežizstrādi.basicConfig (līmenis = reģistrēšana.INFO, format = "% (asctime) s:% (message) s") reģistrēšana.brīdinājums ("Šis ir brīdinājuma ziņojums")

Palaižot kodu, jūs varat redzēt izvadi, kā parādīts zemāk esošajā attēlā.

% (izveidots) f: Tas parādīs laiku, kurā žurnāls tiek izveidots.

% (faila nosaukums) s: To izmanto, lai žurnāla ziņojumā parādītu faila nosaukumu. Lai uzzinātu, kā tas darbojas, vienkārši palaidiet šo koda paraugu savā Python IDE.

importēt mežizstrādi.basicConfig (līmenis = reģistrēšana.INFO, format = "% (asctime) s:% (faila nosaukums) s:% (message) s") reģistrēšana.brīdinājums ("Šis ir brīdinājuma ziņojums")

Izeja, ko nodrošina kods, ir parādīta nākamajā attēlā. Izejā ir parādīts faila nosaukums. Tas ir noderīgi, strādājot pie projekta, kurā ir iekļauti vairāki faili, lai mēs varētu ātri iegūt failu, kurā ir kļūda.

% (levelname) s: To izmanto, lai parādītu izmantotā līmeņa nosaukumu, piemēram, BRĪDINĀJUMS, ATTĪRĪBA utt.

% (levelno) s: To izmanto, lai izdrukātu tā līmeņa skaitlisko vērtību, kurā ziņojums ir daļa.

% (lino) d: To izmanto, lai izdrukātu pašreizējās līnijas numuru, kurā tiek parādīts ziņojums. Tas ir ļoti noderīgi, jo tas dod mums līnijas numuru, kur mums jāredz kļūda, tāpēc tas palīdz atkļūdošanas procesā. Apskatīsim koda piemēru, lai uzzinātu, kā to izmantot žurnālu izejas veidošanai.

importēšanas reģistrēšana Formāts = '% (asctime) s:% (faila nosaukums) s:% (lineno) d:% (message) s reģistrēšana.basicConfig (līmenis = reģistrēšana.INFO, format = Format) reģistrēšana.brīdinājums ("Šis ir brīdinājuma ziņojums")

Šis kods arī izdrukās līnijas nr., Kā parādīts zemāk esošajā attēlā.

% (ziņa) s: To izmanto, lai parādītu ziņojumu, kuru esam reģistrējuši.

% (ceļa nosaukums) s: To izmanto, lai parādītu pilnu avota koda faila ceļa nosaukumu.

% (process) d: Tas parādīs procesa ID, ja tas būs pieejams.

% (procesa nosaukums) s: Tas parādīs procesa nosaukumu, ja tas būs pieejams.

% (pavediens) d: Tas parādīs pavediena ID, ja tas būs pieejams.

% (threadName) s: Tas parādīs pavediena nosaukumu, ja tas būs pieejams.

Mainīgo datu reģistrēšana

Mēs paši esam devuši ziņojumus žurnālos, kas ir statiski dati. Tomēr reālās pasaules lietojumprogrammās reģistrētie dati galvenokārt būs dinamiska informācija no mūsu lietojumprogrammas. Lai to izdarītu, mums jāievada mainīgie ar ziņojumu žurnālu. Mēs to varam izdarīt daudzos veidos. Piemēram, mēs varam iekļaut mainīgos un formatēt virkni ar vietturiem un pēc tam nodot tos ziņojumu žurnālam, lai mainīgo vērtības tiktu izvadītas ierakstos.

Piemēram, skatiet zemāk esošo kodu; jūs varat kopēt palaisto kodu savā python IDE.

import logging var_message = reģistrēšana "iekšēja kļūda".brīdinājums ("Serveris ir apturēts% s dēļ, var_message)

Palaižot kodu, jūs redzēsiet izvadi, kā parādīts zemāk esošajā attēlā. Kā redzams attēlā, mainīgajā saglabātā vērtība tiek drukāta arī uz ekrāna.

Varam arī attēlot mainīgos žurnālos, izmantojot f-virknes, kas tiek ieviestas Python 3.6. Bet, lai izmantotu f-virknes, jums būs nepieciešams Python 3.6 vai jaunāka versija instalēta jūsu sistēmā. Varat pārbaudīt, kura pitona versija ir instalēta jūsu sistēmā, terminālā izpildot šādu komandu.

python --version # for python 2 uz Linux python3 --version # for python 3 Linux

Tas izdrukās jūsu sistēmā izmantoto pitona versiju. Ir laba prakse izmantot jaunāko pitona versiju, lai iegūtu labāku veiktspēju; jūs varat redzēt mūsu ceļvedi savas pitona versijas atjaunināšanai Linux.

Lai formatētu virknes, izmantojot f-virknes pitonā, mums jāizmanto šāda koda sintakse. Jūs varat kopēt un palaist kodu savā iecienītajā pitona IDE.

import logging var_message = reģistrēšana "iekšēja kļūda".brīdinājums (f "Serveris ir apturēts var_message dēļ")

Palaižot kodu, jūs iegūsiet līdzīgu izvadi kā tas, ko mēs iegūstam, palaižot iepriekš minēto kodu. Bet, ieraugot kodu, virknes sākumā varam pamanīt f, kas apzīmē, ka tā ir f-virkne, un f-virknēs var tieši izmantot mainīgos, ievietojot tos cirtainajās iekavās.

Stack Traces reģistrēšana

Mežizstrādes moduli var izmantot arī kaudzes pēdu tveršanai. Steka pēdas ir izņēmuma ziņojumi, kas tiek izmesti, kad programmā ir notikusi kļūda. Izņēmumu varam uztvert, iestatot parametru exc_info uz True, vienlaikus izsaucot reģistrēšanas funkciju. Šis parametrs ir noderīgs, jo mēs varam reģistrēt pilnu izņēmuma ziņojumu ar kļūdas ziņojumu failā vai termināla ekrānā.

Lai iegūtu praktisku demonstrāciju, lai uzzinātu, kā mēs varam novērst kaudzes pēdas, nokopējiet šo kodu savā Python IDE un palaidiet.

importēt reģistrēšanu, mēģiniet: a = 1/0, izņemot izņēmumu kā e: reģistrēšana.kļūda ("Notikusi kļūda", exc_info = True)

Palaižot kodu, izņēmums tiks reģistrēts terminālā. Jūs redzēsiet koda izvadi, kā parādīts zemāk esošajā attēlā. Izņēmumu var reģistrēt arī failā, izmantojot faila nosaukuma parametru metodē basicConfig (), kā mēs iepriekš apspriedām.

Šī metode ir kritiska arī plašās lietojumprogrammas izveidē, jo mums var būt izņēmumu apstrāde ar mežizstrādi, kas ir lieliski piemērots atkļūdošanas procesam.

Mežizstrādātāja objekti

Mežizstrādes modulis nodrošina arī dažas noderīgas klases, kuras var izmantot labākai mežizstrādei, galvenokārt plašākai lietošanai. Apskatīsim dažas visbiežāk izmantotās mežizstrādes moduļa klases un to, kā un kā tās darbojas.

Ja vēlaties iegūt pilnīgu informāciju par šo klašu izmantošanu, varat atsaukties uz pitona reģistrēšanas moduļa oficiālo dokumentāciju.

Secinājums

Šajā rakstā mēs esam iemācījušies pamatus, kā veikt mežizstrādi pitonā. Mežizstrādes modulis ir vienkāršs un efektīvs veids, kā veikt reģistrēšanu pitonā. Pieņemsim, ka līdz šim jūs neveicat mežizstrādi, šodien ir jāsāk ar mežizstrādi, kad jūs lasāt rakstu un uzzinājāt, cik vienkārši ir izmantot mežizstrādi Python. Tagad jūs varat izmantot reģistrēšanu gan mazās, gan nozīmīgās lietojumprogrammās.

Ja pareizi reģistrējaties, tas vienā vai otrā veidā patiešām būs noderīgs. Es iesaku jums to izmantot, sākot no mazām programmām, jo ​​tas palīdzēs jums labi pārzināt šo lietu vai divas un būs nenovērtējams lieliem projektiem. Varat arī uzzināt, kā strādāt ar SQLite datu bāzēm pitonā. 

Instalējiet jaunāko OpenRA stratēģijas spēli Ubuntu Linux
OpenRA ir bezmaksas / bezmaksas reāllaika stratēģijas spēļu dzinējs, kas atjauno agrīnās Vestvudas spēles, piemēram, klasisko Command & Conquer: Red A...
Instalējiet jaunāko Dolphin emulatoru Gamecube un Wii operētājsistēmai Linux
Delfīnu emulators ļauj jums spēlēt izvēlētās Gamecube un Wii spēles Linux personālajos datoros (PC). Tā kā Dolphin Emulator ir brīvi pieejams un atvē...
Kā lietot GameConqueror Cheat Engine Linux
Rakstā ir sniegts ceļvedis par GameConqueror apkrāptu dzinēja izmantošanu Linux. Daudzi lietotāji, kas spēlē spēles operētājsistēmā Windows, bieži izm...