Referencias: https://github.com/pinojs/pino-tee
Tengo dos registros, info.log y error.log, pero cuando voy a info.log, el registro de error.log está ahí.
Así que técnicamente, lo que tengo es:
error.log -> ERROR 1 (W/C correcto)
info.log -> ERROR 1, INFO 1 (El registro de errores está ahí)
Lo que quiero es que vayan a registros separados de manera apropiada.
Aquí está el código del enlace de referencias de arriba:
const pinoms = require("pino-multi-stream"); const childProcess = require("child_process"); const stream = require("stream"); const cwd = process.cwd(); const { env } = process; const logThrough = new stream.PassThrough(); const prettyStream = pinoms.prettyStream(); const streams = [{ stream: logThrough }, { stream: prettyStream }]; const log = pinoms(pinoms.multistream(streams)); const child = childProcess.spawn( process.execPath, [ require.resolve("pino-tee"), "info", `${__dirname}/info`, "error", `${__dirname}/error`, ], { cwd, env } ); logThrough.pipe(child.stdin); module.exports = log;Prueba de registro en otro archivo:
const logger = require("./Common/logger"); logger.info("INFO 1"); logger.error("ERROR 1");Resultado:
info.log
{"level":30,"time":1651894649071,"pid":19380,"hostname":"","msg":"INFO 1"} {"level":50,"time":1651894649074,"pid":19380,"hostname":"","msg":"ERROR 1"}registro de errores
{"level":50,"time":1651894649074,"pid":19380,"hostname":"","msg":"ERROR 1"}