link-stack/packages/logger/src/index.ts
2025-11-21 14:55:28 +01:00

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;