Регистрирането може да бъде безценен инструмент за отстраняване на проблеми и анализиране на използването на приложението. Тези пакети помагат да се направи лесен процес.
Правилното регистриране е критичен аспект от изграждането и поддържането на функционални уеб приложения. Може да ви помогне да проследявате грешки, да диагностицирате проблеми с производителността и да разберете как потребителите взаимодействат с приложението ви.
Node.js има много пакети за регистриране, които ви помагат да създавате и управлявате структурирани журнали. Тук ще разгледате най-добрите пакети за регистриране, налични в момента в екосистемата Node.js и как да ги използвате.
1. Уинстън
Winston е Node.js библиотека, която предоставя гъвкава функционалност за регистриране, включително множество транспорти. „Транспорт“ е носител за съхранение на вашите регистрационни файлове.
Winston поддържа конзолен, файлов и мрежов транспорт. Това означава, че можете да отпечатате своите регистрационни файлове на конзолата, да ги запишете във файл или да ги изпратите по мрежа. Използвайки нивата на регистриране на Winston, можете да създавате персонализирани транспорти и филтри на регистрационни файлове въз основа на тежестта.
Можете да инсталирате Winston като зависимост в директорията на вашия проект, като използвате npm, мениджърът на пакети на JavaScript. Изпълнете тази команда:
npm инсталирайте winston
Кодовият блок по-долу демонстрира как да настроите основна система за регистриране с помощта на Winston. Можете да дефинирате регистрационни файлове за различни местоположения и различни нива на сериозност.
конст уинстън = изискват("уинстън");
// Уинстън дървар
конст logger = winston.createLogger({
ниво: "информация",
формат: winston.format.json(),
defaultMeta: { обслужване: "моята услуга" },
транспортира: [
нов уинстън.транспортира. Конзола(),
нов уинстън.транспортира. Файл({ име на файл: 'error.log', ниво: "грешка" }),
нов уинстън.транспортира. Файл({ име на файл: 'combined.log' })
]
});
logger.info(— Здравей, Уинстън!);
logger.warn(„Предупреждение: нещо може да не е наред.“);
logger.error('Възникна грешка.');
Този код конфигурира регистратор с три транспорта. Първият е конзолен транспорт, който ще извежда лог съобщения към конзолата. Вторият е файлов транспорт, който ще записва регистрационни файлове с ниво на "грешка" във файл "error.log". Третият е файлов транспорт, който ще записва всички регистрационни файлове във файл "combined.log".
Логерът е настроен да регистрира на ниво "информация" по подразбиране и включва обект с метаданни по подразбиране с поле "услуга", зададено на "моята услуга".
След това кодът регистрира три съобщения с помощта на регистратора съответно на нивата "информация", "предупреждение" и "грешка". Тези съобщения ще бъдат изведени към конзолата и съответните лог файлове според конфигурацията на транспортите.
2. Морган
Morgan е междинен софтуер за регистриране за Node.js, който предоставя основни възможности за регистриране на заявки. Той е проектиран да бъде лек и лесен за използване. Morgan работи, като прихваща HTTP заявки и регистрира подходяща информация, като метод на заявка, URL, код на състоянието и т.н.
Едно от основните предимства на Morgan е неговата простота. Можете да го добавите към Node.js приложение с няколко реда код, тъй като не изисква допълнителна конфигурация за настройка.
Morgan поддържа множество формати за регистриране, включително често срещани, комбинирани, къс, мъничък, и разработка формати, което ви позволява да изберете този, който най-добре отговаря на вашите нужди.
Можете да инсталирате Morgan като зависимост в директорията на вашия проект, като изпълните тази команда:
npm инсталирайте morgan
Този код показва как да използвате Morgan в експресно приложение:
конст експрес = изискват("експресен");
конст морган = изискват("морган");
конст приложение = експрес();app.use (morgan("dev"));
app.get("/", (req, res) => {
res.send("Здравей свят!");
});
app.listen(3000, () => конзола.log(„Приложението е стартирано“.));
Кодът инициализира Morgan с помощта на разработка формат. Когато направите GET заявка към основния маршрут (/), Morgan регистрира подробностите за тази заявка в конзолата.
Въпреки своята простота, Morgan е мощен пакет за регистриране, който предоставя основни възможности за регистриране на заявки за Node.js приложения.
3. Пино
Pino е популярен и лек пакет за регистриране за Node.js приложения, който може да се похвали с бърза производителност и ниски разходи, както е посочено в техните показатели.
Pino поддържа множество видове транспорт, лесно разширени с персонализирани транспорти. Една от ключовите характеристики на Pino е способността му да регистрира JSON-форматирани съобщения, което ги прави лесни за разбор и анализ.
Използването на Pino варира в зависимост от рамката Node.js; можете да инсталирате Pino като зависимост в директорията на проекта Express, като изпълните командата по-долу:
npm инсталирайте pino-http
За различни рамки проверете Пино документация.
Този кодов блок показва използването на Pino в Express приложение:
конст експрес = изискват("експресен");
конст приложение = експрес();
конст пино = изискват("пино-http")()app.use (пино)
app.get("/", (req, res) => {
пино (req, res) // регистрира заявка и отговор
req.log.info("коренен маршрут") // регистрира допълнителна информация
res.send("Здравей свят!");
});
app.listen(3000, () => конзола.log(„Приложението е стартирано“.));
Този код инициализира Pino и го регистрира като междинен софтуер. Когато направите GET заявка към основния маршрут (/), Pino регистрира подробностите за вашата заявка и нейния отговор към конзолата.
4. Отстраняване на грешки
Debug е пакет за регистриране за Node.js, моделиран след техниката за отстраняване на грешки в ядрото на Node.js. Той предоставя леко решение за регистриране, което ви позволява да активирате или деактивирате регистрирането избирателно, без да променяте кода, което улеснява отстраняването на грешки и отстраняването на проблеми.
Debug също ви позволява да зададете пространства от имена на регистрационни файлове, които предоставят йерархична структура на вашите регистрационни файлове въз основа на компонентите и модулите във вашето приложение, което улеснява филтрирането и търсенето в тях. Освен това Debug предлага различни нива на регистриране, като грешка, предупреждение и информация, които можете да използвате, за да приоритизирате и филтрирате техните регистрационни файлове.
Можете да инсталирате Debug като зависимост в директорията на вашия проект с тази команда:
npm инсталиране на отстраняване на грешки
Този код показва използването на Debug в Express приложение:
конст експрес = изискват("експресен");
// Импортиране на отстраняване на грешки и създаване на пространство от имена
конст отстраняване на грешки = изискват("debug")('myapp: сървър');конст приложение = експрес();
конст порт = process.env. ПРИСТАНИЩЕ || 3000;app.get('/', (req, res) => {
отстраняване на грешки („Получена заявка за /“);
res.send('Здравей свят!');
});
app.listen (порт, () => {
отстраняване на грешки (`Сървър слуша на порт ${порт}`);
});
Кодът създава пространство от имена, myapp: сървър. Това пространство от имена ще разграничи регистрационни файлове, свързани с вашия „сървър” от тези, свързани с други модули с различно пространство от имена във вашето приложение.
Изпълнете тази команда, за да стартирате отстраняване на грешки:
DEBUG=myapp:* възел server.js
Тази команда по-горе ще съпостави всяко лог съобщение с пространство от имена, което започва с myapp:. Ако искате да видите само регистрационни файлове, свързани с вашия сървър модул, можете да зададете ОТСТРАНЯВАНЕ НА ГРЕШКИ променлива на средата към myapp: сървър.
Друго предимство на Debug е неговата съвместимост с други пакети за регистриране, като Winston.
Избор на пакет за регистриране
Изборът на пакет за регистриране е важно решение, което може значително да повлияе на ефективността и ефективността на вашия процес на отстраняване на грешки. Важно е да се вземат предвид фактори като характеристиките и възможностите на пакета, неговите съвместимост с вашия език за програмиране и среда за разработка и неговата лекота на използване и конфигурация.
В крайна сметка изборът на пакет за регистриране ще зависи от специфичните нужди и изисквания на вашия проект.