مشاهده‌ی لاگ‌های اپلیکیشن اندروید در لاگ‌کت

ADB (image taken from optocrypto.com)
ADB (image taken from optocrypto.com)


یکی از مشکلاتی که توسعه‌دهنده‌های موبایل هنگام ساختن برنامه‌ی اندروید دارن دیباگ اون و حداقل دیدن خطاهاییه که توی دیوایس اندروید برای برنامشون پیش میاد هست. دلیلش می‌تونه مختلف باشه؛ تازه‌کار بودن توسعه‌دهنده، استفاده از پلتفرمی که دیدن لاگ خیلی مطرح نیست براش یا .... تو این پست قصد دارم نحوه‌ی استفاده از ابزار لاگ‌کت رو به طور ساده توضیح بدم و توی پلتفرم‌های مختلف روش استفادش رو بگم.



معرفی Android logcat

اگر توسعه‌دهنده‌ی اندروید باشید [که با اندروید استودیو و یا ایکلیپس کار کردید]، مطمئنا Logcat به گوشتون خورده. توی SDK اندروید ابزاری به اسم ADB (یا Android debug bridge) هست که وظیفش برقراری ارتباط بین دستگاه و رایانه‌ست. محیط‌های توسعه‌ای که شما باهاشون برنامه‌ی اندروید مینویسید و اون رو با اتصال گوشی به رایانه روی گوشی‌تون اجرا می‌کنید از adb برای نصب برنامه روی گوشی استفاده می‌کنن.

یکی از کارهایی که ADB انجام می‌ده گزارش لاگ‌های دستگاه متصل‌شده‌ست. لاگ، پیامیه که یه نرم‌افزار هنگام اجرا توی سیستم‌عامل توی مواقع مختلف چاپ می‌کنه.

پس واسه‌ی دیدن لاگ‌های برنامه، باید لاگ‌های دستگاه‌ رو بگیریم و لا‌گ‌های برنامه‌ی خودمون رو جدا کنیم.

ببینیم واسه‌ی ابزارهای مختلف نحوه‌ی انجام این کار چجوریه. اول IDE های مطرح، بعد راه‌های عمومی رو خواهم‌گفت.


اندروید استودیو

اندروید استودیو راحت‌ترین روش برای دیدن لاگ‌های برنامه‌ست. کافیه وقتی اپ رو روی دستگاه اجرا می‌کنید لاگ‌کت رو از پایین انتخاب کنید (همچنین کلید ترکیبی Alt + 6)

Where is Logcat in Android studio?
Where is Logcat in Android studio?


بعد از انتخاب لاگ‌کت تنظیمات اون رو می‌تونید توی پنجره‌ش ببینید:

Logcat actions
Logcat actions

سبز: دیوایسی که وصل هست رو انتخاب کنید تا بتونید لاگ‌های اون رو ببینید.

زرد: فیلتر با کلمه‌ای که می‌خواید. مثلا لاگ‌های دارای تگ Flower.

قرمز: اگر اپی در حالت دیباگ روی دیوایس نصب شده‌باشه، می‌تونید اون رو انتخاب کنید و فقط لاگ‌های اون رو ببینید (منوی سمت راست باید Show only selected application باشه).


اینتلیجی (IntelliJ)

اگر پلاگین Android support رو برای intellij فعال کنید و Android sdk رو براش مشخص کنید، مثل اندروید استودیو لاگ‌کت در پایین صفحه هنگام بازبودن پروژه‌ی اندروید نمایان می‌شه.


ویژوال استودیو کد (VisualStudio code)

برای vscode هم پلاگین‌های مختلف هست مثل Android که دیباگ پروژه‌ی اندروید رو می‌تونید انجام بدید و با زدن F1 می‌تونید گزینه‌ی View logcat رو ببینید. اما باید adb در Environment variableهاتون ست شده باشه. برای انجام این کار ادامه رو بخونید.


بقیه‌ی ادیتورها و محیط‌ها

برای بقیه‌ی ادیتورها می‌تونید از همون Command line یا terminal استفاده کنید.


اضافه‌کردن adb به متغیرهای محلی

در صورتی که بخواید از طریق CommandLine، Terminal و یا ادیتور‌هایی که از طریق command line به adb وصل می‌شن (مثل vscode)، باید adb به متغیرهای محلی اضافه بشه. توی سیستم‌عامل‌های مختلف این کار متفاوت انجام می‌شه.

نکته‌ی‌مهم: باید Android sdk داشته‌باشید.

ویندوز:

  • روی This PC راست کلیک کنید و Properties رو بزنید تا پنجر‌ه‌ی system در کنترل پنل رو براتون باز کنه.
  • از منوی سمت چپ گزینه‌ی Advanced system settings رو انتخاب کنید.
  • از تب Advanced دکمه‌ی Environment variables رو انتخاب کنید.
  • از بخش System variables متغیر Path رو انتخاب کنید و Edit رو بزنید.
Add SDK path to Windows path
Add SDK path to Windows path
  • دو آدرس platform-tools و tools (دلخواه) رو با زدن دکمه‌ی New اضافه‌کنید.

در تصویر محل نصب sdk برای من D>Android>SDK هست و مابقی آدرس در خود فولدر sdk هست.

  • اوکی رو بزنید و یه CMD (یا Powershell باز کنید)
  • تایپ کنید adb و باید ببینید که دستور معتبره و خطا نمی‌ده.

لینوکس:

در لینوکس باید آدرس adb رو به متغیر سراسری PATH$ اضافه کنیم.

در صورتی که از Bash استفاده می‌کنید فایل bashrc. و در صورتی که از zsh استفاده می‌کنید فایل zshrc. رو باز کنید.

در صورتی که قبلا به PATH چیزی اضافه‌کردید، در ادامه آدرس sdk platform tools رو اضافه کنید.

این خط رو [ترجیحا به ابتدای] فایل اضافه کنید تا ‌متغیر PATH رو override کنید.

export PATH=:/home/userName/android/sdk/platform-tools:/home/userName/android/sdk/tools:$PATH

و بجای userName/android/sdk آدرس sdk توی سیستم‌خودتون رو وارد کنید.

فایل رو سیو کنید و ترمینال رو ریستارت کنید یا دستور

source ~/.bashrc # or source .zshrc

رو بزنید تا تنظیمات فعال بشن. بعد تایپ کنید adb و باید دستور معتبر باشه.

Test adb on linux shell
Test adb on linux shell


مشاهده‌ی لاگ با دستور adb

حالا که توی کامند لاین adb اضافه‌شده می‌تونیم لا‌‌گ‌ها رو توی کامندلاین ببینیم.

adb logcat *:V

این دستور یعنی همه‌ی لاگ‌های موجود رو نشون بده‌. یا دستور:

adb logcat Pushe:V

یعنی تمام لاگ‌های با تگ پوشه رو نشون بده.


اضافی:

اسکریپت Pidcat:

یکی از اسکریپت‌های خوبی که رنگ و لعابی به لاگ‌کت میبخشه و خوندنش رو ساده‌تر می‌کنه pidcat هست که یه اسکریپت پایتونه، لذا می‌تونید با نصب پایتون اون رو استفاده کنید. [لینک گیتهاب]


برنامه‌ی mLogcat برای ویندوز:

در صورتی که از ویندوز استفاده می‌کنید یه نرم‌افزار هست که لاگ‌های adb رو توی یه بستر گرافیکی نشون می‌ده. [لینک سایت]

منابع:

Android Logcat command-line tool

Android logcat

Logcat important commands