From 714d69b2ba39e42285fb3604e3f24fbbd3b05582 Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Sat, 9 Dec 2023 21:18:44 +0800 Subject: :recycle: 使用multilogger及pathlib替代 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hydrorollcore/log.py | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) (limited to 'src/hydrorollcore/log.py') diff --git a/src/hydrorollcore/log.py b/src/hydrorollcore/log.py index 3eb07e7a..ec5c25f8 100644 --- a/src/hydrorollcore/log.py +++ b/src/hydrorollcore/log.py @@ -3,28 +3,32 @@ HydroRollCore 使用 [loguru](https://github.com/Delgan/loguru) 来记录日志信息。 自定义 logger 请参考 [loguru](https://github.com/Delgan/loguru) 文档。 """ -import os -import sys from datetime import datetime +from multilogging import multilogger +from pathlib import Path +from .settings import DEBUG -from loguru import logger as _logger __all__ = ["logger", "error_or_exception"] -logger = _logger -current_path = os.path.dirname(os.path.abspath("__file__")) -log_path = os.path.join( - current_path, "logs", datetime.now().strftime("%Y-%m-%d") + ".log" +logger = multilogger( + name="HydroRoll", payload="Core", level="DEBUG" if DEBUG else "INFO" ) +current_path = Path(__file__).resolve().parent +LOG_PATH = current_path / "logs" / (datetime.now().strftime("%Y-%m-%d") + ".log") +if not LOG_PATH.exists(): + LOG_PATH.mkdir(parents=True, exist_ok=True) +logger.add(sink=LOG_PATH, level="INFO", rotation="10 MB") # 每个日志文件最大为 10MB def error_or_exception(message: str, exception: Exception, verbose: bool): - logger.remove() - logger.add( - sys.stderr, - format="{time:YYYY-MM-DD HH:mm:ss.SSS} [{level}] > {name}:{function}:{line} - {message}", - ) - logger.add(sink=log_path, level="INFO", rotation="10 MB") # 每个日志文件最大为 10MB + # 弃用的方法 + # logger.remove() + # logger.add( + # sys.stderr, + # format="{time:YYYY-MM-DD HH:mm:ss.SSS} [{level}] > {name}:{function}:{line} - {message}", + # ) + if verbose: logger.exception(message) else: -- cgit v1.2.3-70-g09d2 From e20c3f29ae8297a8c76587e1e6b732a147798786 Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Sat, 9 Dec 2023 22:21:40 +0800 Subject: :bug: 修复logger.exception参数问题 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hydrorollcore/log.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/hydrorollcore/log.py') diff --git a/src/hydrorollcore/log.py b/src/hydrorollcore/log.py index ec5c25f8..ed62d0ae 100644 --- a/src/hydrorollcore/log.py +++ b/src/hydrorollcore/log.py @@ -21,7 +21,7 @@ if not LOG_PATH.exists(): logger.add(sink=LOG_PATH, level="INFO", rotation="10 MB") # 每个日志文件最大为 10MB -def error_or_exception(message: str, exception: Exception, verbose: bool): +def error_or_exception(message: str, exception: Exception, verbose: bool = True): # 弃用的方法 # logger.remove() # logger.add( @@ -30,6 +30,7 @@ def error_or_exception(message: str, exception: Exception, verbose: bool): # ) if verbose: - logger.exception(message) + logger.exception(exception) + logger.critical(message) else: logger.critical(f"{message} {exception!r}") -- cgit v1.2.3-70-g09d2