chore: Fix redis-api lint issues * Fix redis-api lint issues Approved-by: Matilda Landström
68 lines
1.6 KiB
TypeScript
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;
|