日志库Logger/xLog:使用对比解析

前言

几种常用的日志库

  通过对比:logger、timber、xLog、KLog、log4j 日志库 ;个人最终选择了logger;当然另外几个也很强大;只是 从个人的开发需求角度来说 logger更适合本人罢了(早期个人使用过log4j日志库)。
给出上述库的飞升台:
logger:
https://github.com/orhanobut/logger
timber:
https://github.com/JakeWharton/timber
xLog:
https://github.com/elvishew/xLog
KLog:
https://github.com/ZhaoKaiQiang/KLog

为啥弃用API中的Log

  在解析这个log库前,我们首先要明白 我们为啥要用三方的单独的库来操作程序,毕竟原生的log的功能已经基本能满足我们的开发需求了;为啥还要添加这个库 呢? why? 这不是增加了apk大小的负担吗 ?
是的 ;没错原生的log确实已经很好了;but 他太基础了;
原因是我们在使用的原生的log的时候会发现:

1:很多TAG都要写下雷同的代码;
2:在打印数据比较长(比如一个很长的json)他是有限制的:打印不全!
3:输出控制台输出的日志太多;很难找到在哪里。
4:手机(统称虚拟机)断开调试 ;日志就回老家了。
5:测试的bug日志能帮助我们快速定位到问题的所在。
6:总之:使用原生的日志信息不利于我们更好的装逼。

理想中的Log日志

动手分析之前,我们要先弄清楚,我们需要什么样的log:
打印日志是一门传统艺术,历史悠久,打从有编程那年就开始有了。它与单步调试并称程序调试两大神技,程序员们因为拥护不同的调试方法,分裂成了两大阵营:日志派和调试派,两派互相看不起。调试派说打印日志太没技术含量,还要到处做标记,看我们调试派,想停哪里点哪里,想看什么看什么,调试器能带我飞。日志派也不服气,你能离线调试吗?你能调试多线程错误吗?你能xxx调试吗?( oreofish分析的透彻啊(∩_∩) )

好程序员两种技能都要掌握,现在调试工具越来越好用,单步调试没有任何困难。但是打印日志仍然是不可或缺的必杀技,尤其是查活系统(运行中软件)的问题时,如果没有后台日志或者用户手机日志,真是打死也不知道哪里出了问题。

扯完日志的重要性,认真说说我们对日志系统的需求:

  • 容易打印:无论什么格式的数据,上到自定义类,下到字节流,都能单行代码给打出来,总之打印一切object,360度无死角。
  • 格式工整:对显示的日志排版简洁工整。
  • 代码简洁:就是要求我们写的代码少而清晰。
  • 日志定位:能够快速对存在问题的逻辑进行定位;也就是能link.。
  • 设置简单:我们的日志框架要容易上手;设置简单。
  • 保存日志:尽量能在没有环境的真机上运行的时候保存日志信息,便于需要时查看。
  • 上线0负担:不能因为log降低我们的 release包效率。
    如果能做到上面几点,那么这个日志系统基本上就很好了。那么标尺有了,基本上我们要使用哪个log也就清楚了(至少笔者使用的清楚了)。

下面我们挑出来一种和Logger库对比下:

xLog使用解析

  为啥要首先说xLog这个库呢? 因为 本人本打算用这个库来开发来自;毕竟它小且强大;最重要的是它能保存文件;理论上是本人的首选;
  but…试了一个多小时 楞是没有保存文件到本地成功;不知道啥情况;果断弃之;于是符 ;我决定改用Logger库;在github那是这几个日志库中start最高的了吧。 很棒。
咱要站在巨人的肩膀 前进……娃哈哈哈O(∩_∩)O~
  额 跑题了——开搞 开搞——
github 这样来描述xLog的使用:

XLog概要:

简单、美观、强大、可扩展的 Android 和 Java 日志库,可同时在多个通道打印日志,如 Logcat、Console 和文件。如果你愿意,甚至可以打印到远程服务器(或其他任何地方)。

总之: 很强大、非常强大

XLog 能干什么:

  • 全局配置(TAG,各种格式化器…)或基于单条日志的配置
  • 支持打印任意对象以及可自定义的对象格式化器
  • 支持打印数组
  • 支持打印无限长的日志(没有 4K 字符的限制)
  • XML 和 JSON 格式化输出
  • 线程信息(线程名等,可自定义)
  • 调用栈信息(可配置的调用栈深度,调用栈信息包括类名、方法名文件名和行号)
  • 支持日志拦截器
  • 保存日志文件(文件名和自动备份策略可灵活配置)
  • 在 Android Studio 中的日志样式美观
  • 简单易用,扩展性高
    总之: 它能干你想要的一切。

与其他日志库的不同:

优美的源代码,良好的文档
扩展性高,可轻松扩展和强化功能
轻量级,零依赖

依赖:

compile 'com.elvishew:xlog:1.3.0'

预览:

1:首页看一个个人真机上运行的显示日志的效果:
这里写图片描述
2:带线程信息、调用栈信息和边框的日志
这里写图片描述
3:格式化后的网络 API 请求
这里写图片描述
4:格式化后的网络 API 响应
这里写图片描述
5:日志文件
这里写图片描述

架构:

这里写图片描述

上面的部分就是直观的告诉你:xLog很强大,他要说的就是这句话;不过也确实强大。

使用方式:

1:简单方式:在程序入口添加

XLog.init(LogLevel.ALL);

或者:

//或者如果你想要在正式版中禁止打日志:很有必要 ;可以优化release版本。
XLog.init(BuildConfi
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值