Diagnostics
Flag diagnostik
Flag diagnostik memungkinkan Anda mengaktifkan log debug yang ditargetkan tanpa menyalakan logging verbose di semua tempat. Flag bersifat opt-in dan tidak berpengaruh kecuali suatu subsistem memeriksanya.
Cara kerjanya
- Flag adalah string (tidak peka huruf besar/kecil).
- Anda dapat mengaktifkan flag di config atau melalui override env.
- Wildcard didukung:
telegram.*cocok dengantelegram.http*mengaktifkan semua flag
Aktifkan melalui config
{ "diagnostics": { "flags": ["telegram.http"] }}Beberapa flag:
{ "diagnostics": { "flags": ["telegram.http", "brave.http", "gateway.*"] }}Mulai ulang Gateway setelah mengubah flag.
Override env (sekali pakai)
OPENCLAW_DIAGNOSTICS=telegram.http,telegram.payloadNonaktifkan semua flag:
OPENCLAW_DIAGNOSTICS=0OPENCLAW_DIAGNOSTICS=0 adalah override penonaktifan tingkat proses: ini menonaktifkan
flag dari env maupun config untuk proses tersebut.
Flag profiling
Flag profiler mengaktifkan span timing yang ditargetkan tanpa menaikkan level logging global. Flag ini dinonaktifkan secara default.
Aktifkan semua span yang digating profiler untuk satu kali jalan Gateway:
OPENCLAW_DIAGNOSTICS=profiler openclaw gateway runAktifkan hanya span profiler reply-dispatch:
OPENCLAW_DIAGNOSTICS=reply.profiler openclaw gateway runAktifkan hanya span profiler startup/tool/thread server aplikasi Codex:
OPENCLAW_DIAGNOSTICS=codex.profiler openclaw gateway runAktifkan flag profiler dari config:
{ "diagnostics": { "flags": ["reply.profiler", "codex.profiler"] }}Mulai ulang Gateway setelah mengubah flag config. Untuk menonaktifkan flag profiler,
hapus dari diagnostics.flags dan mulai ulang. Untuk menonaktifkan sementara semua
flag diagnostik meskipun config mengaktifkan flag profiler, mulai proses dengan:
OPENCLAW_DIAGNOSTICS=0 openclaw gateway runArtefak timeline
Flag timeline menulis event timing startup dan runtime terstruktur untuk
harness QA eksternal:
OPENCLAW_DIAGNOSTICS=timeline \OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=/tmp/openclaw-timeline.jsonl \openclaw gateway runAnda juga dapat mengaktifkannya di config:
{ "diagnostics": { "flags": ["timeline"] }}Path file timeline tetap berasal dari
OPENCLAW_DIAGNOSTICS_TIMELINE_PATH. Saat timeline diaktifkan hanya dari
config, span pemuatan config paling awal tidak dipancarkan karena OpenClaw belum
membaca config; span startup berikutnya menggunakan flag config.
OPENCLAW_DIAGNOSTICS=1, OPENCLAW_DIAGNOSTICS=all, dan
OPENCLAW_DIAGNOSTICS=* juga mengaktifkan timeline karena semuanya mengaktifkan setiap
flag diagnostik. Pilih timeline ketika Anda hanya menginginkan artefak timing
JSONL.
Record timeline menggunakan envelope openclaw.diagnostics.v1. Event dapat menyertakan
id proses, nama fase, nama span, durasi, id plugin, jumlah dependensi,
sampel delay event-loop, nama operasi provider, status keluar child-process,
dan nama/pesan error startup. Perlakukan file timeline sebagai artefak diagnostik
lokal; tinjau sebelum membagikannya ke luar mesin Anda.
Ke mana log ditulis
Flag memancarkan log ke file log diagnostik standar. Secara default:
/tmp/openclaw/openclaw-YYYY-MM-DD.logJika Anda menetapkan logging.file, gunakan path tersebut sebagai gantinya. Log berbentuk JSONL (satu objek JSON per baris). Redaksi tetap diterapkan berdasarkan logging.redactSensitive.
Ekstrak log
Pilih file log terbaru:
ls -t /tmp/openclaw/openclaw-*.log | head -n 1Filter diagnostik HTTP Telegram:
rg "telegram http error" /tmp/openclaw/openclaw-*.logFilter diagnostik HTTP Brave Search:
rg "brave http" /tmp/openclaw/openclaw-*.logAtau tail saat mereproduksi:
tail -f /tmp/openclaw/openclaw-$(date +%F).log | rg "telegram http error"Untuk Gateway jarak jauh, Anda juga dapat menggunakan openclaw logs --follow (lihat /cli/logs).
Catatan
- Jika
logging.leveldisetel lebih tinggi daripadawarn, log ini mungkin ditekan. Defaultinfosudah cukup. brave.httpmencatat URL/parameter query request Brave Search, status/timing respons, dan event cache hit/miss/write. Ini tidak mencatat API key atau body respons, tetapi query pencarian dapat bersifat sensitif.- Flag aman dibiarkan aktif; flag hanya memengaruhi volume log untuk subsistem tertentu.
- Gunakan /logging untuk mengubah tujuan log, level, dan redaksi.