winston'thandExceptions:true'记录两次

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winston'thandExceptions:true'记录两次相关的知识,希望对你有一定的参考价值。

只有一个传输,添加如下:

winston.add(winston.createLogger(
    transports: [
        new winston.transports.Console(
            handleExceptions: true,
            format: winston.format.combine(
                winston.format.simple()
            ),
        ),
    ]
));

当从index.js抛出一个新错误时: throw new Error('++++ I will log twice ++++') 将导致两个单独的日志!

我也尝试了transport.File( ... ),但结果相同。

更新:正如@terry-lennox在他的answer中提到的,输出类似于:

error: uncaughtException: ++++ I will log twice ++++
Error: ++++ I will log twice ++++
    at Object.
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
error: uncaughtException: ++++ I will log twice ++++
Error: ++++ I will log twice ++++
    at Object.
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)

系统设置版本:

OS: Windows 10 v1803
NodeJS: 10.14.1
express: 4.16.4
winston: 3.2.1
答案

这是你看到的那种行为:

error: uncaughtException: ++++ I will log twice ++++
Error: ++++ I will log twice ++++
    at Object.
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)

或者你看到这个重复?

以上是关于winston'thandExceptions:true'记录两次的主要内容,如果未能解决你的问题,请参考以下文章

Winston 3.0 在控制台上为整个输出着色

如何像 console.log 一样在 winston 中记录 JavaScript 对象和数组?

日Winston烟谁有?

Winston:了解日志记录级别

Winston 不显示错误详细信息

Winston - MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏