import { config } from "@devpulse/config"; import pino from "pino"; const redactPaths = [ "*.token", "*.apiKey", "*.secret", "*.password", "*.authorization", "*.githubToken", "*.discordToken", "*.auth", "req.headers.authorization", "headers.authorization", ]; export const baseLogger = pino({ level: config.LOG_LEVEL, redact: { paths: redactPaths, censor: "[REDACTED]", }, timestamp: pino.stdTimeFunctions.isoTime, formatters: { level(label) { return { level: label }; }, }, }); export type Logger = pino.Logger; export function createChildLogger(context: { module?: string; requestId?: string; guildId?: string; userId?: string; command?: string; [key: string]: unknown; }): Logger { return baseLogger.child(context); } export const logger = createChildLogger({ module: "devpulse" });