brw-core-logger
Version:
This is frontend logger utility which is used to log messages in the frontend application.
52 lines (51 loc) • 1.56 kB
TypeScript
declare enum LogLevel {
DEBUG = 0,
INFO = 1,
WARN = 2,
ERROR = 3,
SILENT = 4
}
interface LogEntry {
timestamp: Date;
level: LogLevel;
name: string;
message: string;
data?: any;
duration?: number;
}
type LogHandler = (entry: LogEntry) => void;
declare class Logger {
private static globalLevel;
private static handlers;
private static performanceTimers;
private readonly name;
private level;
constructor(name: string, level?: LogLevel);
setLevel(level: LogLevel): void;
getLevel(): LogLevel;
debug(message: string, data?: any): void;
info(message: string, data?: any): void;
warn(message: string, data?: any): void;
error(message: string, data?: any): void;
/**
* Start performance timer
* @param message Description of the operation
* @param data Additional context data
* @returns Function to end the timer
*/
startTimer(message: string, data?: any): () => void;
/**
* Measure function execution time
* @param fn Function to measure
* @param message Performance description
* @param data Additional context
* @returns Function execution result
*/
measure<T>(fn: () => T | Promise<T>, message: string, data?: any): Promise<T>;
private log;
static addHandler(handler: LogHandler): void;
static removeHandler(handler: LogHandler): void;
static setGlobalLevel(level: LogLevel): void;
private static defaultConsoleHandler;
}
export { Logger, LogLevel, type LogHandler, type LogEntry };