অ্যান্ড্রয়েড স্টুডিওতে লগক্যাট উইন্ডো আপনাকে রিয়েল টাইমে আপনার ডিভাইস থেকে লগগুলি প্রদর্শন করে আপনার অ্যাপকে ডিবাগ করতে সহায়তা করে—উদাহরণস্বরূপ, Log
ক্লাসের সাথে আপনার অ্যাপে যোগ করা বার্তা, অ্যান্ড্রয়েডে চলে এমন পরিষেবার বার্তা বা সিস্টেম বার্তা, যেমন যখন একটি আবর্জনা সংগ্রহ ঘটে। যখন একটি অ্যাপ একটি ব্যতিক্রম ছুঁড়ে দেয়, Logcat কোডের লাইনের লিঙ্ক ধারণকারী স্ট্যাক ট্রেস অনুসরণ করে একটি বার্তা দেখায়।
Logcat উইন্ডো দিয়ে শুরু করুন
আপনার অ্যাপের লগ বার্তাগুলি দেখতে, নিম্নলিখিতগুলি করুন৷
- অ্যান্ড্রয়েড স্টুডিওতে, একটি ফিজিক্যাল ডিভাইস বা এমুলেটরে আপনার অ্যাপ তৈরি করুন এবং চালান ।
- মেনু বার থেকে দেখুন > টুল উইন্ডোজ > লগক্যাট নির্বাচন করুন।
ডিফল্টরূপে, Logcat শেষ পর্যন্ত স্ক্রোল করে। Logcat ভিউতে ক্লিক করা বা আপনার মাউস হুইল ব্যবহার করে স্ক্রোল করা এই বৈশিষ্ট্যটি বন্ধ করে দেয়। এটিকে আবার চালু করতে, শেষ পর্যন্ত স্ক্রোল করুন ক্লিক করুন টুলবার থেকে। আপনি Logcat সাফ, বিরতি বা পুনরায় চালু করতে টুলবার ব্যবহার করতে পারেন।
চিত্র 1. লগক্যাট লগকে ফরম্যাট করে যাতে ট্যাগ এবং বার্তার মতো দরকারী তথ্য স্ক্যান করা সহজ হয় এবং বিভিন্ন ধরনের লগ সনাক্ত করা যায়, যেমন সতর্কতা এবং ত্রুটি।
কিভাবে লগ পড়া
প্রতিটি লগে একটি তারিখ, টাইমস্ট্যাম্প, প্রক্রিয়া এবং থ্রেড আইডি, ট্যাগ, প্যাকেজের নাম, অগ্রাধিকার এবং এটির সাথে যুক্ত বার্তা রয়েছে। বিভিন্ন ট্যাগের একটি অনন্য রঙ থাকে যা লগের ধরন সনাক্ত করতে সহায়তা করে। প্রতিটি লগ এন্ট্রিতে 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 টুলবার থেকে।
আপনি কতটা তথ্য প্রদর্শন করতে চান তা আরও কনফিগার করতে, দৃশ্য পরিবর্তন করুন নির্বাচন করুন এবং আপনি টাইমস্ট্যাম্প, ট্যাগ, প্রক্রিয়া আইডি, বা প্যাকেজের নামগুলি দেখতে চান কিনা তা চয়ন করুন৷
রঙের স্কিম পরিবর্তন করুন
রঙের স্কিম পরিবর্তন করতে, Android Studio > Settings > Editor > Color Scheme- এ নেভিগেট করুন। আপনার লগ ভিউয়ের রঙের স্কিম পরিবর্তন করতে, Android Logcat নির্বাচন করুন। আপনার ফিল্টারের রঙের স্কিম পরিবর্তন করতে, লগক্যাট ফিল্টার নির্বাচন করুন।
অতিরিক্ত কনফিগারেশন বিকল্প
অতিরিক্ত কনফিগারেশন বিকল্পের জন্য, Android স্টুডিও > সেটিংস > টুলস > Logcat- এ নেভিগেট করুন। এখান থেকে, আপনি Logcat সাইকেল বাফার সাইজ, নতুন Logcat উইন্ডোর ডিফল্ট ফিল্টার এবং আপনি ইতিহাস থেকে স্বয়ংসম্পূর্ণে ফিল্টার যোগ করতে চান কিনা তা বেছে নিতে পারেন।
একাধিক উইন্ডোতে Logcat ব্যবহার করুন
ট্যাবগুলি আপনাকে সহজেই বিভিন্ন ডিভাইস বা প্রশ্নের মধ্যে স্যুইচ করতে সহায়তা করে। নতুন ট্যাবে ক্লিক করে আপনি একাধিক Logcat ট্যাব তৈরি করতে পারেন . একটি ট্যাবে রাইট-ক্লিক করা আপনাকে এটির নাম পরিবর্তন এবং পুনরায় সাজাতে দেয়।
উপরন্তু, আপনি লগের দুটি সেটের মধ্যে তুলনা করতে আরও সহজে সাহায্য করার জন্য একটি ট্যাবের মধ্যে ভিউ বিভক্ত করতে পারেন। একটি বিভাজন তৈরি করতে, লগ ভিউতে ডান-ক্লিক করুন বা টুলবার থেকে স্প্লিট প্যানেল বিকল্পে ক্লিক করুন এবং স্প্লিট রাইট বা স্প্লিট ডাউন নির্বাচন করুন। একটি বিভাজন বন্ধ করতে, ডান-ক্লিক করুন এবং বন্ধ নির্বাচন করুন। প্রতিটি বিভাজন আপনাকে তার নিজস্ব ডিভাইস সংযোগ, দেখার বিকল্প এবং ক্যোয়ারী সেট করতে দেয়।
চিত্র 2. অ্যান্ড্রয়েড স্টুডিওতে লগক্যাট উইন্ডোগুলি বিভক্ত করুন।
Logcat টুলবার থেকে, আপনি হয় লগগুলির শেষে স্ক্রোল করতে পারেন, অথবা আপনি সেই লাইনটিকে দৃশ্যমান রাখতে একটি নির্দিষ্ট লাইনে ক্লিক করতে পারেন।
কী-মান অনুসন্ধান ব্যবহার করে লগ কোয়েরি করুন
অ্যান্ড্রয়েড স্টুডিওতে, আপনি মূল ক্যোয়ারী ক্ষেত্র থেকে মূল-মান অনুসন্ধানগুলি তৈরি করতে পারেন। এই ক্যোয়ারী সিস্টেমটি আপনি যা জিজ্ঞাসা করতে চান তার নির্ভুলতা প্রদান করে এবং কী-মানের উপর ভিত্তি করে লগগুলি বাদ দেয়। আপনার কাছে রেগুলার এক্সপ্রেশন ব্যবহার করার বিকল্প থাকলেও আপনাকে প্রশ্নের জন্য তাদের উপর নির্ভর করতে হবে না। পরামর্শ দেখতে, ক্যোয়ারী ক্ষেত্রে Ctrl
+ Space
টিপুন।
চিত্র 3. প্রস্তাবিত প্রশ্নের তালিকা দেখতে ক্যোয়ারী ক্ষেত্রে Ctrl
+ Space
টিপুন।
নিম্নলিখিত কীগুলির কিছু উদাহরণ রয়েছে যা আপনি আপনার প্রশ্নে ব্যবহার করতে পারেন:
-
tag
: লগ এন্ট্রিরtag
ক্ষেত্রের সাথে মিলে যায়। -
package
: লগিং অ্যাপের প্যাকেজ নামের সাথে মিলে যায়। -
process
: লগিং অ্যাপের প্রক্রিয়া নামের সাথে মিলে যায়। -
message
: লগ এন্ট্রির বার্তা অংশের সাথে মিলে যায়। -
level
: নির্দিষ্ট বা উচ্চতর গুরুতর লগ স্তরের সাথে মেলে-উদাহরণস্বরূপ,DEBUG
। -
age
: এন্ট্রি টাইমস্ট্যাম্প সাম্প্রতিক হলে মেলে। মানগুলি একটি সংখ্যা হিসাবে নির্দিষ্ট করা হয় এবং একটি অক্ষর দ্বারা সময় একক নির্দিষ্ট করে: সেকেন্ডের জন্যs
, মিনিটের জন্যm
, ঘন্টার জন্যh
এবং দিনের জন্যd
। উদাহরণস্বরূপ,age: 5m
ফিল্টার শুধুমাত্র বার্তা যা গত 5 মিনিটে লগ করা হয়েছে।
নেতিবাচক এবং নিয়মিত অভিব্যক্তি
নিম্নলিখিত ক্ষেত্রগুলি অস্বীকার এবং নিয়মিত অভিব্যক্তি ম্যাচিং সমর্থন করে: tag
, package
, message
এবং line
।
ক্ষেত্রের নামের সাথে a -
পূর্বে বসিয়ে নেগেশান প্রকাশ করা হয়। উদাহরণস্বরূপ, -tag:MyTag
লগ এন্ট্রির সাথে মেলে যার tag
MyTag
স্ট্রিং নেই।
রেগুলার এক্সপ্রেশন ম্যাচিং ফিল্ডের নামের সাথে a ~
যোগ করে প্রকাশ করা হয়। উদাহরণস্বরূপ, 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
টাইমস্ট্যাম্পের সাথে 5 মিনিট আগের এন্ট্রির সাথে মেলে।
age:30s
age:5m
age:3h
age:1d
মনে রাখবেন যে টাইমস্ট্যাম্পকে হোস্টের টাইমস্ট্যাম্পের সাথে তুলনা করা হয়, সংযুক্ত ডিভাইসের সাথে নয়। ডিভাইসের সময় সঠিকভাবে সেট করা না থাকলে, এই ক্যোয়ারী প্রত্যাশিতভাবে কাজ নাও করতে পারে।
is
আপনি নিম্নলিখিত হিসাবে is
কী ব্যবহার করতে পারেন:
-
is:crash
মেলে লগ এন্ট্রি যা একটি অ্যাপ্লিকেশন ক্র্যাশ প্রতিনিধিত্ব করে (নেটিভ বা জাভা)। -
is:stacktrace
লগ এন্ট্রির সাথে মেলে যা লগ লেভেল নির্বিশেষে জাভা স্ট্যাকট্রেসের মত দেখায়।
name
কী
name
কী আপনাকে একটি সংরক্ষিত ফিল্টারের জন্য একটি অনন্য নাম প্রদান করতে দেয় যাতে এটি ফিল্টার ইতিহাস ড্রপডাউনে সহজেই সনাক্ত করা যায়। যদিও আপনি একাধিকবার name
উল্লেখ করার জন্য একটি ত্রুটি পান না, তবে IDE ক্যোয়ারীতে name
জন্য শুধুমাত্র শেষ নির্দিষ্ট মান ব্যবহার করে।
ক্যোয়ারী ইতিহাস দেখুন
আপনি ইতিহাস দেখান ক্লিক করে আপনার ক্যোয়ারী ইতিহাস দেখতে পারেন ক্যোয়ারী ক্ষেত্রের পাশে। একটি ক্যোয়ারী পছন্দ করতে যাতে এটি আপনার সমস্ত স্টুডিও প্রকল্প জুড়ে তালিকার শীর্ষে থাকে, এটির পাশের তারকাটিতে ক্লিক করুন৷ এছাড়াও আপনি name:
পছন্দের প্রশ্নগুলি চিনতে আরও সহজ করতে কী। আরও তথ্যের জন্য, বিশেষ প্রশ্নগুলি দেখুন।
চিত্র 4. একটি ক্যোয়ারী পছন্দ করুন এটির পাশের তারকাটিতে ক্লিক করে।
অ্যাপ ক্র্যাশ এবং রিস্টার্ট জুড়ে লগ ট্র্যাক করুন
যখন Logcat লক্ষ্য করে যে আপনার অ্যাপ প্রক্রিয়া বন্ধ হয়ে গেছে এবং পুনরায় চালু হয়েছে, তখন এটি আউটপুটে একটি বার্তা প্রদর্শন করে, যেমন PROCESS ENDED
এবং PROCESS STARTED
। Logcat পুনঃসূচনা করা আপনার সেশন কনফিগারেশন সংরক্ষণ করে, যেমন ট্যাব বিভাজন, ফিল্টার এবং দেখার বিকল্পগুলি, যাতে আপনি সহজেই আপনার সেশন চালিয়ে যেতে পারেন।
চিত্র 5. যখন আপনার অ্যাপ প্রক্রিয়া পুনরায় আরম্ভ হয়, Logcat একটি বার্তা প্রিন্ট করে যে প্রক্রিয়াটি শেষ হয়ে গেছে এবং তারপর শুরু হয়েছে।