UNPKG

@varia-bly/variably-sdk

Version:

Official JavaScript/TypeScript SDK for Variably feature flags, experimentation, and real-time dynamic configurations

78 lines 2.74 kB
/** * Logging utilities for Variably SDK */ export type LogLevel = 'debug' | 'info' | 'warn' | 'error'; export interface Logger { debug(message: string, meta?: Record<string, any>): void; info(message: string, meta?: Record<string, any>): void; warn(message: string, meta?: Record<string, any>): void; error(message: string, meta?: Record<string, any>): void; setLevel(level: LogLevel): void; } /** * Console-based logger implementation */ export declare class ConsoleLogger implements Logger { private level; private levelPriority; constructor(level?: LogLevel); debug(message: string, meta?: Record<string, any>): void; info(message: string, meta?: Record<string, any>): void; warn(message: string, meta?: Record<string, any>): void; error(message: string, meta?: Record<string, any>): void; setLevel(level: LogLevel): void; private log; } /** * Silent logger that discards all log messages */ export declare class SilentLogger implements Logger { debug(): void; info(): void; warn(): void; error(): void; setLevel(): void; } /** * Custom logger that allows injecting your own logging function */ export declare class CustomLogger implements Logger { private level; private levelPriority; private logFunction; constructor(logFunction: (level: LogLevel, message: string, meta?: Record<string, any>) => void, level?: LogLevel); debug(message: string, meta?: Record<string, any>): void; info(message: string, meta?: Record<string, any>): void; warn(message: string, meta?: Record<string, any>): void; error(message: string, meta?: Record<string, any>): void; setLevel(level: LogLevel): void; private log; } /** * Structured logger that formats logs as JSON */ export declare class StructuredLogger implements Logger { private level; private levelPriority; private service; constructor(level?: LogLevel, service?: string); debug(message: string, meta?: Record<string, any>): void; info(message: string, meta?: Record<string, any>): void; warn(message: string, meta?: Record<string, any>): void; error(message: string, meta?: Record<string, any>): void; setLevel(level: LogLevel): void; private log; } /** * Factory function to create appropriate logger based on environment */ export declare function createLogger(options?: { level?: LogLevel; type?: 'console' | 'silent' | 'structured'; custom?: (level: LogLevel, message: string, meta?: Record<string, any>) => void; }): Logger; /** * Get appropriate log level from environment variable */ export declare function getLogLevelFromEnv(defaultLevel?: LogLevel): LogLevel; //# sourceMappingURL=logger.d.ts.map