লগিং এবং মনিটরিং হল মোবাইল অ্যাপ্লিকেশনের স্থিতিশীলতার দুটি স্তম্ভ। 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 অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।