千家信息网

Logger的使用方法有哪些

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"Logger的使用方法有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Logger的使用方法有哪些"吧!在Android Studi
千家信息网最后更新 2026年11月02日Logger的使用方法有哪些

本篇内容主要讲解"Logger的使用方法有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Logger的使用方法有哪些"吧!

在Android Studio中的gradle中加入,就可以引用依赖logger库:

dependencies {    compile 'com.orhanobut:logger:1.15'    }

Logger库能提供的功能:

  1. 线程的信息
  2. 类的信息
  3. 方法的信息
  4. 格式打印json、xml等
  5. 点击链接跳转到源码打印处

Logger的使用

使用非常简单:

String userName = "Jerry";Logger.i(userName);

打印的效果:

日志效果

这个效果格式是不是很清晰,可以看到,当前打印处的线程名、方法名、方法位置、打印的信息。同时点击方法的位置还可以跳转到打印的位置,这样调试起来就非常的方便了。 可以看到上图打印的TAG是PRETTYLOGGER,这个是Logger默认的tag,如果要修改可以:

// 修改打印的tag值Logger.init("MainActivity");String userName = "Jerry";Logger.i(userName);

修改tag的日志效果

有的小伙伴觉得,我不想一直都只用一个tag,那岂不是要写很多的Logger.init(tag)来修改,我们看方法名叫init,作者的意思估计是只用一次就好了。下面可以通过:

Logger.init("MainActivity");String userName = "Jerry";Logger.i(userName);// 给当前打印的换一个单独的tag名Logger.t("App").i(userName);Logger.e(userName);

单独修改的tag打印效果

从图上可以看出,使用Logger.t(tag)这个方法就修改了tag,而且还不会影响后面其它的打印的tag,是不是灵活又方便呢。

我们继续看,我们都知道android自带的Log日志,是无法直接打印除了字符串以为的值或变量对象的。

系统自带的打印int,报错

有的时候确实挺麻烦,还得可以拼接成字符串来打印(宝宝(づ。◕‿‿◕。)づ心理的苦身为Android攻城狮都体会过),强大的Logger可以办到:

Logger.i("大家好,我叫%s,今年%d,很高兴大家来看我的文章!!!", "Jerry", 18);

拼接int数值打印效果

学过C语言的应该都知道:printf("age: %d", 16)这样的打印函数,是不是有似曾相识的感觉。再来改改:

Logger.t("你特么才16岁么").i("大家好,我叫%s,今年%d岁,很高兴大家来看我的文章!!!", "Jerry", 16);

可怜的日志君,有种被玩坏的感觉

除了这些,Logger还可以打印很多形式的数据,极大的方便了我们的开发:

Logger.d("hello");Logger.e("hello");Logger.w("hello");Logger.v("hello");Logger.wtf("hello");// 打印json格式String json = createJson().toString();Logger.json(json);// 打印xml格式Logger.xml(XML_CONTENT);// 打印自定义级别、tag、信息等格式日志Logger.log(DEBUG, "tag", "message", throwable);// 创建json数据private JSONObject createJson() {try {     JSONObject person = new JSONObject();     person.put("phone", "12315");     JSONObject address = new JSONObject();     address.put("country", "china");     address.put("province", "fujian");     ddress.put("city", "xiamen");     person.put("address", address);     person.put("married", true);     return person;   }catch (JSONException e) {           Logger.e(e, "create json error occured");            }return null;                       }                               }

漂亮的json格式打印效果

关于打印json,还有个小插曲,博主第一次使用的时候,半天没有出效果,没打印出来,于是我改成了DDMS的Logcat,还是一样。后来去跟踪源码,看Logger.json()是怎么打印的,源码最终是使用系统的Log.d(tag, msg)来打印的。于是博主用打断点debug,发现上图格式的所有字符串都有传入到Log.d的msg中,就是不打印(心累),于是我直接:

Log.d("MainActivity", "onActivityCreated: log.d跑哪里去了...");

日志还是不显示,这就说明有可能是我的魅族MX4手机的问题,Google了一下,果然有说魅族手机Log.d()日志不打印的问题,是因为魅族默认不开启Debug模式的日志打印,需要在开发者选项—高级日志输出—选择全部允许,至此日志打印出来了。

Logger库还针对显示可以自己自定义:

  • Settings setting = Logger.init("MainActivity"); setting.logLevel(LogLevel.FULL) // 显示全部日志,LogLevel.NONE不显示日志,默认是Full .methodCount(5) // 方法栈打印的个数,默认是5 .methodOffset(0) // 设置调用堆栈的函数偏移值,0的话则从打印该Log的函数开始输出堆栈信息,默认是0 .hideThreadInfo(); // 隐藏线程信息

.logAdapter(new AndroidLogAdapter()); // 自定义一个打印适配器,这里适配了Android的Log打印,你也可以自己实现LogAdapter接口来做一些特殊需求的日志打印适配

自定义日志显示

线程显示隐藏了,方法栈显示的偏移量为0,表示从打印的Log的地方开始算方法数的5个堆栈内的方法都打印出来。

打印数组、List、map等对象数据

 String[] names = {"Jerry", "Emily", "小五", "hongyang", "七猫"};       Logger.d(names);  // 打印字符数组       List users = new ArrayList();       for (int i = 0; i getName() {       return name;       }       public void setName(String name) {              this.name = name;              }       public int getAge() {              return age;              }       public void setAge(int age) {              this.age = age;              }      // 要覆写对象的toString方法才可以打印出完整的日志信息      @Override      public String toString() {      return "User{" +             "name='" + name + '/'' +             ", age=" + age +             '}';                               }             }

打印字符数组和List(User没有覆写toString)

打印字符数组和List(User已经覆写toString)

到此,相信大家对"Logger的使用方法有哪些"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

方法 日志 信息 效果 格式 字符 数组 线程 使用方法 位置 函数 堆栈 字符串 对象 数据 源码 适配 高兴 上图 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司怎么样 疫情对互联网科技公司影响 港股互联网科技股 上海挚品互联网科技 互联网 的科技创新 万易互联网科技有限公司 美国互联网黑科技 齐家互联网科技有限公司 小米互联网科技园设置 广西互联网科技孵化中心 用友工业互联网科技发展 特约风豹互联网科技为什么扣费 为客找房互联网科技公司怎么样 华中科技大学互联网的牛人 众安科技工业互联网合作 产业互联网科技服务公司 互联网科技融合创新 广东鹅鹅鹅互联网科技有限公司 北京军民互联网科技公司 广东猫王互联网科技有限公司电话 互联网科技公司 喔噻互联网科技 有马互联网科技 互联网科技公司介绍 重庆互联网医院沙龙医盟信息科技 呼和浩特新华互联网科技学院 互联网科技大奖都有哪些公司 中国科技创新与世界互联网大会 互联网科技数字货币 福建互联网展示科技馆设计
0