Spaces:
Runtime error
Runtime error
File size: 908 Bytes
05cee1f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import pino from 'pino'
const isDev = process.env.NODE_ENV !== 'production'
export const logger = pino({
level: isDev ? 'debug' : 'info',
transport: isDev ? { target: 'pino-pretty', options: { colorize: true } } : undefined,
redact: {
paths: ['req.headers.cookie', 'req.headers.authorization', 'body.password', 'body.currentPassword', 'body.newPassword', 'body.token'],
censor: '[REDACTED]',
},
serializers: {
req: (req) => ({ method: req.method, url: req.url, ip: req.ip }),
res: (res) => ({ statusCode: res.statusCode }),
err: pino.stdSerializers.err,
},
timestamp: pino.stdTimeFunctions.isoTime,
})
export function requestLogger() {
return (req, res, next) => {
const start = Date.now()
res.on('finish', () => {
const duration = Date.now() - start
logger.info({ req, res, duration: `${duration}ms` }, 'request completed')
})
next()
}
}
|