@untools/logger
Version:
An enhanced logger for JavaScript/TypeScript that handles DOM elements and circular references
68 lines (67 loc) • 1.79 kB
TypeScript
export declare enum LogLevel {
ERROR = 0,
WARN = 1,
INFO = 2,
DEBUG = 3
}
interface LoggerOptions {
showInProd?: boolean;
includeTimestamp?: boolean;
maxDepth?: number;
maxStringLength?: number;
enableCircularHandling?: boolean;
domElementFormat?: "inspect" | "summary" | "disabled";
prettyPrint?: boolean;
indentSize?: number;
colors?: boolean;
logLevel?: LogLevel;
namespace?: string;
enabled?: boolean;
}
declare class Logger {
private showInProd;
private includeTimestamp;
private maxDepth;
private maxStringLength;
private enableCircularHandling;
private domElementFormat;
private prettyPrint;
private indentSize;
private useColors;
private logLevel;
private namespace;
private enabled;
private env;
private consoleColors;
private browserColors;
constructor(options?: LoggerOptions);
/**
* Sets the log level.
* @param {LogLevel} level - The new log level
*/
setLogLevel(level: LogLevel): void;
/**
* Enables or disables logging.
* @param {boolean} enabled - Whether to enable logging
*/
setEnabled(enabled: boolean): void;
private getEnvironment;
private getCallerInfo;
private formatMetadata;
private formatDOMElement;
private colorizeText;
private getIndentation;
private formatArgument;
private _log;
log(...args: unknown[]): void;
debug(...args: unknown[]): void;
info(...args: unknown[]): void;
warn(...args: unknown[]): void;
error(...args: unknown[]): void;
group(label: string): void;
groupEnd(): void;
time(label: string): void;
timeEnd(label: string): void;
}
declare const logger: Logger;
export { Logger, logger, type LoggerOptions };