Евидентирање може бити непроцењив алат за решавање проблема и анализу коришћења апликације. Ови пакети помажу да процес буде једноставан.

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

Ноде.јс има много пакета за евидентирање који вам помажу да креирате структуриране евиденције и управљате њима. Овде ћете истражити најбоље пакете за евидентирање који су тренутно доступни у екосистему Ноде.јс и како да их користите.

1. Винстон

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

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

Винстон можете инсталирати као зависност у директоријуму вашег пројекта користећи нпм, ЈаваСцрипт менаџер пакета. Покрените ову команду:

нпм инсталл винстон

Блок кода испод показује како да подесите основни систем евидентирања користећи Винстон. Можете дефинисати евиденције за различите локације и различите нивое озбиљности.

конст винстон = захтевају("винстон");

// Винстон дрвосеча
конст логгер = винстон.цреатеЛоггер({
ниво: 'инфо',
формат: винстон.формат.јсон(),
дефаултМета: { услуга: 'моја услуга' },
превози: [
Нова винстон.транспорти. конзола(),
Нова винстон.транспорти. Фајл({ назив документа: 'еррор.лог', ниво: 'грешка' }),
Нова винстон.транспорти. Фајл({ назив документа: 'цомбинед.лог' })
]
});

логгер.инфо('Здраво, Винстоне!');
логгер.варн(„Упозорење: Нешто можда није у реду.“);
логгер.еррор('Дошло је до грешке.');

Овај код конфигурише логер са три транспорта. Први је транспорт конзоле, који ће слати поруке дневника на конзолу. Други је транспорт фајла који ће записивати евиденције са нивоом "грешке" у датотеку "еррор.лог". Трећи је транспорт фајла који ће све записе писати у "цомбинед.лог" датотеку.

Логер је подразумевано подешен да евидентира на нивоу „инфо“ и укључује подразумевани објекат метаподатака са пољем „сервице“ постављеним на „ми-сервице“.

Код затим бележи три поруке користећи логер на нивоима „инфо“, „упозорење“ и „грешка“. Ове поруке ће бити излазне на конзолу и одговарајуће датотеке евиденције у складу са конфигурацијом транспорта.

2. Морган

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

Једна од кључних предности Моргана је његова једноставност. Можете га додати у апликацију Ноде.јс са неколико линија кода, јер не захтева додатну конфигурацију за подешавање.

Морган подржава више формата евидентирања, укључујући заједнички, комбиновано, кратак, сићушан, и дев формате, што вам омогућава да изаберете онај који најбоље одговара вашим потребама.

Можете да инсталирате Морган као зависност у директоријуму вашег пројекта тако што ћете покренути ову команду:

нпм инсталл морган

Овај код показује како да користите Морган у експресна апликација:

конст екпресс = захтевају("изразити");
конст морган = захтевају("морган");
конст апп = екпресс();

апп.усе (морган("дев"));

апп.гет("/", (рек, рес) => {
рес.сенд("Здраво Свете!");
});

апп.листен(3000, () => конзола.Пријава(`Апликација је покренута`));

Код иницијализује Морган користећи дев формату. Када упутите ГЕТ захтев на основну руту (/), Морган евидентира детаље тог захтева на конзоли.

Упркос својој једноставности, Морган је моћан пакет за евидентирање који пружа основне могућности евидентирања захтева за Ноде.јс апликације.

3. Пино

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

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

Употреба Пино-а варира у зависности од оквира Ноде.јс; можете инсталирати Пино као зависност у директоријуму вашег Екпресс пројекта тако што ћете покренути наредбу испод:

нпм инсталл пино-хттп

За различите оквире, проверите Пино документација.

Овај блок кода показује употребу Пина у Екпресс апликацији:

конст екпресс = захтевају("изразити");
конст апп = екпресс();
конст пино = захтевају('пино-хттп')()

апп.усе (пино)

апп.гет("/", (рек, рес) => {
пино (рек, рес) // евидентира захтев и одговор
рек.лог.инфо('роот роуте') // евидентира додатне информације
рес.сенд("Здраво Свете!");
});

апп.листен(3000, () => конзола.Пријава(`Апликација је покренута`));

Овај код иницијализује Пино и региструје га као међуверски софтвер. Када упутите ГЕТ захтев на основну руту (/), Пино бележи детаље вашег захтева и његов одговор на конзоли.

4. Отклањање грешака

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

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

Можете да инсталирате Дебуг као зависност у директоријуму вашег пројекта помоћу ове команде:

нпм инсталл дебуг

Овај код показује употребу Дебуг-а у Екпресс апликацији:

конст екпресс = захтевају('изразити');

// Увези отклањање грешака и креирај именски простор
конст дебуг = захтевају('дебуг')('миапп: сервер');

конст апп = екпресс();
конст порт = процес.енв. ПОРТ || 3000;

апп.гет('/', (рек, рес) => {
дебуг('Примљен захтев за /');
рес.сенд('Здраво Свете!');
});

апп.листен (порт, () => {
дебуг(`Сервер слуша на порту ${порт}`);
});

Код креира именски простор, миапп: сервер. Овај простор имена ће разликовати евиденције повезане са вашим „сервер” од оних који су повезани са другим модулима са различитим именским простором у вашој апликацији.

Покрените ову команду да бисте покренули отклањање грешака:

ДЕБУГ=моја апликација:* чвор сервер.јс

Ова горња команда ће одговарати свакој поруци дневника са простором имена који почиње са моја апликација:. Ако желите да видите само евиденције повезане са вашим сервер модул, можете подесити ДЕБУГ променљива окружења за миапп: сервер.

Још једна предност Дебуг-а је његова компатибилност са другим пакетима за евидентирање, као што је Винстон.

Избор пакета за евидентирање

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

На крају крајева, избор пакета за евидентирање зависиће од специфичних потреба и захтева вашег пројекта.