Files
svn/tech/client/交接文档/谭健交接文档/Script/LogServer/handler/LogPrint/LogPrint.ts
2025-08-04 10:46:00 +08:00

67 lines
2.0 KiB
TypeScript

import { Handler, LogLevel } from '../../Server';
import { Error, Log } from '../../type';
const LOG_SYSTEM_TITLE = 'SYSTEM';
const CONSOLE_COLOR = {
DEFAULT: '\x1B[0m',
SYSTEM: '\x1B[32m',
WARN: '\x1B[33m',
ERROR: '\x1B[35m',
LOG: '\x1B[36m',
}
export default class LogPrint implements Handler {
constructor() {
}
public onServerStart(): void {
this.logSystem(`onServerStart`)
}
public onServerStop(): void {
this.logSystem(`onServerStop`)
}
public onClientConnected(id: string): void {
this.logSystem(`onClientConnected: ${id}`);
}
public onClientLogMessage(id: string, logs: Log[]): void {
// this.logSystem(`onClientLogMessage: ${id}`);
logs.forEach(log => {
const date = new Date(log.time);
const timeString = `${date.getHours()}:${('0' + date.getMinutes()).slice(-2)}:${('0' + date.getSeconds()).slice(-2)}`;
switch (log.level) {
case LogLevel.Log:
console.log(`${CONSOLE_COLOR.LOG}[${timeString}][LOG] ${log.text}${CONSOLE_COLOR.DEFAULT}`);
break;
case LogLevel.Warn:
console.log(`${CONSOLE_COLOR.WARN}[${timeString}][WARN] ${log.text}${CONSOLE_COLOR.DEFAULT}`);
break;
case LogLevel.Error:
console.log(`${CONSOLE_COLOR.ERROR}[${timeString}][ERROR] ${log.text}${CONSOLE_COLOR.DEFAULT}`);
break;
}
});
}
public onClientErrorMessage(id: string, error: Error): void {
}
public onClientDisconnect(id: string): void {
this.logSystem(`onClientDisconnect: ${id}`);
}
private logSystem(text: string): void {
const date = new Date();
const timeString = `${date.getHours()}:${('0' + date.getMinutes()).slice(-2)}:${('0' + date.getSeconds()).slice(-2)}`;
console.log(`${CONSOLE_COLOR.SYSTEM}[${timeString}][${LOG_SYSTEM_TITLE}] ${text}${CONSOLE_COLOR.DEFAULT}`);
}
}