ثبت و نظارت دو ستون ثبات برنامه موبایل هستند. به گزارش Gartner (2025)، بازار راهحلهای APM تا سال 2027 به 8 میلیارد دلار خواهد رسید. ثبت صحیح نه تنها امکان یافتن باگها، بلکه پیشبینی مشکلات قبل از تأثیر بر کاربران را فراهم میکند.
نکات اصلی
ثبت برنامههای موبایل در iOS بر پایه os_log ساخته شده است — سیستم داخلی اپل، قابل دسترس از 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 ترکیب کرد — برای ثبت از راه دور در یک فایل و برای 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، ما از ترکیب 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 مگابایت یا 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 استفاده کنید. ادغام: 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 از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.