Android Log工具类,Toast工具类,获取当前方法名称
生活随笔
收集整理的這篇文章主要介紹了
Android Log工具类,Toast工具类,获取当前方法名称
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Log新晉工具方法
?
public class LgqLog {private static boolean ifShow=true;private static int sCurrentLogLevel = Log.DEBUG;private static String sPrefix = null;@IntDef({ Log.VERBOSE, Log.DEBUG, Log.INFO, Log.WARN, Log.ERROR })@Retention(RetentionPolicy.SOURCE)public @interface LogLevel {}public static void setIfShow(boolean b){ifShow = b;}/*** 初始化LogPlus,可選** @param prefix Tag前綴,可以防止 RIL,IMS,AT,GSM,STK,CDMA,SMS 開頭的log不會被打印* @param logLevel 打log等級*/public static void init(String prefix, @com.licheedev.myutils.LogPlus.LogLevel int logLevel) {if (prefix != null) {prefix = prefix.trim();if (prefix.length() > 0) {sPrefix = prefix;}}sCurrentLogLevel = logLevel;}public static void v(@Nullable String tag, String msg, @Nullable Throwable tr) {log(Log.VERBOSE, tag, msg, tr);}public static void v(@Nullable String tag, String msg) {log(Log.VERBOSE, tag, msg, null);}public static void v(String msg, @Nullable Throwable tr) {log(Log.VERBOSE, null, msg, tr);}public static void v(String msg) {log(Log.VERBOSE, null, msg, null);}public static void d(@Nullable String tag, String msg, @Nullable Throwable tr) {log(Log.DEBUG, tag, msg, tr);}public static void d(@Nullable String tag, String msg) {log(Log.DEBUG, tag, msg, null);}public static void d(String msg, @Nullable Throwable tr) {log(Log.DEBUG, null, msg, tr);}public static void d(String msg) {if (ifShow)log(Log.DEBUG, null, "lgq----- "+msg, null);}public static void i(@Nullable String tag, String msg, @Nullable Throwable tr) {log(Log.INFO, tag, msg, tr);}public static void i(@Nullable String tag, String msg) {log(Log.INFO, tag, msg, null);}public static void i(String msg, @Nullable Throwable tr) {log(Log.INFO, null, msg, tr);}public static void i(String msg) {if (ifShow)log(Log.INFO, null,"lgq----- "+msg, null);}public static void w(@Nullable String tag, String msg, @Nullable Throwable tr) {log(Log.WARN, tag, msg, tr);}public static void w(@Nullable String tag, String msg) {log(Log.WARN, tag, msg, null);}public static void w(String msg, @Nullable Throwable tr) {log(Log.WARN, null, msg, tr);}public static void w(String msg) {log(Log.WARN, null, msg, null);}public static void e(@Nullable String tag, String msg, @Nullable Throwable tr) {log(Log.ERROR, tag, msg, tr);}public static void e(@Nullable String tag, String msg) {log(Log.ERROR, tag, msg, null);}public static void e(String msg, @Nullable Throwable tr) {log(Log.ERROR, null, msg, tr);}public static void e(String msg) {if (ifShow)log(Log.ERROR, null, "lgq----- "+msg, null);}private static void log(int logLevel, String tag, String msg, Throwable tr) {if (logLevel < sCurrentLogLevel) {return;}StackTraceElement e = Thread.currentThread().getStackTrace()[4];String fileName = e.getFileName();int lineNum = e.getLineNumber();String methodName = e.getMethodName();StringBuilder sb = new StringBuilder();sb.append(methodName).append('(').append(fileName).append(':').append(lineNum).append(')').append(msg);msg = sb.toString();sb.delete(0, sb.length());// 注意,如果tag是"IMS"開頭的(還有其他),log會不打印,所以加個"前綴_"// 參考這里 http://stackoverflow.com/a/36469141/5324526if (sPrefix != null) {sb.append(sPrefix).append('_');}if (tag == null || tag.length() == 0 || tag.trim().length() == 0) {String className = e.getClassName();int index = className.lastIndexOf('.') + 1;sb.append(className, index, className.length());} else {sb.append(tag);}tag = sb.toString();if (tr == null) {switch (logLevel) {case Log.VERBOSE:Log.v(tag, msg);break;case Log.DEBUG:Log.d(tag, msg);break;case Log.INFO:Log.i(tag, msg);break;case Log.WARN:Log.w(tag, msg);break;case Log.ERROR:Log.e(tag, msg);break;}} else {switch (logLevel) {case Log.VERBOSE:Log.v(tag, msg, tr);break;case Log.DEBUG:Log.d(tag, msg, tr);break;case Log.INFO:Log.i(tag, msg, tr);break;case Log.WARN:Log.w(tag, msg, tr);break;case Log.ERROR:Log.e(tag, msg, tr);break;}}} }全局常量
public static final String IN_RUNNING = "IN_RUNNING"; public static final String END_RUNNING = "END_RUNNING";?
Toast工具類
public class ToastUtils {private static Toast sToast;//即時消息public static void show(Context context, String msg) {//判斷是否第一次彈窗if (sToast==null)sToast = Toast.makeText(context, msg, Toast.LENGTH_SHORT);elsesToast.setText(msg);sToast.show();}}?Log工具類
/*** 作者:created by meixi* 郵箱:15913707499@163.com* 日期:2019/4/17 10*/ public class LgqLogutil {private static boolean ifShow=true;public static void setIfShow(boolean b){ifShow = b;}public static void i(String string){StackTraceElement[] s = Thread.currentThread().getStackTrace();String methodName = s[3].getMethodName();if (ifShow)Log.i("lgq",methodName+"----"+string);}public static void e(String string){StackTraceElement[] s = Thread.currentThread().getStackTrace();String methodName = s[3].getMethodName();if (ifShow)Log.e("lgq",methodName+"----"+string);}}?
獲取當前方法名稱:
?代碼:
?
StackTraceElement[] s = Thread.currentThread().getStackTrace();String methodName = s[3].getMethodName();LgqLogutil.i(methodName); // LgqLogutil.setIfShow(false);LgqLogutil.e(methodName); 04-17 10:22:43.521 20009-20009/? I/lgq: onResume----callActivityOnResume 04-17 10:22:43.522 20009-20009/? E/lgq: onResume----callActivityOnResume?
總結
以上是生活随笔為你收集整理的Android Log工具类,Toast工具类,获取当前方法名称的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 轰炸
- 下一篇: 以太坊智能合约开发环境配置