Задать вопрос
mahnunchik
@mahnunchik
https://about.me/vlasenko

Логгер для NodeJS?

Друзья, не находил ли кто либо логгер для NodeJS, который отвечал бы следующим требованиям:


1) Форматированный вывод в файл (дата, тэг итд)

2) Возможность в будущем заменить файл лога на базу

3) Возможность отправки логов на другую машинку

4) Нотификации на почту/SNS по определённому уровню сообщений (например, если конект до базы пропал)


Тут идеально бы подходил syslog (в моём случае rsyslog), но…


Теперь проблема более развёрнуто:

1) Готовые решения тут, с которыми я успел ознакомился, сваливают задачу ведения лога на основной прецесс, что не оправдано.


Например winston, имеет кучу транспортов и форматирование и кучу плюшек, но это все делается в главном процессе приложения и проблемы лога приводят к проблемам приложения (это и вынудило к поиску более подходящего решения).

Плюс к этому у winston до недавнего времени была сломана совместимость с записью в файл и до сих пор сломана совместимость с syslog. (NodeJS 9+)


2) Сейчас приложение запускается с помощью forever, он перенаправляет в дочернем процессе стандартный вывод «воркера» в файлы, что снимает нагрузку и проблемы связанные с ведением лога. Но мы имеем только 3 файла логов и все, никакого анализа форматирование и нотификаций.


3) Можно было бы читать файлы форевера и сливать их в syslog (rsyslog умеет из коробки) но теряются уровни сообщений (error, info итд), соответственно никакой нотификации по ним.


4) Можно было бы писать в syslog сразу из основного процесса, но тут мы переходим к пункту 1 и проблемы ведения лога становятся проблемами приложения.


Обращаюсь за помощью к сообществу, вдруг кто находил решение или группу решений, так как сам уже в отчаянии=)
  • Вопрос задан
  • 21693 просмотра
Подписаться 15 Оценить Комментировать
Ответ пользователя Alex Pts К ответам на вопрос (5)
AlexPTS
@AlexPTS
Full stack веб разработчик
monolog
Ответ написан
Комментировать