个人觉得,android开发中的log很必要,但为了log去依赖第三方库,却又显得太重,真是此事古难全啊。
于是乎,简单的包装下log日常使用,惶惶恐难辨优劣,发上来欢迎吐槽~
废话不多,上码
public class AppLog {
public static void v(String content) {
if (BuildConfig.DEBUG) {
Log.d(generateTag(), content);
}
}
public static void d(String content) {
if (BuildConfig.DEBUG) {
Log.d(generateTag(), content);
}
}
public static void i(String content) {
if (BuildConfig.DEBUG) {
Log.i(generateTag(), content);
}
}
public static void w(String content) {
if (BuildConfig.DEBUG) {
Log.w(generateTag(), content);
}
}
public static void e(String content) {
if (BuildConfig.DEBUG) {
Log.e(generateTag(), content);
}
}
public static void wtf(Throwable t) {
if (BuildConfig.DEBUG) {
Log.wtf(generateTag(), t);
}
}
public static void wtf(String content) {
if (BuildConfig.DEBUG) {
Log.wtf(generateTag(), content);
}
}
public static void json(String content) {
if (BuildConfig.DEBUG) {
printJson(generateTag(), content);
}
}
private static StackTraceElement getCallerStackTraceElement() {
return Thread.currentThread().getStackTrace()[5];
}
private static String generateTag() {
String tag = "%s.%s(L:%d)";
StackTraceElement caller = getCallerStackTraceElement();
String callerClazzName = caller.getClassName();
callerClazzName = callerClazzName.substring(callerClazzName.lastIndexOf(".") + 1);
tag = String.format(tag, callerClazzName, caller.getMethodName(), caller.getLineNumber());
return tag;
}
private static void printJson(String tag, String msg) {
String message;
try {
if (msg.startsWith("{")) {
message = new JSONObject(msg).toString(4);
} else if (msg.startsWith("[")) {
message = new JSONArray(msg).toString(4);
} else {
message = msg;
}
} catch (JSONException e) {
message = msg;
}
String[] lines = message.split(System.getProperty("line.separator"));
blockStart(tag);
for (String line : lines) {
Log.d(tag, "║ " + line);
}
blockEnd(tag);
}
private static void blockStart(String tag) {
Log.d(tag, "╔═══════════════════════════════════════════════════════════════════════════════════════");
}
private static void blockEnd(String tag) {
Log.d(tag, "╚═══════════════════════════════════════════════════════════════════════════════════════");
}
}
用法略
效果如下:
本文介绍了一个简单实用的Android Log工具类,通过该工具可以轻松地在开发阶段记录各种级别的日志信息,并提供了美观的日志展示方式。

923

被折叠的 条评论
为什么被折叠?



