【问题标题】:Logging with winston使用 winston 进行日志记录
【发布时间】:2018-01-25 06:16:19
【问题描述】:
const tsFormat = () => (new Date()).toLocaleTimeString();
const logger = new (winston.Logger)({
  transports: [
    // colorize the output to the console
    new (winston.transports.Console)({
      timestamp: tsFormat,
      colorize: true,
      level: 'info'
    }),
    new (require('winston-daily-rotate-file'))({
      filename: `${app_config.logfolder}/-${app_config.application[APP_NAME].logfile}`,
      timestamp: tsFormat,
      datePattern: 'dd-MM-yyyy',
      prepend: true,
      handleExceptions: true,
      level:app_config.application[APP_NAME].loglevel
    })
  ]
});

我已将我的记录器配置为我想要的级别。但在那之后我必须使用 logger.info 或其他日志级别。那么有什么方法可以在不指定日志级别的情况下执行类似 logger.log 的操作,因为我已经配置了日志级别。

当我已经配置了我的日志级别时,每次使用日志级别之后没有任何意义。

【问题讨论】:

    标签: node.js logging winston


    【解决方案1】:

    基本上将您的自定义日志记录方法封装在一个单独的模块中并重用它

    // in MyLogger.js
    const tsFormat = () => (new Date()).toLocaleTimeString();
    const logger = new (winston.Logger)({
      transports: [
        // colorize the output to the console
        new (winston.transports.Console)({
          timestamp: tsFormat,
          colorize: true,
          level: 'info'
        }),
        new (require('winston-daily-rotate-file'))({
          filename: `${app_config.logfolder}/-${app_config.application[APP_NAME].logfile}`,
          timestamp: tsFormat,
          datePattern: 'dd-MM-yyyy',
          prepend: true,
          handleExceptions: true,
          level:app_config.application[APP_NAME].loglevel
        })
      ]
    });
    
    exports.log = function(message) {
         logger.log('info', message);
    }
    
    // in consumer.js
    var log = require('MyLogger');
    log('My log message');
    

    【讨论】:

    • yah 想到了,但在这种情况下,我必须定义自己的方法日志,以便我可以使用 logger.log() 并且在该方法中,我必须在主 winston 日志设置中再次传递日志级别.
    • @MASIDDIQUI 那么你只需要将你的日志记录方法封装在一个可重用的模块中:)。查看我的更新
    • 感谢@phnkha,我认为我应该在winston 中提出拉取请求,是的,使用封装很好,但使用库时 id 没有什么意义。
    • 因为您只需要“信息”级别的日志,只需导出“logger.info”函数并为您需要的变量提供任何名称(日志、myLog 等)。这与@phnkha 的答案相同。
    猜你喜欢
    • 1970-01-01
    • 2018-06-20
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 2019-09-29
    • 2015-04-15
    • 2018-12-09
    相关资源
    最近更新 更多