From 4839cc61195bcbe1babcfb6c28deb2266b50b7e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=82=E5=A3=B9?= <137363396+KBVsent@users.noreply.github.com> Date: Sat, 24 Jan 2026 17:31:23 +0900 Subject: [PATCH] feat: add configurable Dashboard API access log toggle (#4661) * feat: add configurable Dashboard API access log toggle * chore: remove Dashboard API access log configuration --- astrbot/core/config/default.py | 1 + astrbot/dashboard/server.py | 23 ++++++++++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/astrbot/core/config/default.py b/astrbot/core/config/default.py index 929a5ae5b..180b8f083 100644 --- a/astrbot/core/config/default.py +++ b/astrbot/core/config/default.py @@ -166,6 +166,7 @@ DEFAULT_CONFIG = { "jwt_secret": "", "host": "0.0.0.0", "port": 6185, + "disable_access_log": True, }, "platform": [], "platform_specific": { diff --git a/astrbot/dashboard/server.py b/astrbot/dashboard/server.py index 0afee6037..08fca73a9 100644 --- a/astrbot/dashboard/server.py +++ b/astrbot/dashboard/server.py @@ -7,6 +7,8 @@ from typing import cast import jwt import psutil from flask.json.provider import DefaultJSONProvider +from hypercorn.asyncio import serve +from hypercorn.config import Config as HyperConfig from psutil._common import addr as psutil_addr from quart import Quart, g, jsonify, request from quart.logging import default_handler @@ -244,11 +246,22 @@ class AstrBotDashboard: logger.info(display) - return self.app.run_task( - host=host, - port=port, - shutdown_trigger=self.shutdown_trigger, - ) + # 配置 Hypercorn + config = HyperConfig() + config.bind = [f"{host}:{port}"] + + # 根据配置决定是否禁用访问日志 + disable_access_log = self.core_lifecycle.astrbot_config.get( + "dashboard", {} + ).get("disable_access_log", True) + if disable_access_log: + config.accesslog = None + else: + # 启用访问日志,使用简洁格式 + config.accesslog = "-" + config.access_log_format = "%(h)s %(r)s %(s)s %(b)s %(D)s" + + return serve(self.app, config, shutdown_trigger=self.shutdown_trigger) async def shutdown_trigger(self): await self.shutdown_event.wait()