التسجيل
للحصول على نظرة عامة للمستخدم (CLI + واجهة التحكم + التكوين)، راجع /logging. لدى OpenClaw "وجهين" للتسجيل:
- مخرجات الكونسول (ما تراه في الطرفية / واجهة التصحيح).
- سجلات الملفات (أسطر JSON) التي يكتبها مسجل البوابة.
مسجل قائم على الملفات
- ملف السجل الدوار الافتراضي موجود تحت
/tmp/openclaw/(ملف واحد لكل يوم):openclaw-YYYY-MM-DD.log- التاريخ يستخدم المنطقة الزمنية المحلية لخادم البوابة.
- يمكن تكوين مسار ملف السجل ومستواه عبر
~/.openclaw/openclaw.json:logging.filelogging.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لرؤيتها)
هذا يحافظ على استقرار سجلات الملفات الحالية مع جعل المخرجات التفاعلية قابلة للمسح.