【发布时间】:2020-08-04 10:44:52
【问题描述】:
当我的程序通过process.exit() 关闭时(也可能是通过某种信号),pino 会丢失一些日志条目,因为它没有正确刷新它们。
触发手动刷新没有帮助。
我使用的是 pino 6.2.0。
如何防止日志条目丢失?
const pino = require("pino");
const p = pino();
process.on("exit", () => {
console.log("FLUSH");
p.flush();
});
p.info("A"); // logged
p.info("B"); // NOT logged
process.exit(1);
背景故事:
我的 NestJS 模块中缺少一些依赖项,并将 NestJS 配置为使用我的 pino 记录器包装器,如下所示:
const app = await NestFactory.create<NestExpressApplication>(AppModule, {
logger: new PinoLoggerService(),
});
NestJS 刚刚退出(使用process.exit()),没有告诉我出了什么问题。
删除logger 选项后,NestJS 会详细打印违规模块。
【问题讨论】:
标签: javascript node.js logging flush pinojs