为了账号安全,请及时绑定邮箱和手机立即绑定

Android专用Log打印工具KLog使用指南

标签:
Android

在Android开发和调试的过程中,Log的使用是非常频繁的,一个好的Log工具可以帮你节省很多时间,所以凯子哥抽空写了个这个开源项目

在Android开发和调试的过程中,Log的使用是非常频繁的,一个好的Log工具可以帮你节省很多时间,所以凯子哥抽空写了个这个开源项目KLog,希望可以帮助大家提高开发效率。

本文章是KLog的项目介绍和使用说明。

KLog功能介绍

KLog最新版本号为1.5.0。

以下是最新版本KLog拥有的特性

  • 支持显示行号

  • 支持显示Log所在函数名称

  • 支持无Tag快捷打印

  • 支持在Android Studio开发IDE中,点击函数名称,跳转至Log所在位置

  • 支持JSON字符串解析打印

  • 支持XML字符串解析打印

  • 支持Log信息存储到文件

  • 依赖库非常小,只有不到10K

  • 支持无限长字符串打印,无Logcat4000字符限制

  • 支持变长参数,任意个数打印参数

  • 支持设置全局Tag

KLog使用三千问

我想快速观察某处代码有没有执行怎么办?

直接KLog.d(),不需要设置Tag,不需要输入任何字符串信息,就可以自动打印

06-14 22:32:05.889 19851-19851/com.socks.klog.sample V/Kai: [ (MainActivity.java:68)#Log ] execute

我想把整个App的Tag都设置成一个怎么办?

初始化的时候使用这个函数来设置全局的Tag,就可以通过Tag过滤出整个App的Log了

KLog.init(BuildConfig.LOG_DEBUG, "Kai");

我想自己设置每个Log的Tag怎么办?

和使用Log一样,只是需要用KLog来完成而已

KLog.d(TAG, LOG_MSG);

我要打印的字符串非常长,系统自带的Log只能显示一部分怎么办?

KLog会对超长字符串进行处理,保证全部的字符串都可以打印出来,再也没有了只能打印一部分的问题了~

我要输出的格式是Json的,我想打印出Json格式怎么办

直接

KLog.json(JSON);

就可以自动的将Json格式输出

06-14 22:37:43.042 19851-19851/com.socks.klog.sample D/Kai: ╔═══════════════════════════════════════════════════════════════════════════════════════
06-14 22:37:43.042 19851-19851/com.socks.klog.sample D/Kai: ║ [ (MainActivity.java:120)#LogWithJson ]
06-14 22:37:43.043 19851-19851/com.socks.klog.sample D/Kai: ║ {
06-14 22:37:43.043 19851-19851/com.socks.klog.sample D/Kai: ║     "menu": [
06-14 22:37:43.043 19851-19851/com.socks.klog.sample D/Kai: ║         "泰式柠檬肉片",
06-14 22:37:43.043 19851-19851/com.socks.klog.sample D/Kai: ║         "鸡柳汉堡",
06-14 22:37:43.043 19851-19851/com.socks.klog.sample D/Kai: ║         "蒸桂鱼卷 "
06-14 22:37:43.043 19851-19851/com.socks.klog.sample D/Kai: ║     ],
06-14 22:37:43.043 19851-19851/com.socks.klog.sample D/Kai: ║     "tag": "其他"
06-14 22:37:43.043 19851-19851/com.socks.klog.sample D/Kai: ║ }
06-14 22:37:43.043 19851-19851/com.socks.klog.sample D/Kai: ╚═══════════════════════════════════════════════════════════════════════════════════════

我想输出XML格式呢?

一样简单,只需要

KLog.xml(XML);

就可以输出XML格式了

06-14 22:38:34.629 19851-19851/com.socks.klog.sample D/Kai: ╔═══════════════════════════════════════════════════════════════════════════════════════
06-14 22:38:34.629 19851-19851/com.socks.klog.sample D/Kai: ║ [ (MainActivity.java:140)#LogWithXml ]
06-14 22:38:34.629 19851-19851/com.socks.klog.sample D/Kai: ║ <?xml version="1.0" encoding="UTF-8"?>
06-14 22:38:34.629 19851-19851/com.socks.klog.sample D/Kai: ║ <!--  Copyright w3school.com.cn --><note>
06-14 22:38:34.630 19851-19851/com.socks.klog.sample D/Kai: ║   <to>George</to>
06-14 22:38:34.630 19851-19851/com.socks.klog.sample D/Kai: ║   <from>John</from>
06-14 22:38:34.630 19851-19851/com.socks.klog.sample D/Kai: ║   <heading>Reminder</heading>
06-14 22:38:34.630 19851-19851/com.socks.klog.sample D/Kai: ║   <body>Don't forget the meeting!</body>
06-14 22:38:34.630 19851-19851/com.socks.klog.sample D/Kai: ║ </note>
06-14 22:38:34.630 19851-19851/com.socks.klog.sample D/Kai: ╚═══════════════════════════════════════════════════════════════════════════════════════

我有一段字符串需要处理,能自动保存到文件吗?

当然可以,只需要

KLog.file(TAG, Environment.getExternalStorageDirectory(), "test.txt", JSON_LONG);

就可以保存了

06-14 22:40:19.418 19851-19851/com.socks.klog.sample D/Kai: [ (MainActivity.java:134)#LogWithFile ]  save log success ! location is >>>/storage/emulated/0/test.txt

KLog这么强大,会不会占用很大的空间?

Klog依赖包只有10K大小,只需要10K,就可以满足你日常打印Log的需求,超值!

我想用KLog,应该怎么办呢?

最简单的方法,你可以直接使用gradle引用

dependencies {
   compile 'com.github.zhaokaiqiang.klog:library:1.5.0'
}

当然,在项目里面也提供了KLog.jar,你也可以直接拷贝到你的项目里使用。

使用KLog的过程中,有没有最佳实践?

当然有,下面就介绍几个最佳实践。

请在Application初始化的时候就对KLog进行初始化,因为KLog的初始化过程非常的简单,因此不会影响App的启动速度

public class KLogApplication extends Application {

   @Override
   public void onCreate() {
       super.onCreate();
       KLog.init(BuildConfig.LOG_DEBUG, "Kai");
   }
}

对于全局打印开关,推荐使用Gradle变量进行控制,这样当发布release版本的时候,就会自动的关闭Log的输出,防止信息的泄露和影响效率。

具体的设置方法如下:

首先在BuildConfig中添加自定义字段。

public final class BuildConfig {
 public static final boolean LOG_DEBUG = true;
}

然后在主项目的gradle中添加变量LOG_DEBUG,并且在debug和release下分别设置不同的值

android {

    buildTypes {

        debug {
            buildConfigField "boolean", "LOG_DEBUG", "true"
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

        release {
            buildConfigField "boolean", "LOG_DEBUG", "false"
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

}

这样当发布release版本的时候就会自动关闭Log的输出。

如果想在release版本中也打印Log,只需要修改release括号内的LOG_DEBUG为true就可以了。

如何设置不同等级的Log颜色

另外,为了Log更好的查看效果,可以为不同的Log等级设置不同的颜色,这样便于Log的观看。

如下,需要“Save as”保存主题,然后取消“use inherited attributes”,即可设置自己想要的颜色

我的配色方案:

  • A=FF2E0E

  • D=38F838

  • E=FF6B68

  • I=1DBB92

  • V=FFF7EE

  • W=FF9229

打印效果

原文链接:http://www.apkbus.com/blog-705730-61806.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消