You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

25 lines
762 B
JavaScript

const context = require('./context');
const loggerFactory = require('./logger');
const _ = require('lodash');
module.exports = {
create: (config) => {
module.exports.log = loggerFactory.create({
prodHost: config.prodHost,
prod: config.prod,
appTag: config.appTag
});
},
log: null,
context,
requestLogger:
(req, res, next) => {
res.setHeader('X-RequestId', context.getRequestId());
const requesterAddress = _.get(req, 'headers.x-forwarded-for', req.ip);
module.exports.log.info({
message: `${req.method} - ${req.url} - ${requesterAddress}`,
userEmail: req.user?.email
});
next();
}
}