آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

همان طور که می دانید، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device)( کلید شماره 205 ) یا هنگام خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی ( کلید شماره 813 )، در قسمت LogCat برنامه eclipse ، می توانیم پیام هایی را بر اساس روند اجرای برنامه اندروید مشاهده کنیم که به خصوص در صورت وقوع خطا، با استفاده از آنها می توانیم منبع ایجادکننده خطا را تا حدودی شناسایی کنیم :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید
نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

این پیام ها که در قسمت LogCat برنامه eclipse نمایش داده می شوند، قبلا توسط توسعه دهندگان اندروید، کتابخانه ها (libraries) و کلاس هایی (classes) که از آنها در برنامه اندروید خود استفاده کرده ایم، طراحی شده اند. اما شاید خود ما نیز بخواهیم که پیام هایی را به برنامه اندروید خود اضافه کنیم که بعد از شبیه سازی برنامه اندروید (توسط روش هایی که گفته شد)، بتوانیم بر اساس روند اجرای آن، پیام هایی را در قسمت LogCat از برنامه eclipse مشاهده نماییم. در ادامه، چگونگی افزودن پیام برای نمایش در قسمت LogCat را شرح خواهیم داد.

اگر پنجره LogCat در برنامه eclipse را نمی بینید (باز نیست)، در پنجره اصلی برنامه eclipse ، از منوی Window ، گزینه Show View و سپس گزینه Other را انتخاب کنید :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

پنجره ای به شکل زیر نمایش داده می شود :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

در این پنجره، ابتدا گزینه Android و سپس گزینه LogCat را انتخاب کرده و بر روی دکمه OK کلیک می کنیم :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

بنابراین اگر قبلا پنجره LogCat نمایش داده نشده باشد، اکنون می توانید آن را در پنجره اصلی برنامه eclipse مشاهده کنید.

اکنون به سراغ Log نویسی می رویم. شاید سریعترین راه برای آشنایی با انواع Log ، اجرای کد زیر در برنامه اندروید باشد :


Log.e("myTAG", "error");
Log.w("myTAG", "warning");
Log.i("myTAG", "info");
Log.d("myTAG", "debug");
Log.v("myTAG", "verbose");
Log.wtf("myTAG", "What a Terrible Failure");

نوع Log ، با یک یا چند حرف، بعد از عبارت Log. نوشته شده است. یعنی ما در کد بالا، از 6 نوع Log استفاده کرده ایم که هر کدام، پیامی را در قسمت LogCat نمایش می دهد. تفاوت انواع log ها، در میزان اهمیت آنها برای شرح رویدادهای اتفاق افتاده در برنامه اندروید است. درون پرانتز، ابتدا یک نام تگ (Tag) را به صورت رشته (String) می نویسیم و سپس، پیام مورد نظرمان برای نمایش در قسمت LogCat را نوشته ایم. من عمدا در قسمت پیام، یک یا چند کلمه برای شرح نوع آن Log ها نوشته ام.

قبل از اینکه تفاوت بین آنها را شرح بدهم، ابتدا بگذارید ببینیم که از نظر ظاهری (در LogCat) به چه شکل هستند. بنابراین مثلا در یک Activity دلخواه از پروژه اندروید، آنها را در روش onCreate می نویسیم (یک مثال) :


package com.kelidestan.com;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
               
        Log.e("myTAG", "error");
        Log.w("myTAG", "warning");
        Log.i("myTAG", "info");
        Log.d("myTAG", "debug");
        Log.v("myTAG", "verbose");
        Log.wtf("myTAG", "What a Terrible Failure");
    }


}

خوب حالا می خواهیم برنامه اندروید (پروژه اندروید) را اجرا یا خطایابی کنیم ( کلید شماره 813 )، برای این منظور، فرض می کنیم که کلید شماره 813 را خوانده اید و می دانید که چگونه از گوشی واقعی برای اجرا یا خطایابی پروژه اندروید استفاده کنید (یا اصلا می توانید از virtual device برای اجرا یا خطایابی استفاده کنید).

اکنون در برنامه eclipse ، بر روی نام پروژه اندروید، کلیک سمت راست نموده و ابتدا گزینه Debug As (یا گزینه Run As برای اجرا کردن) و سپس گزینه Android Application را انتخاب می کنیم :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

بنابراین در قسمت LogCat ، پیام های زیر نمایش داده می شود :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

مشاهده می کنید که برای انواع Log ها، رنگ های مختلفی داریم (به جز Log.e و Log.wtf که هر دو به رنگ قرمز نمایش داده می شوند.) بنابراین شما می توانید با استفاده از انواع Log ، پیام های دلخواهی را در قسمت LogCat (همزمان با شبیه سازی برنامه اندروید) مشاهده کنید که تسلط کاملی بر روند اجرای برنامه اندروید را در اختیار شما قرار می دهد.

تفاوت بین انواع Log :

اکنون قصد داریم که تفاوت انواع Log را شرح بدهیم. فقط دقت داشته باشید که آنچه بیان می شود، یک قرارداد بین توسعه دهندگان برای استفاده از انواع Log می باشد (نه یک قانون که اگر آن را رعایت نکنید، برای برنامه اندروید شما مشکلی پیش بیاید).

Log.e :

هنگام بروز یک خطا (error)، این Log را به کار می بریم. منظورمان از خطا، عدم اجرا شدن دستوری مهم است، یعنی عملیاتی که مد نظرمان بوده است، اجرا نشده و یک خطا به وجود آمده است.

Log.e معمولا با try و catch به کار می رود ( کلید شماره 345 )، زیرا باید تشخیص بدهیم که آیا خطای مورد نظر ما رخ داده یا نه.

Log.w :

Log.w برای زمانی به کار می رود که بخواهیم در مورد به وجود آمدن یک وضعیت (نتیجه) هشدار (warning) بدهیم. اگرچه وضعیت به وجود آمده، اختلال مهمی در روند اجرای کدها ایجاد نمی کند، ولی باید به صورت یک نکته مهم به برنامه نویس تذکر داده شود تا در صورت نیاز، موارد مربوط به آن را در کدنویسی های بعدی در نظر بگیرد.

Log.i :

Log.i برای نمایش اطلاعات (information) مفیدی در زمینه اجرای بخش های مختلف برنامه اندروید به کار می رود. مثلا اگر کد شما در کل شامل 5 مرحله است، می توانید در انتهای اجرای هر مرحله، با Log.i ، پیامی مبنی بر اجرای موفقیت آمیز هر مرحله، در LogCat نمایش بدهید.

Log.d :

Log.d برای خطایابی (debugging) به کار می رود (اگر زمانی با خطا روبرو شویم، با پیام های نوشته شده توسط Log.d می توانیم علت ایجاد خطا را پیدا کنیم). مثلا با آن می توانید تمامی موارد مهم و کلیدی روند اجرای برنامه اندروید را در LogCat نمایش بدهید، مثل مقادیر به دست آمده برای متغیرها، نتایج اجرای زیرمرحله ها و ... .

Log.v :

Log.v برای نمایش تمامی نکات کوچک و بزرگ از اجرای برنامه اندروید، در قسمت LogCat ، به کار می رود.

Log.wtf :

Log.wtf مشابه Log.e می باشد، اما برای مواردی به کار می رود که یک خطای خیلی مهم رخ داده است که با وقوع آن خطا، باید کل روند اجرای برنامه اندروید متوقف شود (یک خطای مهم که کل برنامه اندروید را دچار مشکل می کند).

Log.wtf معمولا با try و catch به کار می رود ( کلید شماره 345 )، زیرا باید تشخیص بدهیم که آیا خطای مورد نظر ما رخ داده یا نه.

پاک کردن پیام های نمایش داده شده در قسمت LogCat :

اگر قصد دارید که پیام های قبلی نمایش داده شده در LogCat را پاک کنید (تا با پیام های جدید، اشتباه گرفته نشوند)، در گوشه بالا سمت راست پنجره LogCat ، گزینه ای به شکل زیر وجود دارد :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

با اشاره بر روی آن، پیام های قبلی نمایش داده شده در LogCat ، پاک می شوند.

جستجو در متن پیام های نمایش داده شده در قسمت LogCat (یا جستجو در نام Tag ها) :

معمولا تعدادی زیادی پیام در قسمت LogCat نمایش داده می شود، بنابراین برای یافتن یک پیام خاص یا یک سری پیام های خاص، می توانیم کلمه های موجود در متن آنها را جستجو کنیم :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

شما در هنگام جستجو، از عبارات قاعده مند (regular expressions) نیز می توانید استفاده کنید (تمامی متن هایی که در یک شکل کلی، صدق می کنند).

علاوه بر متن پیام ها، در نام Tag ها نیز می توان جستجو کرد. برای این منظور، در ابتدای عبارت جستجو، باید این عبارت را بنویسیم :


tag:

به عنوان مثال، نتیجه زیر را ببینید :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

برای جستجو در PID نیز می توان به شکل مشابه عمل کرد و تنها باید عبارت زیر در ابتدای عبارت جستجو نوشته شود :


pid:

انتخاب حداقل درجه اهمیت برای نمایش پیام ها در قسمت LogCat :

همان طور که قبلا گفتیم، انواع Log از نظر درجه اهمیت با هم تفاوت دارند. بنابراین ما می توانیم تعیین کنیم که تنها پیام هایی در LogCat نمایش داده شوند که دارای یک حداقل درجه اهمیت باشند. این حداقل درجه اهمیت، در گوشه بالا سمت راست پنجره LogCat نمایش داده می شود (بنابراین ترتیب اهمیت انواع Log را از ترتیب این گزینه ها نیز می توانید متوجه شوید) :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

مقدار پیش فرض آن برابر verbose (معادل Log.v) است که باعث می شود همه پیام ها نمایش داده شوند، اما مثلا اگر مقدار warn (معادل Log.w) را برای آن انتخاب کنیم، چون حداقل درجه اهمیت برابر Log.w در نظر گرفته شده، بنابراین تنها پیام هایی در LogCat نمایش داده می شوند که با Log.w یا Log.e یا Log.wtf ایجاد شده باشند :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

ذخیره اطلاعات قسمت LogCat به صورت یک فایل متنی :

در گوشه بالا سمت راست پنجره LogCat ، گزینه ای به شکل زیر وجود دارد :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

با استفاده از این گزینه، می توانید اطلاعات قسمت LogCat را به صورت یک فایل متنی ذخیره کنید. فقط نکته مهم این است که این گزینه، خط هایی را در فایل متنی ذخیره می کند که آنها را انتخاب کرده باشید (اگر هیچ خطی را انتخاب نکنید، تنها یک فایل متنی خالی ساخته می شود). مثلا من تنها 6 خط زیر را انتخاب می کنم :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

بعد از ذخیره اطلاعات در فایل متنی، فایل را که باز می کنیم، دارای متن زیر می باشد :


01-09 15:50:45.271: E/myTAG(770): error
01-09 15:50:45.271: W/myTAG(770): warning
01-09 15:50:45.271: I/myTAG(770): info
01-09 15:50:45.271: D/myTAG(770): debug
01-09 15:50:45.271: V/myTAG(770): verbose
01-09 15:50:45.271: A/myTAG(770): What a Terrible Failure

در پنجره LogCat ، اگر قصد دارید که همه خط ها را انتخاب کنید، ابتدا در فضای خالی پنجره LogCat ، با موس کلیک کنید، سپس کلیدهای Ctrl و A از کیبورد را فشار بدهید تا تمامی خط ها به حالت انتخاب شده در بیایند.

  • فهرست مباحث
نویسنده علیرضا گلمکانی
شماره کلید 2719
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 0 0 0

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)