Diagnostics

پرچم‌های عیب‌یابی

پرچم‌های عیب‌یابی به شما امکان می‌دهند لاگ‌های اشکال‌زدایی هدفمند را بدون فعال کردن لاگ‌گیری تفصیلی در همه‌جا فعال کنید. پرچم‌ها اختیاری‌اند و مگر اینکه یک زیرسامانه آن‌ها را بررسی کند، اثری ندارند.

نحوه کار

  • پرچم‌ها رشته هستند (بدون حساسیت به بزرگی/کوچکی حروف).
  • می‌توانید پرچم‌ها را در پیکربندی یا از طریق یک بازنویسی env فعال کنید.
  • وایلدکارت‌ها پشتیبانی می‌شوند:
    • telegram.* با telegram.http مطابقت دارد
    • * همه پرچم‌ها را فعال می‌کند

فعال‌سازی از طریق پیکربندی

{
  "diagnostics": {
    "flags": ["telegram.http"]
  }
}

چند پرچم:

{
  "diagnostics": {
    "flags": ["telegram.http", "brave.http", "gateway.*"]
  }
}

پس از تغییر پرچم‌ها، Gateway را بازراه‌اندازی کنید.

بازنویسی env (موردی)

OPENCLAW_DIAGNOSTICS=telegram.http,telegram.payload

غیرفعال کردن همه پرچم‌ها:

OPENCLAW_DIAGNOSTICS=0

مصنوع‌های Timeline

پرچم timeline رویدادهای زمان‌بندی ساختاریافته راه‌اندازی و زمان اجرا را برای هارنس‌های QA خارجی می‌نویسد:

OPENCLAW_DIAGNOSTICS=timeline \
OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=/tmp/openclaw-timeline.jsonl \
openclaw gateway run

همچنین می‌توانید آن را در پیکربندی فعال کنید:

{
  "diagnostics": {
    "flags": ["timeline"]
  }
}

مسیر فایل timeline همچنان از OPENCLAW_DIAGNOSTICS_TIMELINE_PATH می‌آید. وقتی timeline فقط از طریق پیکربندی فعال شده باشد، نخستین spanهای بارگذاری پیکربندی منتشر نمی‌شوند، چون OpenClaw هنوز پیکربندی را نخوانده است؛ spanهای بعدی راه‌اندازی از پرچم پیکربندی استفاده می‌کنند.

OPENCLAW_DIAGNOSTICS=1، OPENCLAW_DIAGNOSTICS=all، و OPENCLAW_DIAGNOSTICS=* نیز timeline را فعال می‌کنند، چون همه پرچم‌های عیب‌یابی را فعال می‌کنند. وقتی فقط مصنوع زمان‌بندی JSONL را می‌خواهید، timeline را ترجیح دهید.

رکوردهای Timeline از پوشش openclaw.diagnostics.v1 استفاده می‌کنند. رویدادها می‌توانند شامل شناسه‌های پردازه، نام فازها، نام spanها، مدت‌زمان‌ها، شناسه‌های Plugin، تعداد وابستگی‌ها، نمونه‌های تاخیر حلقه رویداد، نام عملیات provider، وضعیت خروج فرایند فرزند، و نام‌ها/پیام‌های خطای راه‌اندازی باشند. فایل‌های timeline را به‌عنوان مصنوع‌های عیب‌یابی محلی در نظر بگیرید؛ پیش از اشتراک‌گذاری خارج از دستگاهتان آن‌ها را بازبینی کنید.

محل لاگ‌ها

پرچم‌ها لاگ‌ها را در فایل لاگ عیب‌یابی استاندارد منتشر می‌کنند. به‌طور پیش‌فرض:

/tmp/openclaw/openclaw-YYYY-MM-DD.log

اگر logging.file را تنظیم کرده‌اید، به‌جای آن از همان مسیر استفاده کنید. لاگ‌ها JSONL هستند (یک شیء JSON در هر خط). ویرایش اطلاعات حساس همچنان بر اساس logging.redactSensitive اعمال می‌شود.

استخراج لاگ‌ها

جدیدترین فایل لاگ را انتخاب کنید:

ls -t /tmp/openclaw/openclaw-*.log | head -n 1

فیلتر کردن عیب‌یابی HTTP مربوط به Telegram:

rg "telegram http error" /tmp/openclaw/openclaw-*.log

فیلتر کردن عیب‌یابی HTTP مربوط به Brave Search:

rg "brave http" /tmp/openclaw/openclaw-*.log

یا هنگام بازتولید مشکل، tail کنید:

tail -f /tmp/openclaw/openclaw-$(date +%F).log | rg "telegram http error"

برای Gatewayهای راه دور، می‌توانید از openclaw logs --follow نیز استفاده کنید (به /cli/logs مراجعه کنید).

نکات

  • اگر logging.level بالاتر از warn تنظیم شده باشد، ممکن است این لاگ‌ها سرکوب شوند. مقدار پیش‌فرض info مناسب است.
  • brave.http نشانی‌های URL/پارامترهای query درخواست Brave Search، وضعیت/زمان‌بندی پاسخ، و رویدادهای برخورد/عدم برخورد/نوشتن cache را لاگ می‌کند. کلیدهای API یا بدنه پاسخ را لاگ نمی‌کند، اما queryهای جست‌وجو می‌توانند حساس باشند.
  • فعال گذاشتن پرچم‌ها ایمن است؛ آن‌ها فقط حجم لاگ را برای زیرسامانه مشخص تحت تاثیر قرار می‌دهند.
  • برای تغییر مقصدهای لاگ، سطح‌ها، و ویرایش اطلاعات حساس از /logging استفاده کنید.

مرتبط