diff --git a/.changeset/ten-timers-sneeze.md b/.changeset/ten-timers-sneeze.md new file mode 100644 index 0000000000..b5b9d66de6 --- /dev/null +++ b/.changeset/ten-timers-sneeze.md @@ -0,0 +1,5 @@ +--- +'@sap-cloud-sdk/util': minor +--- + +[New Functionality] Add support for setting log level for newly created logger using environment variable `SAP_CLOUD_SDK_LOG_LEVEL`. diff --git a/packages/util/src/logger/cloud-sdk-logger.spec.ts b/packages/util/src/logger/cloud-sdk-logger.spec.ts index e0d87dfa26..f9e64d588a 100644 --- a/packages/util/src/logger/cloud-sdk-logger.spec.ts +++ b/packages/util/src/logger/cloud-sdk-logger.spec.ts @@ -48,9 +48,25 @@ describe('Cloud SDK Logger', () => { delete process.env.VCAP_SERVICES; }); - it('creates a new default logger', () => { + it('creates a new default logger with default log level info', () => { logger = createLogger(); expect(logger).not.toBeUndefined(); + expect(logger.level).toEqual('info'); + }); + + it('creates logger with log level from env variable, if one is specified', () => { + process.env.SAP_CLOUD_SDK_LOG_LEVEL = 'silly'; + + logger = createLogger(); + expect(logger).not.toBeUndefined(); + expect(logger.level).toEqual('silly'); + + const write = spyOnWrite(logger); + + logger.silly(message); + + expect(write).toHaveBeenCalled(); + delete process.env.SAP_CLOUD_SDK_LOG_LEVEL; }); it('creates a new logger for a module', () => { diff --git a/packages/util/src/logger/cloud-sdk-logger.ts b/packages/util/src/logger/cloud-sdk-logger.ts index f331e35230..0c8ceb45b3 100644 --- a/packages/util/src/logger/cloud-sdk-logger.ts +++ b/packages/util/src/logger/cloud-sdk-logger.ts @@ -116,6 +116,7 @@ export function createLogger( : { ...messageContext }; const logger = container.get(customFields.messageContext, { level: + process.env.SAP_CLOUD_SDK_LOG_LEVEL || customLogLevels[customFields.messageContext] || customFields.level || container.options.level ||