مكتبة جيك وارتون الأخشاب رائعة. إنها مكتبة Java مع واجهة برمجة التطبيقات التي تعمل بشكل جيد مع Java ، ولكن هذا ليس بالأحزمة عند استخدامه في Kotlin.
تعتمد هذه المكتبة على الأخشاب باستخدام واجهة برمجة تطبيقات أسهل في استخدامها من Kotlin. بدلاً من استخدام معلمات التنسيق ، تقوم بتمرير Lambda يتم تقييمه فقط إذا تم تسجيل الرسالة.
Tree
في onCreate
التطبيق الخاص بك ، بنفس الطريقة مع الأخشاب العادية. // Standard timber
Timber .d( " %d %s " , intVar + 3 , stringFun())
// Kotlin extensions
Timber .d { " ${intVar + 3 } ${stringFun()} " }
// or
d { " ${intVar + 3 } ${stringFun()} " }
سيتم تسجيل نفس الرسالة والعلامات في الحالات الثلاث.
تتمتع ملحقات Kotlin بميزة كونها أكثر ملاءمة للكتابة ، كما أنها أكثر أداءً في بعض الحالات. يتم تقييم الكتلة التي تم تمريرها فقط إذا تم تسجيل الرسالة ، وحتى إذا تم تسجيل الرسالة إلى أشجار متعددة ، يتم تقييم الكتلة مرة واحدة فقط. جميع أساليب التمديد مضمّنة ، لذلك لا توجد عقوبة عدد الأسلوب لاستخدام هذه المكتبة.
تعمل كائنات استثناء التسجيل بنفس الطريقة:
// Standard timber
Timber .e(exception, " %d exceptions " , errorCount)
// Kotlin extensions
Timber .e(exception) { " $errorCount exceptions " }
// or
e(exception) { " $errorCount exceptions " }
يأتي Timber مع نصف دزينة من الشيكات الوبر التي تساعدك على اكتشاف الاستخدام غير الصحيح لمكالمات السجل.
باستثناء العلامات المخصصة الطويلة ، لا يمكن لأي من الأخطاء التي تبحث عنها هذه الشيكات مع هذه المكتبة. يمكنك تنفيذ رمز تعسفي داخل Lambdas تم تمريره إلى ملحقات السجل ، ولا يوجد خطر من مشاكل الأداء في رمز الإصدار الخاص بك نظرًا لعدم تقييم الكتل ما لم تتم طباعة الرسائل.
يتم توزيع ملحقات Kotlin للأخشاب مع Maven Central و Jcenter و Jitpack.
implementation ' com.github.ajalt:timberkt:1.5.1 '
يتم استضافة الوثائق على الإنترنت هنا.
Copyright 2017-2018 AJ Alt
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.