Bevezetés a naplókba a programozók számára

A szoftverfejlesztésnek van egy része, amelyet nem minden fejlesztő vesz túl komolyan. Ez a rész a megfelelő naplózás, és mindenki, aki számtalan órát vesztett a hibakeresés során, pontosan tudja, mire gondolok.

A hasznos naplók óriási segítséget nyújthatnak a fejlesztőnek (különösen akkor, ha valakinek hibakeresést kell végeznie / karbantartania valaki más kódját), amikor megpróbálja megérteni, hogy a kód valójában mit csinál. Egyes fejlesztők azt mondják, hogy valakinek valaha szüksége van a verem nyomára, de ez nem lehet távolabb az igazságtól. A verem nyomai nagyszerűek, és meg tudják mondani, hogy hol és mi hibázott, de nem tudják megmondani, hogyan is kerültél oda eleve. Biztosan követheti a végrehajtást a töréspontokon keresztül, de a vakon való belépés sokkal időigényesebbé teszi az egész folyamatot, mint kellene, és valójában lehet.

Ez a naplózás diagnosztikai része, a legfontosabb és alapvetően az, amelyet a fejlesztők könnyebben megérthetnének, mivel ez inkább a mindennapi munkájuk része. Van még egy rész, amelyet auditnaplózásnak nevezünk . Ahol a diagnosztikai naplózás gondoskodik a futás közben bekövetkező események rögzítéséről (metódushívások, bemenetek / kimenetek, HTTP hívások, SQL végrehajtások), az audit naplózás felelős absztraktabb, üzleti logikai események rögzítéséért. Ilyen események lehetnek felhasználói műveletek (tartalom hozzáadása / szerkesztése / eltávolítása, tranzakciók, hozzáférési adatok) vagy más, vagy vezetői, vagy ami még fontosabb, jogi értékkel bír.

A hátsó világban nagyszerű naplózási keretek közül választhatunk, mivel ezek iránti igény sokkal korábban felmerült. Például a Java-ban választhat a Java saját naplózási motorja, a java.util.logging vagy néhány nagyszerű külső keretrendszer között, például a Logback vagy a legnépszerűbb Log4j között.

Az elülső világban a dolgok még nem jutottak el ilyen messzire, de vannak olyan lehetőségek, amelyek segíthetnek az extra mérföld megtételében (és természetesen a triviális console.log üzenetek megszabadulásában). Két ilyen Javascript könyvtár a kezelőfelület számára: a minimális, de nagy teljesítményű loglevel és a browser-bunyan, a böngésző félelmetes node.js naplózási moduljának portja. Néhány jellemző közös ezeken a keretrendszereken, de vannak egyedülállóak, amelyeknek arra kell irányítaniuk a fejlesztőt, hogy kiválassza, melyikre van szüksége. Ezek használatát néhány példával bemutathatjuk.

Kiáltvány: A kiszolgáló naplóit strukturálni kell. A JSON jó formátum. Csináljuk meg.

Az eredeti Bunyan-kiáltvány szerint a naplókat strukturálni és könnyen indexelni, szűrni és keresni kell. Ez a fantasztikus keretrendszer naplókat készít JSON formátumban, amelyeket aztán más szolgáltatások könnyen felhasználhatnak további feldolgozás céljából.

A JSON exportáló képességen kívül a Bunyan rendelkezik a gyermeknaplózók koncepciójával, amely segítségével különböző naplózókat hozhat létre az alkalmazás különböző összetevőihez. Ez nagy rugalmasságot biztosít abban, hogy milyen mezőket és extra információkat kíván csak az alkalmazás egyes részeihez hozzáadni. A Bunyan adatfolyamokat is tartalmaz, amelyek a naplózók „kimeneti” beállításai. Több adatfolyamot is létrehozhat, és mindegyik naplózóhoz egy vagy több érmet rendelhet, és mindegyik adatfolyamnak különböző beállításai lehetnek, például a rögzítendő naplók minimális szintje (a Bunyan elfogadható szintjei halálosak / hiba / figyelmeztet / információk / hibakeresés / nyomkövetés) vagy kimeneti módszer ( a böngészőben csak a konzollal kapcsolatos lehetőségek vannak, de a Node környezetben más dolgokat is megtehet, például naplót írhat egy adott fájlba).

Ez egy barebones megbízható mindennapi fakitermelési könyvtár. Nem csinál fantasztikus dolgokat, nem teszi lehetővé a függelékek újrakonfigurálását, összetett naplószűrési szabályok hozzáadását vagy teaforralást (több kár), de rendelkezik az összes alapvető funkcióval, amelyet ténylegesen használ

A loglevel meglehetősen szerény állítással egy minimális naplózási keretrendszert mutat be, amely csak azt a minimumot adja hozzá, amire a legtöbb alkalmazásnak szüksége van. Hozzáad egy megfelelő szintalapú naplózást (nyomkövetés / hibakeresés / info / figyelmeztetés / hiba) és szűrést, hogy mi legyen a konzolon megjelenítendő minimális szint.

Ennek a keretrendszernek az ereje az egyszerűsége, mivel rendkívül könnyű beépíteni a projektbe, és elkezdeni használni, és örökre lecseréli a console.log () alkalmazást. Ezenkívül a loglevelnek van még egy rejtett gyöngyszeme, annak bővíthetősége, mivel különféle pluginok íródtak hozzá, amelyek extra funkciókat kínálnak azoknak, akik szeretnék őket, például az előtagokhoz.

Bármelyik keretet is választja végül a JavaScript-alkalmazásához, a hibakeresés során biztosan sok órányi munkát megspórol, és az alkalmazását jövőbiztosabbá teszi.