Community translations by veiseule.ai — Help improve them on Crowdin
Skip to main content

การบันทึกล็อก

สำหรับภาพรวมที่ผู้ใช้มองเห็น (CLI + Control UI + คอนฟิก) ดูที่ /logging

OpenClaw มี “พื้นผิว” การบันทึกล็อกสองแบบ:

  • เอาต์พุตคอนโซล (สิ่งที่คุณเห็นในเทอร์มินัล / Debug UI)
  • ล็อกไฟล์ (บรรทัดJSON) ที่เขียนโดยตัวบันทึกล็อกของGateway

ตัวบันทึกล็อกแบบไฟล์

  • ไฟล์ล็อกแบบหมุนเวียนเริ่มต้นอยู่ภายใต้ /tmp/openclaw/ (หนึ่งไฟล์ต่อวัน): openclaw-YYYY-MM-DD.log
  • วันที่ใช้เขตเวลาท้องถิ่นของโฮสต์Gateway
  • สามารถกำหนดพาธไฟล์ล็อกและระดับได้ผ่าน ~/.openclaw/openclaw.json:
  • logging.file
  • logging.level

รูปแบบไฟล์เป็นอ็อบเจ็กต์JSONหนึ่งรายการต่อหนึ่งบรรทัด

แท็บ Logs ใน Control UI จะ tail ไฟล์นี้ผ่านGateway (logs.tail) CLI ก็ทำได้เช่นกัน: CLI can do the same:

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)

การปกปิดสรุปเครื่องมือ

สรุปเครื่องมือแบบverbose (เช่น 🛠️ Exec: ...) สามารถปกปิดโทเคนที่อ่อนไหวก่อนเข้าสู่ สตรีมคอนโซลได้ ฟีเจอร์นี้เป็น เฉพาะเครื่องมือเท่านั้น และไม่แก้ไขล็อกไฟล์ This is tools-only and does not alter file logs.

  • logging.redactSensitive: off | tools (ค่าเริ่มต้น: tools)
  • logging.redactPatterns: อาร์เรย์ของสตริงregex (แทนที่ค่าเริ่มต้น)
  • ใช้สตริงregexแบบดิบ (auto gi) หรือ /pattern/flags หากต้องการแฟล็กแบบกำหนดเอง
  • การจับคู่จะถูกปกปิดโดยคงอักขระ 6 ตัวแรก + 4 ตัวสุดท้าย (ความยาว >= 18) มิฉะนั้นเป็น ***
  • ค่าเริ่มต้นครอบคลุมการกำหนดคีย์ทั่วไป, แฟล็กCLI, ฟิลด์JSON, เฮดเดอร์bearer, บล็อกPEM และคำนำหน้าโทเคนยอดนิยม

ล็อก WebSocket ของGateway

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

ตัวอย่าง:

# optimized (only errors/slow)
openclaw gateway

# show all WS traffic (paired)
openclaw gateway --verbose --ws-log compact

# show all WS traffic (full meta)
openclaw gateway --verbose --ws-log full

การจัดรูปแบบคอนโซล (การบันทึกล็อกระดับซับซิสเต็ม)

ตัวจัดรูปแบบคอนโซล รับรู้TTY และพิมพ์บรรทัดที่สม่ำเสมอพร้อมคำนำหน้า ตัวบันทึกล็อกของซับซิสเต็มจะจัดกลุ่มเอาต์พุตให้สแกนได้ง่าย Subsystem loggers keep output grouped and scannable.

พฤติกรรม:

  • คำนำหน้าซับซิสเต็ม ในทุกบรรทัด (เช่น [gateway], [canvas], [tailscale])
  • สีของซับซิสเต็ม (คงที่ต่อซับซิสเต็ม) พร้อมสีตามระดับ
  • แสดงสีเมื่อเอาต์พุตเป็นTTYหรือสภาพแวดล้อมดูเป็นเทอร์มินัลที่สมบูรณ์ (TERM/COLORTERM/TERM_PROGRAM), เคารพ NO_COLOR
  • ย่อคำนำหน้าซับซิสเต็ม: ตัด gateway/ + channels/ ที่นำหน้าออก เหลือ 2 เซกเมนต์สุดท้าย (เช่น whatsapp/outbound)
  • ซับล็อกเกอร์แยกตามซับซิสเต็ม (คำนำหน้าอัตโนมัติ + ฟิลด์เชิงโครงสร้าง { subsystem })
  • logRaw() สำหรับเอาต์พุตQR/UX (ไม่มีคำนำหน้า ไม่มีการจัดรูปแบบ)
  • สไตล์คอนโซล (เช่น pretty | compact | json)
  • ระดับล็อกคอนโซล แยกจากระดับล็อกไฟล์ (ไฟล์ยังคงรายละเอียดเต็มเมื่อ logging.level ถูกตั้งเป็น debug/trace)
  • เนื้อความข้อความ WhatsApp จะถูกบันทึกที่ระดับ debug (ใช้ --verbose เพื่อดู)

สิ่งนี้ช่วยคงเสถียรภาพของล็อกไฟล์เดิม ขณะทำให้ออกพุตเชิงโต้ตอบสแกนได้ง่าย