Bunyan 较高级别登录到较低级别的流

Bunyan higher levels logging into lower level streams

我试图在我的 nodejs 应用程序中使用 bunyan,但是我坚持这种奇怪的行为。 像这样定义记录器:

var info = bunyan.createLogger({
    name: 'Test',
    streams: [
        {
            path: './logger/fatal.log',
            level: 'fatal'
        },
        {
            path: './logger/error.log',
            level: 'error'
        },
        {
            path: './logger/warn.log',
            level: 'warn'
        },
        {
            path: './logger/info.log',
            level: 'info'
        },
        {
            path: './logger/debug.log',
            level: 'debug'
        },
        {
            path: './logger/trace.log',
            level: 'trace'
        }
    ]
});

我在这样的函数中调用它们:

var func = function () {
    info.fatal("FATAL!");
    info.error("ERROR!");
    info.warn("WARN!");
    info.debug("DEBUG!");
    info.info("INFO");
    info.trace("TRACE");
}

现在可预测的行为是 fatal.log{"name":"Test","hostname":"ENIGMA","pid":16793,"level":60,"msg":"FATAL!","time":"2016-01-21T09:12:34.293Z","v":0}

error.log{"name":"Test","hostname":"ENIGMA","pid":16793,"level":50,"msg":"ERROR!","time":"2016-01-21T09:12:34.295Z","v":0} 等等。

但是,在我的申请中, fatal.log{"name":"Test","hostname":"ENIGMA","pid":16793,"level":60,"msg":"FATAL!","time":"2016-01-21T09:12:34.293Z","v":0}

error.log{"name":"Test","hostname":"ENIGMA","pid":16793,"level":60,"msg":"FATAL!","time":"2016-01-21T09:12:34.293Z","v":0} {"name":"Test","hostname":"ENIGMA","pid":16793,"level":50,"msg":"ERROR!","time":"2016-01-21T09:12:34.295Z","v":0}

warn.log{"name":"Test","hostname":"ENIGMA","pid":16793,"level":60,"msg":"FATAL!","time":"2016-01-21T09:12:34.293Z","v":0} {"name":"Test","hostname":"ENIGMA","pid":16793,"level":50,"msg":"ERROR!","time":"2016-01-21T09:12:34.295Z","v":0} {"name":"Test","hostname":"ENIGMA","pid":16793,"level":40,"msg":"WARN!","time":"2016-01-21T09:12:34.296Z","v":0}

等等。

较高级别的日志正在进入较低的流。 我如何防止这种行为并使每个级别登录到自己的特定文件中? (我也在 node-bunyan 报告了一个问题)

这是记录器设计的一部分。较高级别也将始终登录到较低级别。所以最后一级将是所有级别中最冗长的。