de Stefanos Vardalos

O introducere în jurnal pentru programatori

O introducere in jurnal pentru programatori
Habar n-am ce se întâmplă …

Există o parte din dezvoltarea de software pe care nu toți dezvoltatorii o iau în serios. Această parte este înregistrarea corectă și toată lumea care a pierdut nenumărate ore în timpul depanării știe exact la ce mă refer.

Jurnalele utile pot oferi dezvoltatorului (mai ales atunci când cineva trebuie să depaneze / să mențină codul altcuiva) cu un ajutor extraordinar atunci când încearcă să înțeleagă ce face de fapt codul. Unii dezvoltatori spun că urmele stivei sunt tot ceea ce cineva ar trebui să aibă vreodată nevoie, dar acest lucru nu ar putea fi mai departe de adevăr. Urmele stivei sunt grozave și vă pot spune unde și ce a mers prost, dar nu vă pot spune cum ați ajuns acolo în primul rând. Cu siguranță puteți urmări execuția prin puncte de întrerupere, dar dacă mergeți în orb, întregul proces va consuma mult mai mult timp decât ar trebui și ar putea fi de fapt.

O introducere in jurnal pentru programatori
Nu prea de ajutor

Acesta este diagnostic parte a jurnalizării, cea mai importantă și practic cea pe care dezvoltatorii ar putea să o înțeleagă mai ușor, deoarece face parte mai mult din rutina lor zilnică de lucru. Există o altă parte care se numește audit Logare. În cazul în care înregistrarea de diagnosticare are grijă să înregistreze evenimentele care se întâmplă în timpul rulării (apeluri de metodă, intrări / ieșiri, apeluri HTTP, execuții SQL), înregistrarea de audit este responsabilă pentru înregistrarea unor evenimente logice de afaceri mai abstracte. Astfel de evenimente pot fi acțiuni ale utilizatorilor (adăugarea / editarea / eliminarea conținutului, tranzacții, date de acces) sau alte lucruri care au fie valoare managerială, fie, mai important, valoare legală.

În lumea din spate, au existat câteva cadre de logare grozave pentru a alege, deoarece nevoia acestora a apărut mult mai devreme. De exemplu, în Java, puteți alege între propriul motor de jurnalizare Java, java.util.logging sau câteva cadre externe excelente, cum ar fi Logback sau cel mai popular Log4j.
În lumea front-end, lucrurile nu au ajuns încă atât de departe, dar există opțiuni care vă pot ajuta să faceți mile suplimentare (și, bineînțeles, să scăpați de mesajele triviale console.log). Două astfel de biblioteci Javascript pentru front-end sunt nivelul minim, dar puternic, și browser-bunyan, un port al minunatului modul de înregistrare node.js pentru browser. Unele caracteristici sunt comune între aceste cadre, dar există unele unice care ar trebui să ghideze dezvoltatorul să aleagă de care are nevoie. Utilizarea acestora poate fi arătată cu câteva exemple.

Manifest: jurnalele serverului ar trebui să fie structurate. JSON este un format bun. Hai să facem asta.

La fel de original BunyanManifestul merge, jurnalele trebuie structurate și ușor indexate, filtrate, căutate. Acest cadru minunat produce jurnale în format JSON care pot fi apoi ușor consumate de alte servicii pentru procesare ulterioară.

În afară de capacitatea de export JSON, Bunyan are conceptul de înregistrări de copii, care poate fi utilizat pentru a crea diferite înregistrări pentru diferite componente ale aplicației. Aceasta oferă o mare flexibilitate în ceea ce privește câmpurile și informațiile suplimentare pe care doriți să le includeți numai în anumite părți ale aplicației. Bunyan încorporează, de asemenea, fluxuri, care sunt setările de „ieșire” ale jurnalelor sale. Puteți crea mai multe fluxuri și puteți atribui încă un minereu fiecărui logger și fiecare flux poate avea setări diferite, cum ar fi nivelul minim de jurnale de înregistrat (nivelurile acceptabile ale Bunyan sunt fatale / eroare / warn / info / debug / trace) sau metoda de ieșire ( în browser există doar opțiuni legate de consolă, dar, într-un mediu Node puteți face alte lucruri, cum ar fi scrierea jurnalelor într-un anumit fișier).

Aceasta este o bibliotecă de înregistrare zilnică fiabilă. Nu face lucruri fanteziste, nu vă permite să reconfigurați anexele sau să adăugați reguli complexe de filtrare a jurnalelor sau să fierbeți ceai (mai mult păcat), dar are toate funcționalitățile de bază pe care le utilizați de fapt

Cu o afirmație destul de modestă, loglevel prezintă un cadru minim de înregistrare care adaugă doar minimul necesar de care au nevoie majoritatea aplicațiilor. Se adaugă o înregistrare corespunzătoare bazată pe nivel de înregistrare (urmărire / depanare / informații / avertizare / eroare) și filtrare a nivelului minim care trebuie afișat pe consolă.

Puterea acestui cadru este simplitatea sa, deoarece este ușor să îl încorporezi în proiectul tău și să începi să îl folosești, înlocuind pentru totdeauna console.log (). În plus, loglevel mai are o bijuterie ascunsă, extensibilitatea sa, deoarece există diverse pluginuri scrise pentru aceasta, care oferă funcții suplimentare pentru cei care le doresc, cum ar fi prefixarea mesajelor.

Indiferent de cadrul pe care îl alegeți în cele din urmă pentru aplicația dvs. JavaScript, veți economisi cu siguranță o mulțime de ore de lucru în timpul depanării și veți face aplicația dvs. mai rezistentă la viitor.