자동 삽입

환경 변수 DD_LOGS_INJECTION=true를 사용하거나 추적기를 직접 구성하여 삽입을 활성화합니다.

// 이 줄은 로거를 불러오기 전에 작성해야 합니다.
const tracer = require('dd-trace').init({
    logInjection: true
});

이렇게 하면 bunyan, paperplane, pino, winston의 trace ID 삽입을 자동으로 실행합니다.

아직 하지 않았다면 Node.js 추적기를 DD_ENV, DD_SERVICE, DD_VERSION으로 구성하세요. env, service, version 추가를 위한 최적의 환경을 제공합니다(통합 서비스 태깅 참고).

참고: 자동 삽입은 JSON 형식으로 된 로그에만 적용됩니다.

수동 삽입

로깅 라이브러리가 자동 삽입을 지원하지 않지만 JSON 형식을 사용한다면 코드에서 직접 삽입할 수도 있습니다.

console을 기본 로거로 사용하는 예:

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;

참고 자료

PREVIEWING: guacbot/translation-pipeline