您的位置:首页 > 移动开发 > Android开发

Android强大log框架Logger使用详解

2017-01-31 13:28 393 查看
log信息是开发中最最重要的部分,那么如何更好的捕获信息呢?接下来就让我们了解一下强大的log框架–Logger。

什么是logger?

是一个简单,漂亮,强大的Android开源日志工具,代码托管在github上

项目地址 https://github.com/orhanobut/logger

亮点?

能够提供:

线程信息:log在哪个线程

类信息:log在哪个类

方法信息:log在哪个方法的哪一行

漂亮地打印json

漂亮的打印XML

漂亮的换行分割

整洁的输出

跳转到源代码

为啥使用它?

默认实现是对于android.util.Log的封装

弥补了“android的logcat的message有字符长度的限制,超过将直接截断”的缺陷

支持参数添加占位符来格式化字符串,Logger.d(“hello %s”, “world”);

支持直接打印List,Set,Map,数组类型等引用类型

指定任意TAG

配置初始化选项

支持自定义CustomLogAdapter实现LogAdapter,替换android.util.Log

如何使用?

添加依赖:

compile 'com.orhanobut:logger:1.15'


配置初始化选项(非必须选项,不配置的情况下会使用系统默认的初始化配置



Logger
.init("mytag")    //LOG TAG默认是PRETTYLOGGER
.methodCount(3)                 // 决定打印多少行(每一行代表一个方法)默认:2
.hideThreadInfo()               // 隐藏线程信息 默认:显示
.logLevel(LogLevel.NONE)        // 是否显示Log 默认:LogLevel.FULL(全部显示)
.methodOffset(2)                // 默认:0
.logAdapter(new AndroidLogAdapter()); //可以自己构造适配器默认:AndroidLogAdapter
}


效果展示:

默认效果:



Logger.init().logLevel(LogLevel.FULL).methodCount(3);


methodCount(3) ,中间方法区数量变为3,每一行代表一个方法。



2.打印不同level的Log

Logger.v(String message); // VERBOSE级别,可添加占位符

Logger.d(Object object); // DEBUG级别,打印对象

Logger.d(String message); // DEBUG级别,可添加占位符

Logger.i(String message); // INFO级别,可添加占位符

Logger.w(String message); // WARN级别,可添加占位符

Logger.e(String message); // ERROR级别,可添加占位符

Logger.e(Throwable throwable, String message); // ERROR级别,可添加占位符

Logger.wtf(String message); // ASSERT级别,可添加占位符

Logger.xml(String xml);

Logger.json(String json);

效果展示:

Logger.v("vvvvvvvv");




Logger.d("dddddddd");




Logger.e("eeeeeeee");




Logger.w("wwwwwwww");




Logger.v("vvvvvvvv");




Logger.wtf("wtfwtf");




Logger.json("{\n" +
"    \"name\": \"BeJson\",\n" +
"    \"url\": \"http://www.bejson.com\",\n" +
"    \"page\": 88,\n" +
"    \"isNonProfit\": true,\n" +
"    \"address\": {\n" +
"        \"street\": \"科技园路.\",\n" +
"        \"city\": \"江苏苏州\",\n" +
"        \"country\": \"中国\"\n" +
"    },\n" +
"    \"links\": [\n" +
"        {\n" +
"            \"name\": \"Google\",\n" +
"            \"url\": \"http://www.google.com\"\n" +
"        },\n" +
"        {\n" +
"            \"name\": \"Baidu\",\n" +
"            \"url\": \"http://www.baidu.com\"\n" +
"        },\n" +
"        {\n" +
"            \"name\": \"SoSo\",\n" +
"            \"url\": \"http://www.SoSo.com\"\n" +
"        }\n" +
"    ]\n" +
"}");




@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
methodA();
}

void methodA(){
methodB();
}

void methodB(){ Logger.d("methodB","sas","asdasdasd",1);
}




Logger.xml("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
"<android.support.constraint.ConstraintLayout\n" +
"    xmlns:android=\"http://schemas.android.com/apk/res/android\"\n" +
"    xmlns:tools=\"http://schemas.android.com/tools\"\n" +
"    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n" +
"    android:id=\"@+id/activity_main\"\n" +
"    android:layout_width=\"match_parent\"\n" +
"    android:layout_height=\"match_parent\"\n" +
"    tools:context=\"com.libin.multi.tools.MainActivity\">\n" +
"\n" +
"    <TextView\n" +
"        android:layout_width=\"wrap_content\"\n" +
"        android:layout_height=\"wrap_content\"\n" +
"        android:text=\"Hello World!\"\n" +
"        app:layout_constraintBottom_toBottomOf=\"@+id/activity_main\"\n" +
"        app:layout_constraintLeft_toLeftOf=\"@+id/activity_main\"\n" +
"        app:layout_constraintRight_toRightOf=\"@+id/activity_main\"\n" +
"        app:layout_constraintTop_toTopOf=\"@+id/activity_main\" />\n" +
"    \n" +
"    <ImageView\n" +
"        android:layout_width=\"wrap_content\"\n" +
"        android:layout_height=\"wrap_content\" />\n" +
"    \n" +
"    <TextView\n" +
"        android:layout_width=\"wrap_content\"\n" +
"        android:layout_height=\"wrap_content\" />\n" +
"\n" +
"</android.support.constraint.ConstraintLayout>\n");




new Thread(new Runnable() {
@Override
public void run() {
Logger.e("Thread");
}
}).start();




扫码关注公众号“伟大程序猿的诞生“,更多干货等着你~

扫码关注公众号“伟大程序猿的诞生“,更多干货等着你~

扫码关注公众号“伟大程序猿的诞生“,更多干货等着你~



公众号回复“资料获取”,获取更多干货哦~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息