2015-11-27 90 views
1

我想爲每個日誌級別創建單獨的文件,並且它應該存儲各個文件。說,sails.js中多個文件的多個記錄器級別

sails.log.info('Info log'); 

它應該存儲在info.log文件。

var logger = new (winston.Logger)({ 
    transports: [ 
    new (winston.transports.Console)({}), 
    new (winston.transports.File)({ 
     name: 'info-file', 
     filename: 'info.log', 
     level: 'info', 
     json: false 
    }), 
    new (winston.transports.File)({ 
     name: 'error-file', 
     filename: 'error.log', 
     level: 'error', 
     json: false 
    }), 
    new (winston.transports.File)({ 
     name: 'debug-file', 
     filename: 'debug.log', 
     level: 'debug', 
     json: false 
    }) 
    ] 
}); 

在配置/ log.js分別不僅僅是信息和調試日誌

custom: logger 

我的問題是一些日誌不在終端上顯示和info.log建立和文件的debug.log了。

如何實現這一目標?

回答

1

好吧,看起來像溫斯頓基於他們的數字水平寫入日誌。因此,錯誤消息將始終寫入到信息日誌中,但信息永遠不會記錄到錯誤日誌中。

所以我覺得這是更好地分離到不同的情況下,在配置/ bootstrap.js:

sails.warnLog = new (winston.Logger)({ 
     transports: [ 
     new (winston.transports.Sentry)({ 
      name: 'warn-Sentry', 
      dsn: '{my account dsn}', 
      patchGlobal: true 
      level: 'warn' 
     }) 
     ]}); 

sails.infLog = new (winston.Logger)({ 
     transports: [ 
     new (winston.transports.Loggly)({ 
      name: 'info-Loggly', 
      subdomain: '{my subdomain}', 
      inputToken: '{my input token}' 
      level: 'info' 
     }) 
     ]}); 

sails.verbLog = new (winston.Logger)({ 
     transports: [ 
     new (winston.transports.Console)({ 
      name: 'verb-console', 
      timestamp: true, 
      prettyPrint: true, 
      colorize: true, 
      level: 'verbose' 
     }) 
     ]}); 

然後你就可以寫入日誌:

sails.warnLog.warn('Warning'); 
sails.infLog.info('Information'); 
sails.verbLog.verbose('Verbose');