Skip to content

Commit f88b858

Browse files
committed
refactor: fix log level handling for above py3.11
1 parent 1f27f46 commit f88b858

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

lires/core/logger.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import logging, os, asyncio
33
from typing import Optional, TYPE_CHECKING
44
from lires.utils import BCOLORS, TimeUtils
5+
from lires.utils.log import levelstr2int, levelint2str
56
from lires.api import LServerConn
67
if TYPE_CHECKING:
78
from lires.api.log import levelT
@@ -47,7 +48,7 @@ async def critical(self, msg: str, *args, **kwargs):
4748
async def log(self, level: int, msg: str, *args, **kwargs):
4849
if self.isEnabledFor(level):
4950
await self.__log(
50-
logging.getLevelName(level), # type: ignore
51+
levelint2str(level), # type: ignore
5152
msg
5253
)
5354
return super().log(level, msg, *args, **kwargs)
@@ -93,9 +94,9 @@ def setup_remote_logger(
9394

9495
# get less critical log level and set it to be the level of logger
9596
if remote_log_level:
96-
logger.setLevel(min(logging.getLevelName(term_log_level), logging.getLevelName(remote_log_level)))
97+
logger.setLevel(min(levelstr2int(term_log_level), levelstr2int(remote_log_level)))
9798
else:
98-
logger.setLevel(logging.getLevelName(term_log_level))
99+
logger.setLevel(levelstr2int(term_log_level))
99100

100101
# remove all other handlers
101102
logger.handlers.clear()

lires/utils/log.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,16 @@
44
from typing import Optional, Literal
55
from .term import BCOLORS
66

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+
717
# ---- Main entry ----
818
TermLogLevelT = Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"]
919
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
6979
_fh.setLevel(file_log_level)
7080
_fh.setFormatter(__file_fommatter)
7181
if only_this_level:
72-
_fh.addFilter(LevelFilter(logging.getLevelName(file_log_level)))
82+
_fh.addFilter(LevelFilter(levelstr2int(file_log_level)))
7383
_mh = MemoryHandler(__mem_buffer_size, target=_fh, flushOnClose=True)
7484
logger.addHandler(_mh)
7585

7686
# set up file handler
7787
if file_log_level != "_ALL":
7888
# 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)))
8090
if file_path is not None and file_path.endswith(".log"):
8191
_setupFileHandle(file_path, file_log_level)
8292
else:

0 commit comments

Comments
 (0)