javascript - 在 Winston 日志框架中实现 Promise

标签 javascript node.js promise es6-promise winston

如何在日志记录中实现 Promise(代码如下)

function logger(logFile) {
    return createLogger({
        level: loggerLevel === 'undefined' ? 'debug' : loggerLevel,
        format: format.combine(
            format.timestamp({
                format: 'YYYY-MM-DD HH:mm:ss'
            }),
            format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`)),
        transports: [new transports.File({ filename: path.join(logDir, logFile) })]
    });
}

module.exports.logger = logger;

以及如何在此记录器的调用者中将其用作异步/等待(代码示例如下)

const loggerForXYZ = logger('XYZ.log');
loggerForXYZ .log('info', 'test message log');

最佳答案

您可以将日志记录部分包装在Promise.resolve中。像这样的东西。

log({ level, message } : {level: string, message: string }) {
    LoggerService.bottleneck.schedule({}, () => {
      return Promise.resolve(LoggerService.getLogger().log({ level, message }));
    });
  }

引用 - https://github.com/winstonjs/winston/issues/1364#issuecomment-398404761

它讨论了如何使用瓶颈 promise

关于javascript - 在 Winston 日志框架中实现 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59623118/

相关文章:

javascript - 递归地创建新的 promise

javascript - 用 javascript 编写的 FD_SET 和 FD_ISSET 宏

javascript - 灰尘 : what about performance?

node.js - ISODate 未定义

javascript - 如何绑定(bind)到一些返回 Promise 的函数来表达路由?

javascript - Axios 返回未决 promise

javascript - 如何将文本文件读取为数组

javascript - 使用 grunt-obfuscator 混淆 js 文件 : Uncaught ReferenceError: require is not defined

javascript - 获取光标位于视频控制栏上方时的位置

node.js - 获取发射套接字的当前套接字 ID