使用 node/pino 记录到 STDOUT 和文件

Logging to STDOUT and a file with node/pino

我正在分享这个,因为我努力让 pino 记录器写入 STDOUT 和日志文件:

const dest = new stream.PassThrough();
dest.pipe(process.stdout);
dest.pipe(fs.createWriteStream('/logs/file.log', { flags: 'a' }));
const logger = pino({ level: 'info' }, dest);

由于这看起来很低级,我想知道这样做是否正确。

有点晚了,但 pino-multi-stream 可能就是您想要的。我遵循了 this section here 并且它在 TypeScript 中对我有用。你可以尝试这样的事情:

const streams = [
  { stream: process.stdout },
  { stream: fs.createWriteStream('/logs/file.log', { flags: 'a' }) },
]

const logger = pino({ level: 'info' }, pinoms.multistream(streams));