
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álA 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.