88 lines
2.8 KiB
TypeScript
88 lines
2.8 KiB
TypeScript
import { TestConstants } from '../TestConstants';
|
|
|
|
/*********************************************************************
|
|
* Copyright (c) 2019 Red Hat, Inc.
|
|
*
|
|
* This program and the accompanying materials are made
|
|
* available under the terms of the Eclipse Public License 2.0
|
|
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
*
|
|
* SPDX-License-Identifier: EPL-2.0
|
|
**********************************************************************/
|
|
|
|
export abstract class Logger {
|
|
|
|
/**
|
|
* Uses for logging of fatal errors.
|
|
* @param text log text
|
|
*/
|
|
public static error(text: string, indentLevel: number = 1) {
|
|
this.logText(indentLevel, `[ERROR] ${text}`);
|
|
}
|
|
|
|
/**
|
|
* Uses for logging of recoverable errors and general warnings.
|
|
* @param text log text
|
|
*/
|
|
public static warn(text: string, indentLevel: number = 1) {
|
|
if (TestConstants.TS_SELENIUM_LOG_LEVEL === 'ERROR') {
|
|
return;
|
|
}
|
|
this.logText(indentLevel, `[WARN] ${text}`);
|
|
}
|
|
|
|
/**
|
|
* Uses for logging of the public methods of the pageobjects.
|
|
* @param text log text
|
|
*/
|
|
public static info(text: string, indentLevel: number = 3) {
|
|
if (TestConstants.TS_SELENIUM_LOG_LEVEL === 'ERROR' ||
|
|
TestConstants.TS_SELENIUM_LOG_LEVEL === 'WARN') {
|
|
return;
|
|
}
|
|
this.logText(indentLevel, `• ${text}`);
|
|
}
|
|
|
|
/**
|
|
* Uses for logging of the public methods of the pageobjects.
|
|
* @param text log text
|
|
*/
|
|
public static debug(text: string, indentLevel: number = 5) {
|
|
if (TestConstants.TS_SELENIUM_LOG_LEVEL === 'ERROR' ||
|
|
TestConstants.TS_SELENIUM_LOG_LEVEL === 'WARN' ||
|
|
TestConstants.TS_SELENIUM_LOG_LEVEL === 'INFO') {
|
|
return;
|
|
}
|
|
this.logText(indentLevel, `▼ ${text}`);
|
|
}
|
|
|
|
/**
|
|
* Uses for logging of the public methods of the {@link DriverHelper} or
|
|
* private methods inside of pageobjects.
|
|
* @param text log text
|
|
*/
|
|
public static trace(text: string, indentLevel: number = 6) {
|
|
if (TestConstants.TS_SELENIUM_LOG_LEVEL === 'ERROR' ||
|
|
TestConstants.TS_SELENIUM_LOG_LEVEL === 'WARN' ||
|
|
TestConstants.TS_SELENIUM_LOG_LEVEL === 'INFO' ||
|
|
TestConstants.TS_SELENIUM_LOG_LEVEL === 'DEBUG') {
|
|
return;
|
|
}
|
|
this.logText(indentLevel, `‣ ${text}`);
|
|
}
|
|
|
|
private static logText(messageIndentationLevel: number, text: string) {
|
|
// start group for every level
|
|
for (let i = 0; i < messageIndentationLevel; i++) {
|
|
console.group();
|
|
}
|
|
// print the trimmed text
|
|
// if multiline, the message should be properly padded
|
|
console.log(text);
|
|
// end group for every level
|
|
for (let i = 0; i < messageIndentationLevel; i++) {
|
|
console.groupEnd();
|
|
}
|
|
}
|
|
}
|