超级Log工具,能显示你的文件名、方法、行数并且可以点击到那一行
来源:互联网 发布:安卓播放增益软件 编辑:程序博客网 时间:2024/05/18 00:11
超级Log工具,能显示你的文件名、方法、行数并且可以点击到那一行
这个超级Log工具能够让你非常方便的找出你打Log的地方,
因为他在Log信息里面显示了你显示了你打印Log的类名、方法名、行数,
而且最方便的就是,你点击显示的Log的方法名,他居然可以直接跳转到你Log的地方,我也没想到会这么方便,所以强烈推荐給大家。
先看效果:
1.MainAtivity中使用工具类的截图
2.OtherActivity中使用工具类的截图
3.Log结果显示图
这里显示MainActivity后点击测试log,接着跳转到第二个页面。
这里你可以看到显示的行数和你打Log的地方是对应的,确实很方便。
在这里你可以看到文件名那里是显示蓝色的,你用鼠标单击是可以跳转到你要选择的那行数据的。
到这里大家是不是非常激动,想要立刻去使用上这个类了呢。
显示超级log的工具类:ShowUtils的代码如下
package com.example.wenzhi.logdemo;import android.content.Context;import android.util.Log;import android.widget.Toast;/** * 本类用于详细显示log的信息 * 比如土司,或Log信息 * 本来还可以显示当前语句运行的线程,但是用的情况很少,所有没有加进去,如果需要可以自己加入 */public class ShowUtils { //这里DEBUG的作用是,可以在程序完成后设置DEBUG的值为false,程序以后就不会在显示以前的打印信息 public static boolean DEBUG = true; static String className;//文件名 static String methodName;//方法名 static int lineNumber;//行数 // static String threadName = Thread.currentThread().getName();//线程名字,能判断主线程还是子线程 private static void getMethodNames(StackTraceElement[] sElements) { className = sElements[1].getFileName(); methodName = sElements[1].getMethodName(); lineNumber = sElements[1].getLineNumber(); } /** * 获取当前文件的基本信息 */ private static StringBuffer getFileInfo() { getMethodNames(new Throwable().getStackTrace());//获取获取包含文件名、方法名、行数的对象数据 StringBuffer buffer = new StringBuffer(); buffer.append(methodName); buffer.append("(").append(className).append(":").append(lineNumber).append(")"); return buffer; } //各种Log打印 public static void e(Object o) { if (DEBUG) { StringBuffer buffer = getFileInfo(); Log.e("TAG", buffer + "打印:------ " + o.toString()); } } public static void e(int i) { if (DEBUG) { StringBuffer buffer = getFileInfo(); Log.e("TAG", buffer + "打印:------ " + i); } } public static void e(float i) { if (DEBUG) { StringBuffer buffer = getFileInfo(); Log.e("TAG", buffer +"打印:------ " + i); } } public static void e(boolean b) { if (DEBUG) { StringBuffer buffer = getFileInfo(); Log.e("TAG", buffer +"打印:------ " + b); } } //各种土司 public static void ts(Context context, Object object) { if (DEBUG) { Toast.makeText(context, object + "", Toast.LENGTH_SHORT).show(); } } public static void tsl(Context context, Object object) { if (DEBUG) Toast.makeText(context, object + "", Toast.LENGTH_LONG).show(); }}
其实这个类也是不难,很多人可能对StackTraceElement[]这个类不了解,其实也不用太了解,你知道怎么用就可以了。
StackTrace表示栈堆的意思,Element表示元素的意思。
上面如果整个程序不需要调试,把属性DEBUG从true变成false就不会再显示Log了。
上面使用Thread.currentThread().getStackTrace()也是可以获取到StackTraceElement[]对象的,但是为什么我不用呢,因为这样获取到的文件名是不是我们上面显示的,并且不能点击跳转到具体行。
并且大家也不用担心你new 一个Throwable().getStackTrace()对象出来会占用很对内存,因为这个内存其实在你用完的使用已经放入回收池了,就行你用new String一样的。出了这个方法,里面的东西就回收了。
好了,这个超级Log工具希望对大家有用。
共勉:不要让年轻的资本越来越没有价值,而是奋发图强让自己后面的每一段路都更加有价值。
阅读全文
3 0
- 超级Log工具,能显示你的文件名、方法、行数并且可以点击到那一行
- 控制textView的显示行数并且可以滚动
- WebView页面上的图片点击的时候加载到Viewpager显示并且可以放大缩小
- Jquery之鼠标移动到图片上显示文字并且文字可以点击
- sql查询 ,多行数据合并成一行,并且显示合并后某一列的值拼接结果
- Android自定义GridView显示一行,并且可以左右滑动
- 安卓非常好用的Log工具类,快速定位到当前行数
- 【Log日志】一个封装的日志打印库(显示类,方法,行数)--破晓觉醒
- js采用map取到id集合组,并且点击一行选中一行
- 如何让DateTimePicker控件既能显示日期又能显示时间,并且可以修改保存?
- 日志中如何显示.pc源文件的行数和文件名
- EditText 将回车的按钮显示为“下一个” 并且点击“下一个”跳转到指定的EditText
- Oracle一列的多行数据拼成一行显示字符
- 使用textview显示html里面的图文混排效果,并且图片可点击索引到
- PHP点击电话号码图片 跳到打电话、、、、通过奇偶定义每一行显示的颜色
- 显示某个目录的所有文件名并且改名移动
- 关于安卓alertdialog你能用到的都在这里了(进出动画,显示位置,背景,设置内容,是否可以点击其他地方消失,屏幕不变暗)
- 你的Log也可以定制
- Unity高通AR解析(一)
- 一名本科生如何入门学习机器学习
- 递归A 计算组合数
- 数据库概念模型和逻辑模型及物理模型
- 暗影精灵装双系统,win 10 下 装一个 win7 ,双硬盘(本文全程文字,没有图片)
- 超级Log工具,能显示你的文件名、方法、行数并且可以点击到那一行
- 智能指针(STL)
- tgz 压缩
- 在Linux系统安装solr
- 递归B 汉诺塔
- 递归C 快速排序
- [JAVA][MD5]关于MD5的实现和JAVA生成MD5
- 端口被占用情况
- Ubuntu系统如何安装arm-linux-gnueabi交叉编译工具?