1.4 KiB
1.4 KiB
Logging structured traces
In order to have meaningful and useful log traces, you should follow some general guidelines described in the Project Guidelines.
In this project there is a specific logger in place that takes care of format and context of the traces for you. Take a look at logger.js (NOTE: that file will be moved soon to a common module).
The logger is instantiated as part of the app startup process, then passed to middlewares and other client classes.
There are many examples of how to use the logger to generate traces throughout the code. Here are a few of them:
lib/api/middlewares/logger.js: res.locals.logger.info({ client_request: req }, 'Incoming request');
lib/api/middlewares/logger.js: res.on('finish', () => res.locals.logger.info({ server_response: res, status: res.statusCode }, 'Response sent'));
lib/api/middlewares/profiler.js: logger.info({ stats, duration: stats.response / 1000, duration_ms: stats.response }, 'Request profiling stats');
lib/api/middlewares/tag.js: res.on('finish', () => logger.info({ tags: res.locals.tags }, 'Request tagged'));