如何使用 Winston 将记录器传输到文件

How do I make a logger transport to a file using Winston

我需要将记录器传输到记录错误和警告的文本​​文件。现在,我有一个使用 Winston 进行控制台日志记录的传输:

'use strict';

const winston = require('winston');
const m = require('moment-timezone');
let logger = null;

/**
 * Initializes the logger
 * @param {object} configLogging
 */
module.exports.initialize = function initialize(configLogging) {
  const dateFormat = 'dddd, MMMM Do YYYY, h:mm:ss a';

  logger = new winston.Logger({
    transports: [
      new (winston.transports.Console)({
        name: 'info-console',
        level: configLogging.level,
        colorize: true,
        timestamp: function() { return m.utc().format(dateFormat); }
      })
    ]
  });

  logger.info('Starting logging service');
};

/**
 * Gets the logger instance
 * @returns {LoggerInstance} winLogger
 */
module.exports.get = function get() {
  return logger;
};

要在文件中记录您的踪迹,请尝试添加以下代码段,

new (winston.transports.File)({ filename: 'somefile.log' });

添加您的 logger 作业后应该如下所示,

logger = new winston.Logger({
    transports: [
      new (winston.transports.Console)({
        name: 'info-console',
        level: configLogging.level,
        colorize: true,
        timestamp: function() { return m.utc().format(dateFormat); }
      }),
      new (winston.transports.File)({ filename: 'somefile.log' })
    ]
});

logger.info('Starting logging service');

更新:

分别记录 ErrorsLogs 试试这个,

var logger = new (winston.Logger)({
  transports: [
    new (winston.transports.File)({
      name: 'info-file',
      filename: 'filelog-info.log',
      level: 'info'
    }),
    new (winston.transports.File)({
      name: 'error-file',
      filename: 'filelog-error.log',
      level: 'error'
    })
  ]
});

希望对您有所帮助!