feat(cli): Add initial MOXYTOOL implementation, packaging, install/uninstall scripts, CI and release workflows
This commit is contained in:
57
ts/moxytool.logging.ts
Normal file
57
ts/moxytool.logging.ts
Normal file
@@ -0,0 +1,57 @@
|
||||
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();
|
||||
Reference in New Issue
Block a user