@spfn/core
Version:
SPFN Framework Core - File-based routing, transactions, repository pattern
95 lines (89 loc) • 2.31 kB
TypeScript
/**
* 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';
/**
* Logger Adapter Interface
*
* Logger 구현을 추상화하는 Adapter 인터페이스
* Pino, Winston, Custom 등 다양한 구현체로 교체 가능
*
* ✅ 구현 완료:
* - LoggerAdapter 인터페이스 정의
* - Child logger 지원
* - Error + Context 지원
*
* 💡 향후 고려사항:
* - Winston Adapter
* - Bunyan Adapter
*
* 🔗 관련 파일:
* - src/logger/adapters/pino.ts (Pino 구현)
* - src/logger/adapters/custom.ts (Custom 구현)
* - src/logger/index.ts (Adapter 선택)
*/
/**
* Logger Adapter 인터페이스
*
* 모든 Logger 구현체는 이 인터페이스를 구현해야 함
*/
interface LoggerAdapter {
/**
* Child logger 생성
*/
child(module: string): LoggerAdapter;
/**
* Debug 로그
*/
debug(message: string, context?: Record<string, unknown>): void;
/**
* Info 로그
*/
info(message: string, context?: Record<string, unknown>): void;
/**
* Warn 로그
*/
warn(message: string, context?: Record<string, unknown>): void;
warn(message: string, error: Error, context?: Record<string, unknown>): void;
/**
* Error 로그
*/
error(message: string, context?: Record<string, unknown>): void;
error(message: string, error: Error, context?: Record<string, unknown>): void;
/**
* Fatal 로그
*/
fatal(message: string, context?: Record<string, unknown>): void;
fatal(message: string, error: Error, context?: Record<string, unknown>): void;
/**
* 리소스 정리
*/
close?(): Promise<void>;
}
/**
* Logger Adapter Factory
*
* Adapter creation and initialization logic
*/
/**
* Singleton Logger instance
*/
declare const logger: LoggerAdapter;
export { type LogLevel, type LoggerAdapter, logger };