लॉगिंग और मॉनिटरिंग मोबाइल एप्लिकेशन की स्थिरता के दो स्तंभ हैं। Gartner (2025) के अनुसार, APM समाधानों का बाजार 2027 तक 8 बिलियन डॉलर तक पहुंच जाएगा। सही लॉगिंग न केवल बग ढूंढने की अनुमति देती है, बल्कि उपयोगकर्ताओं को प्रभावित करने से पहले समस्याओं की भविष्यवाणी करने की भी अनुमति देती है।
मुख्य बातें
iOS पर मोबाइल एप्लिकेशन लॉगिंग os_log पर आधारित है — Apple की अंतर्निहित प्रणाली, जो iOS 10 से उपलब्ध है। os_log एक एकल सिस्टम लॉग (ऑन-डिवाइस या Console.app के माध्यम से) में लॉग लिखता है, श्रेणियों, स्तरों और गोपनीयता टैग का समर्थन करता है। Console.app और xcrun के माध्यम से iOS पर लॉगिंग और मॉनिटरिंग का संयोजन वास्तविक समय में त्रुटियों और प्रदर्शन को ट्रैक करने की अनुमति देता है।
os_log में स्तर हैं: Default, Info, Debug, Error, Fault। प्रोडक्शन में Error और Fault रखे जाते हैं — Debug और Info बंद कर दिए जाते हैं। सही स्तर चुनना iOS पर मोबाइल एप्लिकेशन मॉनिटरिंग रणनीति का हिस्सा है। गोपनीयता: %{public}@ असुरक्षित डेटा के लिए, %{private}@ व्यक्तिगत डेटा के लिए।
CocoaLumberjack iOS लॉगिंग के लिए एक लोकप्रिय लाइब्रेरी है। os_log के विपरीत, यह कस्टम फ़ॉर्मेट, एसिंक्रोनस राइटिंग और log रोटेशन का समर्थन करती है। DDLog, DDTTYLogger (कंसोल), DDFileLogger (रोटेशन के साथ फ़ाइल)। रिमोट मॉनिटरिंग के लिए CocoaLumberjack को os_log के साथ जोड़ा जा सकता है — रिमोट लॉगिंग के लिए फ़ाइल में और Console.app के लिए os_log में लिखें।
Android पर मोबाइल एप्लिकेशन लॉगिंग के लिए Timber का उपयोग किया जाता है — Jake Wharton की लाइब्रेरी, जो प्लेटफ़ॉर्म का मानक बन गई है। Timber Android Log (Logcat) पर एक रैपर है जो स्वचालित रूप से क्लास टैग जोड़ता है और Tree कॉन्फ़िगर करता है। Timber Android मोबाइल एप्लिकेशन मॉनिटरिंग सिस्टम का हिस्सा है: डीबगिंग के लिए DebugTree, डेटा भेजने के लिए CrashlyticsTree।
Timber Tree का उपयोग करता है — एक घटक जो तय करता है कि लॉग के साथ क्या करना है। डीबग बिल्ड में DebugTree (Logcat में आउटपुट), रिलीज़ में — CrashlyticsTree (क्रैश भेजना)। Timber.wtf() घातक त्रुटियों को लॉग करता है। Timber.tag("CustomTag") टैग को ओवरराइड करता है। प्रभावी मॉनिटरिंग के लिए Timber को APM उपकरणों के साथ जोड़ा जाता है।
Android Log में स्तर हैं: VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT। ProGuard/R8 रिलीज़ में Log.d और Log.v को हटा देता है — Timber Plant के माध्यम से लॉग करने की अनुमति देता है। स्तर का चुनाव मोबाइल एप्लिकेशन मॉनिटरिंग की गुणवत्ता को प्रभावित करता है — प्रोडक्शन में WARN और ERROR रखे जाते हैं।
| उपकरण | प्लेटफ़ॉर्म | फ़ॉर्मेट | रोटेशन | रिमोट | जटिलता |
|---|---|---|---|---|---|
| os_log | iOS | संरचित | सिस्टम | Console.app | कम |
| CocoaLumberjack | iOS | टेक्स्ट/JSON | DDFileLogger | हाँ (कस्टम) | मध्यम |
| Timber | Android | टेक्स्ट | Logcat/कस्टम | Tree | कम |
| Sentry | iOS/Android | JSON | सर्वर | हाँ | मध्यम |
| Logcat | Android | टेक्स्ट | बफ़र | ADB | कम |
लॉगिंग उपकरण चुनते समय विचार करें: क्या रिमोट लॉगिंग की आवश्यकता है, लॉग कितनी बार बदलते हैं और उनका विश्लेषण कौन करेगा। स्टार्टअप के लिए os_log या Timber पर्याप्त है। एंटरप्राइज़ के लिए — सर्वर पर भेजने के साथ CocoaLumberjack। IT Sectr में हम Android के लिए Timber + Crashlytics और iOS के लिए os_log + CocoaLumberjack का उपयोग करते हैं।
Structured logging — JSON फ़ॉर्मेट में लॉग लिखना, न कि सादा टेक्स्ट। उदाहरण: "User login failed" के बजाय हम {"event": "login_failed", "user_id": 123, "reason": "invalid_password"} लिखते हैं। यह स्वचालित मॉनिटरिंग का आधार है — ELK स्टैक और Grafana ऐसे डेटा को फ़िल्टर, एकत्र और विश्लेषण करते हैं।
फ़ील्ड द्वारा फ़िल्टरिंग: पिछले एक घंटे में event=crash वाले सभी लॉग खोजें। एकत्रीकरण: एप्लिकेशन संस्करण द्वारा त्रुटियों की संख्या का ग्राफ़ बनाएं। ELK (Elasticsearch, Logstash, Kibana) या Grafana के साथ एकीकरण। पहले रिलीज़ के लिए structured logging अनिवार्य नहीं है, लेकिन DAU के 10,000 से अधिक होने पर महत्वपूर्ण हो जाता है।
रिमोट लॉगिंग — केंद्रीकृत मॉनिटरिंग के लिए डिवाइस से सर्वर पर लॉग भेजना। कस्टम Tree (Android) या HTTP अनुरोधों के माध्यम से कार्यान्वित किया जाता है। केवल Error और Warning भेजें — उपयोगकर्ता का ट्रैफ़िक बर्बाद न करें। Log रोटेशन: DDFileLogger (iOS) हर 1 MB या 1 दिन। Android पर Logcat बफ़र सीमित है।
Application Performance Monitoring (APM) — मोबाइल एप्लिकेशन मॉनिटरिंग के लिए उपकरणों का एक वर्ग। APM मापता है: स्टार्टअप समय, नेटवर्क अनुरोध, FPS, मेमोरी उपयोग, क्रैश आवृत्ति। मुख्य खिलाड़ी: Sentry (Performance), New Relic Mobile, Datadog Mobile।
Sentry — न केवल क्रैश रिपोर्टिंग, बल्कि प्रदर्शन मॉनिटरिंग भी। Sentry Performance वितरित ट्रेस बनाता है जो दिखाता है कि प्रत्येक चरण में कितना समय लगा: बटन दबाने से लेकर सर्वर प्रतिक्रिया तक। iOS, Android, Flutter, React Native का समर्थन करता है। प्रति माह 5k इवेंट तक मुफ्त।
New Relic Mobile मेट्रिक्स देता है: सत्रों की संख्या, एप्लिकेशन में समय, क्रैश आवृत्ति, नेटवर्क अनुरोध। Datadog Mobile — रीयल-टाइम डैशबोर्ड और अलर्ट के साथ अधिक आधुनिक उपकरण। दोनों भुगतान वाले हैं, लेकिन मुफ्त स्तर हैं। IT Sectr Firebase Performance से शुरू करने और DAU के 100,000 से अधिक होने पर भुगतान वाले APM पर स्विच करने की सलाह देता है।
Firebase Performance — Google का एक मुफ्त मोबाइल एप्लिकेशन मॉनिटरिंग उपकरण। स्वचालित रूप से मेट्रिक्स एकत्र करता है: एप्लिकेशन स्टार्टअप समय, HTTP अनुरोध (URL, विधि, प्रतिक्रिया कोड), FPS। कस्टम ट्रेसिंग के लिए Trace API का उपयोग करें। एकीकरण: build.gradle (Android) या Podfile (iOS) में SDK जोड़ें।
Trace — शुरुआत और अंत के साथ एक समय खंड जिसे आप मापते हैं। उदाहरण: trace = FirebasePerformance.getInstance().newTrace("checkout_process")। मेट्रिक्स — संख्यात्मक संकेतक (प्रतिक्रिया आकार, आइटम की संख्या)। Firebase Performance को सर्वर बुनियादी ढांचे की आवश्यकता नहीं है — सभी डेटा Firebase SDK के माध्यम से जाता है। मोबाइल एप्लिकेशन की मॉनिटरिंग करते समय, Trace API प्रदर्शन विश्लेषण के लिए संदर्भ देता है।
अक्सर पूछे जाने वाले प्रश्न
मानक स्तर: ERROR (गंभीर त्रुटियाँ), WARN (संभावित समस्याएँ), INFO (मुख्य घटनाएँ), DEBUG (डीबगिंग), VERBOSE (विस्तृत ट्रेसिंग)। प्रोडक्शन में ERROR, WARN और INFO रखे जाते हैं, बाकी बंद कर दिए जाते हैं।
Timber — Android पर मोबाइल एप्लिकेशन लॉगिंग के लिए Jake Wharton द्वारा Logcat पर एक रैपर लाइब्रेरी। यह स्वचालित रूप से क्लास टैग डालता है, Tree कॉन्फ़िगर करता है और एक पंक्ति के कोड से प्रोडक्शन में लॉग बंद कर देता है।
APM (Application Performance Monitoring) — प्रदर्शन को ट्रैक करने के लिए उपकरणों का एक वर्ग: स्टार्टअप समय, नेटवर्क अनुरोध, मेमोरी उपयोग, क्रैश आवृत्ति। मोबाइल एप्लिकेशन की मॉनिटरिंग करते समय, New Relic, Datadog और Firebase Performance उपयोगकर्ता शिकायतों से पहले बाधाओं को खोजने में मदद करते हैं।
स्टार्टअप के लिए Firebase Performance पर्याप्त है — मोबाइल एप्लिकेशन मॉनिटरिंग का एक मुफ्त उपकरण। New Relic और Datadog को विस्तृत ट्रेसिंग और कस्टम डैशबोर्ड की आवश्यकता होने पर जोड़ा जाता है। IT Sectr Firebase से शुरू करने और DAU के 100,000 से अधिक होने पर भुगतान वाले समाधानों पर स्विच करने की सलाह देता है।
Structured logging सादे टेक्स्ट के बजाय JSON या की-वैल्यू में लॉग का फ़ॉर्मेट है। यह फ़ील्ड द्वारा लॉग को फ़िल्टर करने, चार्ट बनाने और ELK या Grafana में स्वचालित रूप से विश्लेषण करने की अनुमति देता है। संरचित लॉग के बिना, हजारों रिकॉर्ड में पैटर्न ढूंढना मुश्किल है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।