Android输出log的包装

本文中的log包装来源于github一个项目中,具体位置我给忘了.经过此包装后可以方便查看到log所在的类名,方法名,行数等信息.‘

 1 public class DLog {
 2     static String className;
 3     static String methodName;
 4     static int lineNumber;
 5
 6     private DLog(){
 7         /* Protect from instantiations */
 8     }
 9
10     public static boolean isDebuggable() {
11         return BuildConfig.DEBUG;
12     }
13
14     private static String createLog( String log ) {
15
16         StringBuffer buffer = new StringBuffer();
17         buffer.append("[");
18         buffer.append(methodName);
19         buffer.append(":");
20         buffer.append(lineNumber);
21         buffer.append("]");
22         buffer.append(log);
23
24         return buffer.toString();
25     }
26
27     private static void getMethodNames(StackTraceElement[] sElements){
28         className = sElements[1].getFileName();
29         methodName = sElements[1].getMethodName();
30         lineNumber = sElements[1].getLineNumber();
31     }
32
33     public static void e(String message){
34         if (!isDebuggable()){
35             return;
36         }
37
38         getMethodNames(new Throwable().getStackTrace());
39         Log.e(className, createLog(message));
40     }
41
42     public static void i(String message){
43         if (!isDebuggable()){
44             return;
45         }
46
47         getMethodNames(new Throwable().getStackTrace());
48         Log.i(className, createLog(message));
49     }
50
51     public static void d(String message){
52         if (!isDebuggable()){
53             return;
54         }
55
56         getMethodNames(new Throwable().getStackTrace());
57         Log.d(className, createLog(message));
58     }
59
60     public static void v(String message){
61         if (!isDebuggable()){
62             return;
63         }
64
65         getMethodNames(new Throwable().getStackTrace());
66         Log.v(className, createLog(message));
67     }
68
69     public static void w(String message){
70         if (!isDebuggable()){
71             return;
72         }
73
74         getMethodNames(new Throwable().getStackTrace());
75         Log.w(className, createLog(message));
76     }
77
78     public static void wtf(String message){
79         if (!isDebuggable()){
80             return;
81         }
82
83         getMethodNames(new Throwable().getStackTrace());
84         Log.wtf(className, createLog(message));
85     }
86 }
时间: 2024-12-13 04:28:03

Android输出log的包装的相关文章

adb logcat命令查看并过滤android输出log

adb logcat命令查看并过滤android输出log cmd命令行中使用adb logcat命令查看android系统和应用的log,dos窗口按ctrl+c中断输出log记录. logcat日志中的优先级/tag标记: android输出的每一条日志都有一个标记和优先级与其关联. 优先级是下面的字符,顺序是从低到高:V — 明细 verbose(最低优先级)D — 调试 debugI — 信息 infoW — 警告 warnE — 错误 errorF — 严重错误 fatalS — 无记

【android】 adb logcat命令查看并过滤android输出log

cmd命令行中使用adb logcat命令查看android系统和应用的log,dos窗口按ctrl+c中断输出log记录. logcat日志中的优先级/tag标记: android输出的每一条日志都有一个标记和优先级与其关联. 优先级是下面的字符,顺序是从低到高: V — 明细 verbose(最低优先级) D — 调试 debug I — 信息 info W — 警告 warn E — 错误 error F — 严重错误 fatal S — 无记载 silent 标记是一个简短的字符串,用于

对于Android系统Log输出日志的封装LogUtils

MainActivity如下: package cc.cn.logutil; import android.os.Bundle; import android.app.Activity; /** * Demo描述: * 对于Android系统Log输出日志的封装LogUtils * 1 可修改LogUtils中的LEVEL值觉得哪些级别的日志可以输出. * 所以方便选择性输出日志或者屏蔽日志输出 * 2 输出的日志除了本想输出的信息外还包含了该日志输出时所属 * 的线程,类,方法名,已经在该方法

实现Android Studio JNI开发C/C++使用__android_log_print输出Log

相信很多人在刚开始学习Android JNI编程的时候,需要输出Log,在百度Google搜索的时候都是说需要在Android.mk中加入LOCAL_LDLIBS+= -L$(SYSROOT)/usr/lib -llog ,其实这是在eclipse开发上的方式,Android Studio并不是这么使用. Android Studio的Android.mk是自动生成的,就算修改也是没用了,实际Android Studio的Android.mk是根据gradle文件生成的,那么就需要修改gradl

Android中使用log4j输出log内容到sd卡

在android中,实现输出log内容到sd卡中的文件里面,做法是: 还是相对来说,log4j,算是好用. 1.下载android的log4j的库(的封装) 去:http://code.google.com/p/android-logging-log4j/ 下载对应的android-logging-log4j-1.0.3.jar,加到项目中. 2.再去下载所依赖的apache的log4j库 去:http://logging.apache.org/log4j/1.2/download.html 下

Android输出日志Log类

android.util.Log常用的方法有以下5个: Log.v() Log.d() Log.i() Log.w() 以及 Log.e().根据首字母分别对应VERBOSE,DEBUG,INFO,WARN,ERROR. 1.Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("",""); 2.Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Log

android 输出.txt 文本换行问题

// 获取当前日期和时间 Calendar cal = Calendar.getInstance(); String fileName = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH) + "_" + cal.get(Calendar.DAY_OF_MONTH) + ".txt"; FileWriter fileWriter = new FileWriter(new File(fil

如何分析Android的Log

首先,让我们看一看AndroidLog的格式.下面这段log是以所谓的long格式打印出来的.从前面Logcat的介绍中可以知道,long格式会把时间,标签等作为单独的一行显示. [ 12-09 21:39:35.510  396: 416 I/ActivityManager ] Start procnet.coollet.infzmreader:umengService_v1 for service net.coollet.infzmreader/com.umeng.message. Umen

Android.util.Log 关于Android开发中打印log

日常Android开发真机调试过程经常会遇到系统日志过多过快,想看的内容一闪而过的问题.而自定义些log可以很好的解决这些问题.   代码中添加 log  androidsdk中提供了log输出的api,方法在android.util.Log类中. Log.v(tag,message);        //verbose模式,打印最详细的日志 Log.d(tag,message);        //debug的日志 Log.i(tag,message);        //info的日志 Lo