Евидентирање може бити непроцењив алат за решавање проблема и анализу коришћења апликације. Ови пакети помажу да процес буде једноставан.
Правилно евидентирање је критичан аспект изградње и одржавања функционалних веб апликација. Може вам помоћи да пратите грешке, дијагностикујете проблеме са перформансама и разумете како корисници остварују интеракцију са вашом апликацијом.
Ноде.јс има много пакета за евидентирање који вам помажу да креирате структуриране евиденције и управљате њима. Овде ћете истражити најбоље пакете за евидентирање који су тренутно доступни у екосистему Ноде.јс и како да их користите.
1. Винстон
Винстон је библиотека Ноде.јс која пружа флексибилну функцију евидентирања, укључујући вишеструке транспорте. „Транспорт“ је медиј за складиштење ваших дневника.
Винстон подржава конзолни, фајл и мрежни транспорт. То значи да можете да одштампате своје евиденције на конзоли, да их упишете у датотеку или да их пошаљете преко мреже. Користећи Винстонове нивое евидентирања, можете креирати прилагођене транспорте и филтрирати евиденције на основу озбиљности.
Винстон можете инсталирати као зависност у директоријуму вашег пројекта користећи нпм, ЈаваСцрипт менаџер пакета. Покрените ову команду:
нпм инсталл винстон
Блок кода испод показује како да подесите основни систем евидентирања користећи Винстон. Можете дефинисати евиденције за различите локације и различите нивое озбиљности.
конст винстон = захтевају("винстон");
// Винстон дрвосеча
конст логгер = винстон.цреатеЛоггер({
ниво: 'инфо',
формат: винстон.формат.јсон(),
дефаултМета: { услуга: 'моја услуга' },
превози: [
Нова винстон.транспорти. конзола(),
Нова винстон.транспорти. Фајл({ назив документа: 'еррор.лог', ниво: 'грешка' }),
Нова винстон.транспорти. Фајл({ назив документа: 'цомбинед.лог' })
]
});
логгер.инфо('Здраво, Винстоне!');
логгер.варн(„Упозорење: Нешто можда није у реду.“);
логгер.еррор('Дошло је до грешке.');
Овај код конфигурише логер са три транспорта. Први је транспорт конзоле, који ће слати поруке дневника на конзолу. Други је транспорт фајла који ће записивати евиденције са нивоом "грешке" у датотеку "еррор.лог". Трећи је транспорт фајла који ће све записе писати у "цомбинед.лог" датотеку.
Логер је подразумевано подешен да евидентира на нивоу „инфо“ и укључује подразумевани објекат метаподатака са пољем „сервице“ постављеним на „ми-сервице“.
Код затим бележи три поруке користећи логер на нивоима „инфо“, „упозорење“ и „грешка“. Ове поруке ће бити излазне на конзолу и одговарајуће датотеке евиденције у складу са конфигурацијом транспорта.
2. Морган
Морган је средњи софтвер за евидентирање за Ноде.јс који пружа основне могућности евидентирања захтева. Дизајниран је да буде лаган и једноставан за употребу. Морган ради тако што пресреће ХТТП захтеве и бележи релевантне информације, као што су метод захтева, УРЛ, статусни код итд.
Једна од кључних предности Моргана је његова једноставност. Можете га додати у апликацију Ноде.јс са неколико линија кода, јер не захтева додатну конфигурацију за подешавање.
Морган подржава више формата евидентирања, укључујући заједнички, комбиновано, кратак, сићушан, и дев формате, што вам омогућава да изаберете онај који најбоље одговара вашим потребама.
Можете да инсталирате Морган као зависност у директоријуму вашег пројекта тако што ћете покренути ову команду:
нпм инсталл морган
Овај код показује како да користите Морган у експресна апликација:
конст екпресс = захтевају("изразити");
конст морган = захтевају("морган");
конст апп = екпресс();апп.усе (морган("дев"));
апп.гет("/", (рек, рес) => {
рес.сенд("Здраво Свете!");
});
апп.листен(3000, () => конзола.Пријава(`Апликација је покренута`));
Код иницијализује Морган користећи дев формату. Када упутите ГЕТ захтев на основну руту (/), Морган евидентира детаље тог захтева на конзоли.
Упркос својој једноставности, Морган је моћан пакет за евидентирање који пружа основне могућности евидентирања захтева за Ноде.јс апликације.
3. Пино
Пино је популаран и лаган пакет за евидентирање за Ноде.јс апликације који се може похвалити брзим перформансама и малим трошковима, као што је наведено у њихова мерила.
Пино подржава више врста транспорта, који се лако проширују прилагођеним транспортима. Једна од кључних карактеристика Пино-а је његова способност да евидентира поруке у формату ЈСОН, што их чини лаким за рашчлањивање и анализу.
Употреба Пино-а варира у зависности од оквира Ноде.јс; можете инсталирати Пино као зависност у директоријуму вашег Екпресс пројекта тако што ћете покренути наредбу испод:
нпм инсталл пино-хттп
За различите оквире, проверите Пино документација.
Овај блок кода показује употребу Пина у Екпресс апликацији:
конст екпресс = захтевају("изразити");
конст апп = екпресс();
конст пино = захтевају('пино-хттп')()апп.усе (пино)
апп.гет("/", (рек, рес) => {
пино (рек, рес) // евидентира захтев и одговор
рек.лог.инфо('роот роуте') // евидентира додатне информације
рес.сенд("Здраво Свете!");
});
апп.листен(3000, () => конзола.Пријава(`Апликација је покренута`));
Овај код иницијализује Пино и региструје га као међуверски софтвер. Када упутите ГЕТ захтев на основну руту (/), Пино бележи детаље вашег захтева и његов одговор на конзоли.
4. Отклањање грешака
Дебуг је пакет за евидентирање за Ноде.јс по узору на технику отклањања грешака у језгру Ноде.јс. Пружа лако решење за евидентирање које вам омогућава да селективно омогућите или онемогућите евидентирање без модификације кода, што олакшава отклањање грешака и решавање проблема.
Отклањање грешака вам такође омогућава да поставите просторе имена дневника, који обезбеђују хијерархијску структуру вашим евиденцијама на основу компоненти и модула у вашој апликацији, што олакшава њихово филтрирање и претрагу. Поред тога, Дебуг нуди различите нивое евидентирања, као што су грешка, упозорење и информације, које можете користити за одређивање приоритета и филтрирање њихових евиденција.
Можете да инсталирате Дебуг као зависност у директоријуму вашег пројекта помоћу ове команде:
нпм инсталл дебуг
Овај код показује употребу Дебуг-а у Екпресс апликацији:
конст екпресс = захтевају('изразити');
// Увези отклањање грешака и креирај именски простор
конст дебуг = захтевају('дебуг')('миапп: сервер');конст апп = екпресс();
конст порт = процес.енв. ПОРТ || 3000;апп.гет('/', (рек, рес) => {
дебуг('Примљен захтев за /');
рес.сенд('Здраво Свете!');
});
апп.листен (порт, () => {
дебуг(`Сервер слуша на порту ${порт}`);
});
Код креира именски простор, миапп: сервер. Овај простор имена ће разликовати евиденције повезане са вашим „сервер” од оних који су повезани са другим модулима са различитим именским простором у вашој апликацији.
Покрените ову команду да бисте покренули отклањање грешака:
ДЕБУГ=моја апликација:* чвор сервер.јс
Ова горња команда ће одговарати свакој поруци дневника са простором имена који почиње са моја апликација:. Ако желите да видите само евиденције повезане са вашим сервер модул, можете подесити ДЕБУГ променљива окружења за миапп: сервер.
Још једна предност Дебуг-а је његова компатибилност са другим пакетима за евидентирање, као што је Винстон.
Избор пакета за евидентирање
Избор пакета за евидентирање је важна одлука која може значајно утицати на ефикасност и ефективност вашег процеса отклањања грешака. Неопходно је узети у обзир факторе као што су карактеристике и могућности пакета, његове компатибилност са вашим програмским језиком и развојним окружењем, као и једноставност коришћења и конфигурацију.
На крају крајева, избор пакета за евидентирање зависиће од специфичних потреба и захтева вашег пројекта.