import pino, { Logger as PinoLogger } from 'pino'; import { getPinoConfig } from './config'; export type Logger = PinoLogger; // Create the default logger instance export const logger: Logger = pino(getPinoConfig()); // Factory function to create child loggers with context export const createLogger = (name: string, context?: Record): Logger => { return logger.child({ name, ...context }); }; // Export log levels for consistency export const LogLevel = { TRACE: 'trace', DEBUG: 'debug', INFO: 'info', WARN: 'warn', ERROR: 'error', FATAL: 'fatal', } as const; export type LogLevelType = typeof LogLevel[keyof typeof LogLevel]; // Utility to check if a log level is enabled export const isLogLevelEnabled = (level: LogLevelType): boolean => { return logger.isLevelEnabled(level); }; // Re-export pino types that might be useful export type { LoggerOptions, DestinationStream } from 'pino'; // Default export for convenience export default logger;