【问题标题】:Winston rotate writing to mutiple files温斯顿旋转写入多个文件
【发布时间】:2017-04-13 16:12:08
【问题描述】:

所以我使用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

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

【问题讨论】:

    标签: javascript node.js winston


    【解决方案1】:

    您可以在此处了解 Winston 的日志记录级别:Logging Levels

    信息包含错误日志的基本原因是具有较高优先级的“级别”将始终记录优先级“低于”它们的任何级别的消息。见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!");

    【讨论】:

    • 我在那里读了一点。但是找不到。是否可以只将错误写入错误日志并将信息写入信息日志?
    • 我能想到的最简单的方法是制作 2 个记录器。一种用于错误,一种用于信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 2013-05-15
    • 2017-03-23
    • 2017-09-13
    • 2016-08-29
    • 2016-12-13
    • 2022-11-10
    相关资源
    最近更新 更多