利用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());
}
如果我们通过日志来调试我们的应用,则通过查看日志,我们能找到出现问题所在的类名,行号,方法名等。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。