@nestjs-labs/pino-http-extra
Version:
Enhanced pino-http with OpenTelemetry, Loki, file rotation and enterprise features.
54 lines • 1.92 kB
JavaScript
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
;