feat: unify proxy config and centralize runtime logging
This commit is contained in:
1 parent
7af21bed6a
commit
80f2a82c19
9 files changed
+174
-43
No files matched your search
+19
-3
@@ -1,4 +1,10 @@
|
||||
import requests
|
||||
from utils.network_proxy import apply_global_proxy_from_env, get_send_msg_proxy_url
|
||||
from utils.project_logger import get_project_logger
|
||||
|
||||
|
||||
apply_global_proxy_from_env()
|
||||
logger = get_project_logger("send_msg")
|
||||
|
||||
class LarkNotifier:
|
||||
"""飞书消息发送工具类"""
|
||||
@@ -12,6 +18,16 @@ class LarkNotifier:
|
||||
# 使用 Session 可以复用底层 TCP 连接,提升发送效率
|
||||
self.session = requests.Session()
|
||||
|
||||
proxy_url = get_send_msg_proxy_url()
|
||||
if proxy_url:
|
||||
self.session.proxies.update({
|
||||
"http": proxy_url,
|
||||
"https": proxy_url,
|
||||
})
|
||||
logger.info("send_msg 使用独立代理: %s", proxy_url)
|
||||
else:
|
||||
logger.info("send_msg 未启用代理")
|
||||
|
||||
def send_alert(self, title: str, content: str):
|
||||
"""
|
||||
发送通用文本告警
|
||||
@@ -29,10 +45,10 @@ class LarkNotifier:
|
||||
# 使用 data=payload 发送 Form Data
|
||||
response = self.session.post(self.url, data=payload, timeout=5)
|
||||
response.raise_for_status()
|
||||
print(f"告警发送成功: {title}")
|
||||
logger.info("告警发送成功: %s", title)
|
||||
except Exception as e:
|
||||
# 告警系统自身的错误只记录日志,绝不抛出异常影响主程序
|
||||
print(f"发送飞书告警失败: {e}")
|
||||
logger.error("发送飞书告警失败: %s", e)
|
||||
|
||||
# 实例化一个全局单例供其他模块直接导入使用
|
||||
lark_notifier = LarkNotifier()
|
||||
lark_notifier = LarkNotifier()
|
||||
Reference in new issue
Block a user