Files
gridpilot.gg/packages/automation/infrastructure/adapters/logging/ConsoleLogAdapter.ts
2025-12-14 18:11:59 +01:00

43 lines
1.4 KiB
TypeScript

import { LoggerPort } from '../../../application/ports/LoggerPort';
import { ConsoleLogger } from '../../../../shared/logging/ConsoleLogger';
import { LogContext } from '../../../application/ports/LoggerContext';
export class ConsoleLogAdapter implements LoggerPort {
private consoleLogger: ConsoleLogger;
private readonly context: LogContext;
constructor(context: LogContext = {}) {
this.consoleLogger = new ConsoleLogger();
this.context = context;
}
debug(message: string, context?: LogContext): void {
this.consoleLogger.debug(message, { ...this.context, ...context });
}
info(message: string, context?: LogContext): void {
this.consoleLogger.info(message, { ...this.context, ...context });
}
warn(message: string, context?: LogContext): void {
this.consoleLogger.warn(message, { ...this.context, ...context });
}
error(message: string, error?: Error, context?: LogContext): void {
this.consoleLogger.error(message, error, { ...this.context, ...context });
}
fatal(message: string, error?: Error, context?: LogContext): void {
this.consoleLogger.error(`FATAL: ${message}`, error, { ...this.context, ...context });
}
child(context: LogContext = {}): LoggerPort {
return new ConsoleLogAdapter({ ...this.context, ...context });
}
async flush(): Promise<void> {
// No-op for console logger as it's synchronous
return Promise.resolve();
}
}