Correlating Node.js Logs and Traces
Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel,
n'hésitez pas à nous contacter.
Automatic injection
Enable injection with the environment variable DD_LOGS_INJECTION=true
or by configuring the tracer directly:
// This line must come before importing the logger.
const tracer = require('dd-trace').init({
logInjection: true
});
This enables automatic trace ID injection for bunyan
, paperplane
, pino
, and winston
.
If you haven’t done so already, configure the Node.js tracer with DD_ENV
, DD_SERVICE
, and DD_VERSION
. This will provide the best
experience for adding env
, service
, and version
(see Unified Service Tagging for more details).
Note: Automatic injection only works for logs formatted as JSON.
Manual injection
If you are using a logging library not supported for automatic injection but are using JSON format, it’s possible to do manual injection directly in your code.
Example using console
as the underlying logger:
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;
Further Reading
Documentation, liens et articles supplémentaires utiles: