Android LOG标签自定义
来源:互联网 发布:迅龙数据恢复软件激活 编辑:程序博客网 时间:2024/05/16 13:07
http://blog.csdn.net/lonely_fireworks/article/details/7962657
你如果不喜欢Android Debugger的LOG标签(打印信息不完整),你可以使用StackTraceElement在你的应用里面实现简单的LOG打印。你不需要使用System.out这个方法在程序中使用,你可以自己写个LOG工具类来完成自己的打印需求。
下面是简单的LogUtils类,提供了一些静态方法,供大家参考。
- /**
- * @author wangli Log工具类
- *
- */
- public final class LogUtils {
- private static boolean sIsLogEnabled = true;// 是否打开LOG
- private static String sApplicationTag = "LogDemo";// LOG默认TAG
- private static final String TAG_CONTENT_PRINT = "%s:%s.%s:%d";
- private static StackTraceElement getCurrentStackTraceElement() {
- return Thread.currentThread().getStackTrace()[4];
- }
- //打印LOG
- public static void trace() {
- if (sIsLogEnabled) {
- android.util.Log.d(sApplicationTag,
- getContent(getCurrentStackTraceElement()));
- }
- }
- //获取LOG
- private static String getContent(StackTraceElement trace) {
- return String.format(TAG_CONTENT_PRINT, sApplicationTag,
- trace.getClassName(), trace.getMethodName(),
- trace.getLineNumber());
- }
- //打印默认TAG的LOG
- public static void traceStack() {
- if (sIsLogEnabled) {
- traceStack(sApplicationTag, android.util.Log.ERROR);
- }
- }
- // 打印Log当前调用栈信息
- public static void traceStack(String tag, int priority) {
- if (sIsLogEnabled) {
- StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
- android.util.Log.println(priority, tag, stackTrace[4].toString());
- StringBuilder str = new StringBuilder();
- String prevClass = null;
- for (int i = 5; i < stackTrace.length; i++) {
- String className = stackTrace[i].getFileName();
- int idx = className.indexOf(".java");
- if (idx >= 0) {
- className = className.substring(0, idx);
- }
- if (prevClass == null || !prevClass.equals(className)) {
- str.append(className.substring(0, idx));
- }
- prevClass = className;
- str.append(".").append(stackTrace[i].getMethodName())
- .append(":").append(stackTrace[i].getLineNumber())
- .append("->");
- }
- android.util.Log.println(priority, tag, str.toString());
- }
- }
- //指定TAG和指定内容的方法
- public static void d(String tag, String msg) {
- if (sIsLogEnabled) {
- Log.d(tag, getContent(getCurrentStackTraceElement())+">"+msg);
- }
- }
- //默认TAG和制定内容的方法
- public static void d(String msg) {
- if (sIsLogEnabled) {
- Log.d(sApplicationTag, getContent(getCurrentStackTraceElement())+">"+msg);
- }
- }
- //下面的定义和上面方法相同,可以定义不同等级的Debugger
- public static void i(String tag,String msg){
- }
- public static void w(String tag,String msg){
- }
- public static void e(String tag,String msg){
- }
- }
- Button mybutton = (Button) findViewById(R.id.mybutton);
- mybutton.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- LogUtils.trace();
- LogUtils.d("test", "在这里...");
- }
- });
打印结果
- 09-10 11:48:56.198: D/test(729): LogDemo:com.test.TestScreenActivity$1.onClick:35>在这里...
- 09-10 11:48:56.238: D/test(729): LogDemo:com.test.TestScreenActivity$1.onClick:35>在这里...
- 09-10 11:48:56.198: D/LogDemo(729): LogDemo:com.test.TestScreenActivity$1.onClick:34
- 09-10 11:48:56.230: D/LogDemo(729): LogDemo:com.test.TestScreenActivity$1.onClick:34
0 0
- Android LOG标签自定义
- Android LOG标签自定义
- Android LOG标签自定义
- android自定义log
- Android 自定义Log
- Android 自定义Log
- 自定义Android Log打印
- Android 自定义打印log
- <Android>自定义Log开关
- android 自定义log打印
- Android自定义Log库
- Android---自定义Log
- android/java 自定义log日志
- android自定义LOG输出位置
- android添加自定义LOG函数。
- android 自定义Log日志工具
- android 自定义打印log类
- android自定义标签属性
- WordsCount(词频统计)-Python语言编写!
- web版pdf在线阅读器
- 黑马程序员--时间一点一点的过去+技术一点一点的增长=成功就业
- Warning: date(): It is not safe to rely on the system's timezone settings
- 《笔记》C# 如何查看对象的类型
- Android LOG标签自定义
- LESS CSS 框架学习
- 计算机系统:关于Unix文件系统,对硬盘的操作等
- 通过shareSDK进行社会化分享集成
- Apple Mach-O Linker错误 armv7s 有关
- Kali Linux下安装配置ProFTPD实例
- centos6 搭建lnmp
- 离线数据无法加载问题
- 关于面向对象