2012-05-02 19 views
9

यह एक नोब सवाल है।जावास्क्रिप्ट लॉगिंग

क्या होगा यदि मैं जावा स्क्रिप्ट एप्लिकेशन में लॉगिंग जोड़ना चाहता हूं, जो ब्राउज़र (आईई, एफएफ, इत्यादि) में चल रहा है? जैसा कि मैं समझता हूं कि मैं क्लाइंट होस्ट में लॉग फ़ाइलों को सहेज नहीं सकता। इसलिए, मेरे पास केवल दो विकल्प हैं: मेरी लॉगिंग जानकारी को एक नई ब्राउज़र विंडो (जैसे "ब्लैकबर्ड") में प्रदर्शित करें या सर्वर पर लॉगिंग भेजें।

क्या यह सही है? वे आमतौर पर किस तरह के लॉगिंग का उपयोग करते हैं?

उत्तर

10

आप ग्राहक होस्ट पर लॉग फ़ाइलों को "स्टोर" नहीं कर सकते हैं। आप एक विंडो खोल सकते हैं और इसे विज़ुअलाइज़ कर सकते हैं, लेकिन आप (मानते हैं कि आप वेब एप्लिकेशन चला रहे हैं) इसे कभी नहीं देख पाएंगे।

यदि आप बिल्कुल क्लाइंट साइड लॉग प्राप्त करना चाहते हैं, तो आपको उन्हें AJAX का उपयोग कर सर्वर पर वापस भेजने की आवश्यकता है। Here's a blog post मुझे वास्तव में इसके बारे में पसंद आया।

+0

मुझे लगता है कि वह पूरी तरह से उन्हें प्राप्त करना होगा अन्यथा वह नहीं पूछेगा =) यह एक बुरी अवधारणा नहीं है और उस पोस्ट में तकनीक निर्दोष है ^^ आधुनिक ब्राउज़र वास्तव में फाइलों को लिखने की अनुमति देते हैं और ActiveX घटकों को हमेशा वहां रहा है; अगर ग्राहक इसे चलाने को स्वीकार करता है – mschr

0

एक और संभावना jsnlog लाइब्रेरी http://js.jsnlog.com/ यह आपको सर्वर पर क्लाइंट साइड लॉग भेजने देगी।

0

https://log4sure.com पर एक नज़र डालें (प्रकटीकरण: मैंने इसे बनाया) - लेकिन यह वास्तव में उपयोगी है, इसे जांचें और स्वयं के लिए निर्णय लें। यह आपको त्रुटियों/घटनाओं को लॉग करने की अनुमति देता है और आपको अपनी कस्टम लॉग तालिका बनाने देता है। यह सब कुछ अपने सर्वर पर स्टोर करता है ताकि आपको यह नहीं करना पड़े। यह आपको अपने लॉग रीयल-टाइम की निगरानी करने की अनुमति देता है। और सबसे अच्छा हिस्सा, यह मुफ़्त है।

आप भी इसे स्थापित करने के लिए बोवर उपयोग कर सकते हैं, उपयोग बोवर स्थापित log4sure

सेट अप कोड वास्तव में बहुत आसान है:

// setup 
 
var _logServer; 
 

 
(function() { 
 
    var ls = document.createElement('script'); 
 
    ls.type = 'text/javascript'; 
 
    ls.async = true; 
 
    ls.src = 'https://log4sure.com/ScriptsExt/log4sure.min.js'; 
 
    var s = document.getElementsByTagName('script')[0]; 
 
    s.parentNode.insertBefore(ls, s); 
 
    ls.onload = function() { 
 
    // use your token here. 
 
    _logServer = new LogServer("use-your-token-here"); 
 
    }; 
 
})(); 
 

 
// example for logging text 
 
_logServer.logText("your log message goes here.") 
 

 
//example for logging error 
 
divide = function(numerator, divisor) { 
 
    try { 
 
     if (parseFloat(value) && parseFloat(divisor)) { 
 
     throw new TypeError("Invalid input", "myfile.js", 12, { 
 
      value: value, 
 
      divisor: divisor 
 
     }); 
 
     } else { 
 
     if (divisor == 0) { 
 
      throw new RangeError("Divide by 0", "myfile.js", 15, { 
 
      value: value, 
 
      divisor: divisor 
 
      }); 
 
     } 
 
     } 
 
    } catch (e) { 
 
     _logServer.logError(e.name, e.message, e.stack); 
 

 
    } 
 
    } 
 
    // another use of logError in window.onerror 
 
    // must be careful with window.onerror as you might be overwriting some one else's window.onerror functionality 
 
    // also someone else can overwrite window.onerror. 
 
window.onerror = function(msg, url, line, column, err) { 
 
    // may want to check if url belongs to your javascript file 
 
    var data = { 
 
    url: url, 
 
    line: line, 
 
    column: column, 
 

 
    } 
 
    _logServer.logError(err.name, err.message, err.stack, data); 
 

 
}; 
 

 
// example for custom logs 
 
var foo = "some variable value"; 
 
var bar = "another variable value"; 
 
var flag = "false"; 
 
var temp = "yet another variable value"; 
 

 
_logServer.log(foo, bar, flag, temp);

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