Pe înțelesul său literal din Dicționarul Oxford, cuvântul „log” poate fi definit ca fiind „o înregistrare oficială a evenimentelor pe parcursul unei anumite perioade de timp, în special o călătorie pe o navă sau un avion”. În domeniul programării, programatorii folosesc și ei acest termen pentru a ține o evidență a evenimentelor și activităților importante care contează pentru ca un program să funcționeze corect. Activitatea sau crearea unui jurnal se numește logare, iar instrumentele care realizează o astfel de sarcină se numesc logger.

Legistrul este documentat într-un fișier numit Log File. În termenul de programator de calculatoare, Un fișier jurnal ar putea fi descris ca fiind

un fișier care păstrează un registru de evenimente, procese, mesaje și comunicări între diverse aplicații software comunicante și sistemul de operare. Fișierele jurnal sunt prezente în software-ul executabil, sistemele de operare și programele prin care sunt înregistrate toate mesajele și detaliile proceselor. Fiecare fișier executabil produce un fișier jurnal în care sunt notate toate activitățile.

– Technopedia

Un fișier jurnal este important pentru noi, programatorii, pentru a ține evidența evenimentelor importante pentru anumite cazuri, cum ar fi depanarea, evaluarea și monitorizarea. În acest articol, aș dori să împărtășesc o modalitate de a crea un pachet logger simplu care să fie implementat pe partea serverului cu Golang.

Pachet logger în Golang

Codul nostru începe cu declararea unei clauze de pachet numit „logger” și importul pachetelor necesare: „fmt”, „log”, „os” și „path/filepath”. Vom folosi două tipuri de logger: Common Log și Error Log. Primul este utilizat pentru a înregistra evenimente comune, cum ar fi conectarea, deconectarea, datele preluate, datele postate etc. Pe de altă parte, cel de-al doilea este utilizat pentru a înregistra în mod specific evenimentele de eroare. În esența sa, loggerul nostru este construit pe un obiect log. Prin urmare, vom crea două variabile „CommonLog” și „ErrorLog” (observați că prima literă este cu majuscule pentru a indica faptul că variabila este exportată) cu un pointer la struct logger.

package loggerimport (
"fmt"
"log"
"os"
"path/filepath"
)var CommonLog *log.Loggervar ErrorLog *log.Logger

În continuare, vom iniția loggerul nostru. Să începem prin a declara calea fișierului. Facem acest lucru prin indicarea locației fișierului nostru de jurnal folosind comanda Abs din pachetul file path (în acest caz folosim locația absolută a fișierului de jurnal). Apoi păstrăm referința în cadrul variabilei filePath.

În interiorul funcției init, continuăm prin setarea comenzii care va fi executată atunci când fișierul jurnal este deschis de program (această setare este menționată în cadrul variabilei openLogfile). Facem acest lucru cu ajutorul comenzii „OpenFile” din pachetul „os” prin specificarea căii fișierului (folosind variabila noastră „filePath” în plus față de numele fișierului), a steagurilor și a fileMode. În această parte trebuie, de asemenea, să decidem numele fișierului jurnal; în acest articol, numim fișierul jurnal ca fiind log.log (observați extensia log). O atenție deosebită în ceea ce privește flags și fileMode utilizate în funcție. În acest caz, Flag-urile pot fi descrise ca indicatori care spun programului ce trebuie să facă cu fișierul deschis. În acest scop, folosim constanta predefinită din pachetul „os”:

  • os.0_RDWR = deschide fișierul în regim de citire-scriere
  • os.0_CREATE = creează un fișier nou dacă nu există unul
  • os.0_APPEND = adaugă date în fișier la scriere

Între timp, fileMode „0666” este codul pentru a seta permisiunea implicită de modificare a fișierului (mai multe informații despre permisiunea utilizatorului pot fi citite aici).

În plus, vom rescrie variabilele noastre CommonLog și ErrorLog pentru a conține un nou jurnal. Facem acest lucru cu comanda „New” din pachetul „log” specificând 1) canalul pentru fișierul jurnal, 2) un prefix și obligatoriu 3) stegulețe.

  1. Canal pentru fișierul jurnal: folosim aici variabila noastră openLogfile
  2. Prefix: Acesta este identificatorul sau jurnalul nostru. Am putea folosi un șir de cuvinte personalizat pentru a defini tipul de lof (de exemplu, „CommonLogger” sau „ErrorLogger”)
  3. Flags: Steagurile pentru această funcție denotă informațiile pe care dorim să le avem în jurnalul nostru. În acest scop, folosim funcția încorporată din pachetul log din Go (detalii pot fi văzute aici).

Injectarea loggerului în codul nostru

În cele din urmă, am putea injecta loggerul nostru pentru a înregistra evenimentele importante care se întâmplă în programul nostru. Acest lucru se poate face prin utilizarea comenzii „Prinln”, la fel ca cea pe care am folosit-o cu pachetul „fmt”.

Aici, în fișierul jurnal, rezultatul loggerului va avea forma aceasta:

Este gata!

Deci, asta este, băieți! am creat un pachet logger care poate fi ușor de injectat ca dependență în programul nostru Go. Sperăm că poate fi util pentru voi, colegii programatori.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.