2013-06-03 9 views
27

क्या गोलांग में स्तर आधारित लॉगिंग के लिए कोई अच्छा रैपर उपलब्ध है? यदि नहीं, तो मुझे खुद को लागू करने के बारे में कैसे जाना चाहिए?गोलांग में स्तर आधारित लॉगिंग को कैसे कार्यान्वित करें?

जो मैं चाहता हूं वह बहुत आसान है। मुझे कुछ फ़ंक्शन चाहिए उदा।

log.Error() 
log.Info() 

आदि प्रदर्शित उनके outputs stdout के साथ ही एक लॉग फ़ाइल में इन को बचाने के लिए (कमांडलाइन तर्क के रूप में कार्यक्रम के लिए दिए गए स्तर के आधार पर)। मैं इस रैपर को कैसे कार्यान्वित करूं?

+2

https://github.com/jcelliott/lumber – elithrar

+0

@elithrar धन्यवाद! – pymd

+0

@ एलीथार, धन्यवाद, यह सरल और पावरफूल –

उत्तर

28

कुछ और सुझाव, अब है कि मौजूदा जवाब काफी पुराने हैं:

3

http://cgl.tideland.biz पर और "applog" पैकेज पर एक नज़र डालें। यह इस तरह से काम कर रहा है।

पीएस: संपूर्ण सीजीएल वर्तमान में पुनर्निर्मित है और जल्द ही नई सुविधाओं के साथ जारी किया जाएगा, लेकिन एक अलग नाम के तहत। ;)

+0

आपकी मदद के लिए बहुत बहुत धन्यवाद! – pymd

+0

दुर्भाग्य से लिंक मर चुके हैं –

+0

सभी लिंक मर गए हैं या लॉगिंग के साथ कुछ भी करने के लिए नहीं है। – neurosnap

4

मुझे लगता है कि seelog आपके requirements फिट बैठता है, और यह बहुत लोकप्रिय लगता है क्योंकि यह अक्सर लॉग चर्चाओं में पॉप अप करता है। मैंने इसे गंभीरता से कभी नहीं इस्तेमाल किया, इसलिए मैं उससे परे टिप्पणी नहीं कर सकता।

+0

ऐसा लगता है कि सेलेग को प्रत्येक कथन के लिए वैश्विक लॉक प्राप्त/रिलीज़ करना होगा। –

2

stdlog वास्तव में अपनी आवश्यकताओं फिट बैठता है:

log := stdlog.GetFromFlags() 
log.Info("Connecting to the server...") 
log.Errorf("Connection failed: %q", err) 
0

https://github.com/hashicorp/logutils मैं इस का उपयोग करने के लिए बहुत आसान हो पाया में लगाया और तुम नहीं एसडीडी लाइब्रेरी के log.Printf पर विधि कॉल को बदलने की भी आवश्यकता है।

0

मैं इस समय rlog के साथ काम कर रहा हूं और उनके दृष्टिकोण की तरह। कोड अच्छा, सरल और पर्याप्त रूप से प्रलेखित दिखता है।

ने मुझे आश्वस्त किया क्या:

  • कोई बाहरी निर्भरता
  • मैं चारों ओर गुजर बिना rlog.Info() कहीं भी उपयोग कर सकते हैं का संदर्भ
  • वातावरण चर का अच्छा उपयोग
  • का पता लगाने के स्तर के मनमाना संख्या उदा rlog.Trace(4, "foo")
0

मैंने अंतर्निहित गो लॉग पैकेज में लॉगिंग स्तर समर्थन जोड़ा है।, जानकारी के लिए समर्थन जोड़ने के लिए

https://github.com/gologme/log

इसके अलावा चेतावनी दें, और डीबग, उपयोगकर्ताओं को भी अपने स्वयं के मनमाने ढंग से प्रवेश स्तर निर्धारित कर सकते हैं: आप यहाँ मेरे कोड पा सकते हैं। लॉगिंग स्तर सक्षम हैं और व्यक्तिगत रूप से अक्षम हैं। इसका मतलब है कि आप सबकुछ प्राप्त किए बिना डीबग लॉग चालू कर सकते हैं।

संबंधित मुद्दे