const uuid = require('uuid'); module.exports = {}; const log = ({ time, ...args }) => { console.log( JSON.stringify({ time: new Date().toISOString(), requestId, ...args }), ); }; const traced = (requestId) => ({ requestId: _, ...args }) => log({ requestId, ...args }); const middleware = (req, res, next) => { // generate (or use existing) requestId req.requestId = req.requestId || uuid.v4(); // set a tracing logger use elsewhere req.log = traced(req.requestId); req.log({ status: 'new' }); next(); }; module.exports = { log, traced, middleware };