30 lines
674 B
TypeScript
30 lines
674 B
TypeScript
/**
|
|
* Injectable logging interface and global logger
|
|
*/
|
|
export interface Logger {
|
|
/** Debug-level messages */
|
|
debug?(...args: unknown[]): void;
|
|
/** Informational messages */
|
|
info(...args: unknown[]): void;
|
|
/** Warning messages */
|
|
warn?(...args: unknown[]): void;
|
|
/** Error messages */
|
|
error(...args: unknown[]): void;
|
|
}
|
|
|
|
let globalLogger: Logger = console;
|
|
|
|
/**
|
|
* Replace the global logger implementation
|
|
* @param logger Custom logger adhering to Logger interface
|
|
*/
|
|
export function setLogger(logger: Logger): void {
|
|
globalLogger = logger;
|
|
}
|
|
|
|
/**
|
|
* Retrieve the current global logger
|
|
*/
|
|
export function getLogger(): Logger {
|
|
return globalLogger;
|
|
} |