58 lines
1.2 KiB
TypeScript
58 lines
1.2 KiB
TypeScript
|
|
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();
|