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