Erlang 21 - 2. Error Logging

2 त्रुटि लॉगिंग




erlang

2 त्रुटि लॉगिंग

2.1 रनटाइम सिस्टम से त्रुटि सूचना

रनटाइम सिस्टम से त्रुटि की जानकारी, अर्थात, किसी अनकही त्रुटि अपवाद के कारण समाप्त होने वाली प्रक्रिया के बारे में जानकारी, डिफ़ॉल्ट रूप से टर्मिनल (tty) को लिखी जाती है:

=ERROR REPORT==== 9-Dec-2003::13:25:02 ===
Error in process <0.27.0> with exit value: {{badmatch,[1,2,3]},[{m,f,1},{shell,eval_loop,2}]}

त्रुटि जानकारी को लॉगर द्वारा नियंत्रित किया जाता है, जो कर्नेल अनुप्रयोग का हिस्सा है।

रनटाइम सिस्टम द्वारा उपयोग किए जाने वाले निकास कारणों (जैसे कि badarg ) को Errors and Error Handling में वर्णित किया गया है।

लकड़हारा और उसके उपयोगकर्ता इंटरफ़ेस के बारे में जानकारी के लिए, कर्नल उपयोगकर्ता मार्गदर्शिका में logger(3) मैनुअल पेज और Logging अनुभाग देखें। सिस्टम को कॉन्फ़िगर किया जा सकता है ताकि लॉग इवेंट्स को फ़ाइल या ट्टी, या दोनों में लिखा जाए। इसके अलावा, उपयोगकर्ता-परिभाषित अनुप्रयोग लॉगर का उपयोग करके लॉग इवेंट को भेज और प्रारूपित कर सकते हैं।

2.2 OTP व्यवहार से ईवेंट लॉग करें

मानक व्यवहार ( supervisor , gen_server , और इसी तरह) लकड़हारा को प्रगति और त्रुटि जानकारी भेजते हैं। प्रगति रिपोर्ट डिफ़ॉल्ट रूप से लॉग इन नहीं है, लेकिन info लिए प्राथमिक लॉग स्तर सेट करके सक्षम किया जा सकता है, उदाहरण के लिए कर्नेल कॉन्फ़िगरेशन पैरामीटर logger_level का उपयोग करके। पर्यवेक्षक रिपोर्ट, क्रैश रिपोर्ट और अन्य त्रुटि और सूचना रिपोर्ट डिफ़ॉल्ट रूप से लॉग हैंडलर के माध्यम से लॉग इन करते हैं जो कि कर्नेल अनुप्रयोग शुरू होने पर स्थापित किया जाता है।

Erlang / OTP 21.0 से पहले, पर्यवेक्षक, दुर्घटना, और प्रगति रिपोर्ट केवल तभी लॉग की गईं जब एसएएसएल एप्लिकेशन चल रहा था। यह व्यवहार, पीछे की संगतता के लिए, कर्नेल कॉन्फ़िगरेशन पैरामीटर logger_sasl_compatible को true सेट करके सक्षम किया जा सकता true । अधिक जानकारी के लिए, एसएएसएल उपयोगकर्ता गाइड में SASL Error Logging देखें।

% erl -kernel logger_level info
Erlang/OTP 21 [erts-10.0] [source-13c50db] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]

=PROGRESS REPORT==== 8-Jun-2018::16:54:19.916404 ===
    application: kernel
    started_at: [email protected]
=PROGRESS REPORT==== 8-Jun-2018::16:54:19.922908 ===
    application: stdlib
    started_at: [email protected]
=PROGRESS REPORT==== 8-Jun-2018::16:54:19.925755 ===
    supervisor: {local,kernel_safe_sup}
    started: [{pid,<0.74.0>},
              {id,disk_log_sup},
              {mfargs,{disk_log_sup,start_link,[]}},
              {restart_type,permanent},
              {shutdown,1000},
              {child_type,supervisor}]
=PROGRESS REPORT==== 8-Jun-2018::16:54:19.926056 ===
    supervisor: {local,kernel_safe_sup}
    started: [{pid,<0.75.0>},
              {id,disk_log_server},
              {mfargs,{disk_log_server,start_link,[]}},
              {restart_type,permanent},
              {shutdown,2000},
              {child_type,worker}]
Eshell V10.0  (abort with ^G)
1>