打造史上最简单,最实用的Log工具类
来源:互联网 发布:navicat写sql语句 编辑:程序博客网 时间:2024/06/17 03:16
在Android开发过程中,打印Log应该是程序员经常做的事情,毕竟在多数情况下比单步要方便,但是使用Android自带的Log工具类,在某种程度上难以满足我们的需求,比如:
1. 不能定位Log所在的位置;
2. 不能快速清除应用中的所有Log信息;
基于以上两点,对Android提供的Log类进行了简单的封装,完成了一个功能强大的Log工具类,该工具类具有以下特点:
- 可控制整个应用的Log输出;
- 可自定义Log标签;
- 简化了Log输出语句;
- 可快速, 准确定位Log所在位置;
代码实现如下:
public class LogUtil { /** * tag */ public static String tag = "znm"; /** * 是否需要开启Log(needLog:true开启, false关闭) */ private static boolean needLog = true; public static void i(String content) { if (needLog) { Log.i(tag, getLogInfo() + content); } } public static void i(String tag, String content) { if (needLog) { Log.i(tag, getLogInfo() + content); } } public static void d(String content) { if (needLog) { Log.d(tag, getLogInfo() + content); } } public static void d(String tag, String content) { if (needLog) { Log.d(tag, getLogInfo() + content); } } public static void e(String content) { if (needLog) { Log.e(tag, getLogInfo() + content); } } public static void e(String tag, String content) { if (needLog) { Log.e(tag, getLogInfo() + content); } } public static void v(String content) { if (needLog) { Log.v(tag, getLogInfo() + content); } } public static void v(String tag, String content) { if (needLog) { Log.v(tag, getLogInfo() + content); } } public static void w(String content) { if (needLog) { Log.w(tag, getLogInfo() + content); } } public static void w(String tag, String content) { if (needLog) { Log.w(tag, getLogInfo() + content); } } private static String getLogInfo() { return getClassName() + "(" + getLineNumber() + ")" + "$" + getMethodName() + ": "; } /** * 获取Log所在的类名 (getStackTrace的索引根据调用的顺序来决定,可通过打印Log栈来获取) * @return */ private static String getClassName() { try { String classPath = Thread.currentThread().getStackTrace()[5].getClassName(); return classPath.substring(classPath.lastIndexOf(".") + 1); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 获取Log所在的方法名 * @return */ private static String getMethodName() { try { return Thread.currentThread().getStackTrace()[5].getMethodName(); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 获取Log所在的行 * @return */ private static int getLineNumber() { try { return Thread.currentThread().getStackTrace()[5].getLineNumber(); } catch (Exception e) { e.printStackTrace(); } return 0; } }
Log输出格式:
所在文件(所在行号)$所在方法名: Log信息
示例:
TabMainActivity(10)$onCreate: “onCreate running…”
0 0
- 打造史上最简单,最实用的Log工具类
- 最简单实用的截图工具--效果图
- 一个简单实用的log类
- 最快速、最简单、最实用的在线修改图片工具
- 打印log的一个简单工具类
- 简单的Log日志工具类
- 最简单的实用策略
- Log工具类(简单封装)
- T类最实用的网站及工具大集合
- 最实用的IT类网站及工具大集合
- 打造Android 最实用的ViewPager 指示器控件
- 打造Android 最实用的ViewPager 指示器控件
- 打造Android 最实用的ViewPager 指示器控件
- android打造的最简单计算器界面
- 八个最实用的Java开发工具
- python log模块最简单的写法
- 从零打造简单的SODUMP工具
- 最简单的ImageLoader工具类
- 第十周项目1 二叉树算法库
- [leetcode-304]Range Sum Query 2D - Immutable
- 【高精度计算 04】 大数加法与树结合
- for循环练习*阶乘然后求和
- JAVA学习10_@Override、@Deprecated和@SuppressWarnings注释说明
- 打造史上最简单,最实用的Log工具类
- 关于css中 line-height 在ie中和在chrome中错位的问题
- HDU 初级DP专题
- stm32f10x.h解析
- c++中类的内存问题
- 1027. Colors in Mars (20)
- Sql Server 语句总结
- 文章标题
- 使用Axure实现3D效果,鼠标滚轮实现图型旋转。