ErisPulse 2.1.7.post1__py3-none-any.whl → 2.1.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,7 +29,29 @@ if _config is None:
29
29
  "port": 8000,
30
30
  "ssl_certfile": None,
31
31
  "ssl_keyfile": None
32
+ },
33
+ "logger": {
34
+ "level": "INFO",
35
+ "log_files": [],
36
+ "memory_limit": 1000
32
37
  }
33
38
  }
34
39
  env.setConfig("ErisPulse", defaultConfig)
35
- _config = defaultConfig
40
+ _config = defaultConfig
41
+
42
+ if _config.get("server") is None:
43
+ _config["server"] = {
44
+ "host": "0.0.0.0",
45
+ "port": 8000,
46
+ "ssl_certfile": None,
47
+ "ssl_keyfile": None
48
+ }
49
+ env.setConfig("ErisPulse", _config)
50
+
51
+ if _config.get("logger") is None:
52
+ _config["logger"] = {
53
+ "level": "INFO",
54
+ "log_files": [],
55
+ "memory_limit": 1000
56
+ }
57
+ env.setConfig("ErisPulse", _config)
ErisPulse/Core/logger.py CHANGED
@@ -14,6 +14,8 @@ import logging
14
14
  import inspect
15
15
  import datetime
16
16
  from typing import List, Dict, Any, Optional, Union, Type, Set, Tuple, FrozenSet
17
+ from rich.logging import RichHandler
18
+ from rich.console import Console
17
19
 
18
20
  class Logger:
19
21
  """
@@ -28,15 +30,36 @@ class Logger:
28
30
  {!--< /tips >!--}
29
31
  """
30
32
  def __init__(self):
33
+ self._max_logs = 1000
31
34
  self._logs = {}
32
35
  self._module_levels = {}
33
36
  self._logger = logging.getLogger("ErisPulse")
34
37
  self._logger.setLevel(logging.DEBUG)
35
38
  self._file_handler = None
36
39
  if not self._logger.handlers:
37
- console_handler = logging.StreamHandler()
38
- console_handler.setFormatter(logging.Formatter("%(message)s"))
40
+ console_handler = RichHandler(
41
+ console=Console(),
42
+ show_time=False,
43
+ show_level=True,
44
+ show_path=False,
45
+ markup=True
46
+ )
39
47
  self._logger.addHandler(console_handler)
48
+ self._setup_config()
49
+
50
+ def set_memory_limit(self, limit: int) -> bool:
51
+ """
52
+ 设置日志内存存储上限
53
+
54
+ :param limit: 日志存储上限
55
+ :return: bool 设置是否成功
56
+ """
57
+ if limit > 0:
58
+ self._max_logs = limit
59
+ return True
60
+ else:
61
+ self._logger.warning("日志存储上限必须大于0。")
62
+ return False
40
63
 
41
64
  def set_level(self, level: str) -> bool:
42
65
  """
@@ -63,8 +86,8 @@ class Logger:
63
86
  :param level: 日志级别(DEBUG/INFO/WARNING/ERROR/CRITICAL)
64
87
  :return: bool 设置是否成功
65
88
  """
66
- from .env import env
67
- if not env.get_module_status(module_name):
89
+ from .mods import mods
90
+ if not mods.get_module_status(module_name):
68
91
  self._logger.warning(f"模块 {module_name} 未启用,无法设置日志等级。")
69
92
  return False
70
93
  level = level.upper()
@@ -93,7 +116,8 @@ class Logger:
93
116
  for p in path:
94
117
  try:
95
118
  file_handler = logging.FileHandler(p, encoding='utf-8')
96
- file_handler.setFormatter(logging.Formatter("%(message)s"))
119
+ # 使用自定义格式化器去除rich markup标签
120
+ file_handler.setFormatter(logging.Formatter("[%(name)s] %(message)s"))
97
121
  self._logger.addHandler(file_handler)
98
122
  self._logger.info(f"日志输出已设置到文件: {p}")
99
123
  return True
@@ -141,10 +165,27 @@ class Logger:
141
165
  def _save_in_memory(self, ModuleName, msg):
142
166
  if ModuleName not in self._logs:
143
167
  self._logs[ModuleName] = []
168
+
169
+ # 检查日志数量是否超过限制
170
+ if len(self._logs[ModuleName]) >= self._max_logs:
171
+ self._logs[ModuleName].pop(0)
172
+
144
173
  timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
145
174
  msg = f"{timestamp} - {msg}"
146
175
  self._logs[ModuleName].append(msg)
147
176
 
177
+ def _setup_config(self):
178
+ from .env import env
179
+ _config = env.getConfig("ErisPulse")
180
+ if "logger" in _config:
181
+ logger_config = _config["logger"]
182
+ if "level" in logger_config:
183
+ self.set_level(logger_config["level"])
184
+ if "log_files" in logger_config and logger_config["log_files"]:
185
+ self.set_output_file(logger_config["log_files"])
186
+ if "memory_limit" in logger_config:
187
+ self.set_memory_limit(logger_config["memory_limit"])
188
+
148
189
  def _get_effective_level(self, module_name):
149
190
  return self._module_levels.get(module_name, self._logger.level)
150
191
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ErisPulse
3
- Version: 2.1.7.post1
3
+ Version: 2.1.8
4
4
  Summary: ErisPulse 是一个模块化、可扩展的异步 Python SDK 框架,主要用于构建高效、可维护的机器人应用程序。
5
5
  Author-email: "艾莉丝·格雷拉特(WSu2059)" <wsu2059@qq.com>, runoneall <runoobsteve@gmail.com>
6
6
  License: MIT License
@@ -1,15 +1,15 @@
1
1
  ErisPulse/__init__.py,sha256=T-N56UQyBmpvlqwH2wGi5ptPzaJpbgF5tKkJt0DlkaM,26099
2
2
  ErisPulse/__main__.py,sha256=QwHMu8lmWbjS3EyOYV-wea3I0xcGmH_McWNx7JSGwts,24853
3
- ErisPulse/Core/__init__.py,sha256=XnQFMn4HMKzxa6KHJEvOpwt0v8jp21vAbw6aG0O8sPs,722
3
+ ErisPulse/Core/__init__.py,sha256=xmz9RzIbM6umY-3FNFMLC5Pht7yBCH70XJG4Ehv0veU,1249
4
4
  ErisPulse/Core/adapter.py,sha256=lw5T336EsNtjUgSPdevcOZReZNkA8oYvvTRCHk_fo_o,18149
5
5
  ErisPulse/Core/env.py,sha256=D2BwtSbKggbeAsOzwwVv-kd5UkVmYlDUHtgLzFZqKUI,19841
6
- ErisPulse/Core/logger.py,sha256=VYhWKPXn88ib7S_OKCr_MibdnMH8k5sHkwLtNDZP3QM,7034
6
+ ErisPulse/Core/logger.py,sha256=4ZEdX2CB9L6WQH-GNKN-p_qpiZnwJr_w9Q9P0zF8U44,8451
7
7
  ErisPulse/Core/mods.py,sha256=2yIq8t9Ca9CBPRiZU0yr8Lc0XGmmkB7LlH-5FWqXjw4,7023
8
8
  ErisPulse/Core/raiserr.py,sha256=vlyaaiOIYkyqm9dAqSW9E54JBzX-9roHDp5_r6I0yUU,5591
9
9
  ErisPulse/Core/server.py,sha256=FkDTeLuHD5IBnWVxvYU8pHb6yCt8GzyvC1bpOiJ7G7I,9217
10
10
  ErisPulse/Core/util.py,sha256=7rdMmn6sBFqYd4znxBCcJjuv2eyTExdeKyZopgds868,3796
11
- erispulse-2.1.7.post1.dist-info/METADATA,sha256=hGo9d1vO8_GNViOyuE_ZaKEX9MvfVrIN6vNqKQwgQX8,6264
12
- erispulse-2.1.7.post1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
13
- erispulse-2.1.7.post1.dist-info/entry_points.txt,sha256=Jss71M6nEha0TA-DyVZugPYdcL14s9QpiOeIlgWxzOc,182
14
- erispulse-2.1.7.post1.dist-info/licenses/LICENSE,sha256=4jyqikiB0G0n06CEEMMTzTXjE4IShghSlB74skMSPQs,1464
15
- erispulse-2.1.7.post1.dist-info/RECORD,,
11
+ erispulse-2.1.8.dist-info/METADATA,sha256=g9cby76kIhcKukKJv508YJ0TOCqNv6doqQgmzwJkyfE,6258
12
+ erispulse-2.1.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
13
+ erispulse-2.1.8.dist-info/entry_points.txt,sha256=Jss71M6nEha0TA-DyVZugPYdcL14s9QpiOeIlgWxzOc,182
14
+ erispulse-2.1.8.dist-info/licenses/LICENSE,sha256=4jyqikiB0G0n06CEEMMTzTXjE4IShghSlB74skMSPQs,1464
15
+ erispulse-2.1.8.dist-info/RECORD,,