@russ-b/nestjs-common-tools
Version:
NestJS utility tools
62 lines • 2.05 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createPinoLoggerModuleOptions = createPinoLoggerModuleOptions;
const node_os_1 = require("node:os");
const nestjs_pino_1 = require("nestjs-pino");
const pino_1 = __importDefault(require("pino"));
const DEFAULT_REDACT_PATHS = [
'req.headers.authorization',
'req.headers.cookie',
'res.headers["set-cookie"]',
];
function createPinoLoggerModuleOptions(config) {
const pinoHttp = {
...nestjs_pino_1.nativeLoggerOptions,
level: config.level ?? 'debug',
base: {
pid: process.pid,
hostname: (0, node_os_1.hostname)(),
app: config.appName,
version: config.version ?? 'unknown',
env: config.environment ?? 'development',
...config.base,
},
redact: {
paths: config.redactPaths ?? DEFAULT_REDACT_PATHS,
censor: '[REDACTED]',
},
autoLogging: config.logHttpRequests ?? false,
};
if (config.pretty) {
delete pinoHttp.formatters;
return {
pinoHttp: {
...pinoHttp,
transport: {
target: 'pino-pretty',
options: {
colorize: true,
ignore: 'pid,hostname,app,version,env',
messageFormat: '[{context}] {message}',
messageKey: 'message',
singleLine: true,
timestampKey: 'timestamp',
translateTime: 'SYS:HH:MM:ss.l',
},
},
},
};
}
return {
pinoHttp: {
...pinoHttp,
stream: pino_1.default.destination({
sync: false,
}),
},
};
}
//# sourceMappingURL=pino-logger.js.map