Когда моя программа завершает работу через process.exit()
(возможно, также по какому-либо сигналу), pino теряет некоторые записи журнала, потому что неправильно их очищает.
Запуск ручного гриппа sh не помогает.
Я использую 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);
Предыстория: Мне не хватало некоторых зависимостей в моем модуле Nest JS, и я настроил Nest JS на использование моей оболочки pino logger следующим образом:
const app = await NestFactory.create<NestExpressApplication>(AppModule, {
logger: new PinoLoggerService(),
});
Nest JS просто выходил (используя process.exit()
) без говорит мне, что было не так. Удаление опции logger
заставило Nest JS распечатать неисправный модуль во всех деталях.