Files
moxytool/ts/moxytool.logging.ts

58 lines
1.2 KiB
TypeScript
Raw Normal View History

import * as plugins from './moxytool.plugins.ts';
/**
* A simple logger class for MOXYTOOL
*/
class Logger {
private static instance: Logger;
public static getInstance(): Logger {
if (!Logger.instance) {
Logger.instance = new Logger();
}
return Logger.instance;
}
public log(level: string, message: string): void {
const timestamp = new Date().toISOString();
switch (level) {
case 'error':
console.error(`[${timestamp}] [ERROR] ${message}`);
break;
case 'warn':
console.warn(`[${timestamp}] [WARN] ${message}`);
break;
case 'ok':
case 'success':
console.log(`[${timestamp}] [OK] ${message}`);
break;
case 'info':
default:
console.log(`[${timestamp}] [INFO] ${message}`);
break;
}
}
public error(message: string): void {
this.log('error', message);
}
public warn(message: string): void {
this.log('warn', message);
}
public info(message: string): void {
this.log('info', message);
}
public success(message: string): void {
this.log('success', message);
}
}
/**
* Logger instance for MOXYTOOL
*/
export const logger = Logger.getInstance();