Skip to main content

लॉगिंग

उपयोगकर्ता-दृश्य अवलोकन (CLI + Control UI + कॉन्फ़िगरेशन) के लिए, /logging देखें। OpenClaw में दो लॉग सतहें हैं:
  • कंसोल आउटपुट - जो आपको टर्मिनल / डीबग UI में दिखाई देता है।
  • फ़ाइल लॉग - Gateway लॉगर द्वारा लिखी गई JSON पंक्तियाँ।
स्टार्टअप पर, Gateway समाधान किया गया डिफ़ॉल्ट एजेंट मॉडल और नए सत्रों को प्रभावित करने वाले मोड डिफ़ॉल्ट लॉग करता है:
thinking डिफ़ॉल्ट एजेंट, मॉडल पैरामीटर या वैश्विक एजेंट डिफ़ॉल्ट से आता है; सेट न होने पर यह medium दिखाता है। fast डिफ़ॉल्ट एजेंट या मॉडल के fastMode पैरामीटर से आता है।

फ़ाइल-आधारित लॉगर

  • डिफ़ॉल्ट रोलिंग लॉग फ़ाइलें /tmp/openclaw/ के अंतर्गत होती हैं (प्रतिदिन एक फ़ाइल), जिनकी तारीख Gateway होस्ट के स्थानीय समय क्षेत्र के अनुसार होती है। डिफ़ॉल्ट प्रोफ़ाइल openclaw-YYYY-MM-DD.log का उपयोग करती है; नामित प्रोफ़ाइल openclaw-<profile>-YYYY-MM-DD.log का उपयोग करती हैं (उदाहरण के लिए, openclaw-dev-YYYY-MM-DD.log)। यदि वह डायरेक्टरी असुरक्षित या लिखने योग्य नहीं है (गलत स्वामी, सभी के लिए लिखने योग्य, या सिमलिंक), तो OpenClaw इसके बजाय उपयोगकर्ता-स्कोप वाले os.tmpdir()/openclaw-<uid> पथ पर फ़ॉलबैक करता है; Windows पर यह हमेशा उसी OS-tmpdir फ़ॉलबैक का उपयोग करता है।
  • सक्रिय लॉग फ़ाइलें logging.maxFileBytes पर रोटेट होती हैं (डिफ़ॉल्ट: 100 MB), अधिकतम पाँच क्रमांकित अभिलेख (.1 से .5 तक) रखती हैं और नई सक्रिय फ़ाइल में लिखना जारी रखती हैं।
  • लॉग फ़ाइल पथ और स्तर को ~/.openclaw/openclaw.json के माध्यम से कॉन्फ़िगर करें: logging.file, logging.level
  • फ़ाइल प्रारूप में प्रत्येक पंक्ति पर एक JSON ऑब्जेक्ट होता है।
वार्तालाप, रीयलटाइम वॉइस और प्रबंधित-कक्ष कोड पथ, संचालन डीबगिंग और OTLP लॉग निर्यात के लिए निर्धारित सीमित जीवनचक्र रिकॉर्ड हेतु साझा फ़ाइल लॉगर का उपयोग करते हैं। ट्रांसक्रिप्ट टेक्स्ट, ऑडियो पेलोड, टर्न आईडी, कॉल आईडी और प्रदाता आइटम आईडी कभी भी लॉग रिकॉर्ड में कॉपी नहीं किए जाते। Control UI का Logs टैब Gateway के माध्यम से इस फ़ाइल को टेल करता है (logs.tail)। CLI भी यही करता है:

वर्बोज़ बनाम लॉग स्तर

  • फ़ाइल लॉग विशेष रूप से logging.level द्वारा नियंत्रित होते हैं।
  • --verbose केवल कंसोल वर्बोसिटी (और WS लॉग शैली) को प्रभावित करता है - यह फ़ाइल लॉग स्तर को नहीं बढ़ाता।
  • फ़ाइल लॉग में केवल-वर्बोज़ विवरण कैप्चर करने के लिए, logging.level को debug या 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; TTY पर डिफ़ॉल्ट pretty, अन्यथा compact)

रिडैक्शन

OpenClaw संवेदनशील टोकन को प्रक्रिया से बाहर जाने वाले लॉग या ट्रांसक्रिप्ट आउटपुट से पहले मास्क करता है। यह रिडैक्शन नीति कंसोल, फ़ाइल-लॉग, OTLP लॉग-रिकॉर्ड और सत्र ट्रांसक्रिप्ट टेक्स्ट सिंक पर लागू होती है, ताकि मेल खाने वाले गुप्त मान JSONL पंक्तियों या संदेशों को डिस्क पर लिखे जाने से पहले मास्क हो जाएँ।
  • संवेदनशील-मान रिडैक्शन हमेशा सक्षम रहता है।
  • logging.redactPatterns: रेगेक्स स्ट्रिंग की सरणी (डिफ़ॉल्ट को ओवरराइड करती है)
    • कच्ची रेगेक्स स्ट्रिंग (gi स्वतः), या कस्टम फ़्लैग के लिए /pattern/flags का उपयोग करें।
    • मिलान को पहले 6 + अंतिम 4 वर्ण रखते हुए मास्क किया जाता है (मान >= 18 वर्ण); छोटे मान *** बन जाते हैं।
    • डिफ़ॉल्ट में सामान्य कुंजी असाइनमेंट, CLI फ़्लैग, JSON फ़ील्ड, बियरर हेडर, PEM ब्लॉक, लोकप्रिय विक्रेता टोकन प्रीफ़िक्स और भुगतान क्रेडेंशियल फ़ील्ड नाम (कार्ड नंबर, CVC/CVV, साझा भुगतान टोकन, भुगतान क्रेडेंशियल) शामिल हैं।
Control UI टूल-कॉल इवेंट, sessions_history आउटपुट, डायग्नोस्टिक्स निर्यात, प्रदाता त्रुटियाँ, exec अनुमोदन प्रदर्शन और Gateway WebSocket लॉग जैसी सुरक्षा सीमाएँ हमेशा रिडैक्ट करती हैं। logging.redactPatterns परिनियोजन-विशिष्ट पैटर्न जोड़ता है।

Gateway WebSocket लॉग

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 का उपनाम।

कंसोल स्वरूपण (सबसिस्टम लॉगिंग)

कंसोल फ़ॉर्मैटर 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 })।
  • QR/UX आउटपुट के लिए logRaw() (कोई प्रीफ़िक्स नहीं, कोई स्वरूपण नहीं)।
  • कंसोल शैलियाँ: pretty | compact | json
  • कंसोल लॉग स्तर फ़ाइल लॉग स्तर से अलग है (logging.level के debug/trace होने पर फ़ाइल पूरा विवरण रखती है)।
  • WhatsApp संदेश का मुख्य भाग debug स्तर पर लॉग होता है (उसे देखने के लिए --verbose का उपयोग करें)।
इससे फ़ाइल लॉग स्थिर रहते हैं और इंटरैक्टिव आउटपुट आसानी से स्कैन करने योग्य बनता है।

संबंधित