Winston: Permitir configurar formatos por transporte dentro del mismo registrador

Creado en 8 jul. 2018  ·  5Comentarios  ·  Fuente: winstonjs/winston

Cual es la caracteristica?

Tengo un registrador con un transporte de consola y otro transporte que va a un servicio de registro basado en la nube. Para la consola, quiero prefijar los mensajes con una marca de tiempo y colorearlos. Para el servicio de registro basado en la nube, no quiero marcas de tiempo porque el servicio proporciona las suyas propias y tampoco quiero colores.

¿Es esta una función que está preparado para implementar con nuestro apoyo?

Los PR para esta función ya se enviaron: # 427 y # 422

¿Ya es posible configurar formatos por transporte, pero no he visto esa capacidad explicada en el archivo README?

Comentario más útil

No importa, esto es posible, pero la documentación omite por completo mencionar la función.

const logger = winston.createLogger({
  transports: [
    new winston.transports.File({
      filename: 'error.log', level: 'error',
      format: winston.format.simple(),
    }),
    new winston.transports.File({
      filename: 'combined.log', level: 'debug',
      format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`),
    }),
  ],
});

logger.error('prefixed by the timestamp only in `combined.log`');

Todos 5 comentarios

No importa, esto es posible, pero la documentación omite por completo mencionar la función.

const logger = winston.createLogger({
  transports: [
    new winston.transports.File({
      filename: 'error.log', level: 'error',
      format: winston.format.simple(),
    }),
    new winston.transports.File({
      filename: 'combined.log', level: 'debug',
      format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`),
    }),
  ],
});

logger.error('prefixed by the timestamp only in `combined.log`');

Definitivamente agregar a los documentos por favor

@dandv El código printf en su comentario no funciona fuera de la caja, falta una llave de cierre después del código de marca de tiempo.

Entonces esta línea ...

format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`),

... necesita una llave de cierre como esa

format: winston.format.printf(info => `${new Date().toISOString()}, ${info.message}`),

¡Gracias por el código y el conocimiento para el formato personalizado! ¡Muy apreciado!

No importa, esto de hecho es posible, pero la documentación omite por completo mencionar la característica.

const logger = winston.createLogger({
  transports: [
    new winston.transports.File({
      filename: 'error.log', level: 'error',
      format: winston.format.simple(),
    }),
    new winston.transports.File({
      filename: 'combined.log', level: 'debug',
      format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`),
    }),
  ],
});

logger.error('prefixed by the timestamp only in `combined.log`');

@dandv, ¿qué

No importa, esto de hecho es posible, pero la documentación omite por completo mencionar la característica.

const logger = winston.createLogger({
  transports: [
    new winston.transports.File({
      filename: 'error.log', level: 'error',
      format: winston.format.simple(),
    }),
    new winston.transports.File({
      filename: 'combined.log', level: 'debug',
      format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`),
    }),
  ],
});

logger.error('prefixed by the timestamp only in `combined.log`');

@dandv, ¿qué

El de adentro.

¿Fue útil esta página
0 / 5 - 0 calificaciones