5 библиотек ведения логов для Node.js



Книга 5 библиотек ведения логов для Node.js



Ведение логов является неотъемлемой частью создания современных веб-приложений. Логирование помогает разработчику исследовать различные проблемы приложения и быстро с ними справляться. В противном случае приходится тратить лишнее время на отладку.


В этой статье речь пойдет о пользе ведения логов и различных решениях по логированию для Node.js, помогающих ускорить процесс отладки.




Зачем нужно логирование?


Как уже упоминалось, логирование помогает разработчикам легко отслеживать ошибки в приложениях. Использование рациональных решений по логированию позволяет быстро обнаруживать источники проблем и устранять их.


Кроме того, с помощью уровней логирования можно категоризировать проблемы, возникающие в приложениях. Это позволяет устанавливать приоритетность проблем и решать срочные задачи в первую очередь.


ERROR, INFO, DEBUG, WARN и FATAL являются наиболее распространенными уровнями логирования. Это связано с тем, что логи категорий FATAL и ERROR требуют немедленного решения, а на исправление логов WARN можно потратить какое-то время, поскольку они не могут быть источниками блокирующих проблем.


Хотя можно разработать решение по логированию для приложения с нуля, рекомендуется использовать одну из популярных библиотек логирования, настроив ее по своему усмотрению. Этот процесс поможет следовать лучшим практикам и сэкономить драгоценное время. Рассмотрим наиболее часто используемые решения по логированию для приложений Node.js.




1. Winston


Winston  —  это известная библиотека логирования для Node.js. Она поддерживает универсальное логирование на нескольких транспортировках. Ее можно использовать для маршрутизации логов в другие службы, такие как AWS CloudWatch, graylog2 и даже Sematext Logsene. На GitHub она собрала свыше 18 тысяч звезд, а еженедельно ее скачивают более 7 миллионов раз через NPM.


Особенности


  • Отличается простотой использования и настройки.
  • Предлагает множество форматов логов.
  • Позволяет отправлять и сохранять логи в различных форматах, включая файлы, базы данных, электронную почту и консоли.
  • Помогает профилировать блок кода и измерять время, необходимое для его успешного выполнения.

Установка


Winston легко установить с помощью NPM следующим образом:


npm install winston

Использование Winston


После установки библиотеки можно создать с ее помощью логгер следующим образом:


const winston = require('winston');

const logger = winston.createLogger({
level: 'warn',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' }),
],
});



2. Pino


Pino  —  еще одна популярная библиотека логирования Node.js, известная возможностью асинхронного логирования. По утверждению разработчиков, она работает более чем в 5 раз быстрее альтернативных библиотек. Pino собрала свыше 9,2 тысяч звезд на GitHub, а еженедельно ее скачивают более 2,8 миллионов раз через NPM.


Особенности


  • Использует минимум ресурсов для ведения логов.
  • Располагает дочерними логгерами.
  • Предлагает печатание и форматирование.
  • Считается самым быстрым JSON-логгером.
  • Обладает множеством базовых и community-модулей, что способствует формированию процветающей экосистемы.
  • Все процессы логирования, известные как транспортировки, выполняются в рабочем потоке, как рекомендует Node.js.

Установка


Pino можно легко установить с помощью NPM следующим образом:


npm install pino

Использование


После установки можно создать новый логгер с помощью Pino и экспортировать его для использования в других файлах.


const pino = require('pino');
module.exports = pino({});

Приведенный выше код возвращает экземпляр логгера, который можно экспортировать и использовать, как показано ниже:


const logger = require('./logger');

logger.info('My Log!');



3. Bunyan


Bunyan  —  еще одна известная и простая библиотека, предназначенная для ведения логов на Node.js. Она хранит логи в формате JSON и предоставляет CLI-инструмент для их просмотра. Bunyan собрала свыше 6,8 тысяч звезд на GitHub, а еженедельно ее скачивают более 1,6 миллионов раз через NPM.


Особенности


  • Предлагает сериализатор для кастомизированного отображения объектов лога.
  • Доступна система отслеживания логов на основе DTrace для логов выполнения.
  • Среда выполнения поддерживает Node.js, Browserify, Webpack и NW.js.

Установка


Bunyan можно установить с помощью NPM следующим образом:


npm install bunyan

Использование


После установки нужно создать новый логгер с помощью метода createLogger, как показано ниже:


const bunyan = require('bunyan');

var log = bunyan.createLogger({
name: '<application name',
stream: process.stdout
});

log.info('Hello world');



4. Log level


Log level  —  еще одно популярное решение для ведения логов, которое поддерживает как Node.js, так и браузеры. Оно обеспечивает минималистическое, легкое и простое логирование для JavaScript. Log level собрало свыше 2,2 тысяч звезд на GitHub, а еженедельно его скачивают более 9 миллионов раз через NPM.


Особенности


  • Отличается удобством и простотой использования.
  • Поддерживает Node.js и браузеры.
  • Вес Log level составляет 1,1 КБ в минимизированном и GZIP-формате.
  • Предлагает фильтрацию по уровню логирования.
  • Автоматически возвращается к более простым консольным методам логирования, когда определенные методы недоступны.
  • Работает со всеми стандартными системами загрузки JavaScript.

Установка


Log level можно установить с помощью NPM следующим образом:


npm install loglevel

Использование


После установки Log level можно использовать следующими способами.


  • В ES6-модулях:

import log from 'loglevel';
log.warn("my log");

  • В CommonsJS-модулях:

var log = require('loglevel');
log.warn("my log");

  • Непосредственно на веб-страницах:

<script src="loglevel.min.js"></script>
<script>
log.warn("my log");
</script>



5. npmlog


npmlog  —  базовое и широко используемое решение для ведения логов на Node.js. Это официальный логгер, используемый NPM. Он поддерживает пользовательские уровни и цветной вывод, что делает его более удобным для пользователя. Еженедельно npmlog скачивают более 19 миллионов раз через NPM.


Особенности


  • Позволяет устанавливать заголовки логов с использованием пользовательских стилей.
  • Поддерживает пользовательские уровни и цветной вывод.

Установка


npmlog можно установить с помощью NPM следующим образом:


npm install npmlog --save

Использование


После установки npmlog можно импортировать и использовать, как показано ниже:


const log = require('npmlog');

log.info('INFO', 'Hello', {'message': 'test'})



Заключение


Теперь вы знаете, зачем нужно вести логи, и сможете использовать различные решения для логирования, доступные для Node.js. Каждая из рассмотренных библиотек имеет свои особенности. Насколько они популярны и как широко используются, можно судить по следующей диаграмме.



Как видите, все вышеперечисленные библиотеки еженедельно загружают более 1 миллиона раз. Библиотека npmlog даже приблизилась к 20 миллионам загрузок. Эти цифры убеждают в важности логирования и показывают, как много людей используют эти инструменты в своих проектах.



54   0  
    Ничего не найдено.

Добавить ответ:
Отменить.