لاگنگ اور مانیٹرنگ موبائل ایپلیکیشن کے استحکام کے دو ستون ہیں۔ 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 کے برعکس، یہ کسٹم فارمیٹ، غیر متزامن تحریر اور لاگ گردش کو سپورٹ کرتی ہے۔ 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 کا امتزاج استعمال کرتے ہیں۔
سٹرکچرڈ لاگنگ — سادہ متن کے بجائے JSON فارمیٹ میں لاگ لکھنا۔ مثال: "User login failed" کے بجائے ہم {"event": "login_failed", "user_id": 123, "reason": "invalid_password"} لکھتے ہیں۔ یہ خودکار مانیٹرنگ کی بنیاد ہے — ELK اسٹیک اور Grafana اس طرح کے ڈیٹا کو فلٹر، جمع اور تجزیہ کرتے ہیں۔
فیلڈ کے مطابق فلٹرنگ: پچھلے ایک گھنٹے میں event=crash والے تمام لاگ تلاش کریں۔ جمع: ایپلیکیشن ورژن کے مطابق غلطیوں کی تعداد کا گراف بنائیں۔ ELK (Elasticsearch، Logstash، Kibana) یا Grafana کے ساتھ انضمام۔ پہلی ریلیز کے لیے سٹرکچرڈ لاگنگ لازمی نہیں ہے، لیکن DAU کے 10,000 سے تجاوز کرنے پر اہم ہو جاتی ہے۔
ریموٹ لاگنگ — مرکزی مانیٹرنگ کے لیے ڈیوائس سے سرور پر لاگ بھیجنا۔ کسٹم Tree (Android) یا HTTP درخواستوں کے ذریعے لاگو کیا جاتا ہے۔ صرف Error اور Warning بھیجیں — صارف کا ٹریفک ضائع نہ کریں۔ لاگ گردش: 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 سے تجاوز کرنے پر ادائیگی والے حلوں پر منتقل ہونے کی سفارش کرتا ہے۔
سٹرکچرڈ لاگنگ سادہ متن کے بجائے JSON یا کلید-قدر میں لاگ کا فارمیٹ ہے۔ یہ فیلڈ کے مطابق لاگ فلٹر کرنے، چارٹ بنانے اور ELK یا Grafana میں خود بخود تجزیہ کرنے کی اجازت دیتا ہے۔ ساختی لاگ کے بغیر، ہزاروں ریکارڈز میں پیٹرن تلاش کرنا مشکل ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔