diff --git a/pyproject.toml b/pyproject.toml index eb657e8f..180f7b49 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ dynamic = ["version", "description"] license = {file = "LICENSE"} name = "d2py" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.9" dependencies = [] diff --git a/src/d2py/__init__.py b/src/d2py/__init__.py index 26c4d453..40e6427a 100644 --- a/src/d2py/__init__.py +++ b/src/d2py/__init__.py @@ -1,2 +1,2 @@ """Dive into Python.""" -__version__ = '0.5.10' +__version__ = '0.5.11' diff --git a/src/d2py/utils/log_config.py b/src/d2py/utils/log_config.py index 53c79754..05be50d1 100644 --- a/src/d2py/utils/log_config.py +++ b/src/d2py/utils/log_config.py @@ -1,9 +1,9 @@ import logging +from logging.handlers import RotatingFileHandler def config_logging( filename: str, logger_name: str="logger", - filemode: str='a', filter_mod_names: set=set(), default_filter_mod_names: set = { "matplotlib", "PIL", "asyncio", @@ -12,7 +12,6 @@ def config_logging( }, file_formatter: str="%(levelname)s|%(asctime)s|%(name)s| -> %(message)s\n|==>%(module)s.%(funcName)s@: %(pathname)s:%(lineno)d", stream_formatter: str="%(levelname)s|%(asctime)s|%(name)s| -> %(message)s", - rich_kwargs: dict|None=None, **kwargs): """配置 logging @@ -31,23 +30,17 @@ def config_logging( >>> ch = RichHandler(**rich_kwargs) ``` """ - logging.basicConfig(level=logging.DEBUG, - format=file_formatter, - datefmt='%m-%d %H:%M', - filename=filename, - filemode=filemode, **kwargs) - + logger = logging.getLogger(logger_name) # 禁用一些 debug 信息 for mod_name in filter_mod_names|default_filter_mod_names: _logger = logging.getLogger(mod_name) _logger.setLevel(logging.WARNING) - - # 创建日志级别更高的控制台处理程序 - if rich_kwargs: - from rich.logging import RichHandler - ch = RichHandler(**rich_kwargs) - else: - ch = logging.StreamHandler() + logger.setLevel(logging.DEBUG) + fh = RotatingFileHandler(filename, **kwargs) + fh.setFormatter(logging.Formatter(file_formatter)) + # fh.setLevel(logging.DEBUG) + logger.addHandler(fh) + ch = logging.StreamHandler() ch.setLevel(logging.INFO) # 或者 logging.ERROR ch_formatter = logging.Formatter(stream_formatter) ch.setFormatter(ch_formatter)