2016-01-22 83 views
1

我想在我的nodejs应用程序中使用bunyan,但是我坚持这种奇怪的行为。 定义像这样的记录: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报告了一个问题)

回答

0

这是记录器设计的一部分。较高的级别也会始终登录到较低级别。所以最后一个级别将是他们中最详细的。

相关问题