diff options
| author | 2023-12-09 23:16:50 +0800 | |
|---|---|---|
| committer | 2023-12-09 23:16:50 +0800 | |
| commit | 5781a072250a147d5e636b269fd0a8b7a0b045da (patch) | |
| tree | affaf98bdc946e01318e965dbff74baf2343f747 /src/hydrorollcore/log.py | |
| parent | 0e0c734226b0e954ccf66dc3c20598e11f494555 (diff) | |
| parent | 672373d8d973d3c862fc7365aed39fee29613638 (diff) | |
| download | infini-5781a072250a147d5e636b269fd0a8b7a0b045da.tar.gz infini-5781a072250a147d5e636b269fd0a8b7a0b045da.zip | |
Merge pull request #35 from HydroRoll-Team/sourcery/pull-34
✨ 完善基类声明 (Sourcery refactored)
Diffstat (limited to 'src/hydrorollcore/log.py')
| -rw-r--r-- | src/hydrorollcore/log.py | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/src/hydrorollcore/log.py b/src/hydrorollcore/log.py index 3eb07e7a..ed62d0ae 100644 --- a/src/hydrorollcore/log.py +++ b/src/hydrorollcore/log.py @@ -3,29 +3,34 @@ 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="<magenta>{time:YYYY-MM-DD HH:mm:ss.SSS}</magenta> <level>[{level}]</level> > <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>", - ) - logger.add(sink=log_path, level="INFO", rotation="10 MB") # 每个日志文件最大为 10MB +def error_or_exception(message: str, exception: Exception, verbose: bool = True): + # 弃用的方法 + # logger.remove() + # logger.add( + # sys.stderr, + # format="<magenta>{time:YYYY-MM-DD HH:mm:ss.SSS}</magenta> <level>[{level}]</level> > <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>", + # ) + if verbose: - logger.exception(message) + logger.exception(exception) + logger.critical(message) else: logger.critical(f"{message} {exception!r}") |
