Друзья, не находил ли кто либо логгер для 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 и проблемы ведения лога становятся проблемами приложения.
Обращаюсь за помощью к сообществу, вдруг кто находил решение или группу решений, так как сам уже в отчаянии=)