From b3d7bfc5077cdc65af79a96ee670d2ea54c9d40c Mon Sep 17 00:00:00 2001 From: Nev Wylie <54870357+MSNev@users.noreply.github.com> Date: Thu, 4 Feb 2021 11:59:38 -0800 Subject: [PATCH] fix: correct the usage of default logger for level and update test - fix issue where the global diag level affected trailing tests --- .../opentelemetry-api/src/diag/logLevel.ts | 2 +- .../test/diag/logLevel.test.ts | 60 ++++++++++++++----- 2 files changed, 46 insertions(+), 16 deletions(-) diff --git a/packages/opentelemetry-api/src/diag/logLevel.ts b/packages/opentelemetry-api/src/diag/logLevel.ts index 7ac5eb17774..d85e4cef656 100644 --- a/packages/opentelemetry-api/src/diag/logLevel.ts +++ b/packages/opentelemetry-api/src/diag/logLevel.ts @@ -124,7 +124,7 @@ export function createLogLevelDiagLogger( } if (!logger) { - logger = DiagAPI.instance().getLogger(); + logger = DiagAPI.instance(); } function _filterFunc( diff --git a/packages/opentelemetry-api/test/diag/logLevel.test.ts b/packages/opentelemetry-api/test/diag/logLevel.test.ts index a8a16f1c1b9..61bb562c79e 100644 --- a/packages/opentelemetry-api/test/diag/logLevel.test.ts +++ b/packages/opentelemetry-api/test/diag/logLevel.test.ts @@ -15,7 +15,7 @@ */ import * as assert from 'assert'; -import { diag } from '../../src'; +import { diag, DiagAPI } from '../../src'; import { Logger } from '../../src/common/Logger'; import { createNoopDiagLogger, @@ -65,6 +65,7 @@ describe('LogLevelFilter DiagLogger', () => { beforeEach(() => { // set no logger diag.setLogger(null as any); + diag.setLogLevel(DiagLogLevel.INFO); // mock dummyLogger = {} as DiagLogger; @@ -213,6 +214,7 @@ describe('LogLevelFilter DiagLogger', () => { it(`should use default logger for undefined and log ${fName} message with ${map.message} level`, () => { diag.setLogger(dummyLogger); + diag.setLogLevel(DiagLogLevel.ALL); const testLogger = createLogLevelDiagLogger(map.level, undefined); testLogger[fName](`${fName} called %s`, 'param1'); diagLoggerFunctions.forEach(lName => { @@ -229,6 +231,7 @@ describe('LogLevelFilter DiagLogger', () => { it(`should use default logger for null and log ${fName} message with ${map.message} level`, () => { diag.setLogger(dummyLogger); + diag.setLogLevel(DiagLogLevel.ALL); const testLogger = createLogLevelDiagLogger(map.level, null); testLogger[fName](`${fName} called %s`, 'param1'); diagLoggerFunctions.forEach(lName => { @@ -260,21 +263,48 @@ describe('LogLevelFilter DiagLogger', () => { }); }); - it(`diag setLogLevel is ignored for specific logLevel logger and should log ${fName} message with ${map.message} level`, () => { - diag.setLogger(dummyLogger); - diag.setLogLevel(DiagLogLevel.NONE); + levelMap.forEach(masterLevelMap => { + it(`diag setLogLevel is not ignored when set to ${masterLevelMap.message} and using default logger to log ${fName} message with ${map.message} level`, () => { + diag.setLogger(dummyLogger); + diag.setLogLevel(masterLevelMap.level); - const testLogger = createLogLevelDiagLogger(map.level); - testLogger[fName](`${fName} called %s`, 'param1'); - diagLoggerFunctions.forEach(lName => { - if (fName === lName && map.ignoreFuncs.indexOf(lName) === -1) { - assert.deepStrictEqual(calledArgs[lName], [ - `${fName} called %s`, - 'param1', - ]); - } else { - assert.strictEqual(calledArgs[lName], null); - } + const testLogger = createLogLevelDiagLogger(map.level); + testLogger[fName](`${fName} called %s`, 'param1'); + diagLoggerFunctions.forEach(lName => { + if ( + fName === lName && + map.ignoreFuncs.indexOf(lName) === -1 && + masterLevelMap.ignoreFuncs.indexOf(lName) === -1 + ) { + assert.deepStrictEqual(calledArgs[lName], [ + `${fName} called %s`, + 'param1', + ]); + } else { + assert.strictEqual(calledArgs[lName], null); + } + }); + }); + + it(`diag setLogLevel is ignored when set to ${masterLevelMap.message} when using a specific logger to log ${fName} message with ${map.message} level`, () => { + diag.setLogger(dummyLogger); + diag.setLogLevel(masterLevelMap.level); + + const testLogger = createLogLevelDiagLogger( + map.level, + diag.getLogger() + ); + testLogger[fName](`${fName} called %s`, 'param1'); + diagLoggerFunctions.forEach(lName => { + if (fName === lName && map.ignoreFuncs.indexOf(lName) === -1) { + assert.deepStrictEqual(calledArgs[lName], [ + `${fName} called %s`, + 'param1', + ]); + } else { + assert.strictEqual(calledArgs[lName], null); + } + }); }); });