-
Notifications
You must be signed in to change notification settings - Fork 195
/
Copy pathEasyLogActivity.kt
128 lines (104 loc) · 3.61 KB
/
EasyLogActivity.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package com.haoge.sample.easyandroid.activities
import butterknife.OnClick
import com.alibaba.fastjson.JSON
import com.haoge.easyandroid.easy.EasyLog
import com.haoge.sample.easyandroid.BaseActivity
import com.haoge.sample.easyandroid.BuildConfig
import com.haoge.sample.easyandroid.R
/**
* @author haoge on 2018/5/11
*/
class EasyLogActivity: BaseActivity() {
override fun getLayoutId(): Int {
return R.layout.activity_log
}
@OnClick(R.id.printSingleLine)
fun printSingleLine() {
EasyLog.DEFAULT.d("这里是单行数据")
}
@OnClick(R.id.printMultipleLine)
fun printMultipleLine() {
EasyLog.DEFAULT.d("""
>"第一行数据",
>"第二行数据",
>"第三行数据".
""".trimMargin(">"))
}
@OnClick(R.id.printShortList)
fun printShortList() {
EasyLog.DEFAULT.d(listOf(1,2,3,4,5,6,7))
}
@OnClick(R.id.printLongList)
fun printLongList() {
// 默认输出的列表最长长度为10,所以这里数量超出限制时。将会进行平铺展示。
EasyLog.DEFAULT.d(listOf(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15))
}
@OnClick(R.id.printJSONObject)
fun printJSONObject() {
// 默认输出的列表最长长度为10,所以这里数量超出限制时。将会进行平铺展示。
val array = arrayOf("Hello", "World", "Kotlin", "EasyLog")
EasyLog.DEFAULT.d(JSON.toJSONString(array))
}
@OnClick(R.id.printJSONArray)
fun printJSONArray() {
// 默认输出的列表最长长度为10,所以这里数量超出限制时。将会进行平铺展示。
val any = mapOf(Pair("key1", "Hello"), Pair("key2", "World"), Pair("key3", "Kotlin"), Pair("key4", "EasyLog"))
EasyLog.DEFAULT.d(JSON.toJSONString(any))
}
@OnClick(R.id.printSimplePOJO)
fun printSimplePOJO() {
EasyLog.DEFAULT.d(Simple("Haoge"))
}
@OnClick(R.id.printComplexPOJO)
fun printComplexPOJO() {
EasyLog.DEFAULT.d(Complex("complex message", Simple("kotlin")))
}
@OnClick(R.id.printCirclePOJO)
fun printCirclePOJO() {
val a = CircleA(null)
val b = CircleB(null)
a.b = b
b.a = a
EasyLog.DEFAULT.e(a)
}
@OnClick(R.id.printException)
fun printException() {
// 默认输出的列表最长长度为10,所以这里数量超出限制时。将会进行平铺展示。
EasyLog.DEFAULT.e(Exception("此异常只用于进行堆栈打印"))
}
@OnClick(R.id.printWithCustomTag)
fun printWithCustomTag() {
EasyLog.DEFAULT.tag("Custom").d("This is custom tag log")
}
@OnClick(R.id.printWithCustomLogger)
fun printWithCustomLogger() {
val builder = EasyLog.newBuilder()
builder.singleStyle = "#N - #F - #M"
builder.addRule("N", {_,_ -> "[Haoge]"})
val log = builder.build()
// 输出单行数据
log.e("这里是单行数据")
}
@OnClick(R.id.printWithPackageLogger)
fun printWithPackageLogger() {
MyLog.e("这里是使用二次封装后的log进行打印")
}
}
object MyLog {
private val log by lazy {
val builder = EasyLog.newBuilder(MyLog::class.java.canonicalName)
builder.debug = BuildConfig.DEBUG
builder.singleStyle = "[MyLog]:#F => #M"
return@lazy builder.build()
}
fun d(message:Any?) {
log.d(message)
}
fun e(message: Any?) {
log.e(message)
}
}
data class Simple(val name:String)
data class Complex(val message:String, val simple:Simple)
data class CircleA(var b:CircleB?)
data class CircleB(var a:CircleA?)