利用StackTraceElement设计打印Android日志

    java.lang.StackTraceElement实现了接口Serializable,是堆栈跟踪中的元素,它由 Throwable.getStackTrace() 返回。每个元素表示单独的一个堆栈帧。所有的堆栈帧(堆栈顶部的那个堆栈帧除外)都表示一个方法调用。堆栈顶部的帧表示生成堆栈跟踪的执行点。通常,这是创建对应于堆栈跟踪的 throwable 的点。构造方法信息:
public StackTraceElement(String declaringClass,
                         String methodName,
                         String fileName,
                         int lineNumber)
参数说明:
declaringClass - 类的完全限定名,该类包含由堆栈跟踪元素所表示的执行点
methodName - 方法名,该方法包含由堆栈跟踪元素所表示的执行点
fileName - 文件名,该文件包含由堆栈跟踪元素所表示的执行点;如果该信息不可用,则该参数为 null
lineNumber - 源代码行的行号,该代码行包含由堆栈跟踪元素所表示的执行点;如果此信息不可用,则该参数为负数。值 -2 表示包含执行点的方法是一个本机方法

我们在Android开发的时候,可以利用StackTraceElement类来实现我们日志的打印格式:

private  void printLog() {
			StackTraceElement stack = (new Throwable()).getStackTrace()[1];
			StringBuilder builder = new StringBuilder();
			builder.append("<->文件:" + stack.getFileName());

builder.append("行号:" + stack.getLineNumber());
builder.append("<->方法:" + stack.getMethodName());
builder.append("<->信息:" + paramString);
Log.i("myLog", builder.toString());
}

如果我们通过日志来调试我们的应用,则通过查看日志,我们能找到出现问题所在的类名,行号,方法名等。
时间: 2024-10-14 21:20:52

利用StackTraceElement设计打印Android日志的相关文章

Android日志打印类LogUtils,能够定位到类名,方法名以及出现错误的行数并保存日志文件

关注finddreams,一起分享,一起进步!http://blog.csdn.net/finddreams/article/details/45569089 在开发中,我们常常用打印log的方式来调试我们的应用.在Java中我们常常使用方法System.out.println()来在控制台打印日志,以便我们的调试.Android中有一个专门的类Log来实现在Android系统下日志的打印,更加方便我们定位程序出现问题的地方. 但是Android官方提供的Log类在实际项目使用中,也不是非常方便

[Android]Android日志抓取软件测试

1. log文件分类简介 1. 实时打印: 1.1 logcat main(应用程序) -- adb logcat -b main -v time > app.log 1.2 logcat radio(射频相关-SIMSTK,modem相关的ATcommand) -- adb logcat -b radio -v time > radio.log 1.3 logcat events(系统事件的日志,比如触屏事件等) -- adb logcat -b events -v time 1.4 tcp

hbase 利用rowkey设计进行多条件查询

摘要 本文主要内容是通过合理Hbase 行键(rowkey)设计实现快速的多条件查询,所采用的方法将所有要用于查询中的列经过一些处理后存储在rowkey中,查询时通过rowkey进行查询,提高rowkey的利用率,加快查询速度.行键(rowkey)并不是简单的把所有要查询的列的值直接拼接起来,而是将各个列的数据转成整型(int)数据来存储.之后实现两个自定义的比较器(comparator):一个是相等比较器,用于实现类似于SQL的多条件精确查找功能. select * from table wh

CSS3-基于浮动的布局,响应式WEB设计,定位网页上的元素,设计打印页面的css技术

基于浮动的布局: 1.除非图片设置了宽度,否则始终应该要对浮动的图片设置一个宽度,这样可以让浏览器给其他内容腾出环绕的空间 2.当侧边栏的高度与主内容区的高度不一致的时候,可以用个margin进行调整 3.在一个非浮动元素<div>中存在一个浮动元素,当浮动元素高于元素本身的时候,内容就会溢出<div>中,解决方案如下: A:在</div>介绍之前添加一个换行,并且添加一个类<br class=”clear”/>,之后创建一个样式br.class{clear

利用FFmpeg玩转Android视频录制与压缩(二)&lt;转&gt;

转载出处:http://blog.csdn.net/mabeijianxi/article/details/72983362 预热 时光荏苒,光阴如梭,离上一次吹牛逼已经过去了两三个月,身边很多人的女票已经分了又合,合了又分,本屌依旧骄傲单身.上一次啊我们大致说了一些简单的FFmpeg命令以及Java层简单的调用方式,然后有很多朋友在github或者csdn上给我留言,很多时候我都选择避而不答,原因是本库以前用的so包是不开源的,我根本改不了里面东西.但是这一次啊我们玩点大的,我重新编译了FFm

ProGuard优化Android日志

Android应用开发过程中,一般会加入各种日志打印,便于代码调试,android.util.Log的方法经常被使用.如果应用总是在后台不断的输出Log.i或Log.d的内容,除了增加系统开销外,对应用的整体效率受影响.ProGuard通过删除从未用过的代码和使用晦涩名字重命名类.字段和方法,对代码进行压缩,优化和混淆.结果生成一个比较小的.apk文件,该文件比较难进行逆向工程,因此安全性较高. 1 基础配置 在Eclipse中新建一个Android工程,一个proguard-project.t

Android 日志级别总结

Android Console窗口只会打印 软件的 安装信息及部分异常. Android 日志信息 可通过Logcat View 查看. 其中使用Logcat 可查看到的日志级别分别为:ERROR,WARN,INFO,DEBUG,VERBOSE 其优先级分别为:ERROR>WARN>INFO>DEBUG>VERBOSE 通常使用Logcat 的方式可自定义Filter 中的LogTag 来进行Log日志的筛选. Java 中常用的System.out  的默认级别为Info,Sys

Android日志工具Log

Android的日志工具类是Log,属于android.util.Log包 ,这个类提供了5个方法来供我们打印日志. ● Log.v().用于打印最为繁琐的,意义最小的日志信息.对应级别为 verbose,是Android日志里级别最低的一种.  (顺便来认识一下单词---verbose:冗长的,啰嗦的,累赘的,我也是百度的*_*) ● Log.d().用于打印一些调试信息,这些信息对于调试程序和分析问题是很有帮助的.对应级别为 debug,比 verbose 高一级. ● Log.i().用于

java 日志脱敏框架 sensitive,优雅的打印脱敏日志

问题 为了保证用户的信息安全,敏感信息需要脱敏. 项目开发过程中,每次处理敏感信息的日志问题感觉很麻烦,大部分都是用工具类单独处理,不利于以后统一管理,很不优雅. 于是,就写了一个基于 java 注解的日志脱敏工具. github sensitive 项目介绍 日志脱敏是常见的安全需求.普通的基于工具类方法的方式,对代码的入侵性太强.编写起来又特别麻烦. 本项目提供基于注解的方式,并且内置了常见的脱敏方式,便于开发. 用户也可以基于自己的实际需要,自定义注解. 变更日志 日志脱敏 为了金融交易的