Inyección automática

Activa la inyección con la variable de entorno DD_LOGS_INJECTION=true o configurando directamente el rastreador:

// Esta línea debe ir antes de importar el registrador.
const tracer = require('dd-trace').init({
    logInjection: true
});

Esto permite la inyección automática de ID de traza para bunyan, paperplane, pino y winston.

Si aún no lo has hecho, configura el rastreador de Node.js con DD_ENV, DD_SERVICE y DD_VERSION. Esto proporcionará la mejor experiencia para añadir env, service y version (ve etiquetado de servicios unificado para obtener más detalles).

Nota: La inyección automática solo funciona para logs con formato JSON.

Inyección manual

Si estás utilizando una biblioteca de registro no compatible con la inyección automática, pero utilizas el formato JSON, es posible hacer la inyección manual directamente en tu código.

Ejemplo con la console como registrador subyacente:

const tracer = require('dd-trace');
const formats = require('dd-trace/ext/formats');

class Logger {
    log(level, message) {
        const span = tracer.scope().active();
        const time = new Date().toISOString();
        const record = { time, level, message };

        if (span) {
            tracer.inject(span.context(), formats.LOG, record);
        }

        console.log(JSON.stringify(record));
    }
}

module.exports = Logger;

Leer más