Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

155
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!