उड़ान में बग पकड़ना: JavaScript अनुप्रयोगों की निगरानी और लॉगिंग

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

आपका JavaScript कोड मदद के लिए चिल्ला रहा है, और आप सुन नहीं रहे?

\n\n

कल्पना करें: आपने एक शानदार वेब एप्लिकेशन लॉन्च किया। उपयोगकर्ता आते हैं, क्लिक करते हैं, सब कुछ काम करता है… या नहीं? वास्तव में, ब्राउज़र की गहराई में कहीं एक त्रुटि चुपचाप गिर रही है: Uncaught TypeError: Cannot read property 'length' of undefined। उपयोगकर्ता बस टैब बंद कर देता है और प्रतिस्पर्धियों के पास चला जाता है, और आपको यह भी पता नहीं चलता कि कुछ गलत हुआ।

\n\n

फ्रंटएंड डेवलपमेंट की वास्तविकता में आपका स्वागत है। JavaScript अनुप्रयोगों की निगरानी और लॉगिंग के बिना, आप आँख बंद करके काम कर रहे हैं। लेकिन घबराएँ नहीं — आज हम समझेंगे कि त्रुटियों की अराजकता को एक सुव्यवस्थित सूचना प्रणाली में कैसे बदला जाए। आप सीखेंगे कि घटनाओं को सही तरीके से कैसे लॉग करें, प्रदर्शन को ट्रैक करें और डेटा के समुद्र में न डूबें।

\n\n

यह लेख प्रोडक्शन में जीवित रहने के लिए आपकी चीट शीट है। चलिए शुरू करते हैं!

\n\n

Console.log — आपका दोस्त या दुश्मन?

\n\n

बुनियादी बातों से शुरू करते हैं। console.log() — यह हर डेवलपर के दिमाग में सबसे पहले आता है। और यह सामान्य है। लेकिन अगर आप इसे प्रोडक्शन कोड में उपयोग कर रहे हैं, तो रुक जाएँ। क्यों? क्योंकि:

\n\n
    \n
  • यह उपयोगकर्ता के कंसोल को अव्यवस्थित करता है (हाँ, कुछ लोग इसे खोलते हैं)।
  • \n
  • बड़ी संख्या में कॉल होने पर प्रदर्शन को प्रभावित करता है।
  • \n
  • यह संरचित जानकारी नहीं देता।
  • \n
\n\n

बेहतर होगा कि आप लॉगिंग स्तरों का उपयोग करें। यहाँ सही दृष्टिकोण का उदाहरण है:

\n\n
// बुरा\nconsole.log('User clicked button');\n\n// अच्छा\nconsole.info('User interaction', { \n    action: 'click', \n    element: '#submit-btn', \n    timestamp: Date.now() \n});\n\n// त्रुटियों के लिए\nconsole.error('API request failed', { \n    status: 500, \n    endpoint: '/api/users' \n});\n\n// चेतावनियों के लिए\nconsole.warn('Deprecated method used', { \n    method: 'fetchData_v1' \n});
\n\n

लेकिन यह भी केवल हिमशैल का सिरा है। असली JavaScript अनुप्रयोगों की निगरानी वहाँ से शुरू होती है जहाँ कंसोल उपलब्ध नहीं है।

\n\n

संरचित लॉगिंग: JSON आपकी मदद करेगा

\n\n

जब आपका एप्लिकेशन बढ़ता है, तो कंसोल में अव्यवस्थित संदेश गड़बड़ी में बदल जाते हैं। समाधान — संरचित लॉगिंग। डेटा को JSON प्रारूप में भेजें ताकि इसे पार्स और विश्लेषण किया जा सके।

\n\n

यहाँ एक सरल लॉगर बनाने का तरीका है:

\n\n
class Logger {\n    constructor(context = {}) {\n        this.context = context;\n    }\n\n    log(level, message, data = {}) {\n        const logEntry = {\n            timestamp: new Date().toISOString(),\n            level,\n            message,\n            ...this.context,\n            ...data\n        };\n\n        // प्रोडक्शन में सर्वर पर भेजें\n        if (process.env.NODE_ENV === 'production') {\n            this.sendToServer(logEntry);\n        } else {\n            // डेवलपमेंट में कंसोल में दिखाएँ\n            console[level](`[${level.toUpperCase()}] ${message}`, data);\n        }\n    }\n\n    sendToServer(entry) {\n        // गारंटीड भेजने के लिए sendBeacon का उपयोग करें\n        navigator.sendBeacon('/api/logs', JSON.stringify(entry));\n    }\n\n    info(message, data) { this.log('info', message, data); }\n    warn(message, data) { this.log('warn', message, data); }\n    error(message, data) { this.log('error', message, data); }\n}\n\n// उपयोग\nconst logger = new Logger({ appVersion: '1.2.3', userId: getUserId() });\nlogger.info('Page loaded', { url: window.location.href, loadTime: performance.now() });
\n\n

navigator.sendBeacon() पर ध्यान दें — उपयोगकर्ता के पेज छोड़ने से पहले डेटा भेजने का यह सबसे अच्छा तरीका है। सामान्य fetch-अनुरोध रद्द हो सकते हैं।

\n\n

त्रुटियों को पकड़ना: try/catch — यह केवल शुरुआत है

\n\n

ग्लोबल त्रुटियाँ सबसे कपटी होती हैं। वे कहीं भी हो सकती हैं, और उन्हें आसानी से अनदेखा किया जा सकता है। यहाँ JavaScript त्रुटियों की पूर्ण निगरानी सेट अप करने का तरीका है:

\n\n

ग्लोबल त्रुटि हैंडलर

\n\n
// अनहैंडल त्रुटियों को पकड़ें\nw                

ब्लॉग

पुस्तक अनुशंसाएँ