Android 的Log 类只能以TAG的方式却分不同类的信息,这里利用反射的方式,将Log所在的行号和类名抓出来,以后转交测试的时候如果看到log的消息就可以快速定位软件的bug
package com.tcl.navigator.utils;
import android.util.Log;
public class LogUtils {
private static final boolean DEBUG = true;
private static final String TAG = "LogUtils.java";
public static void e(String message) {
if (DEBUG) {
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
if (elements.length < 4) {
Log.e(TAG, "Stack to shallow");
}else{
String fullClassName = elements[3].getClassName();
String className = fullClassName.substring(fullClassName.lastIndexOf(".") + 1);
String methodName = elements[3].getMethodName();
int lineNumber = elements[3].getLineNumber();
Log.e(className + "." + methodName + "():" + lineNumber,message);
}
}
}
public static void d(String message) {
if (DEBUG) {
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
if (elements.length < 3) {
Log.e(TAG, "Stack to shallow");
}else{
String fullClassName = elements[3].getClassName();
String className = fullClassName.substring(fullClassName.lastIndexOf(".") + 1);
String methodName = elements[3].getMethodName();
int lineNumber = elements[3].getLineNumber();
Log.d(className + "." + methodName + "():" + lineNumber,message);
}
}
}
public static void i(String message) {
if (DEBUG) {
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
if (elements.length < 3) {
Log.e(TAG, "Stack to shallow");
}else{
String fullClassName = elements[3].getClassName();
String className = fullClassName.substring(fullClassName.lastIndexOf(".") + 1);
String methodName = elements[3].getMethodName();
int lineNumber = elements[3].getLineNumber();
Log.i(className + "." + methodName + "():" + lineNumber,message);
}
}
}
public static void w(String message) {
if (DEBUG) {
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
if (elements.length < 3) {
Log.e(TAG, "Stack to shallow");
}else{
String fullClassName = elements[3].getClassName();
String className = fullClassName.substring(fullClassName.lastIndexOf(".") + 1);
String methodName = elements[3].getMethodName();
int lineNumber = elements[3].getLineNumber();
Log.w(className + "." + methodName + "():" + lineNumber,message);
}
}
}
public static void v(String message) {
if (DEBUG) {
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
if (elements.length < 3) {
Log.e(TAG, "Stack to shallow");
}else{
String fullClassName = elements[3].getClassName();
String className = fullClassName.substring(fullClassName.lastIndexOf(".") + 1);
String methodName = elements[3].getMethodName();
int lineNumber = elements[3].getLineNumber();
Log.v(className + "." + methodName + "():" + lineNumber,message);
}
}
}
}
分享到:
相关推荐
Android显示Log信息(带行号),非常好用的Android工具类!
VC6.0显示行号的工具,不占资源。VC6.0显示行号的工具,不占资源。VC6.0显示行号的工具,不占资源。VC6.0显示行号的工具,不占资源。VC6.0显示行号的工具,不占资源。VC6.0显示行号的工具,不占资源。VC6.0显示行号...
vc6.0显示行号的工具vc6.0显示行号的工具vc6.0显示行号的工具vc6.0显示行号的工具vc6.0显示行号的工具
VC行号显示 VC行号显示 VC行号显示 VC行号显示 VC行号显示 VC行号显示VC行号显示 VC行号显示 VC行号显示 VC行号显示 VC行号显示 VC行号显示 VC行号显示 VC行号显示 VC行号显示 VC行号显示 VC行号显示 VC行号显示 VC...
兼容 Android Studio 3.1.0 的 Logcat 完美显示日志 兼容 Kotlin 可设置 Log 开启和关闭 可设置是否输出到控制台(Logcat) 可设置 Log 全局 Tag 全局 Tag 为空时 Tag 为当前类名 可设置 Log 是否显示头部信息 Log ...
dataGridview控件前面是没有默认的行号的,要实现行号的显示需要自己的对控件进行重绘。本代码实现运用重绘方法使dataGridview显示行号。
vc6.0的字体不好看,而且不能在边缘显示行号,这两个工具可以帮助改变字体和显示行号,显示行号的有注册机且可以汉化。
这里介绍了一种在VC6.0工具上显示行号的方法,引用地址:http://myswirl.blog.163.com/blog/static/5131864220122725535331/
是一个js代码编辑器插件,可以设置样式,主题,可显示行号
VC++6.0显示行号
VC6.0显示行号的插件,很好很强大的显行号插件,使用VC6.0编程的朋友再也不用烦恼没有行号的编程环境了。 VC显示行号插件使用说明: 1. 如果你的VC安装在C盘,请拷贝文件VC6LineNumberAddin.dll到如下目录: C:\...
VC++6.0行号显示插件,调试可以很好定位。
是一个js插件,可以给textarea的内容显示行号
vc6显示行号 vc6显示行号 vc6显示行号 vc6显示行号 vc6显示行号
VC6.0显示行号!~~~~亲测可用~~VC6.0显示行号!~~~~亲测可用~~VC6.0显示行号!~~~~亲测可用~~
.xaml设置显示行号
有时候需要编写技术文档,需要在word中插入代码,但直接复制的代码,显示效果可读性非常差,能不能把word上显示的代码弄得给IDE显示的效果一样呢?...设置word显示行号 从IDE中复制带格式的代码内容
VC6.0显示行号和设置字体的工具 1. 如果你的VC安装在C盘,请拷贝文件VC6LineNumberAddin.dll到如下目录: C:\Program Files\Microsoft Visual Studio\Common\MSDev98\AddIns 2. 注册 双击VC6LineNumberAddin....
* 自定义Log打印类 * 在打印给定字符的同时,还打印出所在语句的方法名、行号、类名,甚至详细调用栈等信息 * 可通过DEBUG控制是否打印 * 可通过POSITION控制是否打印所在语句信息