Estoy usando este código para transmitir en un archivo. Pero el archivo creado está vacío. ¿Hay algo mal con mi código?
const fileStream = pinoms.prettyStream( { prettyPrint: { colorize: true, levelFirst: true, translateTime: "yyyy-dd-mm, h:MM:ss TT", }, }, pinoms.destination({ dest: './my-file', // omit for stdout minLength: 4096, // Buffer before writing sync: true}) // Asynchronous logging) ) const streams = [ {stream: fileStream} ] const logger = pinoms(pinoms.multistream(streams)) logger.info('HELLO %s!', 'World')En la documentación dice:
const prettyStream = pinoms.prettyStream( { prettyPrint: { colorize: true, translateTime: "SYS:standard", ignore: "hostname,pid" // add 'time' to remove timestamp }, prettifier: require('pino-pretty') // not required, just an example of setting prettifier // as well it is possible to set destination option } );Así que debería ser posible.
PD: Sé que existe la opción de poner un flujo de escritura con fs, pero quiero formatear la hora.
Encontré una solución practicable para mí. Scince v 7 pino proporciona la función multitransmisión por sí mismo. Ahora puedo hacer todo lo que quería hacer. Usar el destino y también hacer que la marca de tiempo sea bonita.
const streams = [ {stream: pino.destination('test.log')}, {stream: pretty({ colorize: true, sync: true, })} ] const logger = pino({level: 'info', timestamp: pino.stdTimeFunctions.isoTime}, pino.multistream(streams)) logger.info('HELLO %s!', 'World')