Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

157
Vistas
Configuración de la misma ID única en Winston para 2 transportes

Estoy usando winston-js como registrador en mi proyecto; funciona bien, sin embargo, ahora estoy tratando de agregar una identificación de registro única a cada línea de registro para la depuración.

Tengo 2 transportes - 1) Consola, 2) Archivo.

Me gustaría que el ID de registro para la misma línea de registro sea el mismo para ambos transportes. Por el momento, a medida que la solicitud pasa por mi sistema, el ID de registro sigue siendo el mismo.

En el código de ejemplo a continuación, estoy usando el Meta predeterminado de defaultMeta , que no parece funcionar, sin embargo, también intenté agregar funciones, y obtuve el mismo resultado.

¿Configuro el ID de registro para que la misma línea de registro sea la misma para ambos transportes?

Nota: estoy usando UUID para LogId en mi proyecto; para simplificar, he usado un solo número en los ejemplos.

Entonces, por ejemplo, mi configuración actual hace:

Expediente

 logID: 1 | Request: Post | Request: 1 logID: 1 | Request: Post | Request: 1 logID: 2 | Request: Post | Request: 2

Consola

 logID: 1 | Request: Post | Request: 1 logID: 1 | Request: Post | Request: 1 logID: 2 | Request: Post | Request: 2

Me gustaría:

Expediente

 logID: 1 | Request: Post | Request: 1 logID: 2 | Request: Post | Request: 1 logID: 3 | Request: Post | Request: 2

Consola

 logID: 1 | Request: Post | Request: 1 logID: 2 | Request: Post | Request: 1 logID: 3 | Request: Post | Request: 2

.

 function devLogger () { const logFormat = printf(({ level, message, timestamp, stack, ...meta }) => { var logId = meta.logId return `${timestamp} [${level}] ${message} | ${logId} | Console`; }) const jsonFormat = printf(({ level, message, timestamp, stack, ...meta }) => { var logId = meta.logId return `${timestamp} [${level}] ${message} | ${logId} | File`; }) return createLogger({ defaultMeta: { logId: uuidv4() }, // Add logId to both transports transports: [ new transports.Console({ level: 'debug', format: combine( format.colorize(), timestamp({ format: 'DD-MM-YY HH:mm:ss' }), logFormat ), }), new transports.File({ level: 'debug', filename: 'error.log', format: combine(timestamp({ format: 'DD-MM-YY HH:mm:ss' }), errors({ stack: true }), jsonFormat), }), ] }); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Se arregló con algunas variables directas.

Primero configuramos el LogId, luego lo reutilizamos, luego lo configuramos en una nueva ID lista para la próxima solicitud.

Esto funciona cuando ejecutamos logFormat antes que jsonFormat

 function devLogger () { var setLogId = uuidv4() const logFormat = printf(({ level, message, timestamp, stack}) => { return `${timestamp} [${level}] ${message} | ${setLogId} | Console`; }) const jsonFormat = printf(({ level, message, timestamp, stack}) => { var logId = setLogId setLogId = uuidv4() return `${timestamp} [${level}] ${message} | ${logId} | File`; }) return createLogger({ transports: [ new transports.Console({ level: 'debug', format: combine( format.colorize(), timestamp({ format: 'DD-MM-YY HH:mm:ss' }), logFormat ), }), new transports.File({ level: 'debug', filename: 'error.log', format: combine(timestamp({ format: 'DD-MM-YY HH:mm:ss' }), errors({ stack: true }), jsonFormat), }), ] }); }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda