import { ILogger } from './logger'; /** * Log levels */ export declare enum LogLevel { ERROR = "error", WARN = "warn", INFO = "info", DEBUG = "debug", TRACE = "trace" } /** * Log context interface */ export interface LogContext { /** Correlation ID for tracing across services */ correlationId?: string; /** Request ID for tracking individual requests */ requestId?: string; /** Task ID for task-specific logging */ taskId?: string; /** User ID or performer ID */ performerId?: string; /** Component or module name */ component?: string; /** Operation being performed */ operation?: string; /** Additional custom fields */ [key: string]: any; } /** * Log entry structure */ export interface LogEntry { /** Log level */ level: LogLevel; /** Log message */ message: string; /** Timestamp */ timestamp: string; /** Log context */ context: LogContext; /** Stack trace for errors */ stack?: string; /** Additional metadata */ metadata?: any; } /** * Log appender interface */ export interface LogAppender { /** Appender name */ name: string; /** Write log entry */ write(entry: LogEntry): Promise; } /** * Console log appender with structured output */ export declare class ConsoleLogAppender implements LogAppender { name: string; write(entry: LogEntry): Promise; } /** * File log appender with JSON format */ export declare class FileLogAppender implements LogAppender { private filePath; name: string; constructor(filePath: string); write(entry: LogEntry): Promise; } /** * Structured logger configuration */ export interface StructuredLoggerConfig { /** Log level */ level?: LogLevel; /** Default context to include in all logs */ defaultContext?: LogContext; /** Enable/disable logging */ enabled?: boolean; /** Log appenders */ appenders?: LogAppender[]; /** Include stack traces for warnings and errors */ includeStack?: boolean; } /** * Enhanced structured logger */ export declare class StructuredLogger implements ILogger { private config; private appenders; private correlationIdGenerator; constructor(config?: StructuredLoggerConfig); /** * Create a child logger with additional context */ child(context: LogContext): StructuredLogger; /** * Generate a new correlation ID */ generateCorrelationId(): string; /** * Add log appender */ addAppender(appender: LogAppender): void; /** * Remove log appender */ removeAppender(name: string): void; /** * Log an error */ error(message: string, meta?: any): void; /** * Log a warning */ warn(message: string, meta?: any): void; /** * Log info */ info(message: string, meta?: any): void; /** * Log debug information */ debug(message: string, meta?: any): void; /** * Log trace information */ trace(message: string, meta?: any): void; /** * Log with specific level and context */ logWithContext(level: LogLevel, message: string, context: LogContext, meta?: any): void; /** * Core logging method */ private log; /** * Check if we should log at this level */ private shouldLog; /** * Write log entry to all appenders */ private writeToAppenders; /** * Create correlation ID generator */ private createCorrelationIdGenerator; /** * Create request-scoped logger */ static forRequest(requestId: string, additionalContext?: LogContext): StructuredLogger; /** * Create task-scoped logger */ static forTask(taskId: string, additionalContext?: LogContext): StructuredLogger; /** * Create component-scoped logger */ static forComponent(component: string, additionalContext?: LogContext): StructuredLogger; } //# sourceMappingURL=structuredLogger.d.ts.map