wip
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
import type { LoggerPort } from '../../../application/ports/LoggerPort';
|
||||
import type { LogContext } from '../../../application/ports/LoggerContext';
|
||||
import type { ILogger } from '@gridpilot/shared/logging/ILogger';
|
||||
|
||||
export class NoOpLogAdapter implements LoggerPort {
|
||||
export class NoOpLogAdapter implements LoggerPort, ILogger {
|
||||
debug(_message: string, _context?: LogContext): void {}
|
||||
|
||||
info(_message: string, _context?: LogContext): void {}
|
||||
|
||||
@@ -2,6 +2,7 @@ import type { LoggerPort } from '@gridpilot/automation/application/ports/LoggerP
|
||||
import type { LogContext } from '@gridpilot/automation/application/ports/LoggerContext';
|
||||
import type { LogLevel } from '@gridpilot/automation/application/ports/LoggerLogLevel';
|
||||
import { loadLoggingConfig, type LoggingEnvironmentConfig } from '../../config/LoggingConfig';
|
||||
import type { ILogger } from '@gridpilot/shared/logging/ILogger';
|
||||
|
||||
const LOG_LEVEL_PRIORITY: Record<LogLevel, number> = {
|
||||
debug: 10,
|
||||
@@ -20,7 +21,7 @@ const LOG_LEVEL_PRIORITY: Record<LogLevel, number> = {
|
||||
*
|
||||
* This provides structured JSON logging to stdout with the same interface.
|
||||
*/
|
||||
export class PinoLogAdapter implements LoggerPort {
|
||||
export class PinoLogAdapter implements LoggerPort, ILogger {
|
||||
private readonly config: LoggingEnvironmentConfig;
|
||||
private readonly baseContext: LogContext;
|
||||
private readonly levelPriority: number;
|
||||
|
||||
Reference in New Issue
Block a user