Logcat-এর মাধ্যমে লগ দেখুন

Android Studio-তে Logcat উইন্ডো আপনার ডিভাইস থেকে রিয়েল-টাইমে লগ দেখিয়ে আপনার অ্যাপ ডিবাগ করতে সাহায্য করে—যেমন, Log ক্লাস ব্যবহার করে আপনার অ্যাপে যোগ করা মেসেজ, Android-এ চলা পরিষেবা থেকে পাওয়া মেসেজ অথবা সিস্টেম মেসেজ, যেমন, যখন কোনও গার্বেজ কালেকশন হয়। কোনও অ্যাপ ব্যতিক্রম থ্রো করলে, Logcat একটি মেসেজ দেখায় এবং তারপরে সংশ্লিষ্ট স্ট্যাক ট্রেস দেখায় যাতে কোডের লাইনের লিঙ্ক থাকে।

Logcat উইন্ডো ব্যবহার করা শুরু করুন

আপনার অ্যাপের জন্য লগ মেসেজ দেখতে, নিম্নলিখিত ধাপগুলি অনুসরণ করুন।

  1. Android Studio-তে, ফিজিক্যাল ডিভাইস বা এমুলেটরে আপনার অ্যাপ তৈরি ও রান করুন।
  2. মেনু বার থেকে ভিউ > টুল উইন্ডো > Logcat বিকল্প বেছে নিন।

ডিফল্ট হিসেবে, Logcat শেষ পর্যন্ত স্ক্রল করে। Logcat ভিউতে ক্লিক করলে অথবা মাউস হুইল ব্যবহার করে উপরের দিকে স্ক্রল করলে এই ফিচার বন্ধ হয়ে যায়। এটি আবার চালু করতে, টুলবার থেকে শেষ পর্যন্ত স্ক্রল করুন 'শেষ' আইকনে স্ক্রল করুন বিকল্পে ক্লিক করুন। এছাড়াও, আপনি Logcat মুছে দিতে, পজ করতে বা রিস্টার্ট করতে টুলবার ব্যবহার করতে পারেন।

Logcat উইন্ডো UI

ছবি ১. Logcat লগ ফর্ম্যাট করে যাতে ট্যাগ ও মেসেজের মতো প্রয়োজনীয় তথ্য স্ক্যান করা এবং সতর্কতা ও সমস্যার মতো বিভিন্ন ধরনের লগ শনাক্ত করা সহজ হয়।

কীভাবে লগ পড়তে হয়

প্রতিটি লগে তারিখ, টাইমস্ট্যাম্প, প্রসেস ও থ্রেড আইডি, ট্যাগ, প্যাকেজের নাম, অগ্রাধিকার ও মেসেজ থাকে। বিভিন্ন ট্যাগের অনন্য রঙ আছে যা লগের ধরন শনাক্ত করতে সাহায্য করে। প্রতিটি লগ এন্ট্রির অগ্রাধিকার FATAL, ERROR, WARNING, INFO, DEBUG বা VERBOSE হিসেবে সেট করা থাকে।

যেমন, নিম্নলিখিত লগ মেসেজের প্রায়োরিটি হল DEBUG এবং ট্যাগ হল ProfileInstaller:

2022-12-29 04:00:18.823 30249-30321 ProfileInstaller        com.google.samples.apps.sunflower    D  Installing profile for com.google.samples.apps.sunflower

লগ ভিউ কনফিগার করুন

স্ট্যান্ডার্ড লগ ভিউতে প্রতিটি লগের তারিখ, সময় প্রসেস ও থ্রেড আইডি, ট্যাগ, প্যাকেজের নাম, অগ্রাধিকার এবং এর সাথে সম্পর্কিত মেসেজ দেখানো হয়। ডিফল্ট হিসেবে, লগ ভিউতে মেসেজের লাইন র‍্যাপ করা থাকে না, তবে আপনি Logcat টুলবার থেকে সফ্ট-র‍্যাপ সফ্ট-র‌্যাপ আইকন বিকল্প ব্যবহার করতে পারেন।

আপনি কমপ্যাক্ট ভিউতে পরিবর্তন করতে পারবেন, যেখানে ডিফল্ট ডিসপ্লে তথ্য কম থাকে, Logcat টুলবার থেকে Logcat ফর্ম্যাটিং বিকল্প কনফিগার করুন বিকল্পে ক্লিক করে।

আপনি কতটা তথ্য দেখাতে চান তা আরও কনফিগার করতে, ভিউ পরিবর্তন করুন বিকল্প বেছে নিন এবং আপনি টাইমস্ট্যাম্প, ট্যাগ, প্রসেস আইডি বা প্যাকেজের নাম দেখতে চান কিনা তা বেছে নিন।

রঙের স্কিম পরিবর্তন করা

রঙের স্কিম পরিবর্তন করতে, Android Studio > সেটিংস > এডিটর > রঙের স্কিম বিকল্পে যান। আপনার লগ ভিউয়ের রঙের স্কিম পরিবর্তন করতে, Android Logcat বেছে নিন। আপনার ফিল্টারের কালার স্কিম পরিবর্তন করতে, Logcat ফিল্টার বেছে নিন।

অতিরিক্ত কনফিগারেশন বিকল্প

অতিরিক্ত কনফিগারেশন বিকল্পের জন্য, Android Studio > সেটিংস > টুল > Logcat-এ নেভিগেট করুন। এখান থেকে, আপনি Logcat সাইকেল বাফার সাইজ, নতুন Logcat উইন্ডোর জন্য ডিফল্ট ফিল্টার এবং আপনি ইতিহাস থেকে অটো-কমপ্লিট করার জন্য ফিল্টার যোগ করতে চান কিনা তা বেছে নিতে পারবেন।

একাধিক উইন্ডোতে Logcat ব্যবহার করা

ট্যাব আপনাকে বিভিন্ন ডিভাইস বা কোয়েরির মধ্যে সহজেই পাল্টাতে সাহায্য করে। নতুন ট্যাব নতুন ট্যাব আইকন-এ ক্লিক করে আপনি একাধিক Logcat ট্যাব তৈরি করতে পারবেন। ট্যাবের উপর মাউস নিয়ে গিয়ে ডানদিকের বোতামে ক্লিক করলে, আপনি সেটির নাম পরিবর্তন করতে ও সাজাতে পারবেন।

এছাড়াও, আপনি একটি ট্যাবের মধ্যে ভিউ স্প্লিট করতে পারেন যাতে আপনি আরও সহজে দুটি লগ সেটের মধ্যে তুলনা করতে পারেন। স্প্লিট তৈরি করতে, লগ ভিউতে মাউসের ডানদিকের বোতামে ক্লিক করুন অথবা টুলবার থেকে প্যানেল স্প্লিট করুন বিকল্পে ক্লিক করুন এবং ডানদিকে স্প্লিট করুন অথবা নিচে স্প্লিট করুন বিকল্প বেছে নিন। স্প্লিট বন্ধ করতে, ডানদিকের বোতামে ক্লিক করে বন্ধ করুন বিকল্প বেছে নিন। প্রতিটি স্প্লিট আপনাকে নিজস্ব ডিভাইস কানেকশন, ভিউ বিকল্প এবং কোয়েরি সেট করার অনুমতি দেয়।

একাধিক Logcat উইন্ডো ছবি ২. Android Studio-তে Logcat উইন্ডো স্প্লিট করুন।

Logcat টুলবার থেকে, আপনি হয় লগগুলির শেষ পর্যন্ত স্ক্রল করতে পারেন, অথবা আপনি কোনও নির্দিষ্ট লাইনে ক্লিক করে সেই লাইনটি দৃশ্যমান রাখতে পারেন।

Android Studio-তে, আপনি মূল কোয়েরি ফিল্ড থেকে সরাসরি কী-ভ্যালু সার্চ জেনারেট করতে পারবেন। এই কোয়েরি সিস্টেম আপনি যা কোয়েরি করতে চান তার নির্ভুলতা প্রদান করে এবং কী-ভ্যালুর উপর ভিত্তি করে লগ বাদ দেয়। আপনার কাছে রেগুলার এক্সপ্রেশন ব্যবহার করার বিকল্প থাকলেও, কোয়েরির জন্য আপনাকে সেগুলির উপর নির্ভর করতে হবে না। সাজেশন দেখতে, কোয়েরি ফিল্ডে Ctrl + Space প্রেস করুন।

কোয়েরি ফিল্ডে সাজেশনের তালিকা ছবি ৩. কোয়েরি ফিল্ডে Ctrl + Space প্রেস করে সাজেস্ট করা কোয়েরির তালিকা দেখুন।

আপনার কোয়েরিতে ব্যবহার করতে পারেন এমন কিছু 'কী'-এর উদাহরণ নিচে দেওয়া হল:

  • tag: লগ এন্ট্রির tag ফিল্ডের সাথে মেলে।
  • package: লগিং অ্যাপের প্যাকেজের নামের সাথে ম্যাচ করে।
  • process: লগিং অ্যাপের প্রসেসের নামের সাথে ম্যাচ করে।
  • message: লগ এন্ট্রির মেসেজ অংশের সাথে ম্যাচ করে।
  • level: নির্দিষ্ট করা বা তার চেয়ে বেশি গুরুতর লগ লেভেলের সাথে মেলে–যেমন, DEBUG।
  • age: এন্ট্রি টাইমস্ট্যাম্প সাম্প্রতিক হলে ম্যাচ করে। ভ্যালুগুলি একটি সংখ্যা হিসাবে নির্দিষ্ট করা হয় যার পরে একটি অক্ষর সময়ের ইউনিট নির্দিষ্ট করে: সেকেন্ডের জন্য s, মিনিটের জন্য m, ঘণ্টার জন্য h এবং দিনের জন্য d। যেমন, age: 5m শুধুমাত্র গত ৫ মিনিটে লগ করা মেসেজ ফিল্টার করে।

নেগেশন ও রেগুলার এক্সপ্রেশন

নিম্নলিখিত ফিল্ডে নেগেশন ও রেগুলার এক্সপ্রেশন ম্যাচিং কাজ করে: tag, package, message এবং line।

ফিল্ডের নামের আগে - যোগ করে নেতিবাচকতা প্রকাশ করা হয়। যেমন, -tag:MyTag সেইসব লগ এন্ট্রির সাথে ম্যাচ করে যেগুলির tag-এ MyTag স্ট্রিং নেই।

ফিল্ডের নামের শেষে ~ যোগ করে রেগুলার এক্সপ্রেশন ম্যাচিং প্রকাশ করা হয়। যেমন, tag~:My.*Tag।

নেগেশন ও রেগুলার এক্সপ্রেশন মডিফায়ার একসাথে ব্যবহার করা যেতে পারে। যেমন, -tag~:My.*Tag।

লজিক্যাল অপারেটর ও বন্ধনী

কোয়েরি ল্যাঙ্গুয়েজ AND এবং OR অপারেটরকে সাপোর্ট করে যা & এবং | ও বন্ধনী দ্বারা প্রকাশ করা হয়। যেমন:

(tag:foo | level:ERROR) & package:mine

মনে রাখবেন যে সাধারণ অপারেটর প্রেসিডেন্স এনফোর্স করা হয়, তাই নিম্নলিখিত:

tag:foo | level:ERROR & package:mine

এইভাবে মূল্যায়ন করা হয়:

tag:foo | (level:ERROR & package:mine)

ইমপ্লিসিট লজিক্যাল অপারেটর

লজিক্যাল অপারেটর প্রয়োগ করা না হলে, কোয়েরি ল্যাঙ্গুয়েজ অটোমেটিক একই কী সহ একাধিক নন-নেগেটেড key-value ফিল্টার টার্মকে OR হিসেবে এবং বাকি সবকিছুকে AND হিসেবে মূল্যায়ন করে।

যেমন:

tag:foo tag:bar package:myapp

এইভাবে মূল্যায়ন করা হয়:

(tag:foo | tag:bar) & package:myapp

কিন্তু:

tag:foo -tag:bar package:myapp

এইভাবে মূল্যায়ন করা হয়:

tag:foo & -tag:bar & package:myapp

একাধিক কোয়েরি টার্ম যদি লজিক্যাল অপারেটর ছাড়া হোয়াইটস্পেস দিয়ে আলাদা করা হয়, তাহলে সেগুলিকে কম অগ্রাধিকার সহ AND হিসেবে বিবেচনা করা হয়। যেমন, foo bar tag:bar1 | tag:bar2 শব্দটি 'foo bar' & (tag: bar1 | tag: bar2)-এর সমার্থক।

বিশেষ কোয়েরি

package:mine

প্যাকেজ 'কী' একটি বিশেষ ভ্যালু mine-এর সাথে কাজ করে। এই বিশেষ ভ্যালু ওপেন প্রোজেক্টে থাকা যেকোনও প্যাকেজের নামের সাথে ম্যাচ করে।

level

level কোয়েরি Logcat মেসেজের লগ লেভেলের সাথে ম্যাচ করে, যেখানে লগ এন্ট্রি লেভেল কোয়েরি লেভেলের চেয়ে বেশি বা সমান।

যেমন, level:INFO-এর সাথে INFO, WARN, ERROR বা ASSERT লগ লেভেলের যেকোনও লগ এন্ট্রি ম্যাচ করে। লেভেলে ছোট ও বড় হাতের অক্ষরের মধ্যে পার্থক্য করা হয় না। সঠিক লেভেলগুলি হল: VERBOSE, DEBUG, INFO, WARN, ERROR এবং ASSERT।

age

age কোয়েরি টাইমস্ট্যাম্পের উপর ভিত্তি করে এন্ট্রি ম্যাচ করে এবং এটি age:<number><unit> হিসেবে ফর্ম্যাট করা হয়, যেখানে

  • <number> হল একটি পূর্ণসংখ্যা
  • <unit> হল s, m, h এবং d-এর (সেকেন্ড, মিনিট, ঘণ্টা এবং দিন) মধ্যে একটি।

নিম্নলিখিত তালিকা অনুযায়ী, age কোয়েরি সেইসব লগ মেসেজের সাথে ম্যাচ করে যেগুলির টাইমস্ট্যাম্প ভ্যালু দ্বারা বর্ণিত রেঞ্জের মধ্যে থাকে। যেমন: কোয়েরি age:5m ৫ মিনিটের বেশি পুরনো নয় এমন টাইমস্ট্যাম্পের সাথে এন্ট্রি ম্যাচ করে।

age:30s
age:5m
age:3h
age:1d

মনে রাখবেন যে টাইমস্ট্যাম্পটি হোস্টের টাইমস্ট্যাম্পের সাথে তুলনা করা হয়, কানেক্ট করা ডিভাইসের সাথে নয়। ডিভাইসের সময় সঠিকভাবে সেট করা না থাকলে, এই কোয়েরি প্রত্যাশিত ফলাফল নাও দেখাতে পারে।

is 'কী'

আপনি is কী এইভাবে ব্যবহার করতে পারবেন:

  • is:crash লগ এন্ট্রির সাথে মিলে যায় যা অ্যাপ্লিকেশন ক্র্যাশ (নেটিভ বা Java) হওয়ার ঘটনাকে দেখায়।
  • is:stacktrace এমন লগ এন্ট্রির সাথে ম্যাচ করে যা Java stacktrace-এর মতো দেখতে যেকোনও কিছুকে তুলে ধরে, লগ লেভেল যাই হোক না কেন।

name 'কী'

name কী আপনাকে সেভ করা ফিল্টারের জন্য একটি অনন্য নাম প্রদান করতে দেয় যাতে এটি ফিল্টার ইতিহাস ড্রপডাউনে সহজেই শনাক্ত করা যায়। একাধিকবার name উল্লেখ করার জন্য আপনি কোনও সমস্যা দেখতে না পেলেও, IDE কোয়েরিতে name-এর জন্য শুধুমাত্র শেষ উল্লেখ করা ভ্যালু ব্যবহার করে।

কোয়েরির ইতিহাস দেখুন

আপনি কোয়েরি ফিল্ডের পাশে ইতিহাস দেখুন ফিল্টার আইকন বিকল্পে ক্লিক করে আপনার কোয়েরির ইতিহাস দেখতে পারবেন। কোনও কোয়েরি আপনার সব স্টুডিও প্রোজেক্টের তালিকায় সবচেয়ে উপরে রাখতে, সেটিকে 'পছন্দসই' হিসেবে চিহ্নিত করতে, তার পাশে থাকা স্টার আইকনে ক্লিক করুন। এছাড়াও, পছন্দের কোয়েরি আরও সহজে শনাক্ত করতে আপনি name: কী ব্যবহার করতে পারেন। আরও তথ্যের জন্য, বিশেষ কোয়েরি দেখুন।

কোয়েরি পছন্দের তালিকায় যোগ করার UI

ছবি ৪. কোনও কোয়েরির পাশে থাকা স্টার আইকনে ক্লিক করে সেটি আপনার পছন্দের তালিকায় যোগ করুন।

অ্যাপ ক্র্যাশ ও রিস্টার্টের লগ ট্র্যাক করা

Logcat যখন লক্ষ্য করে যে আপনার অ্যাপ প্রসেস বন্ধ হয়ে আবার চালু হয়েছে, তখন এটি আউটপুটে একটি মেসেজ দেখায়, যেমন PROCESS ENDED এবং PROCESS STARTED। Logcat রিস্টার্ট করলে আপনার সেশন কনফিগারেশন, যেমন ট্যাব স্প্লিট, ফিল্টার এবং ভিউ বিকল্পগুলি সংরক্ষিত থাকে, যাতে আপনি সহজেই আপনার সেশন চালিয়ে যেতে পারেন।

অ্যাপ ক্র্যাশ করার জন্য Logcat উইন্ডো

ছবি ৫. আপনার অ্যাপ প্রসেস রিস্টার্ট হলে, Logcat একটি মেসেজ প্রিন্ট করে যে প্রসেস শেষ হয়ে গেছে এবং তারপর শুরু হয়েছে।