Last active
August 29, 2015 14:07
-
-
Save zekunyan/a0e8d40ec44395b727c1 to your computer and use it in GitHub Desktop.
A wrapper for Log in Android with extend information.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import android.text.TextUtils; | |
import android.util.Log; | |
/** | |
* Created by zorro on 14-10-16. | |
*/ | |
public class LogUtils { | |
public static final int VERBOSE = 1; | |
public static final int DEBUG = 2; | |
public static final int INFO = 3; | |
public static final int WARN = 4; | |
public static final int ERROR = 5; | |
public static final int NOTHING = 6; | |
public static final int LEVEL = INFO; | |
public static final String SEPARATOR = ","; | |
public static void v(String message) { | |
if (LEVEL <= VERBOSE) { | |
StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[3]; | |
String tag = getDefaultTag(stackTraceElement); | |
Log.v(tag, getLogInfo(stackTraceElement) + message); | |
} | |
} | |
public static void v(String tag, String message) { | |
if (LEVEL <= VERBOSE) { | |
StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[3]; | |
if (TextUtils.isEmpty(tag)) { | |
tag = getDefaultTag(stackTraceElement); | |
} | |
Log.v(tag, getLogInfo(stackTraceElement) + message); | |
} | |
} | |
public static void d(String message) { | |
if (LEVEL <= DEBUG) { | |
StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[3]; | |
String tag = getDefaultTag(stackTraceElement); | |
Log.d(tag, getLogInfo(stackTraceElement) + message); | |
} | |
} | |
public static void d(String tag, String message) { | |
if (LEVEL <= DEBUG) { | |
StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[3]; | |
if (TextUtils.isEmpty(tag)) { | |
tag = getDefaultTag(stackTraceElement); | |
} | |
Log.d(tag, getLogInfo(stackTraceElement) + message); | |
} | |
} | |
public static void i(String message) { | |
if (LEVEL <= INFO) { | |
StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[3]; | |
String tag = getDefaultTag(stackTraceElement); | |
Log.i(tag, getLogInfo(stackTraceElement) + message); | |
} | |
} | |
public static void i(String tag, String message) { | |
if (LEVEL <= INFO) { | |
StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[3]; | |
if (TextUtils.isEmpty(tag)) { | |
tag = getDefaultTag(stackTraceElement); | |
} | |
Log.i(tag, getLogInfo(stackTraceElement) + message); | |
} | |
} | |
public static void w(String message) { | |
if (LEVEL <= WARN) { | |
StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[3]; | |
String tag = getDefaultTag(stackTraceElement); | |
Log.w(tag, getLogInfo(stackTraceElement) + message); | |
} | |
} | |
public static void w(String tag, String message) { | |
if (LEVEL <= WARN) { | |
StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[3]; | |
if (TextUtils.isEmpty(tag)) { | |
tag = getDefaultTag(stackTraceElement); | |
} | |
Log.w(tag, getLogInfo(stackTraceElement) + message); | |
} | |
} | |
public static void e(String tag, String message) { | |
if (LEVEL <= ERROR) { | |
StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[3]; | |
if (TextUtils.isEmpty(tag)) { | |
tag = getDefaultTag(stackTraceElement); | |
} | |
Log.e(tag, getLogInfo(stackTraceElement) + message); | |
} | |
} | |
/** | |
* 获取默认的TAG名称. | |
* 比如在MainActivity.java中调用了日志输出. | |
* 则TAG为MainActivity | |
*/ | |
public static String getDefaultTag(StackTraceElement stackTraceElement) { | |
String fileName = stackTraceElement.getFileName(); | |
String stringArray[] = fileName.split("\\."); | |
String tag = stringArray[0]; | |
return tag; | |
} | |
/** | |
* 输出日志所包含的信息 | |
*/ | |
public static String getLogInfo(StackTraceElement stackTraceElement) { | |
StringBuilder logInfoStringBuilder = new StringBuilder(); | |
// 获取线程名 | |
String threadName = Thread.currentThread().getName(); | |
// 获取文件名.即xxx.java | |
String fileName = stackTraceElement.getFileName(); | |
// 获取方法名称 | |
String methodName = stackTraceElement.getMethodName(); | |
// 获取生日输出行数 | |
int lineNumber = stackTraceElement.getLineNumber(); | |
logInfoStringBuilder.append("[ "); | |
logInfoStringBuilder.append("Thread=").append(threadName).append(SEPARATOR); | |
logInfoStringBuilder.append("File=").append(fileName).append(SEPARATOR); | |
logInfoStringBuilder.append("Method=").append(methodName).append(SEPARATOR); | |
logInfoStringBuilder.append("Line=").append(lineNumber); | |
logInfoStringBuilder.append(" ] "); | |
return logInfoStringBuilder.toString() + "\n"; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment