带TargetStackTraceElement的log工具类
来源:互联网 发布:java常用算法手册评价 编辑:程序博客网 时间:2024/06/05 16:46
系统的log日记能看出不少信息,但是系统自带log并不是那么好用。比如说你不调试想关掉调试,你要一条条删除,调试时候log信息在第几行也不好看出。既然如此为什么不自己制作一个能实现自己需要的log系统呢?接下来将要实现的是带TargetStackTraceElement的log工具类,制作自己个性化的log日记系统。
下面是logUtil代码:
import android.util.Log;public class LogUtil {public static void v(String tag, String msg) {if (!Const.isVerbose)return;StackTraceElement targetStackTraceElement = getTargetStackTraceElement();Log.v(tag, getTAG(targetStackTraceElement));Log.v(tag, msg);}public static void v(String tag, String msg, Throwable tr) {if (!Const.isVerbose)return;StackTraceElement targetStackTraceElement = getTargetStackTraceElement();Log.v(tag, getTAG(targetStackTraceElement));Log.v(tag, msg, tr);}public static void d(String tag, String msg) {if (!Const.isDebug)return;StackTraceElement targetStackTraceElement = getTargetStackTraceElement();Log.d(tag, getTAG(targetStackTraceElement));Log.d(tag, msg);}public static void d(String tag, String msg, Throwable tr) {if (!Const.isDebug)return;StackTraceElement targetStackTraceElement = getTargetStackTraceElement();Log.d(tag, getTAG(targetStackTraceElement));Log.d(tag, msg, tr);}public static void i(String tag, String msg) {if (!Const.isInformation)return;StackTraceElement targetStackTraceElement = getTargetStackTraceElement();Log.i(tag, getTAG(targetStackTraceElement));Log.i(tag, msg);}public static void i(String tag, String msg, Throwable tr) {if (!Const.isInformation)return;StackTraceElement targetStackTraceElement = getTargetStackTraceElement();Log.i(tag, getTAG(targetStackTraceElement));Log.i(tag, msg, tr);}public static void w(String tag, String msg) {if (!Const.isWarning)return;StackTraceElement targetStackTraceElement = getTargetStackTraceElement();Log.w(tag, getTAG(targetStackTraceElement));Log.w(tag, msg);}public static void w(String tag, String msg, Throwable tr) {if (!Const.isWarning)return;StackTraceElement targetStackTraceElement = getTargetStackTraceElement();Log.w(tag, getTAG(targetStackTraceElement));Log.w(tag, msg, tr);}public static void e(String tag, String msg) {if (!Const.isError)return;StackTraceElement targetStackTraceElement = getTargetStackTraceElement();Log.e(tag, getTAG(targetStackTraceElement));Log.e(tag, msg);}public static void e(String tag, String msg, Throwable tr) {if (!Const.isError)return;StackTraceElement targetStackTraceElement = getTargetStackTraceElement();Log.e(tag, getTAG(targetStackTraceElement));Log.e(tag, msg, tr);}private static String getTAG(StackTraceElement targetStackTraceElement) {return targetStackTraceElement.getClassName() + "." + targetStackTraceElement.getMethodName() + "("+ targetStackTraceElement.getFileName() + ":" + targetStackTraceElement.getLineNumber() + ")";}private static StackTraceElement getTargetStackTraceElement() {StackTraceElement targetStackTrace = null;boolean shouldTrace = false;StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();for (StackTraceElement stackTraceElement : stackTrace) {boolean isLogMethod = stackTraceElement.getClassName().equals(LogUtil.class.getName());if (shouldTrace && !isLogMethod) {targetStackTrace = stackTraceElement;break;}shouldTrace = isLogMethod;}return targetStackTrace;}}
这里面的TargetStackTraceElement是要实现显示代码行,包名字,文件名等。在另外一个Const类里面实现开关调试功能。
public class Const {//LogUtilpublic static boolean isDebug = true; //Debug调试public static boolean isVerbose = true; //任何消息public static boolean isInformation = true; //提示性的消息public static boolean isWarning = true; //警告信息public static boolean isError = true; //错误信息}
代码调用:
LogUtil.d("info", "1234567");
显示效果如下:
info com.example.Reader.Date(Reader.java:207)info 1234567当然了,如果你对这个显示效果不满意,也可以根据自己需要改写。
0 0
- 带TargetStackTraceElement的log工具类
- LOG工具类 带tag的
- Log的使用、自定义Log工具类
- MySQL 自带的 slow log 分析工具 mysqldumpslow
- 打印Log的工具类
- 封装的log工具类
- 带缓存的log写出类
- 【OpenSource】【Log】Log工具类
- 记录log日志文件的工具类
- 比较简洁的log工具类
- android 定制自己的log工具类
- 打印log的一个简单工具类
- 简单的Log日志工具类
- 自己使用的log工具类备份
- 工具类的封装--Log封装
- 对log工具类的方法封装
- 带LOG的二维码生成器
- xcode带颜色的log
- C语言指针传参问题
- Java fastjson 解析json配置文件
- 天纵智能软件快速开发平台便签插件
- Light oj 1307 - Bi-shoe and Phi-shoe【欧拉函数】
- [JS]JS面向对象编程——原型继承
- 带TargetStackTraceElement的log工具类
- Java 图片切割
- Cadence : 如何去掉Orcad Capture中元件标号下划线
- uisegmentedcontrol类重写,自定义按钮和背景颜色
- haporxy 负载elasticsearch
- CSU 1806 Toll(数学+最短路)
- C# datagridview大小跟随窗口动态改变
- 【转】MySQL 添加密码、改密码、忘记密码
- Java 获取当前文件.class 的相对或绝对路径