improve loggly request logging call (#15259)

This commit is contained in:
Phillip Thelen
2024-06-26 19:30:13 +02:00
committed by GitHub
parent c47b287a89
commit 26d070f2c3

View File

@@ -1,28 +1,35 @@
import { v4 as uuid } from 'uuid'; import { v4 as uuid } from 'uuid';
import omit from 'lodash/omit';
import logger from '../libs/logger'; import logger from '../libs/logger';
function buildBaseLogData (req) {
return {
requestId: req.requestIdentifier,
method: req.method,
url: req.originalUrl,
headers: omit(req.headers, ['x-api-key', 'cookie', 'password', 'confirmPassword']),
body: omit(req.body, ['password', 'confirmPassword']),
query: omit(req.query, ['password', 'confirmPassword']),
};
}
export const logRequestEnd = (req, res) => { export const logRequestEnd = (req, res) => {
const now = Date.now(); const now = Date.now();
const requestTime = now - req.requestStartTime; const requestTime = now - req.requestStartTime;
logger.info('Request completed', { const data = buildBaseLogData(req);
requestId: req.requestIdentifier, data.duration = requestTime;
method: req.method, data.endTime = now;
url: req.originalUrl, data.statusCode = res.statusCode;
duration: requestTime, logger.info('Request completed', data);
endTime: now,
statusCode: res.statusCode,
});
}; };
export const logRequestData = (req, res, next) => { export const logRequestData = (req, res, next) => {
req.requestStartTime = Date.now(); req.requestStartTime = Date.now();
req.requestIdentifier = uuid(); req.requestIdentifier = uuid();
logger.info('Request started', { const data = buildBaseLogData(req);
requestId: req.requestIdentifier, data.startTime = req.requestStartTime;
method: req.method, logger.info('Request started', data);
url: req.originalUrl,
startTime: req.requestStartTime,
});
req.on('close', () => { req.on('close', () => {
logRequestEnd(req, res); logRequestEnd(req, res);
}); });