自動挿入
環境変数 DD_LOGS_INJECTION=true か、直接トレーサーを構成することで挿入を有効にします:
// この行は、ロガーをインポートする前に記述する必要があります。
const tracer = require('dd-trace').init({
logInjection: true
});
これにより、bunyan、paperplane、pino、winston の自動トレース 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;
その他の参考資料