Android开发之带行号显示的Log工具类
import android.util.Log;/*** 日志控制*/
public class LogUtils {private final static String TAG = "Log_";private final static boolean sOpenLog = true;public static void d(String logKey, String msg) {d(logKey, msg, 2);}/**** @param logKey* @param msg* @param stackIndex 1:当前位置,2:上级栈位置,0:logcat 的位置(没有意义)*/public static void d(String logKey, String msg, int stackIndex) {if (sOpenLog) {StackTraceElement ste = new Throwable().getStackTrace()[stackIndex];String log = build(msg, ste);
// Log.d(logKey, log);Log.d(TAG, "[" + logKey + "]" + log);}}public static void d(String msg) {if (sOpenLog) {StackTraceElement ste = new Throwable().getStackTrace()[1];String log = build(msg, ste);Log.d(TAG, log);}}public static void i(String logKey, String msg, int stackIndex) {if (sOpenLog) {StackTraceElement ste = new Throwable().getStackTrace()[stackIndex];String log = build(msg, ste);Log.i(TAG, "[" + logKey + "]" + log);
// Log.i(logKey, log);}}public static void i(String logKey, String msg) {i(logKey, msg, 2);}public static void v(String logKey, String msg, int stackIndex) {if (sOpenLog) {StackTraceElement ste = new Throwable().getStackTrace()[stackIndex];String log = build(msg, ste);Log.v(TAG, "[" + logKey + "]" + log);}}public static void v(String logKey, String msg) {v(logKey, msg, 2);}public static void w(String logKey, String msg) {if (sOpenLog) {StackTraceElement ste = new Throwable().getStackTrace()[1];String log = build(logKey, msg, ste);Log.w(TAG, "[" + logKey + "]" + log);}}/*** 打印error级别的log** @param tag tag标签*/public static void e(String tag, Throwable tr) {if (sOpenLog) {StackTraceElement ste = new Throwable().getStackTrace()[1];String log = build(tag, "", ste, tr);Log.e(tag, log, tr);
// Log.e(tag, "[" + Thread.currentThread().getId() + "]" + tr.getMessage(), tr);}}public static void e(String logKey, String msg) {if (sOpenLog) {StackTraceElement ste = new Throwable().getStackTrace()[1];String log = build(logKey, msg, ste);Log.e(logKey, log);}}public static void e(String logKey, String msg, Throwable e) {if (sOpenLog) {StackTraceElement ste = new Throwable().getStackTrace()[1];String log = build(logKey, msg, ste);Log.e(TAG, log, e);}}/*** 打印调用栈信息** @param tag tag标签* @param str 内容*/public static void t(String tag, String str) {if (sOpenLog) {LogUtils.i(tag, "DebugInfo: " + str);Throwable e = new Throwable(tag);e.printStackTrace();}}/*** 制作打log位置的文件名与文件行号详细信息** @param log* @param ste* @return*/private static String build(String log, StackTraceElement ste) {StringBuilder buf = new StringBuilder();buf.append("[").append(Thread.currentThread().getId()).append("]");if (ste.isNativeMethod()) {buf.append("(Native Method)");} else {String fName = ste.getFileName();if (fName == null) {buf.append("(Unknown Source)");} else {int lineNum = ste.getLineNumber();buf.append('(');buf.append(fName);if (lineNum >= 0) {buf.append(':');buf.append(lineNum);}buf.append("):");}}buf.append(log);return buf.toString();}private static String build(String logKey, String msg, StackTraceElement ste) {StringBuilder sb = new StringBuilder();sb.append("[").append(logKey).append("]").append(build(msg, ste));return sb.toString();}private static String build(String logKey, String msg, StackTraceElement ste, Throwable e) {StringBuilder sb = new StringBuilder();sb.append("[").append(logKey).append("]").append(ste.toString()).append(":").append(msg).append("\r\n").append("e:").append(e.getMessage());return sb.toString();}
}
做个记录获取以后能用得到!
Android开发之带行号显示的Log工具类相关推荐
- Android旋转视频工具类,Android开发实现的IntentUtil跳转多功能工具类【包含视频、音频、图片、摄像头等操作功能】...
本文实例讲述了Android开发实现的IntentUtil跳转多功能工具类.分享给大家供大家参考,具体如下: 说明:此工具类是本人开发中总结下来的,还有其它的跳转亲给我留言,希望大家一起把这个工具类打 ...
- linux带行号显示数据,linux中查看文件时显示行号
[root@1-min etc]# cat -n rsyslog.conf//显示所有行号(包括空行) [root@1-min etc]# cat -b rsyslog.conf ...
- java显示行号_java开发文本编辑器手记之行号显示
学java编程一段时间了,想利用java swing开发一个桌面的文本编辑器程序,首先想要实现的便是显示行号的功能,由于要实现一些关键词着色功能,选择了JTextPane,其实还有一个JEditorP ...
- IO流 带行号的缓冲区
package com.yyq; import java.io.*; /** 装饰类(带行号的装饰类)*/ public class LineNumberReaderDemo {public stat ...
- linux 空白进程,Linux空白行:行号显示、空白行数统计、删除空白行
这里的空白行,泛指只有一个换行符的行. 空白行的行号显示: cat -b 选项,可以不在空行前面加行号.nl命令也能实现类似的效果: root@db2a:/tmp# cat -b count.sh 1 ...
- SyntaxHighlighter行号显示错误及代码太长无法换行解决办法
2019独角兽企业重金招聘Python工程师标准>>> SyntaxHighlighter是一个使用JavaScript编写的功能齐全的代码语法高亮的软件.如果一行代码或注释太长的话 ...
- C# 重写RichTextBox带行号和下划线
C# 重写RichTextBox带行号和下划线 效果如下 有几个关键点需要注意: 1,闪屏的问题 public UserRichTextBox() { //其它的 ...
- Android实战简易教程-第五十枪(工具类的测试)
在开发中,为了提高开发效率,我们一般会自定义自己的工具类.为了保证项目的可靠性,在将工具类引入项目之前,我们一般都会对工具类进行单元测试,下面我们通过一个实例看一下如何搭建测试环境. 1.首先自定义一 ...
- 【Android 插件化】Hook 插件化框架 ( 反射工具类 | 反射常用操作整理 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
最新文章
- 带你用深度学习虚拟机进行文本迁移学习(附代码)
- 下一个全球电子通道系统,一定是BCH!
- CUDA学习-计算实际线程ID
- 正则表达式实战---爬取多张图片
- linux内核下载 编译
- 【鲲鹏来了】华为云鲲鹏弹性云服务器 KC1一文全掌握(4)
- sizeof运算符_C编程中的sizeof()运算符
- Python3+Selenium3自动化测试-(四)
- 云之讯-》返回码105147
- Learun,已开源,一个.net web快速开放工具
- 三原色是红黄蓝对吗_为什么三原色是红黄蓝而?
- 使用Comparator.comparing根据类的属性对list进行排序
- android 设计师是处女座的,处女座速成法!设计师的像素眼是怎样炼成的?
- 获取线的中间点(postgis)
- 做人晶莹剔透,做事水滴石穿
- slides.com 导出PDF
- Nova Battles是2022年值得关注的链游
- 将 Amazon EC2 到 Amazon S3 的数据传输推向100Gbps线速
- 老友记第一季台词打印_老友记台词第一季 老友记第一季台词
- 如何利用自动化设备行业ERP系统做好材料采购管理