четверг, 18 июля 2013 г.

Логирование в nodejs

Модуль debug
Простейшее логирование, позволяет при запуске определять логи с помеченными метками.
Если все выводить console.log, то все у нас смешается и ничего не будет понятно по мере роста приложения. Кроме того, можно определить какие именно логи будут выводиться (с какими именно метками). 
var debug = require('debug')('my_debug');

...
debug(some_obj);//console.log
Чтобы вывести этот лог, мы должны в переменной окружения DEBUG установить метки, которые мы бы хотели вывести
$ DEBUG=my_debug,other_tag node script.js 

Модуль winston
Предназначен для более умудренного логирования.

var log = require('winston');

log.info(...);
log.debug(...);
log.error(...);
По-умолчанию винстон настроен так, чтобы выводить только инфо и еррор.

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

Логирование внутренних модулей node
Для этого нужно указать через запятую в переменной окружения NODE_DEBUG логи из каких внутренних модулей мы хотели бы выдеть.
$ NODE_DEBUG="cluster http module" node myscript.js

Комментариев нет:

Отправить комментарий