mirror of
https://github.com/Cp0204/quark-auto-save.git
synced 2026-01-16 17:30:43 +08:00
将 TMDB 及网络重试日志的输出调整为 DEBUG 级别
- tmdb_service 中主/备地址失败与切换日志改为 debug - run.py 设置 urllib3/requests 日志级别为 ERROR - 为 urllib3.connectionpool 添加过滤器,自动将 “Retrying (...)” 告警降为 DEBUG
This commit is contained in:
parent
06b6ab04d4
commit
f7371b660b
21
app/run.py
21
app/run.py
@ -586,6 +586,27 @@ logging.basicConfig(
|
|||||||
format="[%(asctime)s][%(levelname)s] %(message)s",
|
format="[%(asctime)s][%(levelname)s] %(message)s",
|
||||||
datefmt="%m-%d %H:%M:%S",
|
datefmt="%m-%d %H:%M:%S",
|
||||||
)
|
)
|
||||||
|
# 降低第三方网络库的重试噪音:将 urllib3/requests 的日志调为 ERROR,并把“Retrying ...”消息降级为 DEBUG
|
||||||
|
try:
|
||||||
|
logging.getLogger("urllib3").setLevel(logging.ERROR)
|
||||||
|
logging.getLogger("requests").setLevel(logging.ERROR)
|
||||||
|
|
||||||
|
class _RetryWarningToDebug(logging.Filter):
|
||||||
|
def filter(self, record: logging.LogRecord) -> bool:
|
||||||
|
try:
|
||||||
|
msg = str(record.getMessage())
|
||||||
|
if "Retrying (Retry(" in msg or "Retrying (" in msg:
|
||||||
|
# 将此条记录的等级降到 DEBUG
|
||||||
|
record.levelno = logging.DEBUG
|
||||||
|
record.levelname = "DEBUG"
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
return True
|
||||||
|
|
||||||
|
_urllib3_logger = logging.getLogger("urllib3.connectionpool")
|
||||||
|
_urllib3_logger.addFilter(_RetryWarningToDebug())
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
# 过滤werkzeug日志输出
|
# 过滤werkzeug日志输出
|
||||||
if not DEBUG:
|
if not DEBUG:
|
||||||
logging.getLogger("werkzeug").setLevel(logging.ERROR)
|
logging.getLogger("werkzeug").setLevel(logging.ERROR)
|
||||||
|
|||||||
@ -41,7 +41,7 @@ class TMDBService:
|
|||||||
def reset_to_primary_url(self):
|
def reset_to_primary_url(self):
|
||||||
"""重置到主API地址"""
|
"""重置到主API地址"""
|
||||||
self.current_url = self.primary_url
|
self.current_url = self.primary_url
|
||||||
logger.info("TMDB API地址已重置为主地址")
|
logger.debug("TMDB API地址已重置为主地址")
|
||||||
|
|
||||||
def get_current_api_url(self) -> str:
|
def get_current_api_url(self) -> str:
|
||||||
"""获取当前使用的API地址"""
|
"""获取当前使用的API地址"""
|
||||||
@ -87,17 +87,17 @@ class TMDBService:
|
|||||||
pass
|
pass
|
||||||
return data
|
return data
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning(f"TMDB主地址请求失败: {e}")
|
logger.debug(f"TMDB主地址请求失败: {e}")
|
||||||
|
|
||||||
# 如果当前使用的是主地址,尝试切换到备用地址
|
# 如果当前使用的是主地址,尝试切换到备用地址
|
||||||
if self.current_url == self.primary_url:
|
if self.current_url == self.primary_url:
|
||||||
logger.info("尝试切换到TMDB备用地址...")
|
logger.debug("尝试切换到TMDB备用地址...")
|
||||||
self.current_url = self.backup_url
|
self.current_url = self.backup_url
|
||||||
try:
|
try:
|
||||||
url = f"{self.current_url}{endpoint}"
|
url = f"{self.current_url}{endpoint}"
|
||||||
response = self.session.get(url, params=params, timeout=10)
|
response = self.session.get(url, params=params, timeout=10)
|
||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
logger.info("TMDB备用地址连接成功")
|
logger.debug("TMDB备用地址连接成功")
|
||||||
data = response.json()
|
data = response.json()
|
||||||
try:
|
try:
|
||||||
self._cache[cache_key] = (_now(), data)
|
self._cache[cache_key] = (_now(), data)
|
||||||
@ -111,7 +111,7 @@ class TMDBService:
|
|||||||
return None
|
return None
|
||||||
else:
|
else:
|
||||||
# 如果备用地址也失败,重置回主地址
|
# 如果备用地址也失败,重置回主地址
|
||||||
logger.error(f"TMDB备用地址请求失败: {e}")
|
logger.debug(f"TMDB备用地址请求失败: {e}")
|
||||||
self.current_url = self.primary_url
|
self.current_url = self.primary_url
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@ -186,7 +186,7 @@ class TMDBService:
|
|||||||
return original_title
|
return original_title
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning(f"获取中文标题失败: {e}, 使用原始标题: {original_title}")
|
logger.debug(f"获取中文标题失败: {e}, 使用原始标题: {original_title}")
|
||||||
return original_title
|
return original_title
|
||||||
|
|
||||||
def get_tv_show_episodes(self, tv_id: int, season_number: int) -> Optional[Dict]:
|
def get_tv_show_episodes(self, tv_id: int, season_number: int) -> Optional[Dict]:
|
||||||
@ -458,7 +458,7 @@ class TMDBService:
|
|||||||
if poster_path:
|
if poster_path:
|
||||||
return poster_path
|
return poster_path
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning(f"获取原始语言海报失败: {e}")
|
logger.debug(f"获取原始语言海报失败: {e}")
|
||||||
|
|
||||||
# 如果设置为中文或原始语言获取失败,尝试中文海报
|
# 如果设置为中文或原始语言获取失败,尝试中文海报
|
||||||
if self.poster_language == "zh-CN" or self.poster_language == "original":
|
if self.poster_language == "zh-CN" or self.poster_language == "original":
|
||||||
@ -477,7 +477,7 @@ class TMDBService:
|
|||||||
if poster_path:
|
if poster_path:
|
||||||
return poster_path
|
return poster_path
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning(f"获取中文海报失败: {e}")
|
logger.debug(f"获取中文海报失败: {e}")
|
||||||
|
|
||||||
# 如果都失败了,返回默认海报路径
|
# 如果都失败了,返回默认海报路径
|
||||||
return details.get('poster_path', '')
|
return details.get('poster_path', '')
|
||||||
|
|||||||
@ -1886,7 +1886,7 @@
|
|||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text">名称筛选</span>
|
<span class="input-group-text">名称筛选</span>
|
||||||
</div>
|
</div>
|
||||||
<input type="text" class="form-control" v-model="calendar.nameFilter" placeholder="任务名称或剧集名称关键词">
|
<input type="text" class="form-control" v-model="calendar.nameFilter" placeholder="任务或节目名称关键词">
|
||||||
<div class="input-group-append">
|
<div class="input-group-append">
|
||||||
<button type="button" class="btn btn-outline-secondary filter-btn-square" @click="clearCalendarFilter('nameFilter')"><i class="bi bi-x-lg"></i></button>
|
<button type="button" class="btn btn-outline-secondary filter-btn-square" @click="clearCalendarFilter('nameFilter')"><i class="bi bi-x-lg"></i></button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user