MCPcopy Create free account
hub / github.com/MiniMax-AI/OpenRoom / Logger

Class Logger

packages/vibe-container/src/utils/index.ts:24–125  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

22 * Debug logger utility
23 */
24export class Logger {
25 private static instances: Map<LoggerRole, Logger> = new Map();
26 private prefix: string;
27 private enabled: boolean = false;
28
29 private constructor(role: LoggerRole) {
30 this.prefix = role === 'client' ? '[ClientComManager]' : '[ParentComManager]';
31 if (typeof window !== 'undefined' && typeof localStorage !== 'undefined') {
32 this.enabled = localStorage.getItem('vibe_debug') === 'true';
33 }
34 }
35
36 static getInstance(role: LoggerRole): Logger {
37 if (!Logger.instances.has(role)) {
38 Logger.instances.set(role, new Logger(role));
39 }
40 return Logger.instances.get(role)!;
41 }
42
43 static setDebugEnabled(enabled: boolean): void {
44 Logger.instances.forEach((logger) => {
45 logger.enabled = enabled;
46 });
47 if (typeof localStorage !== 'undefined') {
48 localStorage.setItem('vibe_debug', String(enabled));
49 }
50 }
51
52 setEnabled(enabled: boolean): void {
53 this.enabled = enabled;
54 }
55
56 isEnabled(): boolean {
57 return this.enabled;
58 }
59
60 private log(level: string, message: string, data?: unknown): void {
61 if (!this.enabled) return;
62 const timestamp = new Date().toISOString().split('T')[1].slice(0, 12);
63 if (data !== undefined) {
64 console.log(`${this.prefix} ${timestamp} [${level}] ${message}`, data);
65 } else {
66 console.log(`${this.prefix} ${timestamp} [${level}] ${message}`);
67 }
68 }
69
70 send(type: string, messageId?: string, data?: unknown): void {
71 const idStr = messageId ? ` [${messageId.slice(-8)}]` : '';
72 this.log('SEND', `${type}${idStr}`, data);
73 }
74
75 receive(type: string, messageId?: string, data?: unknown): void {
76 const idStr = messageId ? ` [${messageId.slice(-8)}]` : '';
77 this.log('RECV', `${type}${idStr}`, data);
78 }
79
80 handshakeStart(appId?: number): void {
81 const idStr = appId ? ` (${appId})` : '';

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected