Diagnostics
แฟล็กการวินิจฉัย
แฟล็กการวินิจฉัยช่วยให้คุณเปิดใช้บันทึกดีบักแบบเจาะจงได้โดยไม่ต้องเปิดการบันทึกแบบละเอียดทุกส่วน แฟล็กเป็นแบบเลือกเปิดใช้ และจะไม่มีผลเว้นแต่ระบบย่อยจะตรวจสอบแฟล็กนั้น
วิธีการทำงาน
- แฟล็กเป็นสตริง (ไม่คำนึงถึงตัวพิมพ์เล็ก-ใหญ่)
- คุณสามารถเปิดใช้แฟล็กใน config หรือผ่าน env override ได้
- รองรับ wildcard:
telegram.*ตรงกับtelegram.http*เปิดใช้แฟล็กทั้งหมด
เปิดใช้ผ่าน config
{
"diagnostics": {
"flags": ["telegram.http"]
}
}
หลายแฟล็ก:
{
"diagnostics": {
"flags": ["telegram.http", "brave.http", "gateway.*"]
}
}
รีสตาร์ท Gateway หลังจากเปลี่ยนแฟล็ก
Env override (ใช้ครั้งเดียว)
OPENCLAW_DIAGNOSTICS=telegram.http,telegram.payload
ปิดใช้แฟล็กทั้งหมด:
OPENCLAW_DIAGNOSTICS=0
อาร์ติแฟกต์ Timeline
แฟล็ก timeline จะเขียนอีเวนต์เวลาของการเริ่มต้นและรันไทม์แบบมีโครงสร้างสำหรับ
harness QA ภายนอก:
OPENCLAW_DIAGNOSTICS=timeline \
OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=/tmp/openclaw-timeline.jsonl \
openclaw gateway run
คุณยังสามารถเปิดใช้ใน config ได้ด้วย:
{
"diagnostics": {
"flags": ["timeline"]
}
}
พาธไฟล์ timeline ยังคงมาจาก
OPENCLAW_DIAGNOSTICS_TIMELINE_PATH เมื่อเปิดใช้ timeline จาก
config เท่านั้น span ช่วงโหลด config แรกสุดจะไม่ถูกส่งออก เพราะ OpenClaw
ยังไม่ได้อ่าน config; span การเริ่มต้นถัดมาจะใช้แฟล็กจาก config
OPENCLAW_DIAGNOSTICS=1, OPENCLAW_DIAGNOSTICS=all และ
OPENCLAW_DIAGNOSTICS=* จะเปิดใช้ timeline ด้วย เพราะค่าเหล่านี้เปิดใช้
แฟล็กการวินิจฉัยทุกตัว ควรใช้ timeline เมื่อคุณต้องการเฉพาะอาร์ติแฟกต์เวลารูปแบบ JSONL
ระเบียน timeline ใช้ envelope openclaw.diagnostics.v1 อีเวนต์อาจมี
รหัสโปรเซส ชื่อเฟส ชื่อ span ระยะเวลา รหัส Plugin จำนวน dependency
ตัวอย่างความหน่วงของ event loop ชื่อการทำงานของ provider สถานะการออกของ child process
และชื่อ/ข้อความข้อผิดพลาดตอนเริ่มต้น ให้ถือไฟล์ 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 hit/miss/write โดยจะไม่บันทึก API keys หรือเนื้อหาการตอบกลับ แต่ query การค้นหาอาจมีข้อมูลละเอียดอ่อน- สามารถเปิดแฟล็กทิ้งไว้ได้อย่างปลอดภัย; แฟล็กมีผลเฉพาะปริมาณบันทึกของระบบย่อยที่ระบุเท่านั้น
- ใช้ /logging เพื่อเปลี่ยนปลายทาง ระดับ และการปกปิดของบันทึก