Android 开源日志库Logger的简单使用
2017-09-16 16:14
351 查看
在项目测试运行的过程中需要有测试日志,一般情况下都是自己根据需求定义自己Logger工具类,诸如:
等等。一次偶然的机会在github上发现大神 Orhan Obut 分享了一开源项目Logger,用来输出日志,发现非常好用,该开源库能够把:
线程的信息
类的信息
方法的信息
格式打印json、xml等
点击链接跳转到源码打印处
等的信息打印出来,以便使Log日志更加的清晰明了。并且该类实现起来非常简单:
首先:关联编译开源库,目前最新版本的是
再者进行初始化操作:
当然你要想个人化定制,Logger还提供了一个根据自己需求输出日志的先进方法:
然后再
就OK了。
一般我会把初始化操作放在Application里面,当然你在Application中配置之后,千万不要忘记在AndroidManifest.xml中声明一下。
接下来我们就可以直接使用了:
1.普通日志:
输出日志:
2.输出Json/Xml类型的日志:
日志输出:
同理,xml日志输出也是一样的。
3.若是在项目上线之后,你想隐藏日志那样你就要实现:
该方法会覆盖isLoggable以保证项目上线之后就不会有日志输出了。
4.有些日志需要保存到文件中,Orhan Obut大神Logger也提供了相应的方法:
当然如果你要,只保存指定Tag的Log日志,就要初始化:
设置完成这些以后,在sd下面就会看到保存的log文件了:
除此之外,你还可以利用Studio中的过滤器进行设置简化输出:
以上是我对Logger的简单了解,不详之处希望大家能够谅解,不对之处,欢迎大家指出,以便共同学习之,文章最后为还在用eclipse的童鞋附上jar包。
jar包链接:http://download.csdn.net/download/hanfengzqh/9981914
import android.util.Log; public class Logger { private static final int VERBOSE = 5; private static final int DEBUG = 4; private static final int INFO = 3; private static final int WARN = 2; private static final int ERROR = -1; private static int LOG_LEVEL = 6; public static void v(String tag, String msg) { if (LOG_LEVEL > VERBOSE) { Log.v(tag, msg); } } public static void d(String tag, String msg) { if (LOG_LEVEL > DEBUG) { Log.d(tag, msg); } } public static void i(String tag, String msg) { if (LOG_LEVEL > INFO) { Log.i(tag, msg); } } public static void w(String tag, String msg) { if (LOG_LEVEL > WARN) { Log.w(tag, msg); } } public static void e(String tag, String msg) { if (LOG_LEVEL > ERROR) { Log.e(tag, msg); } } }
等等。一次偶然的机会在github上发现大神 Orhan Obut 分享了一开源项目Logger,用来输出日志,发现非常好用,该开源库能够把:
线程的信息
类的信息
方法的信息
格式打印json、xml等
点击链接跳转到源码打印处
等的信息打印出来,以便使Log日志更加的清晰明了。并且该类实现起来非常简单:
首先:关联编译开源库,目前最新版本的是
compile 'com.orhanobut:logger:2.1.1'
再者进行初始化操作:
Logger.addLogAdapter(new AndroidLogAdapter());
当然你要想个人化定制,Logger还提供了一个根据自己需求输出日志的先进方法:
FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder() .showThreadInfo(false) //(可选)是否显示线程信息。 默认值为true .methodCount(2) // (可选)要显示的方法行数。 默认2 .methodOffset(7) // (可选)隐藏内部方法调用到偏移量。 默认5 .logStrategy(customLog) //(可选)更改要打印的日志策略。 默认LogCat .tag("zqh") //(可选)每个日志的全局标记。 默认PRETTY_LOGGER .build();
然后再
Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy));
就OK了。
一般我会把初始化操作放在Application里面,当然你在Application中配置之后,千万不要忘记在AndroidManifest.xml中声明一下。
接下来我们就可以直接使用了:
1.普通日志:
Logger.d("我是debug级别的log日志"); Logger.i("我是infor级别的log日志"); Logger.v("我是v级别的log日志"); Logger.w("我是warn级别的log日志"); Logger.e("我是error级别的log日志");
输出日志:
09-16 15:41:12.294: D/zqh(29721): ┌─────────────────────────────────────────────────────────── 09-16 15:41:12.294: D/zqh(29721) ff4b : │ Method.invokeNative (Method.java:-2) 09-16 15:41:12.294: D/zqh(29721): │ ActivityThread.main (ActivityThread.java:5120) 09-16 15:41:12.294: D/zqh(29721): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 09-16 15:41:12.294: D/zqh(29721): │ 我是debug级别的log日志 09-16 15:41:12.294: D/zqh(29721): └─────────────────────────────────────────────────────────── 09-16 15:41:12.294: I/zqh(29721): ┌─────────────────────────────────────────────────────────── 09-16 15:41:12.294: I/zqh(29721): │ Method.invokeNative (Method.java:-2) 09-16 15:41:12.294: I/zqh(29721): │ ActivityThread.main (ActivityThread.java:5120) 09-16 15:41:12.294: I/zqh(29721): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 09-16 15:41:12.294: I/zqh(29721): │ 我是infor级别的log日志 09-16 15:41:12.294: I/zqh(29721): └─────────────────────────────────────────────────────────── 09-16 15:41:12.294: V/zqh(29721): ┌─────────────────────────────────────────────────────────── 09-16 15:41:12.294: V/zqh(29721): │ Method.invokeNative (Method.java:-2) 09-16 15:41:12.294: V/zqh(29721): │ ActivityThread.main (ActivityThread.java:5120) 09-16 15:41:12.294: V/zqh(29721): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 09-16 15:41:12.294: V/zqh(29721): │ 我是v级别的log日志 09-16 15:41:12.294: V/zqh(29721): └─────────────────────────────────────────────────────────── 09-16 15:41:12.294: W/zqh(29721): ┌─────────────────────────────────────────────────────────── 09-16 15:41:12.304: W/zqh(29721): │ Method.invokeNative (Method.java:-2) 09-16 15:41:12.304: W/zqh(29721): │ ActivityThread.main (ActivityThread.java:5120) 09-16 15:41:12.304: W/zqh(29721): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 09-16 15:41:12.304: W/zqh(29721): │ 我是warn级别的log日志 09-16 15:41:12.304: W/zqh(29721): └─────────────────────────────────────────────────────────── 09-16 15:41:12.304: E/zqh(29721): ┌─────────────────────────────────────────────────────────── 09-16 15:41:12.304: E/zqh(29721): │ Method.invokeNative (Method.java:-2) 09-16 15:41:12.304: E/zqh(29721): │ ActivityThread.main (ActivityThread.java:5120) 09-16 15:41:12.304: E/zqh(29721): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 09-16 15:41:12.304: E/zqh(29721): │ 我是error级别的log日志 09-16 15:41:12.304: E/zqh(29721): └───────────────────────────────────────────────────────────
2.输出Json/Xml类型的日志:
String route = new Gson().toJson(infor); Logger.json(route);
日志输出:
09-16 15:41:12.284: D/zqh(29721): ┌────────────────────────────────────────────── 09-16 15:41:12.284: D/zqh(29721): │ Method.invokeNative (Method.java:-2) 09-16 15:41:12.284: D/zqh(29721): │ ActivityThread.main (ActivityThread.java:5120) 09-16 15:41:12.284: D/zqh(29721): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 09-16 15:41:12.284: D/zqh(29721): │ { 09-16 15:41:12.284: D/zqh(29721): │ "mcd": "9d0b77228dd94f84b208a9d3e77f6007", 09-16 15:41:12.284: D/zqh(29721): │ "psn": "Sxxxxxxxxxx", 09-16 15:41:12.284: D/zqh(29721): │ "mw": "1", 09-16 15:41:12.284: D/zqh(29721): │ "pc": "5", 09-16 15:41:12.284: D/zqh(29721): │ "catalog": "1", 09-16 15:41:12.284: D/zqh(29721): │ "vrd": "000000000", 09-16 15:41:12.284: D/zqh(29721): │ "pn": "1", 09-16 15:41:12.284: D/zqh(29721): │ "dsn": "122006010xxx", 09-16 15:41:12.284: D/zqh(29721): │ "sw": "20170916154112", 09-16 15:41:12.294: D/zqh(29721): │ "de": "2" 09-16 15:41:12.294: D/zqh(29721): │ } 09-16 15:41:12.294: D/zqh(29721): └────────────────────────────────────────────
同理,xml日志输出也是一样的。
3.若是在项目上线之后,你想隐藏日志那样你就要实现:
Logger.addLogAdapter(new AndroidLogAdapter() { @Override public boolean isLoggable(int priority, String tag) { return BuildConfig.DEBUG; } });
该方法会覆盖isLoggable以保证项目上线之后就不会有日志输出了。
4.有些日志需要保存到文件中,Orhan Obut大神Logger也提供了相应的方法:
Logger.addLogAdapter(new DiskLogAdapter());
当然如果你要,只保存指定Tag的Log日志,就要初始化:
Logger.addLogAdapter(new AndroidLogAdapter() { @Override public boolean isLoggable(int priority, String tag) { return BuildConfig.DEBUG; } });
设置完成这些以后,在sd下面就会看到保存的log文件了:
除此之外,你还可以利用Studio中的过滤器进行设置简化输出:
以上是我对Logger的简单了解,不详之处希望大家能够谅解,不对之处,欢迎大家指出,以便共同学习之,文章最后为还在用eclipse的童鞋附上jar包。
jar包链接:http://download.csdn.net/download/hanfengzqh/9981914
相关文章推荐
- Android 开源日志库 Logger 使用教程
- Android 开源日志库 Logger 使用教程
- Android 日志库 Logger的简单使用
- Android 开源日志库 Logger 使用教程
- Android 开源日志库 Logger 使用教程
- Android开源日志库Logger的使用
- Android 开源日志库 Logger 使用教程
- Android简单、美观而且十分强大的日志工具——Logger
- Android开源项目pulltorefresh分析与简单使用
- 一个简单、漂亮、功能强大的Android日志程序:logger
- android 开源图表库MPChart最简单使用方法示例教程Demo--折线图 柱状图
- 开源日志库Logger的使用
- 开源日志库Logger的使用秘籍
- Android开源图表控件hellocharts-android简单使用
- Android使用OpenCV和FFMpeg的简单方法-开源项目javacv的使用
- android滑动删除的一个开源项目SwipeDelMenuLayout的简单使用
- 爆料喽!!!开源日志库Logger的使用秘籍
- android 开源图表库MPChart最简单使用方法--折线图
- Android简单好用的日志工具---Logger
- SVG-Android开源库——项目简单接入与使用