Node.js 로그 및 트레이스 상관관계 수립
자동 삽입
환경 변수 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;
참고 자료