Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Winston输出json而不是格式化字符串_Javascript_Node.js_Logging_Npm_Winston - Fatal编程技术网

Javascript Winston输出json而不是格式化字符串

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

我在我的应用程序中设置了一个简单的winston logger,如下所示:

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
,是否有类似的选项?