Winston 输出 json 而不是格式化字符串
Winston outputs json instead of formatted string
我在我的应用程序中设置了一个简单的 winston 记录器,如下所示:
function logger(success, msg) {
let now = new Date().toUTCString()
let logger = new (winston.Logger)({
transports: [
new (winston.transports.File)({
filename: 'log.log',
timestamp: function() {
return new Date().toUTCString();
},
formatter: function(options) {
return `>>>>>>>>>> ${options.timestamp()} - ${options.level.toUpperCase} - ${options.message}`;
}
})
]
});
if (success) {
logger.log('info', msg)
} else {
logger.log('error', msg)
}
}
但它没有记录格式化的字符串,而是输出以下内容:
{"level":"error","message":"Nothing to upload","timestamp":"Mon, 23 Apr 2018 13:53:01 GMT"}
想法?我错过了什么吗? (我当然是)
正如您可以在 File 的 winston 文档中找到的那样,如果您不希望文件中的信息为 JSON,则可以将 属性 json
设置为 false对象。 默认这个属性是true
。
json: If true, messages will be logged as JSON (default true).
你能试着像这样改变你的代码吗:
function logger(success, msg) {
let now = new Date().toUTCString()
let logger = new (winston.Logger)({
transports: [
new (winston.transports.File)({
filename: 'log.log',
timestamp: function() {
return new Date().toUTCString();
},
json: false,
formatter: function(options) {
return `>>>>>>>>>> ${options.timestamp()} - ${options.level.toUpperCase} - ${options.message}`;
}
})
]
});
if (success) {
logger.log('info', msg)
} else {
logger.log('error', msg)
}
}
我在我的应用程序中设置了一个简单的 winston 记录器,如下所示:
function logger(success, msg) {
let now = new Date().toUTCString()
let logger = new (winston.Logger)({
transports: [
new (winston.transports.File)({
filename: 'log.log',
timestamp: function() {
return new Date().toUTCString();
},
formatter: function(options) {
return `>>>>>>>>>> ${options.timestamp()} - ${options.level.toUpperCase} - ${options.message}`;
}
})
]
});
if (success) {
logger.log('info', msg)
} else {
logger.log('error', msg)
}
}
但它没有记录格式化的字符串,而是输出以下内容:
{"level":"error","message":"Nothing to upload","timestamp":"Mon, 23 Apr 2018 13:53:01 GMT"}
想法?我错过了什么吗? (我当然是)
正如您可以在 File 的 winston 文档中找到的那样,如果您不希望文件中的信息为 JSON,则可以将 属性 json
设置为 false对象。 默认这个属性是true
。
json: If true, messages will be logged as JSON (default true).
你能试着像这样改变你的代码吗:
function logger(success, msg) {
let now = new Date().toUTCString()
let logger = new (winston.Logger)({
transports: [
new (winston.transports.File)({
filename: 'log.log',
timestamp: function() {
return new Date().toUTCString();
},
json: false,
formatter: function(options) {
return `>>>>>>>>>> ${options.timestamp()} - ${options.level.toUpperCase} - ${options.message}`;
}
})
]
});
if (success) {
logger.log('info', msg)
} else {
logger.log('error', msg)
}
}