2015-06-19 2 views
0

Я использую Winston для ведения журнала как на консоли, так и в файле. Если я укажу форматтер, и зарегистрированное сообщение будет таким же, как и предыдущее, журнал файлов будет записываться только один раз. В других ситуациях (без форматирования, указанных или записанных на консоль) ведение журнала работает, как ожидалось.Правильный вход в файл с помощью модуля Winston от Node.js

Вот упрощенный код:

var winston = require('winston'); 

function formatter(args) { 
    return "some formatting: " + args.message; 
} 

var weirdLogger = new (winston.Logger)({ 
    transports: [ 
     new (winston.transports.Console)({ 
      json: false, 
      formatter: formatter 
     }), 
     new (winston.transports.File)({ 
      filename: "weirdLogger.csv", 
      json: false, 
      formatter: formatter 
     }) 
    ] 
}); 

var workingLogger = new (winston.Logger)({ 
    transports: [ 
     new (winston.transports.Console)({ 
      json: false 
     }), 
     new (winston.transports.File)({ 
      filename: "workingLogger.csv", 
      json: false 
     }) 
    ] 
}); 

var weirdLogTest = function() { 
    weirdLogger.info("test1"); 
    workingLogger.info("test2"); 
}; 

var expectedBehaviorLogTest = function() { 
    weirdLogger.info("test1: " + new Date().getTime()); 
    workingLogger.info("test2: " + new Date().getTime()); 
}; 

setInterval(weirdLogTest, 5000); 
//setInterval(expectedBehaviorLogTest, 5000); 

Как написано, этот код показывает test1 и test2 после входа в консоль каждые пять секунд и workingLogger.csv обновляемой, но weirdLogger.csv нет. Комментируя setInterval(weirdLogTest, 5000); и комментируя в тесте expectedBehavior, показано, что ведение журнала происходит, как ожидается, когда дата добавляется к каждому журналу.

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

ответ

0

Это подтверждено как bug, которое было вызвано не форматированием, а потому, что мой форматированный выход журнала был таким коротким. Есть исправление, которое будет объединено.