@varia-bly/variably-sdk
Version:
Official JavaScript/TypeScript SDK for Variably feature flags, experimentation, and real-time dynamic configurations
78 lines • 2.74 kB
TypeScript
/**
* 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