Javascript Winston输出json而不是格式化字符串
我在我的应用程序中设置了一个简单的winston logger,如下所示:Javascript Winston输出json而不是格式化字符串,javascript,node.js,logging,npm,winston,Javascript,Node.js,Logging,Npm,Winston,我在我的应用程序中设置了一个简单的winston logger,如下所示: function logger(success, msg) { let now = new Date().toUTCString() let logger = new (winston.Logger)({ transports: [ new (winston.transports.File)({ filename: 'log.log
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)
}
}
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)
}
}
但它不记录格式化字符串,而是输出以下内容:
{“级别”:“错误”,“消息”:“无需上传”,“时间戳”:“2018年4月23日星期一13:53:01 GMT”}
想法?我错过什么了吗?(当然是)正如您在winston文档中所发现的,如果您不希望文件中的信息是json对象,可以将属性
json
设置为false。默认情况下,此属性为true
json:如果为true,消息将被记录为json(默认为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();
},
formatter: function(options) {
return `>>>>>>>>>> ${options.timestamp()} - ${options.level.toUpperCase} - ${options.message}`;
}
})
]
});
if (success) {
logger.log('info', msg)
} else {
logger.log('error', msg)
}
}
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的文档中所发现的,如果您不希望文件中的信息是json对象,可以将属性
json
设置为false。默认情况下,此属性为true
json:如果为true,消息将被记录为json(默认为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();
},
formatter: function(options) {
return `>>>>>>>>>> ${options.timestamp()} - ${options.level.toUpperCase} - ${options.message}`;
}
})
]
});
if (success) {
logger.log('info', msg)
} else {
logger.log('error', msg)
}
}
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)
}
}
我没看见那个。非常感谢。这适用于
transports.File
,是否有类似的transports.Console
选项?没有看到。非常感谢。这适用于transports.File
,对于transports.Console
,是否有类似的选项?