Add log level and log via connection
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
export enum LogLevel {
|
||||
Debug = 0,
|
||||
Info = 1,
|
||||
Warn = 2,
|
||||
Error = 3
|
||||
}
|
||||
|
||||
const loggers: Logger[] = [];
|
||||
let logLevel = LogLevel.Warn;
|
||||
|
||||
export interface Logger {
|
||||
/**
|
||||
* Show an error message.
|
||||
*
|
||||
* @param message The message to show.
|
||||
*/
|
||||
error(message: string): void;
|
||||
/**
|
||||
* Show a warning message.
|
||||
*
|
||||
* @param message The message to show.
|
||||
*/
|
||||
warn(message: string): void;
|
||||
/**
|
||||
* Show an information message.
|
||||
*
|
||||
* @param message The message to show.
|
||||
*/
|
||||
info(message: string): void;
|
||||
/**
|
||||
* Log a message.
|
||||
*
|
||||
* @param message The message to log.
|
||||
*/
|
||||
log(message: string): void;
|
||||
}
|
||||
|
||||
export function registerLogger(l: Logger) {
|
||||
loggers.push(l);
|
||||
}
|
||||
|
||||
export function setLogLevel(ll: LogLevel) {
|
||||
logLevel = ll;
|
||||
}
|
||||
|
||||
export function info(message: string): void {
|
||||
if (logLevel > LogLevel.Info) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (const l of loggers) {
|
||||
l.info(message);
|
||||
}
|
||||
}
|
||||
|
||||
export function warn(message: string): void {
|
||||
if (logLevel > LogLevel.Warn) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (const l of loggers) {
|
||||
l.warn(message);
|
||||
}
|
||||
}
|
||||
|
||||
export function error(message: string): void {
|
||||
if (logLevel > LogLevel.Error) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (const l of loggers) {
|
||||
l.error(message);
|
||||
}
|
||||
}
|
||||
|
||||
export function log(message: string): void {
|
||||
for (const l of loggers) {
|
||||
l.log(message);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user