温斯顿-多控制台传输

时间:2019-11-14 10:28:30

标签: node.js logging 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而没有任何错误详细信息。

有人可以帮忙吗?

0 个答案:

没有答案