2011-02-17 6 views
9

हमारे पास हमारी सर्वर-साइड सेवाओं के लिए एक स्थापित लॉगिंग सिस्टम है। विशेष रूप से, हमारी डीजेगो प्रोजेक्ट पाइथन लॉगिंग मॉड्यूल का भारी उपयोग करती है, इसलिए हमारे केंद्रीकृत लॉगिंग सिस्टम द्वारा उठाए गए logger.info(), logger.warn() और logger.error() पर कॉल करें।एक जावास्क्रिप्ट फ्रंटएंड लॉगिंग सिस्टम जो हमारे बैकएंड पर लॉग इन करता है?

मैं अपने दृश्यपटल पर एक बराबर चाहते हैं, और मैं कुछ विचार मिल गया है:

  1. वहाँ जावास्क्रिप्ट के माध्यम से अवगत कराया कस्टम प्रवेश वस्तु के कुछ प्रकार है कि एक XmlHttpRequest के माध्यम से संदेश भेजने के बैकेंड होगा ।

  2. मैं क्लाइंट-साइड पर बराबर प्रवेश स्तर है करना चाहते हैं: debug, info, warning और error

  3. जब हम स्थानीय रूप से विकसित होते हैं (डीबग मोड), तो मैं उन लॉगिंग संदेशों को ब्राउज़र/फ़ायरबग कंसोल पर console.log() के माध्यम से लॉग इन करना चाहता हूं।

  4. उत्पादन में, debug संदेशों को पूरी तरह से हटा दिया जाना चाहिए।

  5. मैं सभी ध्यान में न आया JavaScript अपवाद कैप्चर करने का तरीका देखकर याद, इसलिए इन error स्तर पर लॉग इन करना चाहिए।

  6. हम पहले से ही Google Analytics event tracking का उपयोग कर रहे हैं, और यह किसी भी तरह से टाई जाने वाली किसी भी प्रणाली के लिए अच्छा होगा।

क्या यह एक अच्छा विचार है? आप यह कैसे करेंगे? क्या मौजूदा समाधान हैं?

(Fwiw, हम दृश्यपटल पर jQuery का उपयोग कर रहे हैं।)

अद्यतन: सरलीकृत प्रश्न यहाँ: https://stackoverflow.com/questions/1423267/are-there-any-logging-frameworks-for-javascript

+0

मैं इस प्रश्न के लिए एक अच्छा शीर्षक तय नहीं कर सकता। सुधार करने के लिए स्वतंत्र महसूस करें। –

+3

यदि ग्राहक सर्वर-साइड लॉग "पॉप्युलेट" कर सकता है, तो क्या इसका मतलब है कि इंटरनेट पर कोई भी (मान लीजिए कि यह एक वेबपैप है) सर्वर-साइड लॉग को AJAX स्पैम करके बाढ़ कर सकता है? आप हमारे सिस्टम लॉग में "सामान" लॉग इन कर सकते हैं पर कुछ सुरक्षा प्रतिबंध जोड़ना चाह सकते हैं ... – DashK

+0

अच्छा सवाल! +1 – peteorpeter

उत्तर

13

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

  1. log4javascript उपयोग के AjaxAppender सर्वर प्रवेश के लिए;

  2. debug, info, warning और error सभी trace और fatal के रूप में समर्थन कर रहे हैं, साथ ही;

  3. फ़ायरबग या मूल ब्राउज़र कंसोल पर लॉग इन करने के लिए BrowserConsoleAppender का उपयोग करें;

  4. आप आप उत्पादन कोड से सभी डीबग लॉगिंग कॉल निकाल नहीं करना चाहते हैं, तो आप या तो अपने लकड़हारा के सीमा समायोजित कर सकते हैं (उदाहरण के लिए log.setLevel(log4javascript.Level.ERROR) का उपयोग कर,, जो प्राथमिकता ERROR से भी कम समय के साथ सभी लॉग कॉल को दबाने जाएगा)। यदि आप सभी लॉगिंग कॉल को दबाना चाहते हैं, तो आप अपने उत्पादन कोड में stub version of log4javascript में ड्रॉप कर सकते हैं।

  5. आपको window.onerror का उपयोग करके ऐसा करने के लिए थोड़ा सा कोड लिखना होगा। कुछ window.onerror = function(msg, file, line) { log.error("Error in " + file + " on line " + line + ": " + msg); }

  6. मुझे यकीन नहीं है कि आप Google Analytics के साथ कैसे जुड़ना चाहते हैं। log4javascript के लिए इसके लिए कोई विशेष समर्थन नहीं है।

+0

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

+0

नोट का समर्थन करता है तो इसका ढेर भेजें: ऐसा लगता है कि नई त्रुटि में स्टैक नहीं होगा: https://github.com/stacktracejs/stacktrace.js/issues/26 इसलिए मुझे डर है कि वहां है पुराने ब्राउज़र में कोई कामकाज नहीं है, लेकिन अभी तक परीक्षण नहीं किया गया है। – inf3rno

1

विचार यहाँ अच्छा लगता है। बस इस बात से अवगत रहें कि आप क्लाइंट-साइड लॉग इन करना चाहते हैं और उस पर क्या है।

मैं लॉगिंग के लिए log4javascript का उपयोग करने की सलाह दूंगा। लॉग 4 एपीआई बहुत सीधी फव्वारा है।

1

यहां इस मुद्दे के बारे में SO पर another question है।

कुछ सिफारिशें हैं: log4js, log4javascript, और Blackbird

FWIW, log4js स्वीकार्य उत्तर था। मुझे इनमें से किसी भी प्लेटफ़ॉर्म के साथ अनुभव नहीं है, इसलिए मैं वास्तव में दूसरे पर एक की सिफारिश नहीं कर सकता।

+0

उपयोगी, लेकिन प्रश्न 5 और 6 के बारे में क्या? –

+0

@a paid nerd - I वास्तव में जावा या जावास्क्रिप्ट के साथ काम नहीं करते हैं, इसलिए मैं इन मुद्दों से वास्तव में परिचित नहीं हूं। मैंने अभी उन अन्य ऑप का उल्लेख किया है tions क्योंकि मैं हाल ही में उन पर आया था जब मुझे हमारे केंद्रीकृत लॉगिंग समाधान (जिसे हम वर्तमान में काम कर रहे हैं) के साथ जावास्क्रिप्ट लॉगिंग को एकीकृत करने के तरीके से देखने के लिए कहा गया था। मैं अभी भी जावास्क्रिप्ट के साथ कुछ भी करने के लिए वास्तव में नहीं मिला है। – wageoghe

+0

'log4js' स्थानांतरित हो गया है। वर्तमान प्रोजेक्ट यूआरएल http://stritti.github.io/log4js/ – ylerjen

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