Вот основной Winston регистратор Я настроил:Создайте свой собственный Winston регистратор файлы
var winston = require('winston')
var systemLogger = new (winston.Logger)({
transports: [
new (winston.transports.File)({
name: 'system-file',
// log which stores all the errors
filename: './test.log',
json: true,
timestamp: true
})
]
})
systemLogger.log('info', 'hello')
systemLogger.log('error', '-----hello2')
Это создает файл журнала, как это:
{"level":"info","message":"hello","timestamp":"2016-08-18T11:48:22.081Z"}
{"level":"error","message":"-----hello2","timestamp":"2016-08-18T11:48:22.083Z"}
Но я хотел бы, чтобы это выглядело как это в файле:
INFO: 2016-08-18T11:48:22.081Z hello
ERROR: 2016-08-18T11:48:22.083Z *** -----hello2 ***
Возможно ли это?
Я прочел это - https://github.com/winstonjs/winston#custom-log-format, но я не могу найти, как это сделать - если возможно вообще.
Я попытался добавить форматчик:
formatter: function(options) {
// Return string will be passed to logger.
if (options.level === 'error') {
return options.timestamp() +' ******** '+ options.level.toUpperCase() +' ******** '+ (undefined !== options.message ? options.message : '')
}
else if (options.level === 'info') {
return options.timestamp() +' '+ options.level.toUpperCase() +' '+ (undefined !== options.message ? options.message : '')
}
}
Однако это только кажется, работает для консольных отпечатков, а не файл. Так как файл сохраняет то же самое, что и без форматирования.
В моем ответе есть примеры как для файла, так и для консоли. – Tiago