مشاهده گزارش‌ها با Logcat

پنجره Logcat در Android Studio به شما کمک می‌کند با نمایش هم‌زمان گزارش‌های دستگاهتان، برنامه‌تان را اشکال‌زدایی کنید—برای مثال، پیام‌هایی که با کلاس Log به برنامه‌تان اضافه کرده‌اید، پیام‌های سرویس‌هایی که در Android اجرا می‌شوند، یا پیام‌های سیستم، مانند زمانی که جمع‌آوری زباله رخ می‌دهد. وقتی برنامه‌ای استثنایی را ایجاد می‌کند، Logcat پیامی را نشان می‌دهد که به‌دنبال آن ردیابی پشته‌ای منسوب حاوی پیوندهایی به خط کد نمایش داده می‌شود.

شروع به کار با پنجره Logcat

برای مشاهده پیام‌های گزارش برنامه، کارهای زیر را انجام دهید.

  1. در Android Studio، برنامه‌تان را در دستگاه فیزیکی یا شبیه‌ساز بسازید و اجرا کنید.
  2. View > Tool Windows > Logcat را از نوار منو انتخاب کنید.

به‌طور پیش‌فرض، Logcat به انتها پیمایش می‌کند. با کلیک کردن در نمای Logcat یا پیمایش به بالا بااستفاده از چرخ موشواره، این ویژگی خاموش می‌شود. برای روشن کردن مجدد آن، روی پیمایش به انتها نماد «پیمایش به انتها» در نوارابزار کلیک کنید. همچنین می‌توانید از نوارابزار برای پاک کردن، موقتاً متوقف کردن، یا بازراه‌اندازی Logcat استفاده کنید.

رابط کاربری پنجره Logcat

شکل ۱. 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 شکل ۲. پنجره‌های Logcat را در «استودیو Android» تقسیم کنید.

از نوارابزار 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 باشد، صرف‌نظر از سطح گزارش.

کلید name

کلید name به شما امکان می‌دهد نامی منحصربه‌فرد برای فیلتر ذخیره‌شده ارائه دهید تا به‌راحتی در منو کرکره‌ای سابقه فیلتر قابل‌شناسایی باشد. اگرچه برای مشخص کردن بیش‌از یک‌بار name خطایی دریافت نمی‌کنید، IDE فقط از آخرین مقدار مشخص‌شده برای name در پُرسمان استفاده می‌کند.

مشاهده سابقه پُرسمان

با کلیک کردن روی نمایش سابقه نماد فیلتر در کنار فیلد پُرسمان، می‌توانید سابقه پُرسمانتان را مشاهده کنید. برای افزودن پُرسمان به موارد دلخواه تا در بالای فهرست همه پروژه‌های استودیو شما باقی بماند، روی ستاره کنار آن کلیک کنید. همچنین می‌توانید از کلید name: استفاده کنید تا تشخیص پُرسمان‌های دلخواه آسان‌تر شود. برای اطلاعات بیشتر، به پرس‌وجوهای ویژه مراجعه کنید.

واسط کاربر برای افزودن پُرسمان به موارد دلخواه

شکل ۴. با کلیک کردن روی ستاره کنار پُرسمان، آن را به موارد دلخواه اضافه کنید.

ردگیری گزارش‌ها در سراسر خرابی‌ها و بازراه‌اندازی‌های برنامه

وقتی Logcat متوجه می‌شود که فرایند برنامه‌تان متوقف و بازراه‌اندازی شده است، پیامی در خروجی نمایش می‌دهد، مانند PROCESS ENDED و PROCESS STARTED. بازراه‌اندازی Logcat پیکربندی جلسه شما را حفظ می‌کند، مثل تقسیم برگه‌ها، فیلترها، و گزینه‌های نما، تا بتوانید به‌راحتی جلسه‌تان را ادامه دهید.

پنجره Logcat برای خرابی‌های برنامه

شکل ۵. وقتی فرایند برنامه‌تان بازراه‌اندازی می‌شود، Logcat پیامی چاپ می‌کند که فرایند به‌پایان رسیده و سپس شروع شده است.