ثبت و نظارت در توسعه موبایل: ماهیت، چه ابزارهایی و نحوه تنظیم

نویسنده: IT Sectr منتشر شده: 2026-05-27 زمان مطالعه: 8 دقیقه

ثبت و نظارت دو ستون ثبات برنامه موبایل هستند. به گزارش Gartner (2025)، بازار راه‌حل‌های APM تا سال 2027 به 8 میلیارد دلار خواهد رسید. ثبت صحیح نه تنها امکان یافتن باگ‌ها، بلکه پیش‌بینی مشکلات قبل از تأثیر بر کاربران را فراهم می‌کند.

نکات اصلی

  • در iOS، ابزارهای اصلی os_log (ثبت سیستم داخلی) و CocoaLumberjack (کتابخانه انعطاف‌پذیر با چرخش و قالب‌بندی) هستند. نظارت در iOS امکان کنترل عملکرد در زمان واقعی را فراهم می‌کند.
  • در Android، استاندارد Timber (یک پوشش روی Logcat) و Log سیستم است. Timber به طور خودکار برچسب کلاس را درج می‌کند و سطوح ثبت را مدیریت می‌کند.
  • ثبت ساختاریافته — نوشتن لاگ‌ها در JSON. امکان تحلیل خودکار لاگ‌ها از طریق ELK، Grafana یا Datadog را فراهم می‌کند. برای تولید و نظارت خودکار توصیه می‌شود.
  • APM (Application Performance Monitoring) — دسته‌ای از ابزارها برای نظارت بر برنامه‌های موبایل: New Relic، Datadog، Firebase Performance.
  • چرخش لاگ و ثبت از راه دور برای تولید الزامی است. لاگ‌ها نباید حافظه دستگاه را پر کنند و باید از راه دور در دسترس توسعه‌دهنده باشند.

ثبت و نظارت در iOS: os_log و CocoaLumberjack

ثبت برنامه‌های موبایل در iOS بر پایه os_log ساخته شده است — سیستم داخلی اپل، قابل دسترس از iOS 10. os_log لاگ‌ها را در یک لاگ سیستم واحد (روی دستگاه یا از طریق Console.app) می‌نویسد، از دسته‌بندی‌ها، سطوح و برچسب‌های حریم خصوصی پشتیبانی می‌کند. ترکیب ثبت و نظارت در iOS از طریق Console.app و xcrun امکان ردیابی خطاها و عملکرد را در زمان واقعی فراهم می‌کند.

Log Level در iOS

os_log سطوح دارد: Default، Info، Debug، Error، Fault. در تولید، Error و Fault حفظ می‌شوند — Debug و Info غیرفعال می‌شوند. انتخاب سطح صحیح بخشی از استراتژی نظارت بر برنامه‌های موبایل در iOS است. حریم خصوصی: %{public}@ برای داده‌های محافظت نشده، %{private}@ برای داده‌های شخصی.

CocoaLumberjack

CocoaLumberjack یک کتابخانه محبوب برای ثبت iOS است. برخلاف os_log، از قالب‌های سفارشی، نوشتن ناهمزمان و چرخش لاگ پشتیبانی می‌کند. DDLog، DDTTYLogger (کنسول)، DDFileLogger (فایل با چرخش). برای نظارت از راه دور، CocoaLumberjack را می‌توان با os_log ترکیب کرد — برای ثبت از راه دور در یک فایل و برای Console.app در os_log بنویسید.

ثبت و نظارت در Android: Timber و Log Level

برای ثبت برنامه‌های موبایل در Android از Timber استفاده می‌شود — کتابخانه‌ای از Jake Wharton که به استاندارد پلتفرم تبدیل شده است. Timber یک پوشش روی Android Log (Logcat) است که به طور خودکار برچسب کلاس را اضافه می‌کند و Tree را پیکربندی می‌کند. Timber بخشی از سیستم نظارت بر برنامه‌های موبایل Android است: DebugTree برای اشکال‌زدایی، CrashlyticsTree برای ارسال داده‌ها.

Timber به تفصیل

Timber از Tree استفاده می‌کند — مؤلفه‌ای که تصمیم می‌گیرد با لاگ چه کاری انجام دهد. در بیلدهای اشکال‌زدایی، DebugTree (خروجی به Logcat)، در انتشار — CrashlyticsTree (ارسال کرش‌ها). Timber.wtf() خطاهای مهلک را ثبت می‌کند. Timber.tag("CustomTag") برچسب را بازنویسی می‌کند. برای نظارت مؤثر، Timber با ابزارهای APM ترکیب می‌شود.

Log Level در Android

Android Log سطوح دارد: VERBOSE، DEBUG، INFO، WARN، ERROR، ASSERT. ProGuard/R8 Log.d و Log.v را در انتشار حذف می‌کند — Timber امکان ثبت از طریق Plant را فراهم می‌کند. انتخاب سطح بر کیفیت نظارت بر برنامه موبایل تأثیر می‌گذارد — در تولید، WARN و ERROR حفظ می‌شوند.

ابزار پلتفرم فرمت چرخش از راه دور پیچیدگی
os_logiOSساختاریافتهسیستمConsole.appکم
CocoaLumberjackiOSمتن/JSONDDFileLoggerبله (سفارشی)متوسط
TimberAndroidمتنLogcat/سفارشیTreeکم
SentryiOS/AndroidJSONسروربلهمتوسط
LogcatAndroidمتنبافر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 محدود است.

APM و نظارت بر برنامه‌های موبایل: Sentry، New Relic، Datadog

Application Performance Monitoring (APM) — دسته‌ای از ابزارها برای نظارت بر برنامه‌های موبایل. APM اندازه‌گیری می‌کند: زمان راه‌اندازی، درخواست‌های شبکه، FPS، استفاده از حافظه، فراوانی کرش‌ها. بازیکنان اصلی: Sentry (Performance)، New Relic Mobile، Datadog Mobile.

Sentry Performance

Sentry — نه تنها گزارش کرش، بلکه نظارت بر عملکرد. Sentry Performance ردیابی‌های توزیع‌شده ایجاد می‌کند که نشان می‌دهد هر مرحله چقدر طول کشیده است: از فشار دادن دکمه تا پاسخ سرور. از iOS، Android، Flutter، React Native پشتیبانی می‌کند. تا 5k رویداد در ماه رایگان.

New Relic و Datadog

New Relic Mobile معیارهایی می‌دهد: تعداد جلسات، زمان در برنامه، فراوانی کرش‌ها، درخواست‌های شبکه. Datadog Mobile — ابزاری مدرن‌تر با داشبوردهای زمان واقعی و هشدارها. هر دو پولی هستند، اما سطوح رایگان دارند. IT Sectr توصیه می‌کند با Firebase Performance شروع کنید و زمانی که DAU از 100,000 فراتر رفت، به APM پولی مهاجرت کنید.

Firebase Performance

Firebase Performance — یک ابزار رایگان نظارت بر برنامه‌های موبایل از Google. به طور خودکار معیارها را جمع‌آوری می‌کند: زمان راه‌اندازی برنامه، درخواست‌های HTTP (URL، روش، کد پاسخ)، FPS. برای ردیابی سفارشی، از Trace API استفاده کنید. ادغام: SDK را به build.gradle (Android) یا Podfile (iOS) اضافه کنید.

Trace و معیارها

Trace — یک بخش زمانی با شروع و پایان که اندازه‌گیری می‌کنید. مثال: trace = FirebasePerformance.getInstance().newTrace("checkout_process"). معیارها — شاخص‌های عددی (اندازه پاسخ، تعداد موارد). Firebase Performance به زیرساخت سرور نیاز ندارد — همه داده‌ها از طریق Firebase SDK می‌روند. هنگام نظارت بر برنامه‌های موبایل، Trace API زمینه را برای تحلیل عملکرد فراهم می‌کند.

سؤالات متداول

چه سطوحی از ثبت وجود دارد و چه زمانی از آنها استفاده کنیم؟

سطوح استاندارد: ERROR (خطاهای بحرانی)، WARN (مشکلات بالقوه)، INFO (رویدادهای کلیدی)، DEBUG (اشکال‌زدایی)، VERBOSE (ردیابی دقیق). در تولید، ERROR، WARN و INFO حفظ می‌شوند، بقیه غیرفعال می‌شوند.

چگونه Timber با Logcat در Android تفاوت دارد؟

Timber یک کتابخانه پوشش روی Logcat توسط Jake Wharton برای ثبت برنامه‌های موبایل در Android است. به طور خودکار برچسب کلاس را درج می‌کند، Tree را پیکربندی می‌کند و با یک خط کد، لاگ‌ها را در تولید غیرفعال می‌کند.

APM چیست و چرا یک برنامه موبایل به آن نیاز دارد؟

APM (Application Performance Monitoring) — دسته‌ای از ابزارها برای ردیابی عملکرد: زمان راه‌اندازی، درخواست‌های شبکه، استفاده از حافظه، فراوانی کرش‌ها. هنگام نظارت بر برنامه‌های موبایل، New Relic، Datadog و Firebase Performance به یافتن تنگناها قبل از شکایت کاربران کمک می‌کنند.

آیا یک استارتاپ باید از راه‌حل‌های APM پولی استفاده کند؟

برای یک استارتاپ، Firebase Performance کافی است — یک ابزار رایگان نظارت بر برنامه‌های موبایل. New Relic و Datadog زمانی متصل می‌شوند که ردیابی دقیق و داشبوردهای سفارشی نیاز باشد. IT Sectr توصیه می‌کند با Firebase شروع کنید و زمانی که DAU از 100,000 فراتر رفت، به راه‌حل‌های پولی مهاجرت کنید.

ثبت ساختاریافته چیست و چگونه از متن ساده بهتر است؟

ثبت ساختاریافته قالبی از لاگ‌ها در JSON یا کلید-مقدار به جای متن ساده است. این امکان را فراهم می‌کند که لاگ‌ها را بر اساس فیلدها فیلتر کنید، نمودار بسازید و به طور خودکار در ELK یا Grafana تحلیل کنید. بدون لاگ‌های ساختاریافته، یافتن الگوها در هزاران رکورد دشوار است.

خلاصه

  • os_log — ابزار اصلی ثبت و نظارت در iOS. CocoaLumberjack انعطاف‌پذیری، چرخش و ثبت از راه دور را اضافه می‌کند.
  • Timber — استاندارد ثبت برنامه‌های موبایل در Android. DebugTree برای اشکال‌زدایی، CrashlyticsTree برای انتشار.
  • ثبت ساختاریافته (JSON) برای تحلیل خودکار لاگ ضروری است. با ELK، Grafana، Datadog ادغام می‌شود.
  • APM — Sentry Performance، New Relic، Datadog. Firebase Performance — ابزار رایگان نظارت بر برنامه‌های موبایل برای استارتاپ‌ها.
  • چرخش لاگ از سرریز حافظه دستگاه جلوگیری می‌کند. DDFileLogger (iOS) را پیکربندی کنید یا از بافر Logcat (Android) استفاده کنید.
  • ثبت از راه دور — فقط لاگ‌های Error و Warning ارسال کنید. همه لاگ‌ها ترافیک کاربر را هدر می‌دهند.
  • Trace API و breadcrumbs (Sentry) زمینه را برای نظارت بر برنامه‌های موبایل فراهم می‌کنند و لاگ‌ها را به داستان رویداد تبدیل می‌کنند.

ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد

IT Sectr از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه