yarkov
@yarkov
Помог ответ? Отметь решением.

Мой косяк или модуля winston?

Настраиваю логгер для сервера чата на ноде. Использую модуль winston.
Как видно в коде ниже уровень я указываю явно, но в логе он всеравно ERROR? Как исправить?
var winston = require('winston');
var logger = new (winston.Logger)({
	transports: [
		// настройки логгирования в консоль
		new (winston.transports.Console)({
			level: 'info',    // тип логирования
			timestamp: function() {
				return moment().format("DD-MM-YYYY HH:mm:ss.SSS");
			},
			formatter: function(options) {
				return '[TIMESTAMP:' + options.timestamp() +'] [LEVEL:'+ options.level.toUpperCase() +']'+ (undefined !== options.message ? " [MESSAGE:"+options.message+"]" : '') +
						(options.meta && Object.keys(options.meta).length ? ' [META:'+ JSON.stringify(options.meta) +']' : '' );
			}
		}),
		// настройки логгирования в файл
		new (winston.transports.File)({
			filename: './log/logfile_'+moment().format("YYYYMMDD")+'.log', 
			json: false,
			level: 'info',    // тип логирования
			timestamp: function() {
				return moment().format("DD-MM-YYYY HH:mm:ss.SSS");
			},
			formatter: function(options) {
				return '[TIMESTAMP:' + options.timestamp() +'] [LEVEL:'+ options.level.toUpperCase() +']'+ (undefined !== options.message ? " [MESSAGE:"+options.message+"]" : '') +
						(options.meta && Object.keys(options.meta).length ? ' [META:'+ JSON.stringify(options.meta) +']' : '' );
			}
		})
	]
});

Результат:
[TIMESTAMP:14-02-2016 20:32:05.426] [LEVEL:ERROR] [MESSAGE:undefined Сервер чата готов и ждет подключения! Информация - %s:%d]
[TIMESTAMP:14-02-2016 20:32:05.536] [LEVEL:ERROR] [MESSAGE:undefined Подключение к MongoDB '%s' успешно установлено!]

И откуда перед текстом сообщения берется undefined я тоже хз (((
  • Вопрос задан
  • 288 просмотров
Пригласить эксперта
Ответы на вопрос 1
art1z
@art1z
Программист-многостаночник в EffectiveSoft
options.level который приходит в formatter никакого отношения к ' level: 'info', // тип логирования' не имеет
logger.error/logger.info/logger.debug - вот это оно
установка уровня ' level: 'info' пропускает logger.error и logger.info
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы