javascript - Winston 轮流写入多个文件

标签 javascript node.js winston

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

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

关于javascript - Winston 轮流写入多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43397110/

相关文章:

javascript - 为什么 RxJS subscribe 允许省略箭头函数和下面的方法参数?

javascript - 高效地使用 map 函数渲染许多 React 组件

caching - Node.js/快速缓存

node.js - Mongoose .save 函数似乎没有在 node.js 脚本中被调用

node.js - Winston-loggly - 如何发送级别 : 'fatal' message to loggly?

Node.js - 变量范围和垃圾收集

javascript - 使用 Python 进行 AJAX 调用

javascript - workbooks.open w/direct path 不起作用,但使用 HTML id 解决方法却可以,为什么?

javascript - 如何使用 JQuery 创建一个可选列表,其中列表项绑定(bind)到带有事件的按钮?

sails.js - 我正在使用 sailsjs,我想将 winston-sentry 与它集成。我在向 Sentry 添加元数据方面运气不佳。我的代码如下 :