首页 > 解决方案 > Winston - 多控制台传输

问题描述

我正在尝试使用 winston 登录节点。

我想在控制台中production记录模式的异常,同时记录模式的所有事件development

这是我的 logger.js 文件

const winston = require('winston');
const path = require('path');

//Get logging level
const level = process.env.log || 'debug';

process.env.NODE_ENV = process.env.NODE_ENV || 'development';

function printf (info) {
  return `${info.timestamp} ${info.level} [${info.label}]: ${info.message}`
}

const logger = winston.createLogger({
  exitOnError: false,
  level: level,
  format: winston.format.combine(
    winston.format.label({ label: path.basename(process.mainModule.filename) }),
    winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' })
  ),
  exceptionHandlers: [
    new winston.transports.Console({
      handleExceptions: true,
      format: winston.format.combine(
        winston.format.colorize(),
        winston.format.printf(info => `${printf(info)}` )
      )
    }),
  ]
});

if(process.env.NODE_ENV === 'development')
  logger.add(
    new winston.transports.Console({
      format: winston.format.combine(
        winston.format.colorize(),
        winston.format.printf(info => `${printf(info)}` )
      )
    })
  );

module.exports = logger;

不幸的是,每当我尝试记录未处理的异常时,我所看到的只是undefined在控制台中,没有任何错误详细信息。

有人可以帮忙吗?

标签: node.jsloggingwinston

解决方案


推荐阅读