温斯顿轮流写入多个文件

Winston rotate writing to mutiple files

所以我正在使用 winston-daily-rotate-file。 在 app.js 我有:

var logger = require('./logger');

然后:

logger.info("logging to info");
logger.error("logging to error");

在 logger/index.js 中我有:

var error_transport = new winston.transports.DailyRotateFile({
    filename: '../logs/error',
    datePattern: 'yyyy-MM-dd.',
    prepend: true,
    level: 'error',
name: 'error'
});
var info_transport = new winston.transports.DailyRotateFile({
    filename: '../logs/info',
    datePattern: 'yyyy-MM-dd.',
    prepend: true,
    level: 'info',
    name: 'info'
});

var logger = new (winston.Logger)({
    transports: [
        error_transport,
        info_transport
    ]
});

module.exports = logger;

发生的是文件

logs/DATE_error

包含:

logging to error    

但是:文件

logs/DATE_info 

包含:

logging to info
logging to error

为什么信息文件还包含错误日志?

您可以在此处阅读有关 Winston 的日志记录级别的信息:Logging Levels

信息包含错误日志的基本原因是 "levels" 具有更高优先级的数字将始终记录任何级别的消息 "below" 它们的优先级。请参阅 Using Logging Levels

下的示例

  var logger = new (winston.Logger)({
    transports: [
      new (winston.transports.Console)({ level: 'warn' }),
      new (winston.transports.File)({ filename: 'somefile.log', level: 'error' })
    ]
  });
  logger.debug("Will not be logged in either transport!");
  logger.transports.console.level = 'debug';
  logger.transports.file.level = 'verbose';
  logger.verbose("Will be logged in both transports!");