Skip to content
This repository was archived by the owner on Jul 29, 2024. It is now read-only.

feat(logger): Add log level configuration (#1451) #4068

Merged
merged 1 commit into from
Feb 12, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion lib/cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ let allowedNames = [
'frameworkPath',
'elementExplorer',
'debug',
'logLevel',
'disableChecks',
'browser',
'name',
Expand Down Expand Up @@ -134,7 +135,8 @@ let optimistOptions: any = {
troubleshoot: 'Turn on troubleshooting output',
elementExplorer: 'Interactively test Protractor commands',
debuggerServerPort: 'Start a debugger server at specified port instead of repl',
disableChecks: 'disable cli checks'
disableChecks: 'Disable cli checks',
logLevel: 'Define Protractor log level [ERROR, WARN, INFO, DEBUG]'
},
aliases: {
browser: 'capabilities.browserName',
Expand Down
7 changes: 7 additions & 0 deletions lib/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,13 @@ export interface Config {
*/
highlightDelay?: number;

/**
* Protractor log level
*
* default: INFO
*/
logLevel?: 'ERROR'|'WARN'|'INFO'|'DEBUG';

// ---------------------------------------------------------------------------
// ----- The test framework
// --------------------------------------------------
Expand Down
4 changes: 3 additions & 1 deletion lib/logger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ export class Logger {
static set(config: Config): void {
if (config.troubleshoot) {
Logger.logLevel = LogLevel.DEBUG;
} else if (config.logLevel) {
Logger.logLevel = LogLevel[config.logLevel];
}
}

Expand Down Expand Up @@ -139,7 +141,7 @@ export class Logger {
}
break;
default:
throw new Error('Log level undefined');
throw new Error('Invalid log level');
}
}

Expand Down
25 changes: 25 additions & 0 deletions spec/unit/logger_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -125,4 +125,29 @@ describe('the logger', function() {
expect(linesSplit[1]).toContain('{"foo":"bar"} ["foo","bar","foobar"] foobar');
});
});

describe('default log level is configurable', function () {
beforeEach(function() {
Logger.logLevel = LogLevel.ERROR;
});

afterEach(function() {
Logger.logLevel = LogLevel.DEBUG;
});

it('should be configurable statically', function () {
Logger.logLevel = LogLevel.WARN;
expect(Logger.logLevel).toBe(LogLevel.WARN);
});

it('should be configurable with "troubleshoot" property', function () {
Logger.set({ troubleshoot: true });
expect(Logger.logLevel).toBe(LogLevel.DEBUG);
});

it('should be configurable with "logLevel" property', function () {
Logger.set({ logLevel: 'WARN' });
expect(Logger.logLevel).toBe(LogLevel.WARN);
});
});
});