Gateway
การบันทึกล็อกของ Gateway
การบันทึก log
สำหรับภาพรวมที่ผู้ใช้เห็น (CLI + Control UI + config) โปรดดู /logging
OpenClaw มี "พื้นผิว" ของ log สองแบบ:
- เอาต์พุตคอนโซล (สิ่งที่คุณเห็นในเทอร์มินัล / Debug UI)
- log ไฟล์ (บรรทัด JSON) ที่เขียนโดยตัวบันทึก log ของ Gateway
เมื่อเริ่มต้น Gateway จะบันทึก log โมเดล agent เริ่มต้นที่แก้ค่าแล้ว พร้อมกับ ค่าเริ่มต้นของโหมดที่มีผลต่อเซสชันใหม่ เช่น:
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.filelogging.level
รูปแบบไฟล์คือหนึ่งออบเจ็กต์ JSON ต่อหนึ่งบรรทัด
เส้นทางโค้ดการสนทนา, เสียงแบบเรียลไทม์, และห้องที่จัดการ ใช้ตัวบันทึก log ไฟล์ร่วมสำหรับ ระเบียนวงจรชีวิตแบบมีขอบเขต ระเบียนเหล่านี้มีไว้สำหรับการดีบักเชิงปฏิบัติการ และการส่งออก log ของ OTLP; ข้อความทรานสคริปต์, เพย์โหลดเสียง, turn ids, call ids, และ provider item ids จะไม่ถูกคัดลอกเข้าไปในระเบียน log
แท็บ Logs ของ Control UI tail ไฟล์นี้ผ่าน Gateway (logs.tail)
CLI ทำแบบเดียวกันได้:
openclaw logs --followVerbose เทียบกับระดับ 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, โทเค็นการชำระเงินที่ใช้ร่วมกัน, และข้อมูลรับรองการชำระเงิน
- ใช้สตริง regex ดิบ (เพิ่ม
ขอบเขตความปลอดภัยบางส่วนจะปกปิดข้อมูลเสมอไม่ว่า 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
ตัวอย่าง:
# 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 ไฟล์เดิมคงที่ ขณะที่เอาต์พุตแบบโต้ตอบสแกนได้ง่ายขึ้น