Files
web/apps/redis-api/src/utils/logger.ts
Anton Gunnarsson 7a8a5cdb76 Merged in chore/fix-redis-api-lint-issues (pull request #2552)
chore: Fix redis-api lint issues

* Fix redis-api lint issues


Approved-by: Matilda Landström
2025-07-11 09:37:29 +00:00

68 lines
1.6 KiB
TypeScript

import pino from "pino";
import { env } from "@/env";
import { SentryLogger } from "@/server/sentry.server.config";
import { mask } from "./mask";
const serializers: { [key: string]: pino.SerializerFn } = {
password: (payload) => {
if (payload) {
return env.IS_DEV
? mask(payload)
: mask(payload, {
visibleStart: 0,
visibleEnd: 0,
});
}
return payload;
},
email: (payload) => {
if (payload) {
return env.IS_DEV ? payload : mask(payload);
}
return payload;
},
};
export const baseLogger = pino({
level: process.env.LOG_LEVEL || "info",
timestamp: pino.stdTimeFunctions.isoTime,
serializers,
hooks: {
logMethod(args, method, level) {
const [msg, ...rest] = args;
switch (level) {
case pinoLevels.error:
SentryLogger.error(msg, rest);
break;
case pinoLevels.warn:
SentryLogger.warn(msg, rest);
break;
case pinoLevels.info:
SentryLogger.info(msg, rest);
break;
case pinoLevels.debug:
SentryLogger.debug(msg, rest);
break;
}
method.apply(this, args);
},
},
});
export const loggerModule = (loggerName: string) => {
return baseLogger.child({ module: loggerName });
};
const pinoLevels = {
trace: 10,
debug: 20,
info: 30,
warn: 40,
error: 50,
fatal: 60,
} as const;