From 4d2b49bdbaab5a3ef4a49ebdb3641572f64d367a Mon Sep 17 00:00:00 2001 From: sjvans <30337871+sjvans@users.noreply.github.com> Date: Wed, 13 Dec 2023 16:47:11 +0100 Subject: [PATCH] feat(logging): set level via env var (#4340) * feat(logging): set level via env var * add tests * add changeset * fix test * Update .changeset/ten-timers-sneeze.md --------- Co-authored-by: Deeksha Sinha <88374536+deekshas8@users.noreply.github.com> Co-authored-by: deekshas8 Co-authored-by: Marika Marszalkowski <868536+marikaner@users.noreply.github.com> --- .changeset/ten-timers-sneeze.md | 5 +++++ .../util/src/logger/cloud-sdk-logger.spec.ts | 18 +++++++++++++++++- packages/util/src/logger/cloud-sdk-logger.ts | 1 + 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 .changeset/ten-timers-sneeze.md 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 ||