=============================================
博客原文地址:http://94275.cn/2014/10/16/android-log/
==========================================
工欲善其事,必先利其器。在Android开发过程中,相信都会遇到这样的问题:
- Log太多,不容易找到自己设置打印的内容
- 找到Log但是定位到Java源码有不是很方便
- 对Log打印需要设置Tag,大多时候Tag就是本类的类名,存在重复的工作
- 发布正式版本需要注释或者关掉很多Log开关
参考Android源码,使用官方的Log打印方法(设置Tag),然后再Eclipse里面设置过滤标签,这样就可以查看某一个类的Log了,但是这样效率比较低下。基于上面的一些问题,我研究实现了一种简单易用的Log工具类。我的工具类主要有如下特点:
- 减少一个Log参数
- 调用某些Log方法,可以实现跳转到Java源代码的功能
- 采用此工具类,屏蔽Log只需要关闭Log总开关即可
减少一个Log参数
实现方法是采用 StackTraceElement
获取调用类的方法,代码如下:
1
2
3
4
5
6
|
|
跳转到源代码Log调用处
实现双击Log跳转到Java源代码调用处,实现方法是参考Android Logcat错处日志,发现Eclipse实现跳转是因为Log中有 at MyClassName.MyMethodName(MClassName.java:行数)
。具体见代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
|
屏蔽所有Log
采用 LogUtils 工具类,只需要将此类中DEBUG_LEVEL
设置的值大一点。
- 如果想要屏蔽所有的Log只需要将
DEBUG_LEVEL
设置为Log.ASSERT
即可。 - 如果想要只显示Error则只需要将
DEBUG_LEVEL
设置为Log.WARN
即可。 - 如果只想要显示Error和Warn则将
DEBUG_LEVEL
设置为Log.INFO
即可。
使用方法
只需要用LogUtils替换掉Android系统的Log类,并去掉log方法的第一个参数,例如:
1
|
|
无代码无真相,下面是此工具类源码:
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
|