@lit-protocol/logger
Version:
This package provides a centralized logging utility for the Lit Protocol SDK, offering structured logging capabilities across all packages. It enables consistent log formatting, level-based filtering, and standardized error reporting throughout the Lit Pr
96 lines (95 loc) • 2.92 kB
TypeScript
import { LOG_LEVEL, LOG_LEVEL_VALUES } from '@lit-protocol/constants';
export { LOG_LEVEL };
export declare enum LogLevel {
OFF = -1,
ERROR = 0,
INFO = 1,
DEBUG = 2,
WARN = 3,
FATAL = 4,
TIMING_START = 5,
TIMING_END = 6
}
interface ILog {
timestamp: string;
message: string;
args: any[];
id: string;
category: string;
level: LOG_LEVEL_VALUES;
error?: any;
toString(): string;
toJSON(): Record<string, unknown>;
}
declare class Log implements ILog {
timestamp: string;
message: string;
args: any[];
id: string;
category: string;
level: LOG_LEVEL_VALUES;
error?: any;
constructor(timestamp: string, message: string, args: any[], id: string, category: string, level: LOG_LEVEL_VALUES);
toString(): string;
toArray(): string[];
toJSON(): Record<string, unknown>;
}
export type messageHandler = (log: Log) => void;
export declare class Logger {
private _category;
private _level;
private _id;
private _handler;
private _consoleHandler;
private _logs;
private _logHashes;
private _config;
private _isParent;
private _children;
private _timestamp;
static createLogger(category: string, level: LOG_LEVEL_VALUES, id: string, isParent: boolean, config?: Record<string, any>): Logger;
private constructor();
get id(): string;
get category(): string;
get timestamp(): number;
get Logs(): Log[];
set Config(value: Record<string, any> | undefined);
get Config(): Record<string, any> | undefined;
get Children(): Map<string, Logger>;
setLevel(level: LOG_LEVEL_VALUES): void;
setHandler(handler: messageHandler): void;
info(message?: string, ...args: any[]): void;
debug(message?: string, ...args: any[]): void;
warn(message?: string, ...args: any[]): void;
error(message?: string, ...args: any[]): void;
fatal(message?: string, ...args: any[]): void;
trace(message?: string, ...args: any[]): void;
timeStart(message?: string, ...args: any[]): void;
timeEnd(message?: string, ...args: any[]): void;
private _log;
private _checkHash;
private _addLog;
private _addToLocalStorage;
/**
*
* @param input string which will be cleaned of non utf-8 characters
* @returns {string} input cleaned of non utf-8 characters
*/
private _cleanString;
}
export declare class LogManager {
private static _instance;
private _loggers;
private _level;
private _config;
static get Instance(): LogManager;
static clearInstance(): void;
private constructor();
withConfig(config: Record<string, any>): void;
setLevel(level: LOG_LEVEL_VALUES): void;
setHandler(handler: messageHandler): void;
get LoggerIds(): string[];
get(category: string, id?: string): Logger;
getById(id: string): string[];
getLogsForId(id: string): string[];
}