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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

npm run dev/build/serve

npm run dev/build/serve 1、ERR引发的思考 npm run dev npm ERR! missing script: devnpm ERR! A complete log of this run can be found in: npm ERR! E:\nodejs\node_cache\_logs\2018-12-12T15_06_08_674Z-debug.log 创建好的 vue 项目直接执行 vue run dev 报错&…

前端学习(2739):重读vue电商网站49之第三方库使用CDN

通过 externals 加载外部 CDN 资源 默认情况下&#xff0c;通过 import 语法导入的第三方依赖包&#xff0c;最终会被打包合并到同一个文件中&#xff0c;从而导致打包成功后&#xff0c;单文件体积过大的问题。 例如上述 chunk-vendors.js 体积很大&#xff0c;原因是全部 im…

Mysql--重点1

知识预览 sql语句规范数据类型数据库操作数据表操作表记录操作查询表记录(select)多表查询完整性约束回到顶部sql语句规范 sql是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集&#xff0c;是一种功能齐全的数据库语言。 在使用它时&…

6、jeecg 笔记之 自定义excel 模板导出(一)

6、jeecg 笔记之 自定义excel 模板导出&#xff08;一&#xff09; 1、前言 jeecg 中已经自带 excel 的导出导出功能&#xff0c;其所使用的是 easypoi&#xff0c;尽管所导出的 excel 能满足大部分需求&#xff0c; 但总是有需要用到自定义 excel 导出模板&#xff0c;下文所…

Android Lambda 表达式使用实例,-

1、Lambda表达式理解 Lambda 表达式&#xff0c;也可称为闭包&#xff0c;它是推动 Java 8 发布的最重要新特性。 Lambda 允许把函数作为一个方法的参数&#xff08;函数作为参数传递进方法中&#xff09;。 使用Lambda 表达式可以使代码变的更加简洁紧凑。 2、Lambda表达式…

前端学习(2740):重读vue电商网站50之Element-UI 组件按需加载

通过 CDN 优化 ElementUI 的打包 虽然在开发阶段&#xff0c;我们启用了 element-ui 组件的按需加载&#xff0c;尽可能的减少了打包的体积&#xff0c;但是那些被按需加载的组件&#xff0c;还是占用了较大的文件体积。此时&#xff0c;我们可以将 element-ui 中的组件&#…

买房费用

一、买房 首付&#xff1a;355940 贷款&#xff1a;520000 维修基金&#xff1a;7800 交房&#xff1a;23719 物业&#xff1a;2280 总价&#xff1a;909739 二、装修 水电改造&#xff1a;2970 防水材料&#xff1a;300 砖&#xff1a;11500 水泥&#xff1a;798 贴砖人工&…

8、jeecg 笔记之 自定义word 模板导出(一)

8、jeecg 笔记之 自定义word 模板导出&#xff08;一&#xff09; 1、前言 jeecg 中已经自带 word 的导出导出功能&#xff0c;其所使用的也是 easypoi&#xff0c;尽管所导出的 word 能满足大部分需求&#xff0c; 但总是有需要用到自定义 word导出模板&#xff0c;下文所用到…

Android 全屏抽屉fragment,NavigationView

1、首先是右→左进入动画 、slide_left.xml <?xml version"1.0" encoding"utf-8"?> <set xmlns:android"http://schemas.android.com/apk/res/android"><translateandroid:duration"800"android:fromXDelta"20…

20180307:python接口测试时json的传参与解析区分

女生节也要好好更新^_^ 有关python与json编码请查看上篇&#xff1a;http://www.cnblogs.com/hazelrunner/p/8444744.html 下面来区分&#xff0c;用post请求方法传json的两种方法&#xff1a; 传json参数&#xff08;方法中直接转json&#xff09;# coding:utf-8 import reque…

前端学习(2741):重读vue电商网站51之首页内容定制

不同的打包环境下&#xff0c;首页内容可能会有所不同。我们可以通过插件的方式进行定制&#xff0c;插件配置如下&#xff1a; Javascript chainWebpack: config > {config.when(process.env.NODE_ENV production, config > {config.plugin(html).tap(args > {args[…

Eclipse 创建第一个 springboot 应用

Eclipse 创建第一个 springboot 应用 1、前言 一直想把笔记整理出来&#xff0c;分享一下 springboot 的搭建&#xff1b; 因为私下 idea 用的比较多&#xff0c;使用比较方便&#xff0c;但恰逢小伙伴问起 eclipse 怎么搭建的问题&#xff0c; 顾整理以记之。 2、springboot …

Can't process attribute android:fillColor=@color/gray,添加vector属性报错解决方法

Android studio添加vector属性文件报错 vector属性文件 <vector xmlns:android"http://schemas.android.com/apk/res/android"android:width"24dp"android:height"24dp"android:viewportHeight"49.94"android:viewportWidth"4…

Maven parent.relativePath

Maven parent.relativePath 默认值为../pom.xml 查找顺序&#xff1a;relativePath元素中的地址–本地仓库–远程仓库 设定一个空值将始终从仓库中获取&#xff0c;不从本地路径获取&#xff0c;如<relativePath /> 转载于:https://www.cnblogs.com/ydymz/p/8520975.html…

前端学习(2742):重读vue电商网站52之路由懒加载

当打包构建项目时&#xff0c;JavaScript 包会变得非常大&#xff0c;影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块&#xff0c;然后当路由被访问的时候才加载对应组件&#xff0c;这样就更加高效了。 具体需要 3 步&#xff1a; 安装 babel/plugin-synt…

10、jeecg 默认为空的字段值是如何被填充的?

10、jeecg 默认为空的字段值是如何被填充的? 1、前言 用过 jeecg 的小伙伴&#xff0c;在 jeecg 实体中常见下面几个字段&#xff1a; /**创建人名称*/ private java.lang.String createName; /**创建人登录名称*/ private java.lang.String createBy; /**创建日期*/ private…

Android Service与IntentService区别

相同点&#xff1a; 1、首先Service与IntentService都是Android的基本组件service 2、使用时都是一样需要创建&#xff0c;配置&#xff1b;和调用启动方式都是一样的 不同点&#xff1a; 1、IntentService是继承自Service的service 类&#xff0c;创建了自己的特有方法onH…

前端学习(2743):重读vue电商网站53之项目上线

通过 node 创建 web 服务器。开启 gzip 配置。配置 https 服务。使用 pm2 管理应用。 通过 node 创建 web 服务器 创建 node 项目&#xff0c;并安装 express&#xff0c;通过 express 快速创建 web 服务器&#xff0c;将 vue 打包生成的 dist 文件夹&#xff0c;托管为静态资…

关于五个问题的思考

关于当初&#xff1a; 博客A[1]的作者认为&#xff1a;“大学的确提供了非常丰富的能力培养机会和广阔的个人发展空间&#xff0c;但归根结底&#xff0c;学习和进步才是大学的主题&#xff0c;荒废其中任何一个都不能让大学生活过得充实而完整。”我对此有着很深的同感。大学是…

记录请求的耗时(拦截器、过滤器、aspect)

记录请求的耗时&#xff08;拦截器、过滤器、aspect&#xff09; 文章前言 记录控制器请求的耗时处理通常有三种实现方式&#xff0c;分别是&#xff1a;过滤器、拦截器、aspect&#xff1b;下文将逐一实现。 1、Filter 过滤器 1.1、方法说明 需要实现 Filter 类&#xff0c;主…