35 lines
No EOL
983 B
TypeScript
35 lines
No EOL
983 B
TypeScript
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<string, any>): 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; |