Я реализовал Winston для регистрации моего приложения nodejs. В настоящее время я пишу журнал для файлов журнала, используя транспорт «DailyRotateFile» Winston, и вывожу данные журнала на консоль.
Я хочу добавить дополнительный транспорт, который отправляет сообщение журнала в сокет, чтобы я мог выводить его в веб-интерфейс, который я создал с помощью Express, через socket.io.
Вот текущий способ, которым я настроил Winston:
var logger = new winston.Logger({
transports: [
new winston.transports.DailyRotateFile({
level: 'info',
filename: './Logs/server',
datePattern: '.yyyy-MM-dd.log',
handleExceptions: true,
json: true,
maxsize: 5242880, // 5MB
maxFiles: 5,
colorize: false
}),
new winston.transports.Console({
level: 'debug',
handleExceptions: true,
json: false,
colorize: true
})
],
exitOnError: false
})
Это код, который я сейчас использую для создания сообщения журнала:
var logStream = logger.stream({
start: -1
})
logStream.on('log', function(log){
console.log('LOG STREAM')
//console.log(log)
io.emit('logger', log);
})
Однако это постоянно выводит «LOG STREAM» на консоль nodejs, когда я запускаю сервер, и ничего не выдает, когда я использую команду logger.info.
EDIT Похоже, что причина, по которой он продолжает выводить «LOG STREAM», заключается в том, что он отправляет все сообщения, которые были сохранены в файле журнала, даже несмотря на то, что я установил «start -1»
Я был бы очень признателен за любые предложения о том, как правильно этого добиться. ТИА!