UNPKG

openoracle-sdk-js

Version:

OpenOracle Node.js SDK - Intelligent Oracle Routing with Multiple LLM Providers

58 lines (56 loc) 2.18 kB
import { OracleConfig } from '../core/config'; export interface LogContext { provider?: string; requestId?: string; userId?: string; operation?: string; duration?: number; error?: Error; metadata?: Record<string, any>; } export declare class OracleLogger { private readonly logger; private readonly config; constructor(config: OracleConfig); private createWinstonLogger; private parseSize; debug(message: string, context?: LogContext): void; info(message: string, context?: LogContext): void; warn(message: string, context?: LogContext): void; error(message: string, context?: LogContext): void; private formatContext; logPerformance(operation: string, duration: number, context?: LogContext): void; logProviderQuery(provider: string, query: string, success: boolean, duration: number, error?: Error): void; logApiRequest(method: string, url: string, statusCode: number, duration: number, requestId?: string): void; logUserActivity(userId: string, action: string, details?: Record<string, any>): void; logSecurityEvent(event: string, severity: 'low' | 'medium' | 'high' | 'critical', details?: Record<string, any>): void; logBusinessEvent(event: string, value?: number, context?: LogContext): void; child(defaultContext: LogContext): OracleLogger; flush(): Promise<void>; } /** * Get the global logger instance */ export declare function getLogger(config?: OracleConfig): OracleLogger; /** * Set the global logger instance */ export declare function setLogger(logger: OracleLogger): void; /** * Create a performance timer */ export declare function createTimer(operation: string, logger?: OracleLogger): () => void; /** * Decorator for automatic performance logging */ export declare function logPerformance(operation?: string): (target: any, propertyName: string, descriptor: PropertyDescriptor) => PropertyDescriptor; /** * Structured logging helpers */ export declare const LogLevel: { readonly DEBUG: "debug"; readonly INFO: "info"; readonly WARN: "warn"; readonly ERROR: "error"; }; export type LogLevelType = typeof LogLevel[keyof typeof LogLevel];