Android Logging
Here is HauteLook’s logger class from our Android Code Library. It displays class name, method name and line number per line of log message.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
package com.hautelook.android.lib.logger; /** * @authorjimmy@hautelook.com * @copyright 2011 HauteLook * * Description: * Simple logger that displays: class name, method name and line number * * * Usage: * * Use this class directly or customize it by extending it. * * HLlog.i(""); * HLLog.i("called"); * HLLog.i("called","tag"); * * L.i(); * L.i("called"); * L.i("called","tag"); * * Sub-classing example: * * // C.DEBUG = boolean true/false (project specific constant class) * * public class L extends HLLog { * * public static String DEFAULT_TAG = "HauteLook"; * * public static void i() { * if(C.DEBUG) callLogger("i", DEFAULT_TAG, ""); * } * * public static void i(String message) { * if(C.DEBUG) callLogger("i", DEFAULT_TAG, message); * } * * public static void i(String message, String tag) { * if(C.DEBUG) callLogger("i", tag, message); * } * * } * */ import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import android.util.Log; @SuppressWarnings("unused")publicclass HLLog { publicstatic String DEFAULT_TAG ="HauteLookLib"; finalstaticintdepth = 4; publicstaticvoid i(String message) { callLogger("i", DEFAULT_TAG, message); } publicstaticvoid i(String message, String tag) { callLogger("i", tag, message); } publicstaticvoid d(String message) { callLogger("d", DEFAULT_TAG, message); } publicstaticvoid d(String message, String tag) { callLogger("d", tag, message); } publicstaticvoid e(String message) { callLogger("e", DEFAULT_TAG, message); } publicstaticvoid e(String message, String tag) { callLogger("e", tag, message); } publicstaticvoid w(String message) { callLogger("w", DEFAULT_TAG, message); } publicstaticvoid w(String message, String tag) { callLogger("w", tag, message); } publicstaticvoid v(String message) { callLogger("v", DEFAULT_TAG, message); } publicstaticvoid v(String message, String tag) { callLogger("v", tag, message); } @SuppressWarnings("rawtypes") publicstaticvoid callLogger(String methodName, String tag, String message) { final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); try { Class cls = Class.forName("android.util.Log"); Method method = cls.getMethod(methodName, String.class, String.class); method.invoke(null, tag, getTrace(ste) + message); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } } publicstatic String getTrace(StackTraceElement[] ste) { return"[" + getClassName(ste) + "][" + getMethodName(ste) + "][" + getLineNumber(ste) + "] "; } publicstatic String getClassPackage(StackTraceElement[] ste) { return ste[depth].getClassName(); } publicstatic String getClassName(StackTraceElement[] ste) { String[] temp = ste[depth].getClassName().split("\\."); return temp[temp.length - 1]; } publicstatic String getMethodName(StackTraceElement[] ste) { return ste[depth].getMethodName(); } publicstaticint getLineNumber(StackTraceElement[] ste) { return ste[depth].getLineNumber(); } } |
Android Logging的更多相关文章
- Android Native 代码NDK开发学习笔记
引用:http://www.kunli.info/2011/08/21/android-native-code-study-note/ JNI,全称Java Native Interface,是用于让 ...
- Android Debugging
Debugging methods for Android Contents [hide] 1 Debuggers 1.1 Kernel and User co-debug with GDB on ...
- 【转】Android使用Log4j例子
Step 1 Download Log4J library from http://logging.apache.org/log4j/1.2/download.html Step 2 Configur ...
- 6、android 普通日志输出到SD卡
这是本人见过写博文最负责的一个人: http://www.crifan.com/android_try_use_android_logging_log4j_to_output_log_to_sd_ca ...
- Android中使用logwrapper来重定向应用程序的标准输出
在Android应用程序调试中,有时候第三方应用程序的日志输出是通过printf之类的标准函数输出的,logcat不能捕获这些日志,一个方法是使用logwrapper命令来执行第三方应用程序,logw ...
- android从应用到驱动之—camera(2)---cameraHAL的实现
本文是camera系列博客,上一篇是: android从应用到驱动之-camera(1)---程序调用流程 本来想用这一篇博客把cameraHAL的实现和流程都给写完的.搞了半天,东西实在是太多了.这 ...
- android从应用到驱动之—camera(2)---cameraHAL的实现
本来想用这一篇博客把cameraHAL的实现和流程都给写完的.搞了半天,东西实在是太多了.这篇先写cameraHAL的基本实现框架,下一篇在具体写camerahal的流程吧. cameraHAL的实现 ...
- android开发教程(八)——环境搭建之java-ndk
目录 android ndk是android用于开发本地代码的开发工具包.它提供C/C++交叉编译工具.android内核.驱动.已有的C/C++代码,都需要ndk来支持开发. 目前支持以下平台:ar ...
- Android 启动过程总结
SystemServer的启动 frameworks/base/services/java/com/android/server/SystemServer.java: run() 其中调用Activi ...
随机推荐
- Android Studio里面配置Tesseract
网上大多是eclipse的项目,因为我用的是AS,所以说一下怎么配置. 身份证图片资料来自百度. 一.导入相关文件 其实我们不用自己编译,可以把别人项目编译好的jar包和so库直接拿来用.因为识别的效 ...
- **三元运算和lambda
三元运算 在说三元运算之前,我们看一段代码: a = 1 if a == 1: name = 'Hello' else: name = 'World' print(name) 输出:Hello 对于这 ...
- Shiro 权限校验不通过时,区分GET和POST请求正确响应对应的方式
引入:https://blog.csdn.net/catoop/article/details/69210140 本文基于Shiro权限注解方式来控制Controller方法是否能够访问. 例如使用到 ...
- 【摘录】UNITY优化-有关骨骼数量的上限问题
1.顶点性能一般来说,如果您想在iPhone 3GS或更新的设备上每帧渲染不超过40,000可见点,那么对于一些配备 MBX GPU的旧设备(比如,原始的 iPhone,如 iPhone 3g和 iP ...
- Mysql 5.6 源码编译安装
简介: 多余的话不说,就是源码安装 Mysql 5.6 ,机器内存 512 MB ,系统 CentOS 6.6 ,安装方式 minimal ! 1.安装底层支持包 shell > yum -y ...
- linux tar 压缩
压缩文件 tar -czvf xxx.tar.gz yourdict 解压文件 tar xzf aa.tar.gz
- Notepad++ 多行一起编辑
快捷方法: 鼠标:alt+滑鼠左鍵拖拉選取.鍵盤:alt+shift+方向鍵.
- Linux实战教学笔记24:SSH连接原理及ssh-key
目录 第二十四节 SSH连接原理及ssh-key讲解 第1章 SSH服务 1.1 ssh介绍 1.2 知识小结 第2章 ssh结构 2.1 SSH加密技术 第3章 ssh服务认证类型 3.1 基于口令 ...
- 如何debug?(转载)
本文属于转载,原文地址如下: https://blog.csdn.net/zhao4zhong1/article/details/53078924 一.码畜:靠编译器帮自己查语法错误 消灭笔误:编写适 ...
- cf499B-Lecture 【map】
http://codeforces.com/problemset/problem/499/B B. Lecture You have a new professor of graph theo ...