Skip to content

Commit

Permalink
wdio-logger: fix setting log level for subloggers and docs (#3871)
Browse files Browse the repository at this point in the history
  • Loading branch information
mgrybyk authored and christian-bromann committed Apr 23, 2019
1 parent 2761cde commit 78ca355
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 15 deletions.
2 changes: 1 addition & 1 deletion docs/ConfigurationFile.md
Expand Up @@ -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
Expand Down
12 changes: 6 additions & 6 deletions packages/wdio-cli/src/templates/wdio.conf.tpl.ejs
Expand Up @@ -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
Expand Down
8 changes: 6 additions & 2 deletions packages/wdio-logger/src/node.js
Expand Up @@ -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])
}
})
Expand Down
9 changes: 3 additions & 6 deletions packages/wdio-logger/tests/node.test.js
Expand Up @@ -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', () => {
Expand Down

0 comments on commit 78ca355

Please sign in to comment.