التكوين والعمليات

التسجيل

للحصول على نظرة عامة للمستخدم (CLI + واجهة التحكم + التكوين)، راجع /logging. لدى OpenClaw "وجهين" للتسجيل:

  • مخرجات الكونسول (ما تراه في الطرفية / واجهة التصحيح).
  • سجلات الملفات (أسطر JSON) التي يكتبها مسجل البوابة.

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

  • ملف السجل الدوار الافتراضي موجود تحت /tmp/openclaw/ (ملف واحد لكل يوم): openclaw-YYYY-MM-DD.log
    • التاريخ يستخدم المنطقة الزمنية المحلية لخادم البوابة.
  • يمكن تكوين مسار ملف السجل ومستواه عبر ~/.openclaw/openclaw.json:
    • logging.file
    • logging.level

تنسيق الملف هو كائن JSON واحد لكل سطر. تبويب السجلات في واجهة التحكم يتتبع هذا الملف عبر البوابة (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: مصفوفة من سلاسل التعبيرات النمطية (تتجاوز الإعدادات الافتراضية)
    • استخدم سلاسل التعبيرات النمطية الخام (تلقائيًا gi)، أو /pattern/flags إذا كنت بحاجة إلى أعلام مخصصة.
    • يتم إخفاء التطابقات بالاحتفاظ بالأول 6 + آخر 4 أحرف (الطول >= 18)، وإلا ***.
    • التغطيات الافتراضية تشمل تعيينات المفاتيح الشائعة، أعلام CLI، حقول JSON، رؤوس Bearer، كتل PEM، وبادئات الرموز الشائعة.

سجلات WebSocket للبوابة

تطبع البوابة سجلات بروتوكول WebSocket في وضعين:

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

نمط سجل WS

يدعم openclaw gateway مفتاح تبديل نمط لكل بوابة:

  • --ws-log auto (الافتراضي): الوضع العادي مُحسّن؛ الوضع المفصل يستخدم مخرجات مضغوطة
  • --ws-log compact: مخرجات مضغوطة (طلب/استجابة مقترنة) عند التفصيل
  • --ws-log full: مخرجات كاملة لكل إطار عند التفصيل
  • --compact: اسم مستعار لـ --ws-log compact

أمثلة:

# مُحسّن (الأخطاء/البطيئة فقط)
openclaw gateway

# عرض كل حركة مرور WS (مقترنة)
openclaw gateway --verbose --ws-log compact

# عرض كل حركة مرور WS (ميتا كاملة)
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 لرؤيتها)

هذا يحافظ على استقرار سجلات الملفات الحالية مع جعل المخرجات التفاعلية قابلة للمسح.

DoctorGateway Lock