@unito/integration-sdk
Version:
Integration SDK
23 lines (22 loc) • 869 B
JavaScript
import Logger from '../resources/logger.js';
const ADDITIONAL_CONTEXT_HEADER = 'X-Unito-Additional-Logging-Context';
const DEBUG_HEADER = 'X-Unito-Debug';
function injectLogger(req, res, next) {
const logger = new Logger({ correlation_id: res.locals.correlationId, request_id: res.locals.requestId });
res.locals.logger = logger;
if (req.header(DEBUG_HEADER)) {
logger.setLevel('debug');
}
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;