বিভিন্ন পদ্ধতি অগ্রাধিকারের ইঙ্গিত। আপনি তাদের তালিকাবদ্ধ হিসাবে, তারা কমপক্ষে থেকে সবচেয়ে গুরুত্বপূর্ণ যাচ্ছে। আমি মনে করি আপনি কীভাবে আপনার কোডটিতে লগগুলি ডিবাগ করার জন্য তাদের ম্যাপ হিসাবে চিহ্নিত করেছেন তা আপনি যে উপাদান বা অ্যাপ্লিকেশনটিতে কাজ করছেন তার উপর নির্ভর করে অ্যান্ড্রয়েড কীভাবে তাদের সাথে বিভিন্ন বিল্ড ফ্লেভারগুলি (ইঞ্জিন, ইউজারডিগ এবং ব্যবহারকারী) ব্যবহার করে on আমি অ্যান্ড্রয়েডে নেটিভ ডেমোনগুলিতে মোটামুটি কাজ করেছি এবং আমি এটি এইভাবে করি। এটি সরাসরি আপনার অ্যাপ্লিকেশনটিতে প্রয়োগ নাও হতে পারে তবে কিছু সাধারণ কারণ হতে পারে। যদি আমার ব্যাখ্যাটি অস্পষ্ট মনে হয় তবে এর কারণ কিছু একটি বিজ্ঞানের চেয়ে শিল্পের বেশি। আমার বেসিক নিয়মটি যতটা সম্ভব দক্ষ হওয়া, আপনি সিস্টেমের পারফরম্যান্সটি না মেরে যুক্তিসঙ্গতভাবে আপনার উপাদানটি ডিবাগ করতে পারবেন এবং সর্বদা ত্রুটিগুলি পরীক্ষা করে লগ ইন করতে পারেন তা নিশ্চিত করুন।
ভি - বিভিন্ন ব্যবধানে রাষ্ট্রের প্রিন্টআউট, বা আমার সংঘটিত প্রক্রিয়াজাত কোনও ঘটনার উপরে। এছাড়াও সম্ভবত আমার উপাদানগুলি প্রাপ্ত বা প্রেরিত বার্তা / ইভেন্টগুলির পেলডগুলির খুব বিস্তারিত প্রিন্টআউটগুলি।
ডি - আমার উপাদানগুলির মধ্যে ঘটে যাওয়া ছোটখাটো ইভেন্টের বিবরণ এবং সেইসাথে আমার উপাদানগুলি প্রাপ্ত বা প্রেরিত বার্তা / ইভেন্টের পেললোড।
আমি - আমার উপাদানটি প্রাপ্ত বা প্রেরণকারী কোনও বার্তা / ইভেন্টের শিরোনাম, সেইসাথে পে-লোডের কোনও গুরুত্বপূর্ণ টুকরা যা আমার উপাদানটির ক্রিয়াকলাপের জন্য গুরুত্বপূর্ণ।
ডাব্লু - যে কোনও কিছু ঘটে যা অস্বাভাবিক বা সন্দেহজনক তবে ত্রুটিযুক্ত হওয়ার দরকার নেই।
ই - ত্রুটিগুলি, অর্থ এমন জিনিস যা জিনিসগুলি যখন করা উচিত ঠিক তেমন কাজ করার সময় হয় না।
লোকেদের আমি যে সবচেয়ে বড় ভুলটি দেখতে পাচ্ছি তা হ'ল তারা ভি, ডি এবং আই এর মতো জিনিসগুলিকে অতিরিক্ত ব্যবহার করে তবে কখনও ডাব্লু বা ই ব্যবহার করে না If কোনও বার্তা লগ হওয়ার পরে আপনার পক্ষে সস্তা। অন্যদিকে, প্রতিবার যদি আপনি একটি লগ.আই () করেন তবে আপনি ভাগ করে দেওয়া লগিংয়ের সংস্থানটি অপব্যবহার করছেন। অবশ্যই, সাধারণ জ্ঞান ব্যবহার করুন এবং আপনার নিয়ন্ত্রণের বাইরের জিনিসগুলির (যেমন নেটওয়ার্কের ত্রুটি) বা টাইট লুপের মধ্যে থাকা ত্রুটিযুক্ত লগগুলি সম্পর্কে সতর্ক থাকুন be
খারাপ হতে পারে
Log.i("I am here");
ভাল
Log.e("I shouldn't be here");
এই সমস্ত বিষয় মাথায় রেখে, আপনার কোডটি "উত্পাদন প্রস্তুত" -এর কাছাকাছি আসবে, আপনি আপনার কোডের জন্য বেস লগিং স্তরকে তত বেশি সীমাবদ্ধ করতে পারবেন (আপনার আলফায় ভি দরকার হবে, বিটাতে ডি, আমি প্রোডাকশনে বা সম্ভবত উত্পাদনও ডাব্লু) )। আপনার আরও কিছু সাধারণ ব্যবহারের ক্ষেত্রে চলতে হবে এবং লগগুলি দেখতে হবে যাতে আপনি আরও সীমাবদ্ধ ফিল্টারিং প্রয়োগ করার পরে এখনও বেশিরভাগটি ঘটছে তা বুঝতে পারবেন। আপনি যদি নীচের ফিল্টারটি দিয়ে চালান তবে আপনার অ্যাপটি কী করছে তা আপনাকে এখনও বলতে সক্ষম হওয়া উচিত, তবে সমস্ত বিবরণ নাও পেতে পারেন।
logcat -v threadtime MyApp:I *:S
Verbose
লগ করার জন্য । আপনি যখন প্রতিটি সম্ভাব্য লজিকাল ক্রিয়াকলাপ আউটপুট করতে চান আপনি এটি ব্যবহার করেন।