التسجيل والمراقبة هما ركيزتا استقرار التطبيق المحمول. وفقًا لـ Gartner (2025)، سوق حلول APM سيصل إلى 8 مليارات دولار بحلول 2027. التسجيل الصحيح لا يسمح فقط باكتشاف الأخطاء، بل أيضًا بالتنبؤ بالمشاكل قبل أن تؤثر على المستخدمين.
النقاط الرئيسية
تسجيل التطبيقات المحمولة على iOS مبني على os_log — النظام المدمج من Apple، المتاح منذ iOS 10. os_log يكتب السجلات في سجل نظامي واحد (على الجهاز أو عبر Console.app)، ويدعم الفئات والمستويات وعلامات الخصوصية. مزيج التسجيل والمراقبة على iOS عبر Console.app وxcrun يسمح بتتبع الأخطاء والأداء في الوقت الفعلي.
os_log له مستويات: Default وInfo وDebug وError وFault. في الإنتاج، يُبقي على Error وFault — يتم تعطيل Debug وInfo. اختيار المستوى الصحيح هو جزء من استراتيجية مراقبة التطبيقات المحمولة على iOS. الخصوصية: %{public}@ للبيانات غير المحمية، %{private}@ للبيانات الشخصية.
CocoaLumberjack — مكتبة شائعة لتسجيل iOS. على عكس os_log، تدعم تنسيقات مخصصة وكتابة غير متزامنة وتدوير السجلات. DDLog وDDTTYLogger (وحدة التحكم) وDDFileLogger (ملف مع تدوير). للمراقبة عن بُعد، يمكن دمج CocoaLumberjack مع os_log — الكتابة إلى ملف للتسجيل عن بُعد وإلى os_log لـ Console.app.
لتسجيل التطبيقات المحمولة على 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، نستخدم مجموعة Timber + Crashlytics لـ Android وos_log + CocoaLumberjack لـ iOS.
التسجيل المنظم — كتابة السجلات بتنسيق 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 ميجابايت أو يوم واحد. على Android، المخزن المؤقت لـ Logcat محدود.
مراقبة أداء التطبيقات (APM) — فئة من الأدوات لـ مراقبة التطبيقات المحمولة. APM يقيس: وقت بدء التشغيل وطلبات الشبكة وFPS واستخدام الذاكرة وتكرار الأعطال. اللاعبون الرئيسيون: Sentry (Performance) وNew Relic Mobile وDatadog Mobile.
Sentry — ليس فقط الإبلاغ عن الأعطال، بل أيضًا مراقبة الأداء. Sentry Performance ينشئ تتبعات موزعة تظهر كم من الوقت استغرقت كل مرحلة: من الضغط على الزر إلى استجابة الخادم. يدعم iOS وAndroid وFlutter وReact Native. مجاني حتى 5 آلاف حدث شهريًا.
New Relic Mobile يعطي مقاييس: عدد الجلسات والوقت في التطبيق وتكرار الأعطال وطلبات الشبكة. Datadog Mobile — أداة أكثر حداثة مع لوحات تحكم في الوقت الفعلي وتنبيهات. كلاهما مدفوع، لكن لهما مستويات مجانية. IT Sectr توصي بالبدء مع Firebase Performance والانتقال إلى APM المدفوع عندما يتجاوز DAU 100,000.
Firebase Performance — أداة مجانية لمراقبة التطبيقات المحمولة من Google. تجمع تلقائيًا مقاييس: وقت بدء التطبيق وطلبات HTTP (URL والطريقة ورمز الاستجابة) وFPS. للتتبع المخصص، استخدم Trace API. التكامل: أضف SDK إلى build.gradle (Android) أو Podfile (iOS).
Trace — مقطع زمني ببداية ونهاية تقوم بقياسه. مثال: trace = FirebasePerformance.getInstance().newTrace("checkout_process"). المقاييس — مؤشرات رقمية (حجم الاستجابة وعدد العناصر). Firebase Performance لا يتطلب بنية تحتية للخادم — كل البيانات تذهب عبر Firebase SDK. عند مراقبة التطبيقات المحمولة، Trace API يعطي سياقًا لتحليل الأداء.
الأسئلة الشائعة
المستويات القياسية: ERROR (أخطاء حرجة)، WARN (مشاكل محتملة)، INFO (أحداث رئيسية)، DEBUG (تصحيح)، VERBOSE (تتبع تفصيلي). في الإنتاج، يُبقي على ERROR وWARN وINFO، ويتم تعطيل الباقي.
Timber — مكتبة غلاف فوق Logcat من Jake Wharton لتسجيل التطبيقات المحمولة على Android. يقوم تلقائيًا بإدراج علامة الفئة ويكون 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 تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.