tejariapp-new-logotejariapp-new-logotejariapp-new-logotejariapp-new-logo
  • صفحه اصلی
  • پروژه ها
    • پروژه طراحی سایت
    • پروژه های اندروید
    • پروژه های تحت ویندوز
    • UI & UX
    • ربات تلگرام
  • سفارش پروژه
    • انجام پروژه اندروید (Android)
    • طراحی و ساخت اپلیکیشن موبایل
    • انجام پروژه طراحی سایت با php
    • انجام پروژه طراحی سایت با Asp.net
    • انجام پروژه سی شارپ
    • فرم سفارش پروژه
  • مدرسه ی تجاری اپ
    • طراحی سایت
    • اندروید
    • سی شارپ
    • آموزش پایگاه داده
    • برنامه های کاربردی
  • لینک های مفید
    • پرداخت آنلاین
    • درباره تجاری اپ
    • تماس با ما
استخدام برنامه نویس متلب
سفارش پروژه
✕
            هیچ نتیجه ای یافت نشدمشاهده همه نتایج

            کتابخانه Timber برای گرفتن لاگ بهتر در اندروید

            • صفحه نخست
            • مدرسه ی تجاری اپ آموزش اندروید
            • کتابخانه Timber برای گرفتن لاگ بهتر در اندروید
            آموزش RxJava با مثال های کاربردی
            کتابخانه RxJava را کاربردی بیاموزیم
            13 بهمن 1397
            همه آن چیزی که باید درباره گیت بدانید
            همه آن چیزی که باید درباره گیت (Git) بدانید – بخش اول
            20 بهمن 1397
            منتشر شده توسط مهندس داودی
            کتابخانه timber برای گرفتن لاگ بهتر در اندروید

            کتابخانه timber برای گرفتن لاگ بهتر در اندروید

            کتابخانه timber ، در این پست به صورت کامل به کتابخانه timber از Jake Wharton میپردازیم.
            به اختصار این کتابخانه را ما بجای کلاس Log پیشفرض خود اندروید که بصورت کامل android.util.log میباشد.
            اما دلیل جایگزینی این کتابخانه این ست که میتوان لاگ هارا خیلی کاستومایز یا به عبارت دیگر سفارشی سازی شده تر پیاده کرد که در این پست نمونه هایی از کاستوم کردن لاگ log یا گرفتن لاگ بهتر در اندروید رو با مثال خواهیم دید

            آموزش کتابخانه timber برای گرفتن لاگ سفارشی در اندروید

            به گفته خود نویسنده

            A logger with a small, extensible API which provides utility on top of Android’s normal Log class.

            یک لاگر logger با یک Api کوچک و قابل گسترش که میتواند ابزارها (لاگ ها) در بالای لاگ های نرمال کلاس های اندروید نمایش دهد.

            برای اضافه کردن یک instance یا نمونه از کتابخانه timber کافیه که بدین صورت کد بزنیم

            Timber.plant(Tree)
            

            که بهترین مکان برای فراخوانی این کد در کلاس Application برنامه و onCreate آن ست
            پیاده سازی DebugTree به طور خودکار برای هرکلاس که کد فوق را پیاده کرد باشد انجام میشود و همچنین نام کلاس به عنوان Tag لاگ نیز ذکر میشود.

            مراحل استفاده کتابخانه Timber

            مراحل استفاده نیز خیلی ساده ست

            1. پیاده سازی هر نوع instance مربوط به Tree در کلاس Application برنامه
            2. فراخوانی متدهای استاتیک Timber در هرکجای اپ برای لاگ کردن

            دو مرحله فوق رو کمی واضح تر درادامه پست توضیح خواهیم داد

            ۱- یک پروژه اندروید بسازید (من از زبان کاتلین استفاده میکنم اما این کتابخانه با هر دو زبان جاوا و کاتلین کاملا سازگاره ! )
            و وابستگی یا dependency زیر رو اضافه کنید و در نهایت sync

             implementation 'com.jakewharton.timber:timber:4.7.1'
            

            ۲- حالا یک کلاس که از Application ارث بری میکنه بسازید و تکه کد plant کتابخانه timber رو به اون اضافه کنید به صورت زیر

            package dn.marjan.timbersample
            
            import android.app.Application 
            import timber.log.Timber
             
            import timber.log.Timber.DebugTree
            
            class MyApplication : Application() {
                override fun onCreate() {
                    super.onCreate() 
                    Timber.plant(DebugTree())
                }
             
            }
            

            کلاس DebugTree مربوط به خود کتابخانه timber هست اما میتونیم هر کلاس کاستومایز شده دیگه ای که از Timber.Tree ارث بری کنه رو بسازیم و ساختار لاگ رو بسته به سلیقه خودمون پیاده کنیم !
            کلاس اپلیکیشن رو همچنین در منیفست برنامه بصورت زیر در تگ application مشخص خواهیم کرد

             <application
            android:name=".MyApplication"
            …
            

            ۳- در نهایت اکتیویتی که زمان ساخت پروژه ایجاد شده را به صورت زیر تغییر میدیم

            package dn.marjan.timbersample
            
            import android.support.v7.app.AppCompatActivity
            import android.os.Bundle
            import android.widget.Toast
            import kotlinx.android.synthetic.main.demo_activity.*
            import timber.log.Timber
            
            class MainActivity : AppCompatActivity() {
            
                override fun onCreate(savedInstanceState: Bundle?) {
                    Timber.i("onCreate")
                    super.onCreate(savedInstanceState)
                    setContentView(R.layout.demo_activity)
            //        Timber.tag("LifeCycles")
            //        Timber.d("Activity Created")
            
                    btn_hello.setOnClickListener { greetingClicked("btn_hello") }
                    btn_hey.setOnClickListener { greetingClicked("btn_hey") }
                    btn_hi.setOnClickListener { greetingClicked("btn_hi") }
            
                }
            
                fun greetingClicked(btnText: String) {
                    Timber.i("A button with clicked to say '$btnText'.") 
                    Toast.makeText(this, "Check logcat for a greeting!", Toast.LENGTH_SHORT).show()
                }
              override fun onStart() {
                  Timber.i("onStart")
                  super.onStart()
              }
            
                override fun onRestart() {
                    Timber.i("onRestart")
                    super.onRestart()
                }
            
                override fun onResume() {
                    Timber.i("onResume")
                    super.onResume()
                }
            
                override fun onPause() {
                    Timber.i("onPause")
                    super.onPause()
                }
            
                override fun onDestroy() {
                    Timber.i("onDestroy")
                    super.onDestroy()
                }
            }
            

            توجه کنید که لاگ هایی که ایجاد شده صرفا برای مشاهده لاگ بیشتر در لاگ کت هستش 🙂
            پس از اجرای برنامه لاگ کت بصورت زیر خواهد بود

            کتابخانه timber برای گرفتن لاگ بهتر در اندروید
            کتابخانه timber برای گرفتن لاگ بهتر در اندروید

            همونطور که میبینید نام اکتیوتی که در اون لاگ ایجاد کردیم بصورت اتوماتیک برای tag ست شده MainActivity
            همچنین با کلیک هرکدام از دکمه ها لاگی که نوشته شده نیز ایجاد میشود.

            به همین سادگی کار با کتابخانه Timber رو یاد گرفتیم 😀

            اما میتونیم کمی لاگ ها رو کاستومایز تر کنیم
            بدین صورت که کلاس DebugTree رو بصورت زیر تغییر بدیم

             class MyApplication : Application() {
            override fun onCreate() {
            super.onCreate()
            if (BuildConfig.DEBUG) {
                    Timber.plant(object : DebugTree(){
                        override fun createStackElementTag(element: StackTraceElement): String? {
                            return super.createStackElementTag(element) + " ${element.className}  ${element.fileName} ${element.lineNumber} "
                        }
                    })
            }
            

            همونطور که میبینید این کلاس همچین اختیاراتی رو به ما میده که به برخی خصوصیات کلاسی که در اون با کتابخانه Timber لاگ ایجاد شده دسترسی کامل داشته باشیم مثل خطی که لاگ ایجادشده
            مسیر کامل ونام کلاسی و همچنین نام فایل به تنهایی
            حالا اگر پروژه رو ران کنیم اطلاعات در لاگ کت بصورت زیر تغییر خواهد کرد

            کتابخانه timber برای گرفتن لاگ بهتر در اندروید
            کتابخانه timber برای گرفتن لاگ بهتر در اندروید

            امیدوارم این پست براتون مفید بوده باشه و ازش استفاده کنید. از طریق راه های ارتباطی زیر میتونید با ما برای درخواست آموزش های اختصاصی و انواع پروژه ها در ارتباط باشید.

            ثبت سفارش پروژه
            ثبت سفارش فیلم آموزشی


            اشتراک گذاری

            پست های مرتبط

            دستورات جریان کنترل (Control flow statements) یا دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت Dart

            دستورات جریان کنترل (Control flow statements) یا دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت Dart

            30 بهمن 1400

            دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب
            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت یا Dart

            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت یا Dart

            30 بهمن 1400

            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب
            توابع در زبان برنامه نویسی دارت (Dart)

            توابع در زبان برنامه نویسی دارت (Dart)

            27 بهمن 1400

            توابع در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب

            دیدگاهتان را بنویسید لغو پاسخ

            نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

            ساخت اپلیکیشن های موبایل

            • ساخت اپلیکیشن فروشگاهی
            • ساخت اپلیکشن ابزاری و خدماتی
            • ساخت اپلیکیشن آموزشی
            • و هزاران موضوع دیگر

             
            کلیک کنید

            آخرین دیدگاه ها

            • 9 اسفند 1401

              مهری اصغری نظر در پیاده سازی اولین پروژه با فلاتر Flutter

            • 26 آبان 1401

              سجاد نظر در پروژه مدیریت سیستم مدرسه با سی شارپ و sql server

            • 7 خرداد 1401

              داودی نظر در آموزش استفاده از ckeditor همراه با آپلود عکس در لاراول 6

            تجاری اپ در شبکه های اجتماعی

            لوگوی تایید پرداخت آنلاین

            2015-2022 © تمامي حقوق مادي و معنوي اين وب سايت نزد تجاری اپ محفوظ بوده و هر گونه کپي برداري از مطالب پيگرد قانوني به همراه دارد! | طراح سایت : ProgRun
            سفارش پروژه
                      هیچ نتیجه ای یافت نشدمشاهده همه نتایج