Files
inventory/inventory-server/shared/logging/request-log.js
T

33 lines
819 B
JavaScript

import { pinoHttp } from 'pino-http';
import { logger } from './logger.js';
export function requestLog(options = {}) {
return pinoHttp({
logger,
customLogLevel(req, res, err) {
if (err || res.statusCode >= 500) return 'error';
if (res.statusCode >= 400) return 'warn';
return 'info';
},
customSuccessMessage(req, res) {
return `${req.method} ${req.url} ${res.statusCode}`;
},
customErrorMessage(req, res, err) {
return `${req.method} ${req.url} ${res.statusCode} ${err?.message ?? ''}`;
},
serializers: {
req(req) {
return {
method: req.method,
url: req.url,
userId: req.raw?.user?.id,
};
},
res(res) {
return { statusCode: res.statusCode };
},
},
...options,
});
}