Android Log管理工具
来源:互联网 发布:百度seo站长工具 编辑:程序博客网 时间:2024/06/15 16:32
1、logger
项目地址: https://github.com/orhanobut/logger
2、KLog
项目地址:https://github.com/ZhaoKaiQiang/KLog
博客介绍: http://kaizige.vip/2016/06/13/klog/
3、自定义日志
上面两个日志框架使用起来很简单,功能很强大,但是有时我们不需要那么强大的功能,或者为了尽可能精简代码,压缩apk包的大小。那就使用下面一个自定义的日志管理类,只有一个类,小而巧。
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
package www.yiba.com.wifisdk.utils;
import android.util.Log;
/**
* 日志工具类 使打印日志变得简单 自动识别调用日志函数的类名 方法名 与位置 不需要繁琐的TAG 可以方便的 设置debug模式 发布时候
* 可以直接修改debug为false 就不会输出日志了
*/
public
class
LogUtil {
/**
* true:打开log false:关闭所有的日志
*/
public
static
boolean OPEN_LOG =
true
;
/**
* true : 打开debug 日志 false:关闭debug日志
*/
public
static
boolean DEBUG =
true
;
/**
* TAG 名称
*/
private
static
String tag =
"yiba_sdk"
;
private
String mClassName;
private
static
LogUtil log;
private
static
final String USER_NAME =
"@tool@"
;
private
LogUtil(String name) {
mClassName = name;
}
/**
* Get The Current Function Name
*
* @return Name
*/
private
String getFunctionName() {
StackTraceElement[] sts = Thread.currentThread().getStackTrace();
if
(sts ==
null
) {
return
null
;
}
for
(StackTraceElement st : sts) {
if
(st.isNativeMethod()) {
continue
;
}
if
(st.getClassName().
equals
(Thread.
class
.getName())) {
continue
;
}
if
(st.getClassName().
equals
(
this
.getClass().getName())) {
continue
;
}
return
mClassName +
"[ "
+ Thread.currentThread().getName() +
": "
+ st.getFileName() +
":"
+ st.getLineNumber() +
" "
+ st.getMethodName() +
" ]"
;
}
return
null
;
}
public
static
void
i(Object str) {
print(Log.INFO, str);
}
public
static
void
d(Object str) {
print(Log.DEBUG, str);
}
public
static
void
v(Object str) {
print(Log.VERBOSE, str);
}
public
static
void
w(Object str) {
print(Log.WARN, str);
}
public
static
void
e(Object str) {
print(Log.ERROR, str);
}
/**
* 用于区分不同接口数据 打印传入参数
*
* @param index
* @param str
*/
private
static
void
print(
int
index, Object str) {
if
(!OPEN_LOG) {
return
;
}
if
(log ==
null
) {
log =
new
LogUtil(USER_NAME);
}
String name = log.getFunctionName();
if
(name !=
null
) {
str = name +
" - "
+ str;
}
// Close the debug log When DEBUG is false
if
(!DEBUG) {
if
(index <= Log.DEBUG) {
return
;
}
}
switch
(index) {
case
Log.VERBOSE:
Log.v(tag, str.toString());
break
;
case
Log.DEBUG:
Log.d(tag, str.toString());
break
;
case
Log.INFO:
Log.i(tag, str.toString());
break
;
case
Log.WARN:
Log.w(tag, str.toString());
break
;
case
Log.ERROR:
Log.e(tag, str.toString());
break
;
default
:
break
;
}
}
}
0 0
- Android Log管理工具
- Android log 管理工具
- 自定义Android日志管理工具类LOG
- android adb管理工具
- android内存管理工具类
- android 内存管理工具 DDMS
- Android Activity管理工具类
- Android 内存管理工具
- android log4j日志管理工具
- Android堆栈管理工具类
- Android Activity管理工具类
- android 录音播放管理工具
- Android Activity管理工具
- Android网络管理工具类
- Android手机管理工具类
- android包管理工具pm
- Android log
- android log
- 18:买书
- 信息的表示与处理
- 二叉树遍历(递归与非递归实现)
- sql age20-30,name5字符、插入耗时、100道加法题
- java设计模式--工厂模式
- Android Log管理工具
- 二叉树的后序遍历
- 史上最简单的SpringCloud教程 | 第十一篇: docker部署spring cloud项目
- java json字符串转JSONObject和JSONArray 循环取值
- Dubbo ---- 启动时检查-直连提供者
- Devstack部署多节点Openstack
- 请输入密码
- maven简单的使用
- java学习笔记4.11常用类