इस प्रोजेक्ट के बारे में

Logrus Go के लिए एक संरचित लॉगर है, जिसे मानक लाइब्रेरी लॉगर के साथ API संगत होने के लिए डिज़ाइन किया गया है। यह रखरखाव मोड में है: परियोजना सुरक्षा, बग फिक्स और प्रदर्शन सुधारों पर केंद्रित है, जिसमें नई सुविधाएँ केवल Go के log/slog जैसे इंटरऑपरेबिलिटी कार्य तक सीमित हैं। README नोट करता है कि संरचित लॉगिंग अब Zerolog, Zap और Apex जैसे विकल्पों के माध्यम से Go में व्यापक रूप से उपलब्ध है। मुख्य क्षमताएँ: - स्तर-आधारित लॉगिंग सात स्तरों के साथ: Trace, Debug, Info, Warning, Error, Fatal और Panic। एक लॉगर को केवल चुनी गई गंभीरता पर या उससे ऊपर की प्रविष्टियाँ उत्सर्जित करने के लिए कॉन्फ़िगर किया जा सकता है। - WithField और WithFields के माध्यम से संरचित फ़ील्ड, लंबे स्वरूपित संदेशों के बजाय खोजने योग्य कुंजी-मूल्य लॉगिंग को प्रोत्साहित करते हैं। प्रविष्टियों में स्वचालित रूप से time, msg और level शामिल होते हैं। - डिफ़ॉल्ट फ़ील्ड: WithFields एक logrus.Entry लौटाता है जिसे कई लॉग स्टेटमेंट्स में request_id या user_ip जैसे सामान्य फ़ील्ड संलग्न करने के लिए पुनः उपयोग किया जा सकता है। - फॉर्मेटर: अंतर्निहित TextFormatter (जब आउटपुट TTY हो तो रंग-कोडित, अन्यथा logfmt-संगत सादा पाठ) और JSONFormatter जो Logstash या Splunk जैसे उपकरणों द्वारा मशीन पार्सिंग के लिए है। विकल्पों में ForceColors, DisableColors, DisableLevelTruncation, PadLevelText और FullTimestamp शामिल हैं। कस्टम फॉर्मेटर Formatter इंटरफ़ेस को लागू करते हैं। - हुक: लॉगिंग स्तरों पर व्यवहार संलग्न करें, उदाहरण के लिए त्रुटियों को अपवाद ट्रैकर्स पर भेजना, StatsD को अग्रेषित करना, या syslog पर लिखना। अंतर्निहित हुक मौजूद हैं और तृतीय-पक्ष हुक परियोजना विकी में सूचीबद्ध हैं। - कॉलर रिपोर्टिंग: SetReportCaller(true) कॉलिंग विधि को एक फ़ील्ड के रूप में जोड़ता है, जिसमें README में मापने योग्य ओवरहेड नोट किया गया है। - io.Writer एकीकरण: logger.Writer() लॉगर को io.Writer के रूप में उजागर करता है, जिससे मानक लाइब्रेरी लॉग आउटपुट को Logrus फॉर्मेटर और हुक के माध्यम से पुनर्निर्देशित किया जा सकता है। - परीक्षण समर्थन: test hook पैकेज परीक्षणों में लॉग संदेशों की पुष्टि के लिए NewLocal, NewGlobal और NewNullLogger सहायक प्रदान करता है। - Fatal हैंडलर: RegisterExitHandler फ़ंक्शन पंजीकृत करता है जो घातक-स्तर के संदेशों पर os.Exit(1) से पहले निष्पादित होते हैं, जो सुचारू शटडाउन के लिए उपयोगी है। - थ्रेड सुरक्षा: Logger डिफ़ॉल्ट रूप से mutex-संरक्षित है; SetNoLock() लॉकिंग अक्षम कर सकता है जब हुक और आउटपुट पहले से थ्रेड-सुरक्षित हों। लॉग रोटेशन जानबूझकर शामिल नहीं है; README logrotate जैसे बाहरी उपकरणों की सिफारिश करता है। लाइब्रेरी में पर्यावरण की कोई अंतर्निहित अवधारणा नहीं है, इसलिए पर्यावरण द्वारा फॉर्मेटर और हुक चयन एप्लिकेशन पर छोड़ दिया गया है।