9 Ноде.јс библиотека за бележење које можете испробати за боље евидентирање

Да ли се борите са отклањањем грешака у свом коду? Да ли тражите нека решења за евидентирање која би могла олакшати отклањање грешака? Читајте даље да бисте сазнали више.

Развој софтвера пролази кроз неколико фаза: прикупљање захтева, анализа, кодирање, тестирање и одржавање. Од свих ових фаза, фаза кодирања/развоја захтева много времена и труда. Софтверски инжењери се баве синтаксичким грешкама, логичким грешкама и грешкама у току рада. Синтаксичке грешке се идентификују у време компајлирања и настају због тога што код не поштује правила програмског језика.

С друге стране, логичке грешке и грешке током извршавања не могу бити идентификоване од стране интегрисаног развојног окружења (ИДЕ) и често их је тешко отклонити и поправити. Решавање грешака је дуготрајан процес и захтева много отклањања грешака.

Отклањање грешака је процес у коме се покушава разумети зашто написани код не ради како се очекивало. Лако је решити проблем када знамо грешку и тачне редове у коду где се она јавља. Дакле, евидентирање је веома корисно за отклањање грешака кода.

Шта је евидентирање?

Евидентирање је техника у којој се поруке снимају током извршавања програма. Потребно је евидентирати само оне поруке које би им могле помоћи у отклањању грешака. Дакле, знати када треба додати исказе дневника у код је изузетно важно. Такође, разликовање између исказа дневника је подједнако битно. Постоје различити нивои у евидентирању, као што су информације, упозорење, грешка, отклањање грешака и опширно. Изјаве о грешци и упозорење се користе за руковање изузетцима.

Подаци који се враћају из функција, резултати након манипулације низом, подаци преузети из АПИ-ја, итд., су неки примери података који се могу евидентирати коришћењем инфо изјава. Дебуг и детаљни дневники се користе да дају детаљан опис грешака.

Дневник отклањања грешака даје информације о праћењу стека, улазно-излазним параметрима, итд. „Вербосе“ није тако детаљан као дневник „дебуг“ али даје листу свих догађаја који су се десили. Дневници се записују у конзолу, датотеке и излазни ток. Алати за управљање дневником се могу користити за структурирано и форматирано евидентирање.

Ноде.јс евидентирање

Нодејс је окружење за извршавање јавасцрипт-а. Ноде.јс апликације су асинхроне и не-блокирајуће, и користе се у системима са интензивним подацима иу реалном времену. Најбољи начин да сазнате више о Ноде.јс је да прођете кроз Ноде.јс туторијале и његову документацију. Евидентирање је потребно за побољшане перформансе, решавање проблема и праћење грешака. Пријављивање у Ноде.јс се може обавити помоћу уграђене функције цонсоле.лог. Такође, функција за отклањање грешака је међусобно повезана са више пакета и може се ефикасно користити.

Миддлеваре се користи за управљање захтевима и одговорима. Миддлеваре може бити апликација или било који други Јавасцрипт оквир. Пријављивање у средњи софтвер се може обавити преко апликација и рутера. Сваки Ноде.јс логер мора да користи команду нпм или иарн инсталл да би инсталирао логере.

Нпм значи „Ноде Пацкаге Манагер“, а ИАРН значи „Још један преговарач о ресурсима“. Међутим, Иарн је пожељнији у односу на нпм јер је бржи и паралелно инсталира пакете.

Неки од најбољих Ноде.јс логера су наведени у наставку:

Пино

Пино је библиотека која је једна од најбољих логера за Ноде.јс апликације. Он је отвореног кода, изузетно брз и евидентира изјаве у ЈСОН формату који је лако читљив. Неки од нивоа Пино дневника су – отклањање грешака, упозорење, грешка и инфо поруке. Инстанца Пино логера се може увести у пројекат, а наредбе цонсоле.лог морају бити замењене наредбама логгер.инфо.

  Пошаљите контакту поруке изазване локацијом [Android]

Користите следећу команду да инсталирате Пино:

$ npm install pino   

Евиденције које се генеришу су разрађене и у ЈСОН формату, истичући број реда евиденције, тип дневника, време када је евидентиран, итд. Пино узрокује минималне трошкове евидентирања у апликацији и изузетно је флексибилан приликом обраде евиденција.

Пино се може интегрисати са веб оквирима као што су Хапи, Рестифи, Екпресс, итд. Евиденције које је генерисао Пино такође се могу чувати у датотекама. За рад користи Воркер нити и компатибилан је са ТипеСцрипт-ом.

Винстон

Винстон подржава евидентирање за различите веб оквире са својим примарним фокусом на флексибилност и проширивост. Подржава више врста транспорта и може да складишти евиденције на различитим локацијама датотека. Транспорти су места где се чувају поруке дневника.

Заједно са неким уграђеним транспортима као што су Хттп, Цонсоле, Филе и Стреам, подржава и друге транспорте као што су Цлоуд ватцх и МонгоДБ. Обавља евиденцију у различитим нивоима и форматима. Нивои евидентирања указују на озбиљност проблема.

Различити нивои евидентирања су приказани у наставку:

{
  error: 0,
  warn: 1,
  info: 2,
  http: 3,
  verbose: 4,
  debug: 5,
  silly: 6
}

Формат излаза дневника се такође може прилагодити, филтрирати и комбиновати. Дневници укључују информације о временској ознаци, ознакама повезаним са евиденцијом, милисекундама које су прошле од претходног дневника, итд.

Винстон се такође бави изузецима и неухваћеним обећањима. Пружа додатне функције као што су архивирање упита током извршавања, евиденције стримовања, итд. Прво, морате инсталирати Винстон. Затим, Винстон конфигурациони објекат, заједно са транспортом, се креира за чување дневника. Објекат дневника се креира помоћу функције цреатеЛоггер() и њему се прослеђује порука дневника.

Ноде-Буниан

Буниан се користи за брзо пријављивање у ноде.јс у ЈСОН формату. Такође пружа ЦЛИ (Интерфејс командне линије) алатку за преглед евиденције. Лаган је и подржава различита окружења за извршавање као што су Ноде.јс, Бровсерифи, ВебПацк и НВ.јс. ЈСОН формат дневника је додатно улепшан коришћењем функције лепог штампања. Дневници имају различите нивое као што су фатални, грешка, упозорење, информације, отклањање грешака и праћење; сваки је повезан са нумеричком вредношћу.

Сви нивои изнад нивоа постављеног за инстанцу се евидентирају. Буниан стреам је место где се евидентирају резултати. Подкомпоненте апликације се могу евидентирати помоћу функције лог.цхилд(). Сви детектори су везани за одређену родитељску апликацију. Тип тока може бити датотека, ротирајући фајл, необрађени подаци итд. Узорак кода за дефинисање тока је приказан испод:

var bunyan = require('bunyan');
var log = bunyan.createLogger({
    name: "foo",
    streams: [
        {
            stream: process.stderr,
            level: "debug"
        },
        ...
    ]
});

Буниан такође подржава ДТраце евидентирање. Пробе укључене у ДТраце евидентирање обухватају праћење евиденције, упозорење о евиденцији, грешку у евиденцији, информације о евиденцији, отклањање грешака у дневнику и фатално. Буниан користи серијализаторе за производњу дневника у ЈСОН формату. Функције серијализатора не избацују изузетке и одбрамбене су.

Логлевел

Логлевел се користи за пријављивање у Јавасцрипт апликације. Такође је један од најбољих Ноде.јс логера јер је лаган и једноставан. Он бележи дати ниво и користи једну датотеку без зависности за евидентирање. Подразумевани ниво евиденције је „упозорење“. Излази дневника су добро форматирани заједно са бројевима редова. Неке методе које се користе за евидентирање су праћење, отклањање грешака, упозорење, грешка и информације.

  Топ 5 Боотстрап алтернатива

Отпорни су на неуспех у било ком окружењу. гетЛоггер() је метод који се користи за преузимање логгер објекта. Може се комбиновати и са другим додацима како би се прошириле његове карактеристике. Неки од додатака укључују логлевел-плугин-префик, логлевел-плугин-ремоте, СерверСенд и ДЕБУГ. Додатак за додавање префикс порука у евиденцију је приказан испод:

var originalFactory = log.methodFactory;
log.methodFactory = function (methodName, logLevel, loggerName) {
    var rawMethod = originalFactory(methodName, logLevel, loggerName);

    return function (message) {
        rawMethod("Newsflash: " + message);
    };
};
log.setLevel(log.getLevel()); // Be sure to call setLevel method in order to apply plugin

Градње се покрећу помоћу команде нпм рун дист, а тестови се могу покренути помоћу команде нпм тест. Ниво дневника подржава пакете Вебјар, Бовер и Атмоспхере. Нова верзија Логлевел-а излази кад год се додају нове функције.

Сигнале

Сигнале се састоји од 19 логера за Јавасцрипт апликације. Подржава ТипеСцрипт и евидентирање у опсегу. Састоји се од тајмера који помажу у евидентирању временске ознаке, података и назива датотеке. Осим 19 логера као што су чекање, комплетан, фатални, фав, инфо, итд., може се креирати прилагођена евиденција.

Прилагођене евиденције се креирају дефинисањем ЈСОН објекта и поља са подацима дневника. Интерактивни логери се такође могу креирати. Када је интерактивни логер постављен на тачно, нове вредности из интерактивних бележника замењују старе.

Најбољи део Сигнале-а је могућност филтрирања тајних или осетљивих информација. Више тајни се чува у низу. аддСецретс() и цлеарСецретс() су функције које се користе за додавање и брисање тајни из низа. Боостноте, Доцз, Сховер, Таскбоок и Вант користе Сигнале за евидентирање. Синтакса за позивање АПИ-ја из Сигнале је следећа:

signale.<logger>(message[,message]|messageObj|errorObj)

Број преузимања Сигнале је преко 1 милион у време писања овог чланка.

Трацер

Трацер се користи за израду детаљних порука за евидентирање. Евидентирање порука се састоји од временских ознака, имена датотека, бројева линија и назива метода. Помоћни пакети се могу инсталирати да би се прилагодио излазни формат евидентирања. Помоћни пакети се могу инсталирати помоћу следеће команде.

 npm install -dev tracer

Трацер подржава транспорт датотека, стримова и МонгоДБ. Подржава конзолу у боји и услове филтера у евидентирању. У почетку, трацер мора бити инсталиран помоћу нпм инсталл. Друго, потребно је креирати логер објекат и одабрати врсту конзоле. Затим, различити нивои дневника или типови могу бити специфицирани преко објекта за даље евидентирање.

Прилагођени филтери се могу креирати дефинисањем синхроних функција са пословном логиком присутном у телу функције. Микро шаблони као што је тинитим такође се могу користити за системско евидентирање.

Цабин.јс

Кабина се користи за евидентирање ноде.јс апликација на страни сервера и клијента. Користи се тамо где је потребно маскирање осетљивих и критичних информација. Ово укључује бројеве кредитних картица, БасицАутх заглавља, соли, лозинке, ЦСРФ токене и бројеве банковних рачуна. Исечак кода у наставку приказује евидентирање помоћу Цабин.јс.

const Cabin = require('cabin');
const cabin = new Cabin();
cabin.info('hello world');
cabin.error(new Error('oops!'));

Састоји се од више од 1600 назива поља. Такође следи принцип Бринг Иоур Овн Логгер (БИОЛ). Ово га чини компатибилним са разним другим логерима као што су Аке, Пино, Буниан, Винстон, итд. Смањује трошкове складиштења на дисковима због аутоматског стримовања и бафера у кабини. Компатибилан је са више платформи и лак је за отклањање грешака.

  Еластиц Цомпуте Цлоуд (ЕЦ2) једноставно објашњено

Евидентирање на страни сервера захтева коришћење средњег софтвера за рутирање и аутоматско евидентирање излаза. Евидентирање на страни претраживача захтева КСХР захтеве и скрипте. Користи Ак који приказује метаподатке, тј. податке о подацима, траговима стека и другим грешкама. СХОВ_СТАЦК и СХОВ_МЕТА су логичке променљиве постављене на тачно или нетачно да би се приказали или сакрили трагови стека и метаподаци.

Нпмлог

Нпмлог је основни тип логера који нпм користи. Неке од метода евидентирања које се користе су ниво, запис, макРецордСизе, префиксСтиле, наслов и ток. Такође подржава бележење у боји. Различити нивои евидентирања су глупи, опширни, информације, упозорење, хттп и грешка. Пример исечка кода за коришћење нпм дневника је приказан испод.

var log = require('npmlog')

// additional stuff ---------------------------+
// message ----------+                         |
// prefix ----+      |                         |
// level -+   |      |                         |
//        v   v      v                         v
    log.info('fyi', 'I have a kitty cat: %j', myKittyCat)

Све поруке се потискују ако је „Бесконачност“ наведен као ниво евиденције. Ако је „-Инфинити“ наведен као ниво евиденције, опција за преглед порука евиденције мора бити омогућена да бисте видели евиденцију.

Догађаји и објекти порука се користе за евидентирање. Префикс поруке се емитују када се користе догађаји префикса. Објекти стила се користе за форматирање дневника, као што је додавање боје тексту и позадини, стил фонта као што је подебљано, курзив, подвлачење, итд. Неки нпм лог пакети су бролог, нпмлоггер, нпмдате лог, итд.

Роарр

Роарр је логер за Ноде.јс који не захтева иницијализацију и производи структуриране податке. Има ЦЛИ и варијабле окружења. Компатибилан је са претраживачем. Може се интегрисати са Фастифи, Фастифи, Еластиц Сеарцх, итд. Може разликовати код апликације и код зависности. Свака дневник порука се састоји од контекста, поруке, секвенце, времена и верзије. Различити нивои евиденције укључују праћење, отклањање грешака, информације, упозорење, грешку и фатално. Пример исечка кода о томе како се бележи је Роарр је следећи:

import {
  ROARR,
} from 'roarr';

ROARR.write = (message) => {
  console.log(JSON.parse(message));
};

Такође, може се извршити серијализација грешака, што значи да се инстанца са грешком може евидентирати заједно са контекстом објекта. Неке од променљивих окружења које су специфичне за Ноде.јс и Роарр су РОАРР_ЛОГ и РОАРР_СТРЕАМ. „адопт“ је функција која се користи са ноде.јс за пренос својстава контекста на различите нивое. Подређене функције се такође могу користити са средњим софтвером током евидентирања.

Завршне речи

Евидентирање је метод праћења различитих активности и догађаја током извршавања програма. Евидентирање игра виталну улогу у отклањању грешака кода. Такође помаже у повећању читљивости кода. Ноде.јс је окружење отвореног кода, јавасцрипт време извршавања. Неки од најбољих Ноде.јс логера су Пино, Винстон, Буниан, Сигнале, Трацер, Нпмлог, итд. Сваки тип логера има своје карактеристике као што су профилисање, филтрирање, стримовање и транспорт.

Неки логери подржавају обојене конзоле, а неки су погодни за руковање осетљивим информацијама. Детаљни и форматирани дневници највише помажу програмерима док покушавају да поправе грешке у свом коду. ЈСОН формат је генерално пожељнији за евидентирање јер бележи податке у облику парова кључ/вредност што га чини лакшим за коришћење.

Логгери се такође могу интегрисати са другим апликацијама и компатибилни су са више претраживача. Увек је препоручљиво да погледате потребе и апликације које градите пре него што одаберете тип логера који желите да користите.

Такође можете погледати како да инсталирате Ноде.јс и НПМ на Виндовс и мацОС.