الانتقال إلى المحتوى الرئيسي

التسجيل

للحصول على نظرة عامة موجهة للمستخدم (CLI + واجهة التحكم + التهيئة)، راجع /logging. يحتوي OpenClaw على «سطحين» للتسجيل:
  • مخرجات وحدة التحكم (ما تراه في الطرفية / واجهة التصحيح).
  • سجلات الملفات (أسطر JSON) التي يكتبها مسجل Gateway.

المسجل القائم على الملفات

  • ملف السجل الدوّار الافتراضي موجود ضمن /tmp/openclaw/ (ملف واحد لكل يوم): openclaw-YYYY-MM-DD.log
    • يستخدم التاريخ المنطقة الزمنية المحلية لمضيف Gateway.
  • يمكن تهيئة مسار ملف السجل ومستوى التسجيل عبر ~/.openclaw/openclaw.json:
    • logging.file
    • logging.level
تنسيق الملف هو كائن JSON واحد لكل سطر. تقوم علامة «Logs» في واجهة التحكم بمتابعة هذا الملف عبر Gateway (logs.tail). ويمكن لـ CLI القيام بالأمر نفسه:
openclaw logs --follow
التفصيل مقابل مستويات السجل
  • سجلات الملفات يتم التحكم بها حصريًا عبر logging.level.
  • يؤثر --verbose فقط على تفصيل وحدة التحكم (ونمط سجل WS)؛ ولا يقوم برفع مستوى سجل الملفات.
  • لالتقاط تفاصيل «التفصيل فقط» ضمن سجلات الملفات، اضبط logging.level على debug أو trace.

التقاط وحدة التحكم

يلتقط CLI console.log/info/warn/error/debug/trace ويكتبها إلى سجلات الملفات، مع الاستمرار في الطباعة إلى stdout/stderr. يمكنك ضبط تفصيل وحدة التحكم بشكل مستقل عبر:
  • logging.consoleLevel (الافتراضي info)
  • logging.consoleStyle (pretty | compact | json)

تنقيح ملخصات الأدوات

يمكن لملخصات الأدوات التفصيلية (مثل 🛠️ Exec: ...) إخفاء الرموز الحساسة قبل وصولها إلى تدفق وحدة التحكم. هذا خاص بالأدوات فقط ولا يغيّر سجلات الملفات.
  • logging.redactSensitive: off | tools (الافتراضي: tools)
  • logging.redactPatterns: مصفوفة من سلاسل regex (تتجاوز القيم الافتراضية)
    • استخدم سلاسل regex الخام (تلقائيًا gi)، أو /pattern/flags إذا كنت بحاجة إلى أعلام مخصصة.
    • يتم إخفاء المطابقات بالإبقاء على أول 6 + آخر 4 أحرف (عندما يكون الطول >= 18)، وإلا فسيتم ***.
    • تغطي الإعدادات الافتراضية تعيينات المفاتيح الشائعة، وأعلام CLI، وحقول JSON، ورؤوس bearer، وكتل PEM، وبوادئ الرموز الشائعة.

سجلات WebSocket الخاصة بـ Gateway

يطبع Gateway سجلات بروتوكول WebSocket في وضعين:
  • الوضع العادي (بدون --verbose): تُطبع فقط نتائج RPC «المهمة»:
    • الأخطاء (ok=false)
    • الاستدعاءات البطيئة (الحد الافتراضي: >= 50ms)
    • أخطاء التحليل
  • الوضع التفصيلي (--verbose): يطبع جميع حركة طلب/استجابة WS.

نمط سجل WS

يدعم openclaw gateway مفتاح تبديل نمط لكل Gateway:
  • --ws-log auto (الافتراضي): يكون الوضع العادي مُحسّنًا؛ ويستخدم الوضع التفصيلي إخراجًا مضغوطًا
  • --ws-log compact: إخراج مضغوط (طلب/استجابة مقترنان) عند التفصيل
  • --ws-log full: إخراج كامل لكل إطار عند التفصيل
  • --compact: اسم بديل لـ --ws-log compact
أمثلة:
# optimized (only errors/slow)
openclaw gateway

# show all WS traffic (paired)
openclaw gateway --verbose --ws-log compact

# show all WS traffic (full meta)
openclaw gateway --verbose --ws-log full

تنسيق وحدة التحكم (تسجيل الأنظمة الفرعية)

مُنسّق وحدة التحكم واعٍ بـ TTY ويطبع أسطر متسقة مع بادئات. تحافظ مسجلات الأنظمة الفرعية على تجميع المخرجات وقابليتها للمسح. السلوك:
  • بادئات الأنظمة الفرعية في كل سطر (مثل [gateway]، [canvas]، [tailscale])
  • ألوان الأنظمة الفرعية (ثابتة لكل نظام فرعي) بالإضافة إلى تلوين المستوى
  • التلوين عندما تكون المخرجات TTY أو عندما تبدو البيئة كطرفية غنية (TERM/COLORTERM/TERM_PROGRAM)، مع احترام NO_COLOR
  • اختصار بادئات الأنظمة الفرعية: إسقاط gateway/ + channels/ في البداية، والإبقاء على آخر مقطعين (مثل whatsapp/outbound)
  • مسجلات فرعية حسب النظام الفرعي (بادئة تلقائية + حقل مُهيكل { subsystem })
  • logRaw() لمخرجات QR/UX (بدون بادئة، بدون تنسيق)
  • أنماط وحدة التحكم (مثل pretty | compact | json)
  • مستوى سجل وحدة التحكم منفصل عن مستوى سجل الملفات (تحافظ الملفات على كامل التفاصيل عندما يكون logging.level مضبوطًا على debug/trace)
  • أجسام رسائل WhatsApp تُسجَّل عند debug (استخدم --verbose لرؤيتها)
يحافظ ذلك على استقرار سجلات الملفات الحالية مع جعل المخرجات التفاعلية قابلة للمسح.