Logging
OpenClaw’ın iki ana günlük yüzeyi vardır:- Gateway tarafından yazılan dosya günlükleri (JSON satırları).
- Terminallerde ve Gateway Debug UI’da gösterilen konsol çıktısı.
Günlükler nerede bulunur
Varsayılan olarak Gateway, aşağıdaki konumda dönen bir günlük dosyası yazar:/tmp/openclaw/openclaw-YYYY-MM-DD.log
Tarih, gateway host’unun yerel saat dilimini kullanır.
Bunu ~/.openclaw/openclaw.json içinde geçersiz kılabilirsiniz:
Günlükler nasıl okunur
CLI: canlı izleme (önerilir)
Gateway günlük dosyasını RPC üzerinden izlemek için CLI kullanın:--local-time: zaman damgalarını yerel saat diliminizde gösterir--url <url>/--token <token>/--timeout <ms>: standart Gateway RPC bayrakları--expect-final: ajan destekli RPC son yanıt bekleme bayrağı (paylaşılan istemci katmanı üzerinden burada kabul edilir)
- TTY oturumları: güzel biçimlendirilmiş, renkli, yapılandırılmış günlük satırları.
- TTY olmayan oturumlar: düz metin.
--json: satır ayrımlı JSON (satır başına bir günlük olayı).--plain: TTY oturumlarında düz metni zorlar.--no-color: ANSI renklerini devre dışı bırakır.
--url geçirdiğinizde CLI, yapılandırma veya
ortam kimlik bilgilerini otomatik uygulamaz; hedef Gateway
kimlik doğrulaması gerektiriyorsa --token değerini kendiniz ekleyin.
JSON modunda CLI, type etiketli nesneler üretir:
meta: akış meta verileri (dosya, imleç, boyut)log: ayrıştırılmış günlük girdisinotice: kısaltma / döndürme ipuçlarıraw: ayrıştırılmamış günlük satırı
openclaw logs,
yapılandırılmış yerel günlük dosyasına otomatik olarak geri döner. Açık --url
hedefleri bu geri dönüşü kullanmaz.
Gateway’e ulaşılamıyorsa CLI, şunu çalıştırmanız için kısa bir ipucu yazdırır:
Kontrol UI (web)
Kontrol UI içindeki Logs sekmesi aynı dosyayılogs.tail kullanarak izler.
Nasıl açılacağını görmek için /web/control-ui bölümüne bakın.
Yalnızca kanal günlükleri
Kanal etkinliğini (WhatsApp/Telegram/vb.) filtrelemek için şunu kullanın:Günlük biçimleri
Dosya günlükleri (JSONL)
Günlük dosyasındaki her satır bir JSON nesnesidir. CLI ve Kontrol UI bu girdileri ayrıştırarak yapılandırılmış çıktı oluşturur (zaman, düzey, alt sistem, mesaj).Konsol çıktısı
Konsol günlükleri TTY farkındadır ve okunabilirlik için biçimlendirilir:- Alt sistem önekleri (örn.
gateway/channels/whatsapp) - Düzey renklendirmesi (info/warn/error)
- İsteğe bağlı compact veya JSON modu
logging.consoleStyle ile denetlenir.
Gateway WebSocket günlükleri
openclaw gateway, RPC trafiği için WebSocket protokol günlüklemesine de sahiptir:
- normal mod: yalnızca önemli sonuçlar (hatalar, ayrıştırma hataları, yavaş çağrılar)
--verbose: tüm istek/yanıt trafiği--ws-log auto|compact|full: ayrıntılı oluşturma stilini seçer--compact:--ws-log compactiçin takma addır
Günlüklemeyi yapılandırma
Tüm günlükleme yapılandırması~/.openclaw/openclaw.json içindeki logging altında bulunur.
Günlük düzeyleri
logging.level: dosya günlükleri (JSONL) düzeyi.logging.consoleLevel: konsol ayrıntı düzeyi.
OPENCLAW_LOG_LEVEL ortam değişkeniyle geçersiz kılabilirsiniz (örn. OPENCLAW_LOG_LEVEL=debug). Ortam değişkeni yapılandırma dosyasına göre önceliklidir; böylece openclaw.json düzenlemeden tek bir çalıştırma için ayrıntı düzeyini artırabilirsiniz. Ayrıca genel CLI seçeneği --log-level <level> de geçebilirsiniz (örneğin openclaw --log-level debug gateway run); bu, o komut için ortam değişkenini geçersiz kılar.
--verbose yalnızca konsol çıktısını ve WS günlük ayrıntı düzeyini etkiler; dosya günlük düzeylerini değiştirmez.
Konsol stilleri
logging.consoleStyle:
pretty: insan dostu, renkli, zaman damgalı.compact: daha sıkı çıktı (uzun oturumlar için en iyisi).json: satır başına JSON (günlük işlemcileri için).
Redaksiyon
Araç özetleri, hassas token’ları konsola ulaşmadan önce redakte edebilir:logging.redactSensitive:off|tools(varsayılan:tools)logging.redactPatterns: varsayılan kümenin yerine geçecek regex dizgeleri listesi
Tanılama + OpenTelemetry
Tanılama, model çalıştırmaları ve mesaj akışı telemetrisi (webhook’lar, kuyruklama, oturum durumu) için yapılandırılmış, makine tarafından okunabilir olaylardır. Günlüklerin yerine geçmezler; metrikleri, izleri ve diğer dışa aktarıcıları beslemek için vardırlar. Tanılama olayları süreç içinde üretilir, ancak dışa aktarıcılar yalnızca tanılama + dışa aktarıcı eklentisi etkin olduğunda bağlanır.OpenTelemetry ve OTLP
- OpenTelemetry (OTel): izler, metrikler ve günlükler için veri modeli + SDK’ler.
- OTLP: OTel verilerini bir toplayıcıya/arka uca aktarmak için kullanılan tel protokolü.
- OpenClaw bugün OTLP/HTTP (protobuf) üzerinden dışa aktarır.
Dışa aktarılan sinyaller
- Metrikler: sayaçlar + histogramlar (token kullanımı, mesaj akışı, kuyruklama).
- İzler: model kullanımı + webhook/mesaj işleme için span’lar.
- Günlükler:
diagnostics.otel.logsetkin olduğunda OTLP üzerinden dışa aktarılır. Günlük hacmi yüksek olabilir;logging.levelve dışa aktarıcı filtrelerini göz önünde bulundurun.
Tanılama olay kataloğu
Model kullanımı:model.usage: token’lar, maliyet, süre, bağlam, sağlayıcı/model/kanal, oturum kimlikleri.
webhook.received: kanal başına webhook girişi.webhook.processed: işlenen webhook + süre.webhook.error: webhook işleyici hataları.message.queued: işlenmek üzere kuyruğa alınan mesaj.message.processed: sonuç + süre + isteğe bağlı hata.
queue.lane.enqueue: komut kuyruğu hattına ekleme + derinlik.queue.lane.dequeue: komut kuyruğu hattından çıkarma + bekleme süresi.session.state: oturum durumu geçişi + neden.session.stuck: oturum takılı kaldı uyarısı + yaş.run.attempt: çalışma yeniden deneme/girişim meta verileri.diagnostic.heartbeat: toplu sayaçlar (webhook’lar/kuyruk/oturum).
Tanılamayı etkinleştirme (dışa aktarıcı yok)
Tanılama olaylarının eklentiler veya özel hedefler için kullanılabilir olmasını istiyorsanız bunu kullanın:Tanılama bayrakları (hedefli günlükler)
logging.level değerini yükseltmeden ek, hedefli hata ayıklama günlüklerini açmak için bayraklar kullanın.
Bayraklar büyük/küçük harf duyarsızdır ve joker karakterleri destekler (örn. telegram.* veya *).
- Bayrak günlükleri standart günlük dosyasına gider (
logging.fileile aynı). - Çıktı yine de
logging.redactSensitiveuyarınca redakte edilir. - Tam kılavuz: /diagnostics/flags.
OpenTelemetry’e dışa aktarma
Tanılama,diagnostics-otel eklentisi (OTLP/HTTP) üzerinden dışa aktarılabilir. Bu,
OTLP/HTTP kabul eden tüm OpenTelemetry toplayıcıları/arka uçlarıyla çalışır.
- Eklentiyi
openclaw plugins enable diagnostics-otelile de etkinleştirebilirsiniz. protocolşu anda yalnızcahttp/protobufdestekler.grpcyok sayılır.- Metrikler; token kullanımı, maliyet, bağlam boyutu, çalışma süresi ve mesaj akışı sayaçları/histogramlarını içerir (webhook’lar, kuyruklama, oturum durumu, kuyruk derinliği/bekleme).
- İzler/metrikler
traces/metricsile açılıp kapatılabilir (varsayılan: açık). İzler, etkinleştirildiğinde model kullanımı span’larının yanı sıra webhook/mesaj işleme span’larını da içerir. - Toplayıcınız kimlik doğrulaması gerektiriyorsa
headersayarlayın. - Desteklenen ortam değişkenleri:
OTEL_EXPORTER_OTLP_ENDPOINT,OTEL_SERVICE_NAME,OTEL_EXPORTER_OTLP_PROTOCOL.
Dışa aktarılan metrikler (adlar + türler)
Model kullanımı:openclaw.tokens(counter, öznitelikler:openclaw.token,openclaw.channel,openclaw.provider,openclaw.model)openclaw.cost.usd(counter, öznitelikler:openclaw.channel,openclaw.provider,openclaw.model)openclaw.run.duration_ms(histogram, öznitelikler:openclaw.channel,openclaw.provider,openclaw.model)openclaw.context.tokens(histogram, öznitelikler:openclaw.context,openclaw.channel,openclaw.provider,openclaw.model)
openclaw.webhook.received(counter, öznitelikler:openclaw.channel,openclaw.webhook)openclaw.webhook.error(counter, öznitelikler:openclaw.channel,openclaw.webhook)openclaw.webhook.duration_ms(histogram, öznitelikler:openclaw.channel,openclaw.webhook)openclaw.message.queued(counter, öznitelikler:openclaw.channel,openclaw.source)openclaw.message.processed(counter, öznitelikler:openclaw.channel,openclaw.outcome)openclaw.message.duration_ms(histogram, öznitelikler:openclaw.channel,openclaw.outcome)
openclaw.queue.lane.enqueue(counter, öznitelikler:openclaw.lane)openclaw.queue.lane.dequeue(counter, öznitelikler:openclaw.lane)openclaw.queue.depth(histogram, öznitelikler:openclaw.laneveyaopenclaw.channel=heartbeat)openclaw.queue.wait_ms(histogram, öznitelikler:openclaw.lane)openclaw.session.state(counter, öznitelikler:openclaw.state,openclaw.reason)openclaw.session.stuck(counter, öznitelikler:openclaw.state)openclaw.session.stuck_age_ms(histogram, öznitelikler:openclaw.state)openclaw.run.attempt(counter, öznitelikler:openclaw.attempt)
Dışa aktarılan span’lar (adlar + temel öznitelikler)
openclaw.model.usageopenclaw.channel,openclaw.provider,openclaw.modelopenclaw.sessionKey,openclaw.sessionIdopenclaw.tokens.*(input/output/cache_read/cache_write/total)
openclaw.webhook.processedopenclaw.channel,openclaw.webhook,openclaw.chatId
openclaw.webhook.erroropenclaw.channel,openclaw.webhook,openclaw.chatId,openclaw.error
openclaw.message.processedopenclaw.channel,openclaw.outcome,openclaw.chatId,openclaw.messageId,openclaw.sessionKey,openclaw.sessionId,openclaw.reason
openclaw.session.stuckopenclaw.state,openclaw.ageMs,openclaw.queueDepth,openclaw.sessionKey,openclaw.sessionId
Örnekleme + boşaltma
- İz örnekleme:
diagnostics.otel.sampleRate(0.0–1.0, yalnızca kök span’lar). - Metrik dışa aktarma aralığı:
diagnostics.otel.flushIntervalMs(en az 1000ms).
Protokol notları
- OTLP/HTTP uç noktaları
diagnostics.otel.endpointveyaOTEL_EXPORTER_OTLP_ENDPOINTüzerinden ayarlanabilir. - Uç nokta zaten
/v1/tracesveya/v1/metricsiçeriyorsa olduğu gibi kullanılır. - Uç nokta zaten
/v1/logsiçeriyorsa günlükler için olduğu gibi kullanılır. diagnostics.otel.logs, ana günlükleyici çıktısı için OTLP günlük dışa aktarmayı etkinleştirir.
Günlük dışa aktarma davranışı
- OTLP günlükleri,
logging.fileiçine yazılan aynı yapılandırılmış kayıtları kullanır. logging.leveldeğerine uyar (dosya günlük düzeyi). Konsol redaksiyonu OTLP günlüklerine uygulanmaz.- Yüksek hacimli kurulumlar OTLP toplayıcı örnekleme/filtrelemeyi tercih etmelidir.
Sorun giderme ipuçları
- Gateway’e ulaşılamıyor mu? Önce
openclaw doctorçalıştırın. - Günlükler boş mu? Gateway’in çalıştığını ve
logging.fileiçindeki dosya yoluna yazdığını denetleyin. - Daha fazla ayrıntı mı gerekiyor?
logging.leveldeğerinidebugveyatraceolarak ayarlayın ve tekrar deneyin.
İlgili
- Gateway Logging Internals — WS günlük stilleri, alt sistem önekleri ve konsol yakalama
- Diagnostics — OpenTelemetry dışa aktarma ve önbellek iz yapılandırması