| |
| |
| |
| |
| |
|
|
| |
| import * as fs from 'node:fs'; |
| import * as util from 'node:util'; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| class DebugLogger { |
| private logStream: fs.WriteStream | undefined; |
|
|
| constructor() { |
| this.logStream = process.env['GEMINI_DEBUG_LOG_FILE'] |
| ? fs.createWriteStream(process.env['GEMINI_DEBUG_LOG_FILE'], { |
| flags: 'a', |
| }) |
| : undefined; |
| |
| this.logStream?.on('error', (err) => { |
| |
| console.error('Error writing to debug log stream:', err); |
| }); |
| } |
|
|
| private writeToFile(level: string, args: unknown[]) { |
| if (this.logStream) { |
| const message = util.format(...args); |
| const timestamp = new Date().toISOString(); |
| const logEntry = `[${timestamp}] [${level}] ${message}\n`; |
| this.logStream.write(logEntry); |
| } |
| } |
|
|
| log(...args: unknown[]): void { |
| this.writeToFile('LOG', args); |
| console.log(...args); |
| } |
|
|
| warn(...args: unknown[]): void { |
| this.writeToFile('WARN', args); |
| console.warn(...args); |
| } |
|
|
| error(...args: unknown[]): void { |
| this.writeToFile('ERROR', args); |
| console.error(...args); |
| } |
|
|
| debug(...args: unknown[]): void { |
| this.writeToFile('DEBUG', args); |
| console.debug(...args); |
| } |
| } |
|
|
| export const debugLogger = new DebugLogger(); |
|
|