From fd1f123d531e25ac066dae6a1ea8dc19fd1c0964 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Sat, 7 Oct 2023 02:50:20 +0800 Subject: feat: BREAKING CHANGES MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 白咕咕 Co-authored-by: kenichiLyon --- src/hydrorollcore/log.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/hydrorollcore/log.py (limited to 'src/hydrorollcore/log.py') diff --git a/src/hydrorollcore/log.py b/src/hydrorollcore/log.py new file mode 100644 index 00000000..19073fc3 --- /dev/null +++ b/src/hydrorollcore/log.py @@ -0,0 +1,30 @@ +"""HydroRollCore 日志。 + +HydroRollCore 使用 [loguru](https://github.com/Delgan/loguru) 来记录日志信息。 +自定义 logger 请参考 [loguru](https://github.com/Delgan/loguru) 文档。 +""" +import os +import sys +from datetime import datetime + +from loguru import logger as _logger + +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" +) + + +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 + if verbose: + logger.exception(message) + else: + logger.critical(f"{message} {exception!r}") \ No newline at end of file -- cgit v1.2.3-70-g09d2