Android 中的日志工具类 Log
(android.util.Log)
方法 | 含义 |
---|
Log.v() | Verbose |
Log.d() | Debug |
Log.i() | Info |
Log.w() | Warn |
Log.e() | Error |
Log.wtf() | 在输出日志的同时,会把此处代码此时的执行路径(调用栈)打印出来。 |
使用方法:
Log.v(tag,msg);
Log.d(tag,msg);
Log.i(tag,msg);
Log.w(tag,msg);
Log.e(tag,msg);
Log.wtf(tag,msg);
输出结果:
日志打印标签(tag) | 日志打印信息(msg) |
---|
tag | msg |
封装后的日志工具类
public class DebugLog {
static String className;
static String methodName;
static int lineNumber;
private DebugLog(){
}
public static boolean isDebuggable() {
return BuildConfig.DEBUG;
}
private static String createLog( String log ) {
StringBuffer buffer = new StringBuffer();
buffer.append("DebugLog");
buffer.append("[");
buffer.append(methodName);
buffer.append(":");
buffer.append(lineNumber);
buffer.append("]");
buffer.append(log);
return buffer.toString();
}
private static void getMethodNames(StackTraceElement[] sElements){
className = sElements[1].getFileName();
methodName = sElements[1].getMethodName();
lineNumber = sElements[1].getLineNumber();
}
public static void e(String message){
if (!isDebuggable())
return;
getMethodNames(new Throwable().getStackTrace());
Log.e(className, createLog(message));
}
public static void i(String message){
if (!isDebuggable())
return;
getMethodNames(new Throwable().getStackTrace());
Log.i(className, createLog(message));
}
public static void d(String message){
if (!isDebuggable())
return;
getMethodNames(new Throwable().getStackTrace());
Log.d(className, createLog(message));
}
public static void v(String message){
if (!isDebuggable())
return;
getMethodNames(new Throwable().getStackTrace());
Log.v(className, createLog(message));
}
public static void w(String message){
if (!isDebuggable())
return;
getMethodNames(new Throwable().getStackTrace());
Log.w(className, createLog(message));
}
public static void wtf(String message){
if (!isDebuggable())
return;
getMethodNames(new Throwable().getStackTrace());
Log.wtf(className, createLog(message));
}
}
使用方法:
DebugLog.e(msg)
DebugLog.i(msg)
DebugLog.d(msg)
DebugLog.v(msg)
DebugLog.w(msg)
DebugLog.wtf(msg)
输出结果:
日志打印标签(tag) | 日志打印信息(msg) |
---|
类名 | DebugLog + [方法名:行号] + msg |
取消打印日志:
将 DebugLog 类中的 isDebuggable() 方法的返回值改成 false 即可。
public static boolean isDebuggable() {
return false;
}
参考:
http://www.linuxidc.com/Linux/2015-05/117919p2.htm