Gateway

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

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

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

OpenClaw มีพื้นผิวการแสดงล็อกสองแบบ:

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

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

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

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

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

  • โดยค่าเริ่มต้น ไฟล์ล็อกแบบหมุนเวียนจะอยู่ภายใต้ /tmp/openclaw/ (วันละหนึ่งไฟล์): openclaw-YYYY-MM-DD.log โดยกำหนดวันที่ตามเขตเวลาท้องถิ่นของโฮสต์ Gateway หากไดเรกทอรีนั้นไม่ปลอดภัยหรือเขียนไม่ได้ (เจ้าของไม่ถูกต้อง ทุกคนเขียนได้ หรือเป็นลิงก์เชิงสัญลักษณ์) OpenClaw จะใช้พาธ os.tmpdir()/openclaw-<uid> ที่จำกัดขอบเขตตามผู้ใช้แทน ส่วนบน Windows จะใช้พาธสำรองในไดเรกทอรีชั่วคราวของระบบปฏิบัติการนี้เสมอ
  • ไฟล์ล็อกที่ใช้งานอยู่จะหมุนเวียนเมื่อถึง logging.maxFileBytes (ค่าเริ่มต้น: 100 MB) โดยเก็บไฟล์ย้อนหลังที่มีหมายเลขไว้สูงสุดห้าไฟล์ (.1 ถึง .5) และเขียนต่อไปยังไฟล์ที่ใช้งานอยู่ไฟล์ใหม่
  • กำหนดค่าพาธและระดับของไฟล์ล็อกผ่าน ~/.openclaw/openclaw.json: logging.file, logging.level
  • รูปแบบไฟล์คือออบเจ็กต์ JSON หนึ่งรายการต่อบรรทัด

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

แท็บล็อกของ UI ควบคุมจะติดตามไฟล์นี้ผ่าน Gateway (logs.tail) CLI ก็ทำเช่นเดียวกัน:

bash
openclaw logs --follow

โหมดรายละเอียดสูงเทียบกับระดับล็อก

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

การบันทึกคอนโซล

CLI บันทึก console.log/info/warn/error/debug/trace เขียนข้อมูลเหล่านั้นลงในล็อกไฟล์ และยังคงแสดงผลไปยัง stdout/stderr

ปรับระดับรายละเอียดของคอนโซลแยกกันได้:

  • logging.consoleLevel (ค่าเริ่มต้น info)
  • logging.consoleStyle (pretty | compact | json; ค่าเริ่มต้นเป็น pretty บน TTY และเป็น compact ในกรณีอื่น)

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

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

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

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

ล็อก WebSocket ของ Gateway

Gateway แสดงล็อกโปรโตคอล WebSocket ในสองโหมด:

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

รูปแบบล็อก WS

openclaw gateway รองรับตัวเลือกเปลี่ยนรูปแบบสำหรับแต่ละ Gateway:

  • --ws-log auto (ค่าเริ่มต้น): โหมดปกติได้รับการปรับให้เหมาะสม ส่วนโหมดรายละเอียดสูงใช้เอาต์พุตแบบกระชับ
  • --ws-log compact: เอาต์พุตแบบกระชับ (จับคู่คำขอ/การตอบกลับ) เมื่ออยู่ในโหมดรายละเอียดสูง
  • --ws-log full: เอาต์พุตแบบเต็มสำหรับแต่ละเฟรมเมื่ออยู่ในโหมดรายละเอียดสูง
  • --compact: นามแฝงสำหรับ --ws-log compact
bash
# ปรับให้เหมาะสม (เฉพาะข้อผิดพลาด/รายการที่ช้า)openclaw gateway # แสดงทราฟฟิก WS ทั้งหมด (แบบจับคู่)openclaw gateway --verbose --ws-log compact # แสดงทราฟฟิก WS ทั้งหมด (ข้อมูลเมตาแบบเต็ม)openclaw gateway --verbose --ws-log full

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

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

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

วิธีนี้ช่วยให้ล็อกไฟล์คงที่ พร้อมทั้งทำให้เอาต์พุตแบบโต้ตอบอ่านไล่ดูได้ง่าย

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

Was this useful?
On this page

On this page