aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/hydrorollcore/log.py
diff options
context:
space:
mode:
author简律纯 <i@jyunko.cn>2023-12-09 23:16:50 +0800
committerGitHub <noreply@github.com>2023-12-09 23:16:50 +0800
commit5781a072250a147d5e636b269fd0a8b7a0b045da (patch)
treeaffaf98bdc946e01318e965dbff74baf2343f747 /src/hydrorollcore/log.py
parent0e0c734226b0e954ccf66dc3c20598e11f494555 (diff)
parent672373d8d973d3c862fc7365aed39fee29613638 (diff)
downloadinfini-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.py35
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}")