پنجره Logcat در اندروید استودیو به شما کمک میکند برنامهتان را با نمایش گزارشها از دستگاهتان بهطور همزمان، اشکالزدایی کنید - برای مثال، پیامهایی که با کلاس Log
به برنامه خود اضافه کردهاید، پیامهایی از سرویسهایی که در Android اجرا میشوند، یا پیامهای سیستمی، مانند زمانی که جمع آوری زباله رخ می دهد. هنگامی که یک برنامه یک استثنا ایجاد می کند، Logcat پیامی را نشان می دهد که به دنبال آن ردیابی پشته مرتبط حاوی پیوندهایی به خط کد است.
با پنجره Logcat شروع کنید
برای مشاهده پیام های گزارش برنامه خود، موارد زیر را انجام دهید.
- در Android Studio، برنامه خود را روی یک دستگاه فیزیکی یا شبیه ساز بسازید و اجرا کنید .
- View > Tool Windows > Logcat را از نوار منو انتخاب کنید.
به طور پیش فرض، Logcat تا انتها پیمایش می کند. کلیک کردن در نمای Logcat یا پیمایش به بالا با استفاده از چرخ ماوس، این ویژگی را خاموش می کند. برای روشن کردن مجدد آن، روی Scroll to the End کلیک کنید از نوار ابزار همچنین می توانید از نوار ابزار برای پاک کردن، توقف موقت یا راه اندازی مجدد Logcat استفاده کنید.
شکل 1. 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
نمای گزارش را پیکربندی کنید
نمای گزارش استاندارد تاریخ، فرآیند زمان و شناسه رشته، برچسب، نام بسته، اولویت و پیام مرتبط با آن را نمایش میدهد. بهطور پیشفرض، خطوط پیام در نمای گزارش پیچیده نمیشوند، اما میتوانید از Soft-Wrap استفاده کنید گزینه ای از نوار ابزار Logcat.
با کلیک کردن روی پیکربندی گزینههای قالببندی Logcat، میتوانید به نمای فشرده ، که اطلاعات نمایش پیشفرض کمتری دارد، بروید. از نوار ابزار Logcat .
برای پیکربندی بیشتر اطلاعاتی که میخواهید نمایش داده شود، Modify Views را انتخاب کنید و انتخاب کنید که آیا میخواهید مُهر زمان، برچسبها، شناسههای فرآیند یا نام بستهها نمایش داده شود یا خیر.
رنگ بندی را تغییر دهید
برای تغییر طرح رنگ، به Android Studio > Settings > Editor > Color Scheme بروید. برای تغییر طرح رنگ نمای گزارش خود، Android Logcat را انتخاب کنید. برای تغییر طرح رنگ فیلتر خود، Logcat Filter را انتخاب کنید.
گزینه های پیکربندی اضافی
برای گزینههای پیکربندی بیشتر، به Android Studio > Settings > Tools > Logcat بروید. از اینجا، میتوانید اندازه بافر چرخه Logcat، فیلتر پیشفرض پنجرههای Logcat جدید، و اینکه آیا میخواهید فیلترهایی از تاریخچه برای تکمیل خودکار اضافه کنید یا خیر را انتخاب کنید.
از Logcat در چندین پنجره استفاده کنید
برگه ها به شما کمک می کنند به راحتی بین دستگاه ها یا پرس و جوهای مختلف جابجا شوید. با کلیک کردن بر New Tab می توانید چندین برگه Logcat ایجاد کنید . با کلیک راست روی یک برگه می توانید نام آن را تغییر دهید و مرتب کنید.
علاوه بر این، میتوانید نمای را در یک برگه تقسیم کنید تا به شما کمک کند راحتتر بین دو مجموعه گزارش مقایسه کنید. برای ایجاد یک تقسیم، یا در نمای ورود کلیک راست کنید یا روی گزینه Split Panels از نوار ابزار کلیک کنید و Split Right یا Split Down را انتخاب کنید. برای بستن یک تقسیم، کلیک راست کرده و بستن را انتخاب کنید. هر تقسیم به شما امکان می دهد اتصال دستگاه خود را تنظیم کنید، گزینه ها را مشاهده کنید، و پرس و جو کنید.
شکل 2. پنجره های Logcat را در Android Studio تقسیم کنید.
از نوار ابزار Logcat ، میتوانید به انتهای گزارشها بروید یا میتوانید روی یک خط خاص کلیک کنید تا آن خط قابل مشاهده باشد.
پرس و جو با استفاده از جستجوی کلید-مقدار
در Android Studio، میتوانید جستجوهای کلید-مقدار را مستقیماً از قسمت جستجوی اصلی ایجاد کنید. این سیستم پرس و جو دقت آنچه را که می خواهید پرس و جو کنید را فراهم می کند و همچنین لاگ ها را بر اساس کلید-مقدارها حذف می کند. در حالی که گزینه استفاده از عبارات منظم را دارید، لازم نیست برای پرس و جو به آنها تکیه کنید. برای مشاهده پیشنهادات، Ctrl
+ Space
را در قسمت درخواست فشار دهید.
شکل 3. Ctrl
+ Space
را در قسمت پرس و جو فشار دهید تا لیستی از پرس و جوهای پیشنهادی را ببینید.
در زیر چند نمونه از کلیدهایی هستند که می توانید در جستجوی خود استفاده کنید:
-
tag
: با فیلدtag
ورودی گزارش مطابقت دارد. -
package
: با نام بسته برنامه ورود به سیستم مطابقت دارد. -
process
: با نام فرآیند برنامه ورود به سیستم مطابقت دارد. -
message
: با بخش پیام ورودی گزارش مطابقت دارد. -
level
: با سطح گزارش شدید مشخص یا بالاتر مطابقت دارد – برای مثال،DEBUG
. -
age
: در صورتی مطابقت دارد که مهر زمانی ورود اخیر باشد. مقادیر به عنوان یک عدد و به دنبال آن یک حرف مشخص می شود که واحد زمان را مشخص می کند:s
برای ثانیه،m
برای دقیقه،h
برای ساعت وd
برای روز. به عنوان مثال،age: 5m
فقط پیام هایی را فیلتر می کند که در 5 دقیقه گذشته وارد سیستم شده اند.
نفی و عبارات منظم
فیلدهای زیر از نفی و تطبیق عبارت منظم پشتیبانی می کنند: 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
با ورودیهای دارای مُهر زمانی کمتر از 5 دقیقه قبل مطابقت دارد.
age:30s
age:5m
age:3h
age:1d
توجه داشته باشید که مهر زمانی با مُهر زمانی میزبان مقایسه میشود، نه دستگاه متصل. اگر زمان دستگاه به درستی تنظیم نشده باشد، این عبارت ممکن است مطابق انتظار کار نکند.
کلیدی is
می توانید از کلید is
به صورت زیر استفاده کنید:
-
is:crash
با ورودیهای گزارشی مطابقت دارد که نشان دهنده خرابی برنامه (چه بومی یا جاوا) هستند. -
is:stacktrace
با ورودیهای گزارشی مطابقت دارد که هر چیزی را که شبیه یک stacktrace جاوا است، صرف نظر از سطح گزارش، نشان میدهد.
کلید name
کلید name
به شما امکان می دهد یک نام منحصر به فرد برای یک فیلتر ذخیره شده ارائه دهید تا در فهرست کشویی تاریخچه فیلتر به راحتی قابل شناسایی باشد. اگرچه برای تعیین name
بیش از یک بار خطایی دریافت نمی کنید، IDE فقط از آخرین مقدار مشخص شده برای name
در پرس و جو استفاده می کند.
مشاهده تاریخچه پرس و جو
با کلیک روی نمایش تاریخچه می توانید سابقه درخواست خود را مشاهده کنید در کنار فیلد پرس و جو برای اینکه درخواستی را مورد علاقه خود قرار دهید تا در تمام پروژه های استودیویی شما در بالای لیست باقی بماند، روی ستاره کنار آن کلیک کنید. همچنین می توانید name:
کلید استفاده کنید تا پرس و جوهای دلخواه را آسان تر تشخیص دهید. برای اطلاعات بیشتر، پرس و جوهای ویژه را ببینید.
شکل 4. یک پرس و جو را با کلیک کردن روی ستاره کنار آن مورد علاقه قرار دهید.
ردیابی گزارشها در بین خرابیها و راهاندازی مجدد برنامه
وقتی Logcat متوجه می شود که فرآیند برنامه شما متوقف شده و مجدداً راه اندازی شده است، پیامی مانند PROCESS ENDED
و PROCESS STARTED
را در خروجی نمایش می دهد. راه اندازی مجدد Logcat پیکربندی جلسه شما را حفظ می کند، مانند تقسیم برگه ها، فیلترها و گزینه های مشاهده، به طوری که بتوانید به راحتی جلسه خود را ادامه دهید.
شکل 5. هنگامی که فرآیند برنامه شما مجدداً راه اندازی می شود، Logcat پیامی را چاپ می کند که فرآیند پایان یافته و سپس شروع شده است.