Skip to content

Commit e8bd821

Browse files
authored
feat(log): append version number tag to WARN and ERROR level logs (#4388)
* feat(log): 在 WARN 和 ERROR 级别日志中追加版本号标签 * refactor(core): 简化日志版本标签过滤逻辑以包含 WARNING 及以上级别
1 parent 131950b commit e8bd821

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

astrbot/core/log.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030

3131
import colorlog
3232

33+
from astrbot.core.config.default import VERSION
34+
3335
# 日志缓存大小
3436
CACHED_SIZE = 200
3537
# 日志颜色配置
@@ -186,7 +188,7 @@ def GetLogger(cls, log_name: str = "default"):
186188

187189
# 创建彩色日志格式化器, 输出日志格式为: [时间] [插件标签] [日志级别] [文件名:行号]: 日志消息
188190
console_formatter = colorlog.ColoredFormatter(
189-
fmt="%(log_color)s [%(asctime)s] %(plugin_tag)s [%(short_levelname)-4s] [%(filename)s:%(lineno)d]: %(message)s %(reset)s",
191+
fmt="%(log_color)s [%(asctime)s] %(plugin_tag)s [%(short_levelname)-4s]%(astrbot_version_tag)s [%(filename)s:%(lineno)d]: %(message)s %(reset)s",
190192
datefmt="%H:%M:%S",
191193
log_colors=log_color_config,
192194
)
@@ -223,10 +225,21 @@ def filter(self, record):
223225
record.short_levelname = get_short_level_name(record.levelname)
224226
return True
225227

228+
class AstrBotVersionTagFilter(logging.Filter):
229+
"""在 WARNING 及以上级别日志后追加当前 AstrBot 版本号。"""
230+
231+
def filter(self, record):
232+
if record.levelno >= logging.WARNING:
233+
record.astrbot_version_tag = f" [v{VERSION}]"
234+
else:
235+
record.astrbot_version_tag = ""
236+
return True
237+
226238
console_handler.setFormatter(console_formatter) # 设置处理器的格式化器
227239
logger.addFilter(PluginFilter()) # 添加插件过滤器
228240
logger.addFilter(FileNameFilter()) # 添加文件名过滤器
229241
logger.addFilter(LevelNameFilter()) # 添加级别名称过滤器
242+
logger.addFilter(AstrBotVersionTagFilter()) # 追加版本号(WARNING 及以上)
230243
logger.setLevel(logging.DEBUG) # 设置日志级别为DEBUG
231244
logger.addHandler(console_handler) # 添加处理器到logger
232245

0 commit comments

Comments
 (0)