日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android开发之带行号显示的Log工具类

發布時間:2023/12/15 Android 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android开发之带行号显示的Log工具类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
import android.util.Log;/*** 日志控制*/ public class LogUtils {private final static String TAG = "Log_";private final static boolean sOpenLog = true;public static void d(String logKey, String msg) {d(logKey, msg, 2);}/**** @param logKey* @param msg* @param stackIndex 1:當前位置,2:上級棧位置,0:logcat 的位置(沒有意義)*/public static void d(String logKey, String msg, int stackIndex) {if (sOpenLog) {StackTraceElement ste = new Throwable().getStackTrace()[stackIndex];String log = build(msg, ste); // Log.d(logKey, log);Log.d(TAG, "[" + logKey + "]" + log);}}public static void d(String msg) {if (sOpenLog) {StackTraceElement ste = new Throwable().getStackTrace()[1];String log = build(msg, ste);Log.d(TAG, log);}}public static void i(String logKey, String msg, int stackIndex) {if (sOpenLog) {StackTraceElement ste = new Throwable().getStackTrace()[stackIndex];String log = build(msg, ste);Log.i(TAG, "[" + logKey + "]" + log); // Log.i(logKey, log);}}public static void i(String logKey, String msg) {i(logKey, msg, 2);}public static void v(String logKey, String msg, int stackIndex) {if (sOpenLog) {StackTraceElement ste = new Throwable().getStackTrace()[stackIndex];String log = build(msg, ste);Log.v(TAG, "[" + logKey + "]" + log);}}public static void v(String logKey, String msg) {v(logKey, msg, 2);}public static void w(String logKey, String msg) {if (sOpenLog) {StackTraceElement ste = new Throwable().getStackTrace()[1];String log = build(logKey, msg, ste);Log.w(TAG, "[" + logKey + "]" + log);}}/*** 打印error級別的log** @param tag tag標簽*/public static void e(String tag, Throwable tr) {if (sOpenLog) {StackTraceElement ste = new Throwable().getStackTrace()[1];String log = build(tag, "", ste, tr);Log.e(tag, log, tr); // Log.e(tag, "[" + Thread.currentThread().getId() + "]" + tr.getMessage(), tr);}}public static void e(String logKey, String msg) {if (sOpenLog) {StackTraceElement ste = new Throwable().getStackTrace()[1];String log = build(logKey, msg, ste);Log.e(logKey, log);}}public static void e(String logKey, String msg, Throwable e) {if (sOpenLog) {StackTraceElement ste = new Throwable().getStackTrace()[1];String log = build(logKey, msg, ste);Log.e(TAG, log, e);}}/*** 打印調用棧信息** @param tag tag標簽* @param str 內容*/public static void t(String tag, String str) {if (sOpenLog) {LogUtils.i(tag, "DebugInfo: " + str);Throwable e = new Throwable(tag);e.printStackTrace();}}/*** 制作打log位置的文件名與文件行號詳細信息** @param log* @param ste* @return*/private static String build(String log, StackTraceElement ste) {StringBuilder buf = new StringBuilder();buf.append("[").append(Thread.currentThread().getId()).append("]");if (ste.isNativeMethod()) {buf.append("(Native Method)");} else {String fName = ste.getFileName();if (fName == null) {buf.append("(Unknown Source)");} else {int lineNum = ste.getLineNumber();buf.append('(');buf.append(fName);if (lineNum >= 0) {buf.append(':');buf.append(lineNum);}buf.append("):");}}buf.append(log);return buf.toString();}private static String build(String logKey, String msg, StackTraceElement ste) {StringBuilder sb = new StringBuilder();sb.append("[").append(logKey).append("]").append(build(msg, ste));return sb.toString();}private static String build(String logKey, String msg, StackTraceElement ste, Throwable e) {StringBuilder sb = new StringBuilder();sb.append("[").append(logKey).append("]").append(ste.toString()).append(":").append(msg).append("\r\n").append("e:").append(e.getMessage());return sb.toString();} }

做個記錄獲取以后能用得到!

總結

以上是生活随笔為你收集整理的Android开发之带行号显示的Log工具类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。