@unito/integration-sdk
Version:
Integration SDK
19 lines (18 loc) • 721 B
JavaScript
import Logger from '../resources/logger.js';
const ADDITIONAL_CONTEXT_HEADER = 'X-Unito-Additional-Logging-Context';
function injectLogger(req, res, next) {
const logger = new Logger({ correlation_id: res.locals.correlationId });
res.locals.logger = logger;
const rawAdditionalContext = req.header(ADDITIONAL_CONTEXT_HEADER);
if (typeof rawAdditionalContext === 'string') {
try {
const additionalContext = JSON.parse(rawAdditionalContext);
logger.decorate(additionalContext);
}
catch (error) {
logger.warn(`Failed parsing header ${ADDITIONAL_CONTEXT_HEADER}: ${rawAdditionalContext}`);
}
}
next();
}
export default injectLogger;