|
4 | 4 | from typing import Optional, Literal |
5 | 5 | from .term import BCOLORS |
6 | 6 |
|
| 7 | +def levelstr2int(levelstr: str) -> int: |
| 8 | + import sys |
| 9 | + if sys.version_info < (3, 11): |
| 10 | + return logging.getLevelName(levelstr.upper()) |
| 11 | + else: |
| 12 | + return logging.getLevelNamesMapping()[levelstr.upper()] |
| 13 | + |
| 14 | +def levelint2str(levelint: int) -> str: |
| 15 | + return logging.getLevelName(levelint) |
| 16 | + |
7 | 17 | # ---- Main entry ---- |
8 | 18 | TermLogLevelT = Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"] |
9 | 19 | FileLogLevelT = Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL", "_ALL"] |
@@ -69,14 +79,14 @@ def _setupFileHandle(file_path: str, file_log_level: str, only_this_level = Fals |
69 | 79 | _fh.setLevel(file_log_level) |
70 | 80 | _fh.setFormatter(__file_fommatter) |
71 | 81 | if only_this_level: |
72 | | - _fh.addFilter(LevelFilter(logging.getLevelName(file_log_level))) |
| 82 | + _fh.addFilter(LevelFilter(levelstr2int(file_log_level))) |
73 | 83 | _mh = MemoryHandler(__mem_buffer_size, target=_fh, flushOnClose=True) |
74 | 84 | logger.addHandler(_mh) |
75 | 85 |
|
76 | 86 | # set up file handler |
77 | 87 | if file_log_level != "_ALL": |
78 | 88 | # get less critical log level and set it to be the level of logger |
79 | | - logger.setLevel(min(logging.getLevelName(term_log_level), logging.getLevelName(file_log_level))) |
| 89 | + logger.setLevel(min(levelstr2int(term_log_level), levelstr2int(file_log_level))) |
80 | 90 | if file_path is not None and file_path.endswith(".log"): |
81 | 91 | _setupFileHandle(file_path, file_log_level) |
82 | 92 | else: |
|
0 commit comments