2015-11-27 2 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

Ну, похоже, что Winston записывает журналы на основе их числовых уровней. Таким образом, сообщения об ошибках будут всегда записываться в информационный журнал, но информация никогда не будет регистрироваться в журнале ошибок.

Так что я думаю, что лучше разойтись в различные инстанции в конфигурации/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'); 
Смежные вопросы