---
read_when:
    - تغيير مخرجات السجلات أو تنسيقاتها
    - تصحيح مخرجات CLI أو Gateway
summary: أسطح السجلات وملفات السجل وأنماط سجلات WS وتنسيق وحدة التحكم
title: سجلات Gateway
x-i18n:
    generated_at: "2026-04-26T11:29:40Z"
    model: gpt-5.4
    provider: openai
    source_hash: c005cfc4cfe456b3734d3928a16c9cd131a2b465d46f2aba9c9c61db22dcc399
    source_path: gateway/logging.md
    workflow: 15
---

# السجلات

للحصول على نظرة عامة موجهة للمستخدم (CLI + Control UI + الإعدادات)، راجع [/logging](/ar/logging).

لدى OpenClaw سطحان للسجلات:

- **مخرجات وحدة التحكم** (ما تراه في الطرفية / Debug UI).
- **ملفات السجلات** (أسطر JSON) التي يكتبها مسجل Gateway.

## المسجل المعتمد على الملفات

- يوجد ملف السجل المتجدد الافتراضي تحت `/tmp/openclaw/` (ملف واحد لكل يوم): `openclaw-YYYY-MM-DD.log`
  - يستخدم التاريخ المنطقة الزمنية المحلية لمضيف Gateway.
- تدور ملفات السجل النشطة عند `logging.maxFileBytes` (الافتراضي: 100 MB)، مع الاحتفاظ
  بما يصل إلى خمسة أرشيفات مرقمة ومتابعة الكتابة في ملف نشط جديد.
- يمكن تهيئة مسار ملف السجل والمستوى عبر `~/.openclaw/openclaw.json`:
  - `logging.file`
  - `logging.level`

تنسيق الملف هو كائن JSON واحد في كل سطر.

يقوم تبويب Logs في Control UI بتتبع هذا الملف عبر Gateway (`logs.tail`).
ويمكن لـ CLI فعل الشيء نفسه:

```bash
openclaw logs --follow
```

**Verbose مقابل مستويات السجل**

- يتم التحكم في **ملفات السجلات** حصريًا بواسطة `logging.level`.
- يؤثر `--verbose` فقط على **تفصيل مخرجات وحدة التحكم** (ونمط سجل WS)؛ وهو **لا**
  يرفع مستوى سجل الملف.
- لالتقاط التفاصيل الخاصة بـ verbose فقط في ملفات السجلات، اضبط `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 وبادئات الرموز الشائعة.

## سجلات Gateway WebSocket

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

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

### نمط سجل WS

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

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

أمثلة:

```bash
# مُحسّن (أخطاء/بطء فقط)
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` لرؤيتها)

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

## ذو صلة

- [السجلات](/ar/logging)
- [تصدير OpenTelemetry](/ar/gateway/opentelemetry)
- [تصدير التشخيصات](/ar/gateway/diagnostics)
