如何在日志记录中实现 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/