From 78ca355dde7b14780730dae70496921bc501c9c1 Mon Sep 17 00:00:00 2001 From: Mykola Grybyk Date: Tue, 23 Apr 2019 16:00:15 +0200 Subject: [PATCH] wdio-logger: fix setting log level for subloggers and docs (#3871) --- docs/ConfigurationFile.md | 2 +- packages/wdio-cli/src/templates/wdio.conf.tpl.ejs | 12 ++++++------ packages/wdio-logger/src/node.js | 8 ++++++-- packages/wdio-logger/tests/node.test.js | 9 +++------ 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/docs/ConfigurationFile.md b/docs/ConfigurationFile.md index 875b9810173..ba84c8d447a 100644 --- a/docs/ConfigurationFile.md +++ b/docs/ConfigurationFile.md @@ -127,7 +127,7 @@ exports.config = { // use 'silent' level to disable logger logLevels: { webdriver: 'info', - 'wdio-applitools-service': 'info' + '@wdio/applitools-service': 'info' }, // // Set directory to store all logs into diff --git a/packages/wdio-cli/src/templates/wdio.conf.tpl.ejs b/packages/wdio-cli/src/templates/wdio.conf.tpl.ejs index 529292746b8..31307ff9e5e 100644 --- a/packages/wdio-cli/src/templates/wdio.conf.tpl.ejs +++ b/packages/wdio-cli/src/templates/wdio.conf.tpl.ejs @@ -104,15 +104,15 @@ exports.config = { // Set specific log levels per logger // loggers: // - webdriver, webdriverio - // - wdio-applitools-service, wdio-browserstack-service, wdio-devtools-service, wdio-sauce-service - // - wdio-mocha-framework, wdio-jasmine-framework - // - wdio-local-runner, wdio-lambda-runner - // - wdio-sumologic-reporter - // - wdio-cli, wdio-config, wdio-sync, wdio-utils + // - @wdio/applitools-service, @wdio/browserstack-service, @wdio/devtools-service, @wdio/sauce-service + // - @wdio/mocha-framework, @wdio/jasmine-framework + // - @wdio/local-runner, @wdio/lambda-runner + // - @wdio/sumologic-reporter + // - @wdio/cli, @wdio/config, @wdio/sync, @wdio/utils // Level of logging verbosity: trace | debug | info | warn | error | silent // logLevels: { // webdriver: 'info', - // 'wdio-applitools-service': 'info' + // '@wdio/applitools-service': 'info' // }, // // If you only want to run your tests until a specific amount of tests have failed use diff --git a/packages/wdio-logger/src/node.js b/packages/wdio-logger/src/node.js index 67ed1ae61cf..59d4b4c4066 100644 --- a/packages/wdio-logger/src/node.js +++ b/packages/wdio-logger/src/node.js @@ -128,12 +128,16 @@ export default function getLogger (name) { getLogger.setLevel = (name, level) => loggers[name].setLevel(level) getLogger.setLogLevelsConfig = (logLevels = {}) => { logLevelsConfig = {} + Object.keys(logLevels).forEach(loggerName => { const logLevelName = getLogLevelName(loggerName) - logLevelsConfig[logLevelName] = logLevels[loggerName] + }) + + Object.keys(loggers).forEach(loggerName => { + const logLevelName = getLogLevelName(loggerName) - if (loggers[loggerName]) { + if (logLevelsConfig[logLevelName] !== undefined) { loggers[loggerName].setLevel(logLevelsConfig[logLevelName]) } }) diff --git a/packages/wdio-logger/tests/node.test.js b/packages/wdio-logger/tests/node.test.js index 471c2c1b5c9..916ce16ccc6 100644 --- a/packages/wdio-logger/tests/node.test.js +++ b/packages/wdio-logger/tests/node.test.js @@ -89,17 +89,14 @@ describe('wdio-logger node', () => { it('should apply logLevels after loggers are created', () => { const log1 = nodeLogger('test-applyLogLevelsConfig1') - const log2 = nodeLogger('test-applyLogLevelsConfig2') + const log2 = nodeLogger('test-applyLogLevelsConfig1:foobar') expect(log1.getLevel()).toEqual(0) expect(log2.getLevel()).toEqual(0) - nodeLogger.setLogLevelsConfig({ - 'test-applyLogLevelsConfig1': 'error', - 'test-applyLogLevelsConfig2': 'debug' - }) + nodeLogger.setLogLevelsConfig({ 'test-applyLogLevelsConfig1': 'error' }) expect(log1.getLevel()).toEqual(4) - expect(log2.getLevel()).toEqual(1) + expect(log2.getLevel()).toEqual(4) }) it('should not change logLevel if not provided in config', () => {