UNPKG

@nestjs-labs/pino-http-extra

Version:

Enhanced pino-http with OpenTelemetry, Loki, file rotation and enterprise features.

54 lines 1.92 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPinoHttpOption = getPinoHttpOption; const node_crypto_1 = require("node:crypto"); const pino_1 = __importDefault(require("pino")); const formatters_js_1 = require("./formatters.js"); const serializers_js_1 = require("./serializers.js"); function getPinoHttpOption(level = 'info', spanIdKey = 'spanId', traceIdKey = 'traceId') { return { level, quietReqLogger: false, timestamp: pino_1.default.stdTimeFunctions.isoTime, customAttributeKeys: { req: 'req', res: 'res', err: 'err', responseTime: 'taken(ms)', }, formatters: (0, formatters_js_1.getOtelFormatters)(spanIdKey, traceIdKey), serializers: (0, serializers_js_1.getSerializers)(), redact: { paths: [ 'password', 'reqBody.password', 'user.password', 'reqBody.user.password', ], }, genReqId: function (req, res) { const reqId = req.id ?? req.headers['x-request-id']; if (reqId) return reqId; const id = (0, node_crypto_1.randomUUID)(); res.setHeader('X-Request-Id', id); return id; }, customLogLevel(_, res, err) { if (res.statusCode >= 400 && res.statusCode < 500) { return 'warn'; } else if (res.statusCode >= 500 || err) { return 'error'; } else if (res.statusCode >= 300 && res.statusCode < 400) { return 'silent'; } return 'info'; }, }; } //# sourceMappingURL=options.js.map