MessageLogging नीति

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

क्या

एपीआई रनटाइम एनवायरमेंट में समस्याओं को ट्रैक करने का सबसे अच्छा तरीका मैसेज को लॉग करना है. कस्टम मैसेज को लॉग करने के लिए, अपने एपीआई पर MessageLogging नीति अटैच और कॉन्फ़िगर करें लोकल डिस्क (सिर्फ़ प्राइवेट क्लाउड के लिए एज) या syslog में सेव करें.

सैंपल

Syslog

<MessageLogging name="LogToSyslog">
  <Syslog>
    <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
    <Host>logs-01.loggly.com</Host>
    <Port>514</Port>
    <Protocol>TCP</Protocol>
    <FormatMessage>true</FormatMessage>
    <DateFormat>yyyy-MM-dd'T'HH:mm:ss.SSSZ</DateFormat>
  </Syslog>
  <logLevel>ALERT</logLevel>
</MessageLogging>

MessageLogging नीति का आम तौर पर इस्तेमाल, syslog खाते में लॉग इन करना है. टास्क कब शुरू होगा syslog के लिए कॉन्फ़िगर किया गया एपीआई प्रॉक्सी, Apigee Edge से रिमोट पर लॉग मैसेज को फ़ॉरवर्ड करेगा syslog सर्वर पर. आपके पास पहले से ही syslog सर्वर उपलब्ध होना चाहिए. अगर ऐसा नहीं है, तो सार्वजनिक लॉग मैनेजमेंट Splunk, Sumo Logic, और Loggly जैसी सेवाएं उपलब्ध हैं. तीसरे पक्ष की लॉग मैनेजमेंट सेवाओं को कॉन्फ़िगर करना देखें.

उदाहरण के लिए, मान लें कि आपको अनुरोध के हर उस मैसेज की जानकारी लॉग करनी होगी जो आपके एपीआई को उपभोक्ता ऐप्लिकेशन से मिलने वाला डेटा. 3f509b58 वैल्यू एक मुख्य वैल्यू दिखाती है लॉगजी सेवा के लिए विशिष्ट है. अगर आपके पास Loggly खाता है, तो Loggly की कुंजी बदलें. कॉन्टेंट बनाने जनरेट होने वाला लॉग मैसेज, चार वैल्यू से अपने-आप भर जाएगा: संगठन, एपीआई लेन-देन से जुड़े प्रॉक्सी और एनवायरमेंट का नाम. साथ ही, क्वेरी की वैल्यू पैरामीटर की जानकारी.

अगर आपके पास प्राइवेट क्लाउड डिप्लॉयमेंट के लिए Edge है, तो फ़ाइल से लिए जाते हैं.

TLS/एसएसएल पर Syslog

<MessageLogging name="LogToSyslog">
  <Syslog>
    <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
    <Host>logs-01.loggly.com</Host>
    <Port>6514</Port>
    <Protocol>TCP</Protocol>
    <FormatMessage>true</FormatMessage>
    <SSLInfo>
        <Enabled>true</Enabled>
    </SSLInfo>
    <DateFormat>yyMMdd-HH:mm:ss.SSS</DateFormat>
  </Syslog>
  <logLevel>WARN</logLevel>
</MessageLogging>

आप <SSLInfo> ब्लॉक.

फ़ाइल रोटेशन: आकार

<MessageLogging name="LogPolicy">
  <File>
    <Message>This is a test message. Message id : {request.header.messageid}</Message>
      <FileName>test.log</FileName>
      <FileRotationOptions rotateFileOnStartup="true">
        <FileRotationType>SIZE</FileRotationType>
        <MaxFileSizeInMB>10</MaxFileSizeInMB>
        <MaxFilesToRetain>10</MaxFilesToRetain>
      </FileRotationOptions>
  </File>
  <logLevel>ERROR</logLevel>
</MessageLogging>

फ़ाइल के साइज़ के हिसाब से फ़ाइल का रोटेशन.

फ़ाइल रोटेशन: समय

<MessageLogging name="LogPolicy">
  <File>
    <Message>This is a test message. Message id : {request.header.messageid}</Message>
    <FileName>test.log</FileName>
    <FileRotationOptions rotateFileOnStartup="true">
      <FileRotationType>TIME</FileRotationType>
      <RotationFrequency unit="minute">10</RotationFrequency>
      <MaxFilesToRetain>10</MaxFilesToRetain>
    </FileRotationOptions>
  </File>
  <logLevel>ERROR</logLevel>
</MessageLogging>

समय के हिसाब से फ़ाइल का रोटेशन.

फ़ाइल रोटेशन: समय और साइज़

<MessageLogging name="LogPolicy">
  <File>
    <Message>This is a test message. Message id : {request.header.messageid}</Message>
    <FileName>test.log</FileName>
    <FileRotationOptions rotateFileOnStartup="true">
      <FileRotationType>TIME_SIZE</FileRotationType>
      <MaxFileSizeInMB>10</MaxFileSizeInMB>
      <MaxFilesToRetain>10</MaxFilesToRetain>
      <RotationFrequency unit="minute">10</RotationFrequency>
    </FileRotationOptions>
  </File>
  <logLevel>ERROR</logLevel>
</MessageLogging>

समय और साइज़ के हिसाब से फ़ाइल का रोटेशन.

स्ट्रीम की सुविधा चालू है

<MessageLogging name="LogPolicy">
  <File>
  ....
  ....
  </File>
  <BufferMessage>true</BufferMessage>
</MessageLogging>

स्ट्रीम की सुविधा वाले मैसेज लॉग करने की सुविधा


एलिमेंट का रेफ़रंस

MessageLogging नीति टाइप को कॉन्फ़िगर करने के लिए, इन एलिमेंट का इस्तेमाल करें.

फ़ील्ड का नाम फ़ील्ड का ब्यौरा

File

लोकल फ़ाइल डेस्टिनेशन. (फ़ाइल लॉगिंग की सुविधा सिर्फ़ प्राइवेट क्लाउड के लिए Edge में काम करती है deployments.) फ़ाइलें कहां सेव की जाती हैं, इस बारे में जानने के लिए लॉग फ़ाइल देखें प्राइवेट क्लाउड के लिए Edge में जगह की जानकारी.

Message इन्हें मिलाकर, लॉग फ़ाइल पर भेजने के लिए मैसेज बनाएं वैरिएबल वाला टेक्स्ट, ताकि आप जो जानकारी पाना चाहते हैं उसे कैप्चर कर सकें. सैंपल देखें.
FileName उस लॉग फ़ाइल का नाम जहां मैसेज लॉग किया गया है.
FileRotationOptions
rotateFileOnStartup

एट्रिब्यूट. मान्य वैल्यू: true/false

अगर इसे 'सही है' पर सेट किया जाता है, तो मैसेज इंजन के लिए लॉग फ़ाइल को हर बार घुमाया जाता है रीस्टार्ट हो जाता है.

FileRotationType रोटेशन नीति के बारे में बताता है (size या time).
MaxFileSizeInMB (घूर्णन प्रकार के रूप में size को चुनने पर) उस लॉग फ़ाइल का साइज़ तय करता है जो लॉग मैसेज को अलग फ़ाइल करें. लॉग फ़ाइल के तय साइज़ तक पहुंचने पर, सर्वर मौजूदा लॉग फ़ाइल.
RotationFrequency (घूर्णन प्रकार के रूप में time को चुनने पर) उस समय के बारे में बताता है जो मिनट में सेट होता है. यह लॉग मैसेज सर्वर से अलग ले जाने के लिए ट्रिगर होता है फ़ाइल से लिए जाते हैं. तय किया गया इंटरवल खत्म होने के बाद, मौजूदा लॉग फ़ाइल का नाम बदल दिया जाता है.
MaxFilesToRetain

इससे पता चलता है कि आपके रोटेशन के हिसाब से, ज़्यादा से ज़्यादा कितनी फ़ाइलें सेव रखनी हैं सेटिंग. डिफ़ॉल्ट वैल्यू 8 है.

शून्य (0) का इस्तेमाल करने पर, लॉग फ़ाइलें हमेशा के लिए सेव रखी जाती हैं. हालांकि, यह आपकी फ़ाइल के हिसाब से ही तय होती है रोटेशन सेटिंग, हालांकि कोई भी फ़ाइल मिटाई नहीं जाती या उसका नाम नहीं बदला जाता है. इसलिए, डिस्क-फ़ुल की आगे की गड़बड़ियां, शून्य से बड़ी वैल्यू पर सेट करें या रेगुलर, सेव की गई पुरानी लॉग फ़ाइलों को पर्ज करने या संग्रहित करने का ऑटोमेटेड सिस्टम (कार्रवाइयों को अपने-आप पूरा करने वाला सिस्टम) है.

BufferMessage

अगर एचटीटीपी स्ट्रीमिंग चालू है, तो अनुरोध/जवाब वाले मैसेज बफ़र नहीं किए जाएंगे. अगर आपको लॉग में वह कॉन्टेंट डालें जिसके लिए फ़्लो मैसेज को पार्स करना ज़रूरी है. इसके बाद, बफ़रमैसेज को 'सही' पर सेट करें. "स्ट्रीम की सुविधा वाला मोड" देखें सैंपल टैब देखें. डिफ़ॉल्ट: गलत

Syslog

एक syslog डेस्टिनेशन. Splunk, Sumo Logic या Loggly पर syslog भेजें, तीसरे पक्ष की लॉग मैनेजमेंट सेवाओं को कॉन्फ़िगर करना देखें.

Message

कैप्चर करने के लिए वैरिएबल के साथ टेक्स्ट जोड़कर, syslog पर मैसेज भेजने के लिए मैसेज बनाएं जानकारी खोजें. सैंपल देखें.

ध्यान दें: रिस्पॉन्स वैरिएबल गड़बड़ी के फ़्लो के बाद, PostClientFlow में उपलब्ध नहीं होता. मैसेज वैरिएबल का इस्तेमाल करना का इस्तेमाल करें. इस्तेमाल से जुड़ी जानकारी भी देखें.

Host उस सर्वर का होस्टनेम या आईपी पता जहां syslog भेजा जाना चाहिए. अगर इस एलिमेंट को शामिल नहीं किया जाता है, तो लोकल होस्ट डिफ़ॉल्ट तौर पर सेट हो जाता है.
Port पोर्ट वहां करें जहां syslog चल रहा है. अगर आप अपनी दौड़ने के दौरान इस एलिमेंट में, डिफ़ॉल्ट रूप से 514 होता है.
Protocol टीसीपी या यूडीपी (डिफ़ॉल्ट). यूडीपी की परफ़ॉर्मेंस ज़्यादा बेहतर होती है, लेकिन टीसीपी प्रोटोकॉल, syslog सर्वर को मैसेज लॉग डिलीवरी की गारंटी देता है. syslog भेजने के लिए टीएलएस/एसएसएल पर मैसेज के लिए, सिर्फ़ टीसीपी ही काम करेगा.
FormatMessage

true या false (डिफ़ॉल्ट)

ज़रूरी नहीं, लेकिन <FormatMessage>true</FormatMessage> ज़रूरी है Loggly के साथ इस्तेमाल करने के लिए है.

यह एलिमेंट आपको दिखाई देगा. अगर नीति को 'सही है' पर सेट किया जाता है, तो syslog मैसेज को वर्णों की एक तय संख्या से पहले जोड़ा जाता है, जिससे आप उस जानकारी को मैसेज से फ़िल्टर कर सकते है. यहां ठीक करने के लिए एक उदाहरण दिया गया है फ़ॉर्मैट:

<14>1 2023-03-20T09:24:39.039+0000 e49cd3a9-4cf6-48a7-abb9-7ftfe4d97d00 Apigee-Edge - - - Message starts here

Apigee से जनरेट की गई जानकारी में ये चीज़ें शामिल हैं:

  • <14> - प्राथमिकता स्कोर (Syslog प्रोटोकॉल देखें) मैसेज का लॉग लेवल और सुविधा का लेवल.
  • 1 - मौजूदा syslog वर्शन.
  • यूटीसी ऑफ़सेट (यूटीसी = +0000) वाली तारीख.
  • मैसेज प्रोसेसर UUID.
  • "अपीगी-एज - - - "

अगर यह 'गलत' (डिफ़ॉल्ट) पर सेट है, तो मैसेज को ठीक की गई गड़बड़ियों के साथ नहीं जोड़ा जाता वर्ण

PayloadOnly

true या false (डिफ़ॉल्ट)

यह एलिमेंट, Apigee से जनरेट किए गए मैसेज के फ़ॉर्मैट को इस तरह सेट करता है कि उसमें सिर्फ़ syslog मैसेज, जिसमें FormatMessage के ज़रिए पहले से जोड़े गए वर्ण शामिल नहीं किए गए हैं.

अगर इस एलिमेंट को शामिल नहीं किया जाता या इसे खाली छोड़ दिया जाता है, तो डिफ़ॉल्ट वैल्यू false होती है.

FormatMessage देखें.

DateFormat

ज़रूरी नहीं.

हर लॉग मैसेज के टाइमस्टैंप को फ़ॉर्मैट करने के लिए, फ़ॉर्मैट करने वाली टेंप्लेट स्ट्रिंग. डिफ़ॉल्ट रूप से, Apigee, yyyy-MM-dd'T'HH:mm:ss.SSSZ का इस्तेमाल करता है. व्यवहार दस्तावेज़ में इस टेंप्लेट के बारे में बताया गया है Java की SimpleDateFormat क्लास.

SSLInfo

यह आपको एसएसएल/टीएलएस के ज़रिए मैसेज लॉग करने देता है. इसके साथ इस्तेमाल करें सब-एलिमेंट <Enabled>true</Enabled>.

अगर आप इस एलिमेंट को शामिल नहीं करते या इसे खाली छोड़ देते हैं, तो डिफ़ॉल्ट वैल्यू 'गलत' होती है (नहीं TLS/एसएसएल).

<SSLInfo>
    <Enabled>true</Enabled>
</SSLInfo>

&lt;SSLInfo&gt; टैग को आप ही कॉन्फ़िगर कर सकते हैं टारगेट-एंडपॉइंट पर काम कर सकता है, जिसमें दो-तरफ़ा TLS/SSL चालू करना शामिल है, जैसा कि एपीआई प्रॉक्सी कॉन्फ़िगरेशन के बारे में जानकारी. सिर्फ़ टीसीपी प्रोटोकॉल समर्थित हैं.

logLevel

ज़रूरी नहीं.

मान्य वैल्यू: INFO (डिफ़ॉल्ट), ALERT, WARN, ERROR

मैसेज लॉग में शामिल करने के लिए, जानकारी का एक खास लेवल सेट करें.

अगर FormatMessage एलिमेंट (इसे 'सही है' पर सेट किया जा रहा है) का इस्तेमाल किया जा रहा है, तो आपके logLevel सेटिंग, आपके दिए गए फ़ॉर्मूला के आधार पर तैयार किए गए प्राथमिकता के स्कोर (इसमें मौजूद संख्या) पर असर डालती है Apigee से जनरेट की गई जानकारी में मौजूद ऐंगल ब्रैकेट), मैसेज से पहले जोड़े जाते हैं.

स्कीमा


ट्रैक के इस्तेमाल से जुड़ी जानकारी

किसी API प्रॉक्सी फ़्लो में MessageLogging नीति अटैच करते समय, इसे प्रॉक्सीएंडपॉइंट रिस्पॉन्स, एक खास फ़्लो में, जिसे PostClientFlow कहा जाता है. PostClientFlow कैंपेन को एक्ज़ीक्यूट करता है अनुरोध करने वाले क्लाइंट को रिस्पॉन्स भेजने के बाद, इससे यह पक्का होता है कि सभी मेट्रिक का इस्तेमाल करें. PostClientFlow का इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, एपीआई प्रॉक्सी कॉन्फ़िगरेशन का रेफ़रंस देखें.

PostClientFlow दो तरीकों से खास है:

  1. इसे सिर्फ़ रिस्पॉन्स फ़्लो के हिस्से के तौर पर लागू किया जाता है.
  2. प्रॉक्सी के गड़बड़ी वाली स्थिति में जाने के बाद, सिर्फ़ यही फ़्लो लागू होता है.

क्योंकि प्रॉक्सी के सफल होने या न होने की परवाह किए बिना यह निष्पादित होता है, इसलिए आप PostClientFlow में MessageLogging नीतियां लागू करें और इस बात की गारंटी दें कि वे हमेशा लागू होती हैं.

नीचे दी गई ट्रेस इमेज, MessageLogging की नीति को दिखाती है जो defaultFaultRule के लागू होने के बाद, PostClientFlow:

इस उदाहरण में, 'एपीआई की पुष्टि करें' नीति की वजह से हुई गड़बड़ी, एक अमान्य अमान्य वैल्यू की वजह से हुई बटन दबाएं.

यहां प्रॉक्सीएंडपॉइंट की परिभाषा दी गई है, जिसमें PostClientFlow शामिल है:

<ProxyEndpoint name="default">
  ...
  <PostClientFlow>
    <Response>
      <Step>
        <Name>Message-Logging-1</Name>
      </Step>
    </Response>
  </PostClientFlow>
  ...
</ProxyEndpoint>

Edge, मैसेज को सामान्य टेक्स्ट के तौर पर लॉग करता है. साथ ही, लॉग को कॉन्फ़िगर करके वैरिएबल को शामिल किया जा सकता है, जैसे कि अनुरोध या जवाब मिलने की तारीख और समय, अनुरोध में उपयोगकर्ता की पहचान, वह सोर्स आईपी पता जिससे अनुरोध भेजा गया था वगैरह. Edge लॉग मैसेज इसका मतलब है कि कॉल आउट को ब्लॉक करने की वजह से इंतज़ार का समय शुरू नहीं होगा अपने एपीआई में जोड़ें.

MessageLogging नीति, मेमोरी में लॉग किए गए मैसेज को बफ़र में लिखती है. मैसेज लॉगर बफ़र के मैसेज पढ़ता है. इसके बाद, कॉन्फ़िगर किए गए डेस्टिनेशन पर भेजता है. हर डेस्टिनेशन का अपना बफ़र होता है.

अगर बफ़र में लिखने की दर, पढ़ने की दर से ज़्यादा हो जाती है, तो बफ़र ओवरफ़्लो हो जाता है और लॉगिंग विफल हो जाएगा. अगर ऐसा होता है, तो आपको लॉग में ऐसा मैसेज दिख सकता है जिसमें ये चीज़ें शामिल हों फ़ाइल:

Log message size exceeded. Increase the max message size setting

अगर प्राइवेट क्लाउड 4.15.07 और इससे पहले के वर्शन के लिए Edge में आपको यह समस्या आती है, तो message-logging.properties फ़ाइल करें और इस समाधान का इस्तेमाल करें:

इसे बढ़ाने के लिए, max.log.message.size.in.kb प्रॉपर्टी (डिफ़ॉल्ट वैल्यू = 128 केबी) को बढ़ाएं message-logging.properties फ़ाइल.

Edge के लिए Private Cloud 4.16.01 और इसके बाद के वर्शन के लिए, /opt/apigee/customer/application/message-processor.properties फ़ाइल में conf/message-logging.properties+max. log.message.size.in.kb प्रॉपर्टी को सेट करें. इसके बाद, मैसेज प्रोसेसर को रीस्टार्ट करें. कृपया ध्यान दें कि शुरुआत में इस प्रॉपर्टी पर डिफ़ॉल्ट रूप से टिप्पणी की जाती है.

ध्यान दें: जवाब में दिया गया मैसेज Edge में वैरिएबल, गड़बड़ी के फ़्लो से उपलब्ध नहीं होते. ये वैरिएबल भी नहीं अगर पिछला फ़्लो गड़बड़ी फ़्लो था, तो PostClientFlow में उपलब्ध. अगर आपको जवाब लॉग करना है, तो PostClientFlow से मिली जानकारी के लिए, मैसेज ऑब्जेक्ट का इस्तेमाल करें. आप इस ऑब्जेक्ट का इस्तेमाल, रिस्पॉन्स से हेडर और अन्य जानकारी पाने के लिए करें कोई गड़बड़ी हुई. मैसेज देखें वैरिएबल सबमिट करें.

लॉग मैसेज को कंट्रोल करना प्राइवेट क्लाउड के लिए Edge में टाइमस्टैंप

डिफ़ॉल्ट रूप से, सभी लॉग मैसेज के टाइमस्टैंप का फ़ॉर्मैट ऐसा होता है:

yyyy-MM-dd'T'HH:mm:ss.SSSZ

इस सिस्टम-वाइड डिफ़ॉल्ट को syslog डेस्टिनेशन के लिए बदला जा सकता है. इसके लिए इसका इस्तेमाल किया जा सकता है: DateFormat एलिमेंट. इस टेंप्लेट के काम करने के तरीके के बारे में यहां बताया गया है Java की SimpleDateFormat क्लास के लिए दस्तावेज़. उस परिभाषा के मुताबिक, yyyy को बदल दिया जाएगा अगर 4-अंकों का साल है, तो MM को 2 अंकों वाले महीने की संख्या से बदल दिया जाएगा और यह क्रम इसी तरह जारी रहेगा. ऊपर दिए गए फ़ॉर्मैट का इस्तेमाल करने पर, इस फ़ॉर्म की एक स्ट्रिंग बन सकती है:

2022-09-28T22:38:11.721+0000

conf_system_apigee.syslogger.dateFormat का इस्तेमाल किया जा सकता है प्रॉपर्टी का इस्तेमाल करें. उदाहरण के लिए, अगर आपको अपनी पसंद का मैसेज बदलना है, फ़ॉर्मैट करें:

yy/MM/dd'T'HH:mm:ss.SSSZ

..डैश को स्लैश से बदलकर, और साल को दो अंकों में छोटा करके, इस फ़ॉर्म में टाइमस्टैंप रिकॉर्ड किया जाता है:

22/09/28T22:38:11.721+0000

फ़ॉर्मैट बदलने के लिए:

  1. message-processor.properties फ़ाइल को Editor. अगर फ़ाइल मौजूद नहीं है, तो इसे बनाएं:
    &gt; vi /opt/apigee/customer/application/message-processor.properties
  2. प्रॉपर्टी को अपनी ज़रूरत के हिसाब से सेट करें:
    conf_system_apigee.syslogger.dateFormat=yy/MM/dd&#39;T&#39;HH:mm:ss.SSSZ
  3. बदलावों को सेव करें.
  4. पक्का करें कि प्रॉपर्टी फ़ाइल का मालिकाना हक 'apigee' के पास हो उपयोगकर्ता:
    &gt; chown apigee:apigee /opt/apigee/customer/application/message-processor.property
  5. Edge मैसेज प्रोसेसर को रीस्टार्ट करें:
    &gt; /opt/apigee/apigee-service/bin/apigee-service Edge-message-प्रोसेसर रीस्टार्ट

प्राइवेट क्लाउड के लिए Edge में फ़ाइल की जगह की जानकारी लॉग करें

प्राइवेट क्लाउड 4.16.01 और इसके बाद के वर्शन के लिए Edge

डिफ़ॉल्ट रूप से, निजी क्लाउड मैसेज लॉग, मैसेज टैब की इस डायरेक्ट्री में मौजूद होते हैं प्रोसेसर नोड:

/opt/apigee/var/log/edge-message-processor/messagelogging/org_name/environment/api_proxy_name/revision/logging_policy_name/

आप Message-logging.property फ़ाइल पर जाएं:

  • bin_setenv_data_dir - लॉग फ़ाइल स्टोरेज के लिए रूट पाथ सेट करता है. उदाहरण के लिए, bin_setenv_data_dir=/opt/apigee/var/log अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  • conf_message-logging_log.root.dir - अगर आपने इसे एक रिलेटिव पाथ पर सेट किया है, जैसे कि conf/message-logging.properties+log.root.dir=custom/folder/, the path is appended to the bin_setenv_data_dir location.

    अगर इसे ऐब्सलूट पाथ पर सेट किया जाता है, जैसे conf/message-logging.properties+log.root.dir=/opt/apigee/var/log/messages, मैसेज लॉग, /opt/apigee/var/log/messages/messagelog/ में सेव किए जाएंगे. ऐब्सलूट पाथ इसे bin_setenv_data_dir से ज़्यादा प्राथमिकता दी जाती है.
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है ध्यान रखें कि आपको प्रॉपर्टी को conf/message-logging.properties+log.root.dir के तौर पर बताना होगा, क्योंकि तो उस पर डिफ़ॉल्ट रूप से टिप्पणी होती है. देखें टोकन जिस पर फ़िलहाल टिप्पणी की गई है.

अगर आपको लॉग फ़ाइलों को किसी समतल फ़ाइल स्ट्रक्चर में सेव करना है, ताकि सभी लॉग फ़ाइलें उसी डायरेक्ट्री में, conf/message-logging.properties+enable.flat.directory.structure पर सेट करें सही का निशान लगाएं. मैसेज को इसके ज़रिए तय की गई डायरेक्ट्री में सेव किया जाता है और फ़ाइल के नाम इस रूप में हो जाते हैं {org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}_{filename}.

इन प्रॉपर्टी को सेट करने के लिए:

  1. message-processor.properties फ़ाइल को Editor. अगर फ़ाइल मौजूद नहीं है, तो इसे बनाएं:
    &gt; vi /opt/apigee/customer/application/message-processor.properties
  2. प्रॉपर्टी को अपनी ज़रूरत के हिसाब से सेट करें:
    conf/message-logging.properties+log.root.dir=/opt/apigee/var/log/messages
  3. बदलावों को सेव करें.
  4. पक्का करें कि प्रॉपर्टी फ़ाइल का मालिकाना हक 'apigee' के पास हो उपयोगकर्ता:
    &gt; chown apigee:apigee /opt/apigee/customer/application/message-processor.property
  5. Edge कॉम्पोनेंट को रीस्टार्ट करें:
    &gt; /opt/apigee/apigee-service/bin/apigee-service Edge-message-प्रोसेसर रीस्टार्ट

प्राइवेट क्लाउड 4.15.07 और इससे पहले के वर्शन के लिए Edge

डिफ़ॉल्ट रूप से, मैसेज लॉग, मैसेज में नीचे दी गई जगह पर होते हैं प्रोसेसर:

/opt/apigee4/var/log/apigee/message-processor/messagelog/{org}/{environment}/{api_proxy_name}/{revision}/{logging_policy_name}/

डिफ़ॉल्ट लॉग की जगह बदलने के लिए, यहां दी गई प्रॉपर्टी में बदलाव करें: मैसेज प्रोसेसर पर message-logging.property फ़ाइल का इस्तेमाल करना:

  • data.dir - रूट को सेट करता है लॉग फ़ाइल स्टोरेज के लिए पाथ. उदाहरण के लिए, data.mir=/opt/apigee4/var/log
  • log.root.dir - अगर आपने सेट किया है इसे एक संबंधित पाथ से जोड़ दिया जाता है, जैसे कि log.root.ख़िलाफ़र=कस्टम/फ़ोल्डर/ पर सेट किया जाता है, तो पाथ को data.der जगह की जानकारी.

उदाहरण के लिए, दो प्रॉपर्टी का कॉम्बिनेशन, लॉगिंग डायरेक्ट्री को इस पर सेट करेगा: /opt/apigee4/var/log/custom/Folder/messagelog/ (ध्यान दें कि /messagelog जोड़ा गया है स्वचालित रूप से).

अगर आपने इसे किसी ऐब्सलूट पाथ पर सेट किया है, जैसे कि log.root.dir=/opt/apigee4/var/log/messages, मैसेज लॉग /opt/apigee4/var/log/messages/messagelog/ में संग्रहित किए जाएंगे. ऐब्सलूट पाथ, data.dir के बजाय, Log.root.आराम को ज़्यादा अहमियत दी जाती है.

अगर आपको लॉग फ़ाइलों को किसी समतल फ़ाइल स्ट्रक्चर में सेव करना है, ताकि सभी लॉग फ़ाइलें उसी डायरेक्ट्री में, enable.flat.directory.structured प्रॉपर्टी को इस पर सेट करें मैसेज पर message-logging.properties फ़ाइल में सही प्रोसेसर. मैसेज, ऊपर बताई गई प्रॉपर्टी और फ़ाइल के ज़रिए तय की गई डायरेक्ट्री में सेव किए जाते हैं नाम {org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}_{filename} का रूप लेते हैं.

इसमें वैरिएबल के लिए डिफ़ॉल्ट वैल्यू मैसेज टेंप्लेट

मैसेज टेंप्लेट में, हर वैरिएबल के लिए अलग से डिफ़ॉल्ट वैल्यू तय की जा सकती है. उदाहरण के लिए, अगर वैरिएबल request.header.id को हल नहीं किया जा सकता, तो इसका मान बदल दिया जाता है वैल्यू unknown होनी चाहिए.

<Message>This is a test message. id = {request.header.id:unknown}</Message>

सभी न सुलझाए गए वैरिएबल के लिए एक सामान्य डिफ़ॉल्ट मान सेट करके Message एलिमेंट पर defaultVariableValue एट्रिब्यूट:

<Message defaultVariableValue="unknown">This is a test message. id = {request.header.id}</Message>
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

तीसरे पक्ष की लॉग मैनेजमेंट सेवाओं को कॉन्फ़िगर करना

MessageLogging नीति की मदद से, तीसरे पक्ष के लॉग मैनेजमेंट को सिस्टम लॉग मैसेज भेजे जा सकते हैं Splunk, Sumo Logic, और Loggly जैसी सेवाएं शामिल हैं. अगर आपको इनमें से किसी एक को syslog भेजना है देखी जा सकती है, तो सेवा के होस्ट, पोर्ट और प्रोटोकॉल को कॉन्फ़िगर करने के लिए उस सेवा के दस्तावेज़ को देखें, उसके हिसाब से इस नीति के लिए Syslog एलिमेंट सेट करें.

तीसरे पक्ष के लॉग मैनेजमेंट कॉन्फ़िगरेशन के बारे में जानने के लिए, नीचे दिया गया दस्तावेज़ देखें:

गड़बड़ी का रेफ़रंस

इस सेक्शन में, गड़बड़ी के कोड और गड़बड़ी के मैसेज के बारे में बताया गया है. साथ ही, इन गड़बड़ियों के वैरिएबल के बारे में भी बताया गया है, जो Edge की मदद से सेट किए जाते हैं. यह जानकारी जानना ज़रूरी है कि क्या आप गड़बड़ियों को ठीक करता है. ज़्यादा जानने के लिए, आपके लिए ज़रूरी जानकारी देखें नीति से जुड़ी गड़बड़ियों और हैंडलिंग के बारे में जानकारी गलतियां.

रनटाइम की गड़बड़ियां

नीति के लागू होने पर ये गड़बड़ियां हो सकती हैं.

गड़बड़ी कोड एचटीटीपी कोड स्थिति वजह
steps.messagelogging.StepDefinitionExecutionFailed 500 गड़बड़ी वाली स्ट्रिंग देखें.

डिप्लॉयमेंट से जुड़ी गड़बड़ियां

ये गड़बड़ियां तब हो सकती हैं, जब इस नीति वाली प्रॉक्सी को डिप्लॉय किया जाता है.

गड़बड़ी का नाम वजह ठीक करें
InvalidProtocol इस गड़बड़ी की वजह से, MessageLogging नीति को लागू नहीं किया जा सकता, अगर प्रोटोकॉल <Protocol> एलिमेंट में बताया गया, मान्य नहीं है. मान्य प्रोटोकॉल, टीसीपी और यूडीपी हैं. TLS/एसएसएल पर syslog मैसेज भेजने के लिए, सिर्फ़ टीसीपी का इस्तेमाल किया जा सकता है.
InvalidPort इस गड़बड़ी की वजह से हो सकता है कि MessageLogging नीति को लागू न करें: पोर्ट नंबर को <Port> एलिमेंट में नहीं बताया गया है या वह मान्य नहीं है. पोर्ट नंबर शून्य से बड़ा पूर्णांक.

गड़बड़ी के वैरिएबल

रनटाइम की गड़बड़ी होने पर ये वैरिएबल सेट किए जाते हैं. ज़्यादा जानकारी के लिए, आपके लिए ज़रूरी जानकारी देखें नीति से जुड़ी गड़बड़ियों के बारे में जानकारी.

वैरिएबल कहां उदाहरण
fault.name="fault_name" fault_name गड़बड़ी का नाम है, जैसा कि ऊपर रनटाइम में गड़बड़ियां टेबल में बताया गया है. गड़बड़ी का नाम, गड़बड़ी के कोड का आखिरी हिस्सा होता है. fault.name Matches "StepDefinitionExecutionFailed"
messagelogging.policy_name.failed policy_name, उपयोगकर्ता की ओर से बताया गया उस नीति का नाम है जिसमें गड़बड़ी हुई है. messagelogging.ML-LogMessages.failed = true

गड़बड़ी के रिस्पॉन्स का उदाहरण

{  
   "fault":{  
      "detail":{  
         "errorcode":"steps.messagelogging.StepDefinitionExecutionFailed"
      },
      "faultstring":"Execution failed"
   }
}

गड़बड़ी के नियम का उदाहरण

<FaultRule name="MessageLogging">
    <Step>
        <Name>ML-LogMessages</Name>
        <Condition>(fault.name Matches "StepDefinitionExecutionFailed") </Condition>
    </Step>
    <Condition>(messagelogging.ML-LogMessages.failed = true) </Condition>
</FaultRule>


फ़्लो वैरिएबल

नीति के लागू न होने पर, ये वैरिएबल अपने-आप भर जाते हैं.

  • messagelogging.failed
  • messagelogging.{stepdefinition-name}.failed

मिलते-जुलते विषय