- Nhật ký tệp (các dòng JSON) do Gateway ghi.
- Đầu ra bảng điều khiển trong terminal đang chạy Gateway.
Vị trí lưu trữ nhật ký
Theo mặc định, Gateway ghi một tệp nhật ký luân phiên cho mỗi ngày:/tmp/openclaw/openclaw-YYYY-MM-DD.log
Ngày sử dụng múi giờ cục bộ của máy chủ Gateway. Khi /tmp/openclaw không an toàn hoặc không khả dụng (và luôn như vậy trên Windows), OpenClaw thay vào đó sử dụng thư mục openclaw-<uid> theo phạm vi người dùng trong thư mục tạm của hệ điều hành. Các tệp nhật ký có ngày được dọn dẹp sau 24 giờ.
Mỗi tệp được luân phiên khi lần ghi tiếp theo có thể vượt quá logging.maxFileBytes (mặc định: 100 MB). OpenClaw giữ tối đa năm bản lưu trữ được đánh số bên cạnh tệp đang hoạt động, chẳng hạn như openclaw-YYYY-MM-DD.1.log, rồi tiếp tục ghi vào một nhật ký đang hoạt động mới thay vì ngừng ghi thông tin chẩn đoán.
Bạn có thể ghi đè đường dẫn trong ~/.openclaw/openclaw.json:
Cách đọc nhật ký
CLI: theo dõi trực tiếp (khuyến nghị)
Theo dõi liên tục tệp nhật ký Gateway qua RPC:
Chế độ đầu ra:
- Phiên TTY: các dòng nhật ký có cấu trúc, đẹp mắt và có màu.
- Phiên không phải TTY: văn bản thuần túy.
--url một cách tường minh, CLI không tự động áp dụng thông tin xác thực từ cấu hình hoặc môi trường; hãy tự cung cấp --token, nếu không lệnh gọi sẽ thất bại với thông báo gateway url override requires explicit credentials.
Ở chế độ JSON, CLI phát ra các đối tượng được gắn thẻ type:
meta: siêu dữ liệu luồng (tệp, nguồn, loại nguồn, dịch vụ, con trỏ, kích thước)log: mục nhật ký đã phân tích cú phápnotice: gợi ý về việc cắt bớt / luân phiênraw: dòng nhật ký chưa phân tích cú pháperror: lỗi kết nối Gateway (được ghi vào stderr)
logs.tail phản hồi, openclaw logs sẽ tự động chuyển sang dùng nhật ký tệp Gateway đã cấu hình. Các đích --url tường minh không sử dụng cơ chế dự phòng này. openclaw logs --follow nghiêm ngặt hơn: trên Linux, lệnh này sử dụng nhật ký Gateway user-systemd đang hoạt động theo PID khi có thể; nếu không, lệnh sẽ thử lại Gateway trực tiếp với khoảng chờ tăng dần thay vì theo dõi một tệp bên cạnh có khả năng đã lỗi thời.
Nếu không thể truy cập Gateway, CLI in một gợi ý ngắn để chạy:
Giao diện điều khiển (web)
Tab Nhật ký của giao diện điều khiển theo dõi cùng tệp đó bằnglogs.tail.
Xem Giao diện điều khiển để biết cách mở giao diện.
Nhật ký riêng cho kênh
Để lọc hoạt động của kênh (WhatsApp/Telegram/v.v.), hãy dùng:--channel mặc định là all; --lines <n> (mặc định 200) và --json cũng khả dụng.
Định dạng nhật ký
Nhật ký tệp (JSONL)
Mỗi dòng trong tệp nhật ký là một đối tượng JSON. CLI và giao diện điều khiển phân tích cú pháp các mục này để hiển thị đầu ra có cấu trúc (thời gian, cấp độ, hệ thống con, thông báo). Các bản ghi JSONL của nhật ký tệp cũng bao gồm những trường cấp cao nhất có thể lọc bằng máy sau đây khi có:hostname: tên máy chủ Gateway.message: văn bản thông báo nhật ký đã được làm phẳng để tìm kiếm toàn văn.agent_id: mã định danh agent đang hoạt động khi lệnh gọi nhật ký mang ngữ cảnh agent.session_id: mã định danh/khóa phiên đang hoạt động khi lệnh gọi nhật ký mang ngữ cảnh phiên.channel: kênh đang hoạt động khi lệnh gọi nhật ký mang ngữ cảnh kênh.
Đầu ra bảng điều khiển
Nhật ký bảng điều khiển nhận biết TTY và được định dạng để dễ đọc:- Tiền tố hệ thống con (ví dụ:
gateway/channels/whatsapp) - Màu theo cấp độ (thông tin/cảnh báo/lỗi)
- Chế độ thu gọn hoặc JSON tùy chọn
logging.consoleStyle.
Nhật ký WebSocket của Gateway
openclaw gateway cũng có tính năng ghi nhật ký giao thức WebSocket cho lưu lượng RPC:
- chế độ thông thường: chỉ các kết quả đáng chú ý (lỗi, lỗi phân tích cú pháp, lệnh gọi chậm)
--verbose: toàn bộ lưu lượng yêu cầu/phản hồi--ws-log auto|compact|full: chọn kiểu hiển thị chi tiết--compact: bí danh của--ws-log compact
Cấu hình ghi nhật ký
Toàn bộ cấu hình ghi nhật ký nằm tronglogging tại ~/.openclaw/openclaw.json.
Cấp độ nhật ký
Các cấp độ:silent, fatal, error, warn, info, debug, trace.
logging.level: cấp độ nhật ký tệp (JSONL) (mặc định:info).logging.consoleLevel: cấp độ chi tiết của bảng điều khiển.
OPENCLAW_LOG_LEVEL (ví dụ: OPENCLAW_LOG_LEVEL=debug). Biến môi trường được ưu tiên hơn tệp cấu hình, vì vậy bạn có thể tăng mức độ chi tiết cho một lần chạy mà không cần chỉnh sửa openclaw.json. Bạn cũng có thể truyền tùy chọn CLI toàn cục --log-level <level> (ví dụ: openclaw --log-level debug gateway run), tùy chọn này ghi đè biến môi trường cho lệnh đó.
--verbose chỉ ảnh hưởng đến đầu ra bảng điều khiển và mức độ chi tiết của nhật ký WS; tùy chọn này không thay đổi cấp độ nhật ký tệp.
Chẩn đoán phương tiện truyền tải mô hình có mục tiêu
Khi gỡ lỗi các lệnh gọi nhà cung cấp, hãy sử dụng các cờ môi trường có mục tiêu thay vì nâng toàn bộ nhật ký lêndebug:
OPENCLAW_DEBUG_MODEL_TRANSPORT=1: phát sự kiện bắt đầu yêu cầu, phản hồi tìm nạp, tiêu đề SDK, sự kiện truyền phát đầu tiên, hoàn tất luồng và lỗi truyền tải ở cấp độinfo.OPENCLAW_DEBUG_MODEL_PAYLOAD=summary: bao gồm bản tóm tắt tải trọng yêu cầu có giới hạn trong nhật ký yêu cầu mô hình.OPENCLAW_DEBUG_MODEL_PAYLOAD=tools: bao gồm tất cả tên công cụ hướng đến mô hình trong bản tóm tắt tải trọng.OPENCLAW_DEBUG_MODEL_PAYLOAD=full-redacted: bao gồm ảnh chụp nhanh tải trọng JSON đã che giấu và giới hạn kích thước. Chỉ sử dụng khi gỡ lỗi; các bí mật được che giấu nhưng câu lệnh nhắc và văn bản thông báo vẫn có thể xuất hiện.OPENCLAW_DEBUG_SSE=events: phát thời gian của sự kiện đầu tiên và thời điểm hoàn tất luồng.OPENCLAW_DEBUG_SSE=peek: đồng thời phát năm tải trọng sự kiện SSE đầu tiên đã che giấu, với giới hạn cho mỗi sự kiện.OPENCLAW_DEBUG_CODE_MODE=1: phát thông tin chẩn đoán bề mặt mô hình ở chế độ mã, bao gồm thời điểm các công cụ gốc của nhà cung cấp bị ẩn vì chế độ mã sở hữu bề mặt công cụ.
openclaw logs --follow và tab Nhật ký của giao diện điều khiển sẽ hiển thị chúng. Khi không có các cờ này, cùng thông tin chẩn đoán vẫn khả dụng ở cấp độ debug.
Siêu dữ liệu bắt đầu và phản hồi [model-fetch] (nhà cung cấp, API, mô hình, trạng thái, độ trễ và các trường yêu cầu như phương thức, URL, thời gian chờ, proxy và chính sách) luôn được phát ở cấp độ info bất kể OPENCLAW_DEBUG_MODEL_TRANSPORT, nhờ đó có thể quan sát tình trạng cơ bản của phương tiện truyền tải mô hình mà không cần cờ gỡ lỗi.
Tương quan dấu vết
Nhật ký tệp có định dạng JSONL. Khi một lệnh gọi nhật ký mang ngữ cảnh dấu vết chẩn đoán hợp lệ, OpenClaw ghi các trường dấu vết dưới dạng khóa JSON cấp cao nhất (traceId, spanId, parentSpanId, traceFlags) để các bộ xử lý nhật ký bên ngoài có thể liên kết dòng đó với các span OTEL và việc truyền tiếp traceparent của nhà cung cấp.
Các yêu cầu HTTP của Gateway và khung WebSocket của Gateway thiết lập một phạm vi dấu vết yêu cầu nội bộ. Nhật ký và sự kiện chẩn đoán được phát bên trong phạm vi bất đồng bộ đó sẽ kế thừa dấu vết yêu cầu khi chúng không truyền ngữ cảnh dấu vết tường minh. Dấu vết lượt chạy agent và lệnh gọi mô hình trở thành phần tử con của dấu vết yêu cầu đang hoạt động, nhờ đó có thể liên kết nhật ký cục bộ, ảnh chụp nhanh chẩn đoán, span OTEL và tiêu đề traceparent đáng tin cậy của nhà cung cấp bằng traceId mà không ghi nội dung thô của yêu cầu hoặc mô hình vào nhật ký.
Các bản ghi nhật ký vòng đời trò chuyện cũng được chuyển đến tính năng xuất nhật ký diagnostics-otel khi bật xuất nhật ký OpenTelemetry, sử dụng cùng các thuộc tính có giới hạn như nhật ký tệp. Cấu hình diagnostics.otel.logsExporter để chọn OTLP, JSONL stdout hoặc cả hai đích.
Kích thước và thời gian lệnh gọi mô hình
Thông tin chẩn đoán lệnh gọi mô hình ghi lại các phép đo yêu cầu/phản hồi có giới hạn mà không thu thập nội dung thô của câu lệnh nhắc hoặc phản hồi:requestPayloadBytes: kích thước theo byte UTF-8 của tải trọng yêu cầu mô hình cuối cùngresponseStreamBytes: kích thước theo byte UTF-8 của tải trọng các đoạn phản hồi mô hình được truyền phát. Các sự kiện delta văn bản, suy luận và lệnh gọi công cụ có tần suất cao chỉ tính số bytedeltatăng thêm thay vì toàn bộ ảnh chụp nhanhpartial.timeToFirstByteMs: thời gian đã trôi qua trước sự kiện phản hồi được truyền phát đầu tiêndurationMs: tổng thời lượng lệnh gọi mô hình
Kiểu bảng điều khiển
logging.consoleStyle:
pretty: thân thiện với người dùng, có màu và dấu thời gian.compact: đầu ra cô đọng hơn (phù hợp nhất cho các phiên dài).json: JSON trên mỗi dòng (dành cho bộ xử lý nhật ký).
Che giấu
OpenClaw có thể che giấu các token nhạy cảm trước khi chúng xuất hiện trong đầu ra bảng điều khiển, nhật ký tệp, bản ghi nhật ký OTLP, văn bản bản chép lời phiên được lưu trữ hoặc tải trọng sự kiện công cụ của giao diện điều khiển (đối số bắt đầu công cụ, tải trọng kết quả một phần/cuối cùng, đầu ra thực thi được suy ra và bản tóm tắt bản vá):logging.redactSensitive:off|tools(mặc định:tools)logging.redactPatterns: danh sách chuỗi biểu thức chính quy thay thế tập hợp mặc định cho đầu ra nhật ký/bản chép lời. Đối với tải trọng công cụ của giao diện điều khiển, các mẫu tùy chỉnh được áp dụng bổ sung cho các giá trị mặc định tích hợp sẵn, vì vậy việc thêm một mẫu không bao giờ làm suy yếu khả năng che giấu các giá trị đã được các giá trị mặc định phát hiện.
logging.redactSensitive: "off" chỉ vô hiệu hóa chính sách chung này đối với
nhật ký/bản ghi hội thoại. OpenClaw vẫn che dữ liệu tải trọng tại ranh giới an
toàn có thể được hiển thị cho các ứng dụng khách UI, gói hỗ trợ, trình quan sát
chẩn đoán, lời nhắc phê duyệt hoặc công cụ của tác tử. Ví dụ bao gồm các sự kiện
gọi công cụ của UI điều khiển, đầu ra sessions_history, bản xuất hỗ trợ chẩn
đoán, quan sát lỗi của nhà cung cấp, phần hiển thị lệnh phê duyệt thực thi và
nhật ký giao thức WebSocket của Gateway. logging.redactPatterns tùy chỉnh vẫn
có thể bổ sung các mẫu dành riêng cho dự án trên những bề mặt đó.
Chẩn đoán và OpenTelemetry
Chẩn đoán là các sự kiện có cấu trúc, có thể đọc bằng máy dành cho các lượt chạy mô hình và dữ liệu đo từ xa của luồng tin nhắn (webhook, xếp hàng, trạng thái phiên). Chúng không thay thế nhật ký — chúng cung cấp dữ liệu cho chỉ số, dấu vết và trình xuất. Theo mặc định, các sự kiện được phát trong tiến trình (đặtdiagnostics.enabled: false để tắt); việc xuất chúng được cấu hình riêng.
Hai bề mặt liên quan:
- Xuất OpenTelemetry — gửi chỉ số, dấu vết và nhật ký qua OTLP/HTTP đến bất kỳ bộ thu thập hoặc hệ thống phụ trợ nào tương thích với OpenTelemetry (Datadog, Grafana, Honeycomb, New Relic, Tempo, v.v.). Cấu hình đầy đủ, danh mục tín hiệu, tên chỉ số/khoảng, biến môi trường và mô hình quyền riêng tư nằm trên một trang riêng: Xuất OpenTelemetry.
- Cờ chẩn đoán — các cờ nhật ký gỡ lỗi có mục tiêu, chuyển nhật ký bổ sung
đến
logging.filemà không tănglogging.level. Các cờ không phân biệt chữ hoa chữ thường và hỗ trợ ký tự đại diện (telegram.*,*). Cấu hình trongdiagnostics.flagshoặc qua giá trị ghi đè của biến môi trườngOPENCLAW_DIAGNOSTICS=.... Hướng dẫn đầy đủ: Cờ chẩn đoán.
Mẹo khắc phục sự cố
- Không thể truy cập Gateway? Trước tiên, hãy chạy
openclaw doctor. - Nhật ký trống? Hãy kiểm tra xem Gateway có đang chạy và ghi vào đường dẫn
tệp trong
logging.filehay không. - Cần thêm chi tiết? Đặt
logging.levelthànhdebughoặctracerồi thử lại.
Liên quan
- Xuất OpenTelemetry — xuất OTLP/HTTP, danh mục chỉ số/khoảng, mô hình quyền riêng tư
- Cờ chẩn đoán — các cờ nhật ký gỡ lỗi có mục tiêu
- Nội bộ hệ thống ghi nhật ký của Gateway — kiểu nhật ký WS, tiền tố hệ thống con và thu thập đầu ra bảng điều khiển
- Tham chiếu cấu hình — tham chiếu đầy đủ cho các trường
diagnostics.*