Skip to content

Commit 441364a

Browse files
authored
10 create a method to set logging level (#20)
* Method for setting LOGLEVEL
1 parent 9dd428b commit 441364a

File tree

1 file changed

+41
-1
lines changed

1 file changed

+41
-1
lines changed

squape/report.py

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,48 @@ class LogLevel:
1717
FAIL = 40
1818
FATAL = 50
1919

20+
_nameToLevel = {
21+
"FATAL": FATAL,
22+
"FAIL": FAIL,
23+
"WARN": WARNING,
24+
"WARNING": WARNING,
25+
"LOG": LOG,
26+
"DEBUG": DEBUG,
27+
}
2028

21-
LOGLEVEL = LogLevel.LOG
29+
30+
def set_level(level) -> None:
31+
"""Sets the Squish logging level, Level must be an int or a str.
32+
33+
Args:
34+
level (int|str): log level to set
35+
36+
Examples:
37+
set_level(report.LogLevel.WARNING)
38+
set_level("FAIL")
39+
"""
40+
global LOGLEVEL
41+
LOGLEVEL = __translate_Level(level)
42+
43+
44+
LOGLEVEL = set_level(LogLevel.LOG)
45+
46+
47+
def __translate_Level(level) -> int:
48+
"""Translates the given log level to valid LogLevel
49+
50+
Args:
51+
level (int|str): log level to translate
52+
"""
53+
if isinstance(level, int):
54+
rv = level
55+
elif isinstance(level, str):
56+
if level not in LogLevel._nameToLevel:
57+
raise ValueError(f"Unknown LogLevel: {level}")
58+
rv = LogLevel._nameToLevel[level]
59+
else:
60+
raise TypeError(f"LogLevel is not an integer or a valid string: {level}")
61+
return rv
2262

2363

2464
def __is_level_enabled(level: LogLevel) -> bool:

0 commit comments

Comments
 (0)