LogUtils.java
3.6 KB
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
package com.share.mvpsdk.utils;
import android.util.Log;
/**
* Created by Horrarndoo on 2017/4/5.
* <p>
* Log工具类
*/
public class LogUtils {
/**
* 日志输出级别NONE
*/
public static final int LEVEL_NONE = 0;
/**
* 日志输出级别E
*/
public static final int LEVEL_ERROR = 1;
/**
* 日志输出级别W
*/
public static final int LEVEL_WARN = 2;
/**
* 日志输出级别I
*/
public static final int LEVEL_INFO = 3;
/**
* 日志输出级别D
*/
public static final int LEVEL_DEBUG = 4;
/**
* 日志输出级别V
*/
public static final int LEVEL_VERBOSE = 5;
/**
* 日志输出时的TAG
*/
private static String mTag = "LogUtils";
/**
* 是否允许输出log
*/
private static int mDebuggable = LEVEL_VERBOSE;
/**
* 设置调试Log开关
*
* @param isEnable 是否允许log
*/
public static void setDebuggable(boolean isEnable) {
mDebuggable = isEnable ? LEVEL_VERBOSE : LEVEL_NONE;
}
/**
* 以级别为 d 的形式输出LOG
*/
public static void v(String msg) {
if (mDebuggable >= LEVEL_VERBOSE) {
Log.v(mTag, msg);
}
}
/**
* 以级别为 d 的形式输出LOG
*/
public static void d(String msg) {
if (mDebuggable >= LEVEL_DEBUG) {
Log.d(mTag, msg);
}
}
/**
* 以级别为 i 的形式输出LOG
*/
public static void i(String msg) {
if (mDebuggable >= LEVEL_INFO) {
Log.i(mTag, msg);
}
}
/**
* 以级别为 w 的形式输出LOG
*/
public static void w(String msg) {
if (mDebuggable >= LEVEL_WARN) {
Log.w(mTag, msg);
}
}
/**
* 以级别为 e 的形式输出LOG
*/
public static void e(String msg) {
if (mDebuggable >= LEVEL_ERROR) {
Log.e(mTag, msg);
}
}
/**
* 以级别为 w 的形式输出Throwable
*/
public static void w(Throwable tr) {
w("", tr);
}
/**
* 以级别为 w 的形式输出LOG信息和Throwable
*/
public static void w(String msg, Throwable tr) {
Log.w(mTag, msg, tr);
}
/**
* 以级别为 e 的形式输出Throwable
*/
public static void e(Throwable tr) {
e("", tr);
}
/**
* 以级别为 e 的形式输出LOG信息和Throwable
*/
public static void e(String msg, Throwable tr) {
if (mDebuggable >= LEVEL_ERROR && null != msg) {
Log.e(mTag, msg, tr);
}
}
private static int originStackIndex = 2;
/**
* 获取当前方法所在的文件名
*
* @return 当前方法所在的文件名
*/
public static String getFileName() {
return Thread.currentThread().getStackTrace()[originStackIndex].getFileName();
}
/**
* 获取当前方法所在的Class名
*
* @return 当前方法所在的Class名
*/
public static String getClassName() {
return Thread.currentThread().getStackTrace()[originStackIndex].getClassName();
}
/**
* 获取当前方法名
*
* @return 当前方法名
*/
public static String getMethodName() {
return Thread.currentThread().getStackTrace()[originStackIndex].getMethodName();
}
/**
* 获取当前代码执行处行数
*
* @return 当前代码执行处行数
*/
public static int getLineNumber() {
return Thread.currentThread().getStackTrace()[originStackIndex].getLineNumber();
}
}