ห้องสมุดไม้ของ Jake Wharton นั้นยอดเยี่ยมมาก มันเป็นห้องสมุด Java ที่มี API ที่ทำงานได้ดีสำหรับ Java แต่นั่นก็ไม่ได้เป็นสำนวนเมื่อใช้ใน Kotlin
ห้องสมุดนี้สร้างบนไม้ด้วย API ที่ใช้งานง่ายกว่าจาก Kotlin แทนที่จะใช้พารามิเตอร์การจัดรูปแบบคุณจะผ่านแลมบ์ดาที่ประเมินเฉพาะเมื่อมีการบันทึกข้อความ
Tree
ใด ๆ ใน onCreate
ของแอปพลิเคชันของคุณเช่นเดียวกับไม้ธรรมดา // Standard timber
Timber .d( " %d %s " , intVar + 3 , stringFun())
// Kotlin extensions
Timber .d { " ${intVar + 3 } ${stringFun()} " }
// or
d { " ${intVar + 3 } ${stringFun()} " }
ข้อความและแท็กเดียวกันจะถูกบันทึกในทั้งสามกรณี
ส่วนขยาย Kotlin มีข้อได้เปรียบในการเขียนที่สะดวกกว่าและยังมีนักแสดงมากขึ้นในบางสถานการณ์ บล็อกที่ผ่านจะถูกประเมินเฉพาะในกรณีที่ข้อความถูกบันทึกและแม้ว่าข้อความจะถูกบันทึกไปยังต้นไม้หลายต้นบล็อกจะถูกประเมินเพียงครั้งเดียว วิธีการขยายทั้งหมดถูก inlined ดังนั้นจึงไม่มีวิธีการนับการลงโทษในการใช้ห้องสมุดนี้
การบันทึกวัตถุข้อยกเว้นทำงานในลักษณะเดียวกัน:
// Standard timber
Timber .e(exception, " %d exceptions " , errorCount)
// Kotlin extensions
Timber .e(exception) { " $errorCount exceptions " }
// or
e(exception) { " $errorCount exceptions " }
ไม้มาพร้อมกับการตรวจสอบผ้าสำลีครึ่งโหลที่ช่วยให้คุณเห็นการใช้งานบันทึกการโทรที่ไม่ถูกต้อง
ด้วยข้อยกเว้นของแท็กที่กำหนดเองยาวไม่มีข้อผิดพลาดใด ๆ ที่ตรวจสอบที่มองหานั้นเป็นไปได้ด้วยไลบรารีนี้ คุณสามารถใช้รหัสโดยพลการภายในแลมบ์ดาที่ส่งผ่านไปยังส่วนขยายบันทึกและไม่มีความเสี่ยงต่อปัญหาประสิทธิภาพในรหัสการวางจำหน่ายของคุณเนื่องจากบล็อกจะไม่ถูกประเมินเว้นแต่ข้อความจะถูกพิมพ์
ส่วนขยาย 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.