Browse Source

优化日志输出

Pchen0 4 hours ago
parent
commit
fe0d2e3c42
1 changed files with 9 additions and 8 deletions
  1. 9 8
      lib/Lepao/lepaoSchoolHttp.js

+ 9 - 8
lib/Lepao/lepaoSchoolHttp.js

@@ -115,15 +115,15 @@ function isProxyTlsHandshakeReset(err) {
 async function logSchoolOutbound(logger, phase, url, axiosMerge, opts = {}) {
     if (!logger?.info) return
     const path = briefUrlPath(url)
-    const mqPart = opts.mqTaskId ? ` mq_task_id=${opts.mqTaskId}` : ''
+    const taskPrefix = opts.mqTaskId ? ` [${opts.mqTaskId}]` : ''
     if (!axiosMerge || axiosMerge.proxy === false || !axiosMerge.proxy) {
-        logger.info(`[lepaoSchoolHttp] ${phase} POST 出站=直连${mqPart} path=${path}`)
+        logger.info(`[lepaoSchoolHttp]${taskPrefix} ${phase} POST 出站=直连 path=${path}`)
         return
     }
     const conn = `${axiosMerge.proxy.host}:${axiosMerge.proxy.port}`
     if (opts.skipQgSnapshot) {
         logger.info(
-            `[lepaoSchoolHttp] ${phase} POST 出站=调试HTTP代理(非青果)${mqPart} 连接=${conn} path=${path}`
+            `[lepaoSchoolHttp]${taskPrefix} ${phase} POST 出站=调试HTTP代理(非青果) 连接=${conn} path=${path}`
         )
         return
     }
@@ -132,7 +132,7 @@ async function logSchoolOutbound(logger, phase, url, axiosMerge, opts = {}) {
     const egress = snap?.proxyIp ?? '(暂无 proxy_ip)'
     const dl = snap?.deadline ?? '—'
     logger.info(
-        `[lepaoSchoolHttp] ${phase} POST 出站=HTTP代理${mqPart} 节点server=${serverRecord} 连接${conn} 出口IP(proxy_ip)=${egress} deadline=${dl} path=${path}`
+        `[lepaoSchoolHttp]${taskPrefix} ${phase} POST 出站=HTTP代理 节点server=${serverRecord} 连接${conn} 出口IP(proxy_ip)=${egress} deadline=${dl} path=${path}`
     )
 }
 
@@ -141,6 +141,7 @@ async function logSchoolOutbound(logger, phase, url, axiosMerge, opts = {}) {
  */
 async function postLepaoSchool(url, data, options = {}) {
     const { headers = {}, timeout = 15000, logger = null, outboundMode = 'auto', mqTaskId = null } = options
+    const taskPrefix = mqTaskId ? `[${mqTaskId}] ` : ''
 
     const doPost = async (qgProxyFragment, requestTimeout = timeout) => {
         const outbound = buildAxiosOutboundConfig(qgProxyFragment)
@@ -180,7 +181,7 @@ async function postLepaoSchool(url, data, options = {}) {
             err.retryable = true
             throw err
         }
-        logger?.error?.(`[lepaoSchoolHttp] 青果提取多次重试仍失败,改直连: ${e0.message || e0}`)
+        logger?.error?.(`[lepaoSchoolHttp] ${taskPrefix}青果提取多次重试仍失败,改直连: ${e0.message || e0}`)
         await logSchoolOutbound(logger, '(青果提取异常→直连)', url, { proxy: false })
         await QgProxyManager.recordFallbackDirect({
             reason: 'qg_extract_error',
@@ -200,7 +201,7 @@ async function postLepaoSchool(url, data, options = {}) {
     }
 
     if (frag.proxy === false) {
-        logger?.warn?.('[lepaoSchoolHttp] 无可用青果节点,对学校 POST 将直连')
+        logger?.warn?.(`[lepaoSchoolHttp] ${taskPrefix}无可用青果节点,对学校 POST 将直连`)
         if (outboundMode === 'proxy') {
             const err = new Error('代理模式无可用节点')
             err.code = 'PROXY_REQUIRED_NO_NODE'
@@ -225,7 +226,7 @@ async function postLepaoSchool(url, data, options = {}) {
         }
         if (!isQgProxyEligibleFailure(e1)) throw e1
         logger?.warn?.(
-            `[lepaoSchoolHttp] 经代理首次请求失败,将直接回退直连。err=${e1.message || e1} ${JSON.stringify(
+            `[lepaoSchoolHttp] ${taskPrefix}经代理首次请求失败,将直接回退直连。err=${e1.message || e1} ${JSON.stringify(
                 summarizeAxiosError(e1)
             )}`
         )
@@ -233,7 +234,7 @@ async function postLepaoSchool(url, data, options = {}) {
         const tls1 = isProxyTlsHandshakeReset(e1)
         if (tls1) {
             logger?.warn?.(
-                '[lepaoSchoolHttp] TLS 握手前经代理断开,隧道池模式直接直连(由服务商后台自动切换出口)'
+                `[lepaoSchoolHttp] ${taskPrefix}TLS 握手前经代理断开,隧道池模式直接直连(由服务商后台自动切换出口)`
             )
             await logSchoolOutbound(logger, '(TLS隧道异常→直连)', url, { proxy: false }, { mqTaskId })
             await QgProxyManager.recordFallbackDirect({