在程序开发中经常会使用log打印一些信息,每次都传入tag很不方便,所以现在创建一个工具类,优点如下:
1.自动获取tag(activity名字和方法名);
2.工具类中存在开关,上线时直接关闭开关就行,不用删除具体的log;
3.打印log所在行数。
代码如下:
/**
* Created by Administrator on 2017/3/7.
*/
public class LogUtil {
//log开关
private static final boolean DEBUG = true;
private static final boolean ERROR = true;
private static final boolean INFO = true;
private static final boolean WARNING = true;
private static final boolean VERBOSE = true;
public static void d(String msg) {
if (DEBUG) {
Log.d(_FILE_(), getLineMethod() + " " + msg);
}
}
public static void e(String msg) {
if (ERROR) {
Log.e(_FILE_(), getLineMethod() + " " +msg);
}
}
public static void i(String msg) {
if (INFO) {
Log.i(_FILE_(), getLineMethod() + " " +msg);
}
}
public static void w(String msg) {
if (WARNING) {
Log.w(_FILE_(), getLineMethod() + " " +msg);
}
}
public static void v(String msg) {
if (VERBOSE) {
Log.v(_FILE_(), getLineMethod() + " " +msg);
}
}
public static String getLineMethod() {
StackTraceElement traceElement = ((new Exception()).getStackTrace())[2];
StringBuffer toStringBuffer = new StringBuffer("[")
.append(traceElement.getLineNumber()).append("|")
.append(traceElement.getMethodName()).append("]");
return toStringBuffer.toString();
}
public static String _FILE_() {
StackTraceElement traceElement = ((new Exception()).getStackTrace())[2];
return traceElement.getFileName();
}
}