Gateway

การบันทึกล็อกของ Gateway

การบันทึก log

สำหรับภาพรวมที่ผู้ใช้เห็น (CLI + Control UI + config) โปรดดู /logging

OpenClaw มี "พื้นผิว" ของ log สองแบบ:

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

เมื่อเริ่มต้น Gateway จะบันทึก log โมเดล agent เริ่มต้นที่แก้ค่าแล้ว พร้อมกับ ค่าเริ่มต้นของโหมดที่มีผลต่อเซสชันใหม่ เช่น:

text
agent model: openai/gpt-5.5 (thinking=medium, fast=on)

thinking มาจาก agent เริ่มต้น, พารามิเตอร์ของโมเดล, หรือค่าเริ่มต้น agent ส่วนกลาง; เมื่อไม่ได้ตั้งค่าไว้ สรุปตอนเริ่มต้นจะแสดง medium fast มาจาก agent เริ่มต้นหรือพารามิเตอร์ fastMode ของโมเดล

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

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

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

เส้นทางโค้ดการสนทนา, เสียงแบบเรียลไทม์, และห้องที่จัดการ ใช้ตัวบันทึก log ไฟล์ร่วมสำหรับ ระเบียนวงจรชีวิตแบบมีขอบเขต ระเบียนเหล่านี้มีไว้สำหรับการดีบักเชิงปฏิบัติการ และการส่งออก log ของ OTLP; ข้อความทรานสคริปต์, เพย์โหลดเสียง, turn ids, call ids, และ provider item ids จะไม่ถูกคัดลอกเข้าไปในระเบียน log

แท็บ Logs ของ Control UI tail ไฟล์นี้ผ่าน Gateway (logs.tail) CLI ทำแบบเดียวกันได้:

bash
openclaw logs --follow

Verbose เทียบกับระดับ log

  • log ไฟล์ ถูกควบคุมโดย logging.level เท่านั้น
  • --verbose มีผลต่อ ความละเอียดของคอนโซล เท่านั้น (และรูปแบบ log ของ WS); ไม่ได้ เพิ่มระดับ log ของไฟล์
  • หากต้องการเก็บรายละเอียดที่เห็นเฉพาะใน verbose ลงใน log ไฟล์ ให้ตั้ง logging.level เป็น debug หรือ trace
  • การบันทึก log ระดับ trace ยังรวมสรุปเวลาวินิจฉัยสำหรับ hot paths บางรายการ เช่น การเตรียม factory ของเครื่องมือ Plugin ดู /tools/plugin#slow-plugin-tool-setup

การจับเอาต์พุตคอนโซล

CLI จะจับ console.log/info/warn/error/debug/trace และเขียนลงใน log ไฟล์ ขณะที่ยังพิมพ์ไปยัง stdout/stderr อยู่

คุณสามารถปรับความละเอียดของคอนโซลแยกต่างหากได้ผ่าน:

  • logging.consoleLevel (ค่าเริ่มต้น info)
  • logging.consoleStyle (pretty | compact | json)

การปกปิดข้อมูล

OpenClaw สามารถปิดบังโทเค็นที่ละเอียดอ่อนก่อนที่เอาต์พุต log หรือทรานสคริปต์จะออกจาก กระบวนการ นโยบายการปกปิดข้อมูลในการบันทึก log นี้ถูกใช้กับปลายทางข้อความของคอนโซล, log ไฟล์, ระเบียน log ของ OTLP, และทรานสคริปต์เซสชัน ดังนั้นค่าความลับที่ตรงกันจะถูกปิดบังก่อนที่บรรทัด JSONL หรือข้อความจะถูกเขียนลงดิสก์

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

ขอบเขตความปลอดภัยบางส่วนจะปกปิดข้อมูลเสมอไม่ว่า logging.redactSensitive จะเป็นค่าใด ซึ่งรวมถึงเหตุการณ์การเรียกเครื่องมือของ Control UI, เอาต์พุตเครื่องมือ sessions_history, การส่งออกข้อมูลสนับสนุนการวินิจฉัย, ข้อสังเกตข้อผิดพลาดของผู้ให้บริการ, การแสดงคำสั่งอนุมัติ exec, และ log โปรโตคอล Gateway WebSocket พื้นผิวเหล่านี้อาจยังใช้ logging.redactPatterns เป็นรูปแบบเพิ่มเติมได้ แต่ redactSensitive: "off" ไม่ได้ทำให้พื้นผิวเหล่านี้ปล่อยความลับดิบออกมา

log ของ Gateway WebSocket

Gateway พิมพ์ log โปรโตคอล WebSocket ในสองโหมด:

  • โหมดปกติ (ไม่มี --verbose): พิมพ์เฉพาะผลลัพธ์ RPC ที่ "น่าสนใจ":
    • ข้อผิดพลาด (ok=false)
    • การเรียกที่ช้า (ค่า threshold เริ่มต้น: >= 50ms)
    • ข้อผิดพลาดการแยกวิเคราะห์
  • โหมด Verbose (--verbose): พิมพ์ทราฟฟิกคำขอ/คำตอบ WS ทั้งหมด

รูปแบบ log ของ WS

openclaw gateway รองรับสวิตช์รูปแบบต่อ Gateway:

  • --ws-log auto (ค่าเริ่มต้น): โหมดปกติได้รับการปรับให้เหมาะสม; โหมด verbose ใช้เอาต์พุตแบบกระชับ
  • --ws-log compact: เอาต์พุตแบบกระชับ (คำขอ/คำตอบเป็นคู่) เมื่อ verbose
  • --ws-log full: เอาต์พุตเต็มต่อเฟรมเมื่อ verbose
  • --compact: นามแฝงของ --ws-log compact

ตัวอย่าง:

bash
# 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

การจัดรูปแบบคอนโซล (การบันทึก log ของระบบย่อย)

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

พฤติกรรม:

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

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

ที่เกี่ยวข้อง

Was this useful?
On this page

On this page