diff --git a/packages/aws-durable-execution-sdk-js/src/types/logger.ts b/packages/aws-durable-execution-sdk-js/src/types/logger.ts index f4531d7b..bb1a01a8 100644 --- a/packages/aws-durable-execution-sdk-js/src/types/logger.ts +++ b/packages/aws-durable-execution-sdk-js/src/types/logger.ts @@ -3,8 +3,8 @@ * Provides structured logging capabilities for durable execution contexts */ export interface Logger { - /** Generic log method with configurable level */ - log(level: string, message?: string, data?: unknown, error?: Error): void; + /** Generic log method with configurable level (optional for compatibility with popular loggers) */ + log?(level: string, message?: string, data?: unknown, error?: Error): void; /** Log error messages with optional error object and additional data */ error(message?: string, error?: Error, data?: unknown): void; /** Log warning messages with optional additional data */ diff --git a/packages/aws-durable-execution-sdk-js/src/utils/logger/context-logger.test.ts b/packages/aws-durable-execution-sdk-js/src/utils/logger/context-logger.test.ts index b6a2641b..04964c14 100644 --- a/packages/aws-durable-execution-sdk-js/src/utils/logger/context-logger.test.ts +++ b/packages/aws-durable-execution-sdk-js/src/utils/logger/context-logger.test.ts @@ -122,7 +122,7 @@ describe("Context Logger", () => { const logger = factory("generic-step"); const testError = new Error("generic error"); - logger.log("custom", "custom message", { custom: "data" }, testError); + logger.log?.("custom", "custom message", { custom: "data" }, testError); expect(mockBaseLogger.log).toHaveBeenCalledWith( "custom", @@ -173,7 +173,7 @@ describe("Context Logger", () => { const logger = factory("test-step"); // Test all logger methods to ensure coverage - logger.log( + logger.log?.( "custom", "log message", { data: "test" }, diff --git a/packages/aws-durable-execution-sdk-js/src/utils/logger/context-logger.ts b/packages/aws-durable-execution-sdk-js/src/utils/logger/context-logger.ts index 792d8272..eaa88ccf 100644 --- a/packages/aws-durable-execution-sdk-js/src/utils/logger/context-logger.ts +++ b/packages/aws-durable-execution-sdk-js/src/utils/logger/context-logger.ts @@ -36,19 +36,21 @@ export const createContextLoggerFactory = ( }; return { - log: ( - level: string, - message?: string, - data?: unknown, - error?: Error, - ): void => { - baseLogger.log( - level, - message, - createLogEntry(level, message, data, error), - error, - ); - }, + log: baseLogger.log + ? ( + level: string, + message?: string, + data?: unknown, + error?: Error, + ): void => { + baseLogger.log!( + level, + message, + createLogEntry(level, message, data, error), + error, + ); + } + : undefined, info: (message?: string, data?: unknown): void => { baseLogger.info(message, createLogEntry("info", message, data)); }, diff --git a/packages/aws-durable-execution-sdk-js/src/utils/logger/default-logger.test.ts b/packages/aws-durable-execution-sdk-js/src/utils/logger/default-logger.test.ts index 3a46b12c..b84291e3 100644 --- a/packages/aws-durable-execution-sdk-js/src/utils/logger/default-logger.test.ts +++ b/packages/aws-durable-execution-sdk-js/src/utils/logger/default-logger.test.ts @@ -26,7 +26,7 @@ describe("Default Logger", () => { const testData = { key: "value" }; const testError = new Error("test error"); - logger.log("custom", "test message", testData, testError); + logger.log?.("custom", "test message", testData, testError); expect(consoleSpy).toHaveBeenCalledWith( "custom", diff --git a/packages/aws-durable-execution-sdk-js/src/utils/logger/mode-aware-logger.test.ts b/packages/aws-durable-execution-sdk-js/src/utils/logger/mode-aware-logger.test.ts index 0ddea48b..5f36cf39 100644 --- a/packages/aws-durable-execution-sdk-js/src/utils/logger/mode-aware-logger.test.ts +++ b/packages/aws-durable-execution-sdk-js/src/utils/logger/mode-aware-logger.test.ts @@ -100,7 +100,7 @@ describe("Mode-Aware Logger", () => { false, ); - logger.log("custom", "log message", { data: "test" }, new Error("test")); + logger.log?.("custom", "log message", { data: "test" }, new Error("test")); logger.error("error message", new Error("test"), { data: "test" }); logger.warn("warn message", { data: "test" }); logger.debug("debug message", { data: "test" }); @@ -131,7 +131,7 @@ describe("Mode-Aware Logger", () => { true, ); - logger.log("custom", "log message"); + logger.log?.("custom", "log message"); logger.error("error message", new Error("test")); logger.warn("warn message"); logger.debug("debug message"); diff --git a/packages/aws-durable-execution-sdk-js/src/utils/logger/mode-aware-logger.ts b/packages/aws-durable-execution-sdk-js/src/utils/logger/mode-aware-logger.ts index c61c8a9a..a4621389 100644 --- a/packages/aws-durable-execution-sdk-js/src/utils/logger/mode-aware-logger.ts +++ b/packages/aws-durable-execution-sdk-js/src/utils/logger/mode-aware-logger.ts @@ -15,14 +15,16 @@ export const createModeAwareLogger = ( durableExecutionMode === DurableExecutionMode.ExecutionMode; return { - log: ( - level: string, - message?: string, - data?: unknown, - error?: Error, - ): void => { - if (shouldLog()) enrichedLogger.log(level, message, data, error); - }, + log: enrichedLogger.log + ? ( + level: string, + message?: string, + data?: unknown, + error?: Error, + ): void => { + if (shouldLog()) enrichedLogger.log!(level, message, data, error); + } + : undefined, info: (message?: string, data?: unknown): void => { if (shouldLog()) enrichedLogger.info(message, data); },