UNPKG

@spfn/core

Version:

SPFN Framework Core - File-based routing, transactions, repository pattern

151 lines (145 loc) 3.18 kB
/** * Logger Type Definitions * * 로깅 시스템 타입 정의 * * ✅ 구현 완료: * - LogLevel 타입 정의 * - LogMetadata 인터페이스 * - Transport 인터페이스 * - 환경별 설정 타입 * * 🔗 관련 파일: * - src/logger/logger.ts (Logger 클래스) * - src/logger/transports/ (Transport 구현체) * - src/logger/config.ts (설정) */ /** * 로그 레벨 * debug < info < warn < error < fatal */ type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal'; /** * 로그 메타데이터 */ interface LogMetadata { timestamp: Date; level: LogLevel; message: string; module?: string; error?: Error; context?: Record<string, unknown>; } /** * Transport 인터페이스 * 모든 Transport는 이 인터페이스를 구현해야 함 */ interface Transport { /** * Transport 이름 */ name: string; /** * 최소 로그 레벨 (이 레벨 이상만 처리) */ level: LogLevel; /** * 활성화 여부 */ enabled: boolean; /** * 로그 처리 함수 */ log(metadata: LogMetadata): Promise<void>; /** * Transport 종료 (리소스 정리) */ close?(): Promise<void>; } /** * Logger 설정 */ interface LoggerConfig { /** * 기본 로그 레벨 */ level: LogLevel; /** * 모듈명 (context) */ module?: string; /** * Transport 리스트 */ transports: Transport[]; } /** * Logger Class * * Central logging class with multiple transports, child loggers, and sensitive data masking. */ /** * Logger class */ declare class Logger { private readonly config; private readonly module?; constructor(config: LoggerConfig); /** * Get current log level */ get level(): LogLevel; /** * Create child logger (per module) */ child(module: string): Logger; /** * Debug log */ debug(message: string, context?: Record<string, unknown>): void; /** * Info log */ info(message: string, context?: Record<string, unknown>): void; /** * Warn log */ warn(message: string, context?: Record<string, unknown>): void; warn(message: string, error: Error, context?: Record<string, unknown>): void; /** * Error log */ error(message: string, context?: Record<string, unknown>): void; error(message: string, error: Error, context?: Record<string, unknown>): void; /** * Fatal log */ fatal(message: string, context?: Record<string, unknown>): void; fatal(message: string, error: Error, context?: Record<string, unknown>): void; /** * Log processing (internal) */ private log; /** * Process Transports */ private processTransports; /** * Transport log (error-safe) */ private safeTransportLog; /** * Close all Transports */ close(): Promise<void>; } /** * Logger Factory * * Creates and initializes the logger instance with configured transports */ /** * Singleton Logger instance */ declare const logger: Logger; export { type LogLevel, Logger, type Transport, logger };