Android开源 日志框架 LogDog V2.3.1

news/2024/11/20 0:35:54/

目录

一、简介

二、下载使用

 添加jitpack 仓库

添加依赖:

三、更改

1、 LogDogV2.3.1初始化:

2、通过上面的初始化 ,已经知道IJsonEngine 优化了泛型参数,采用 Object/Any 

3、优化空异常的判断,哪怕打印变量是NULL LogDog会打印“null” 提示开发人员

四、新增

1、新增 log 格式换行开关

2、新增log 方法栈打印深度校准

3、新增日志文件分享

五、结语


一、简介

   以前版本:

Android开源 日志框架 LogDog V2.0.0icon-default.png?t=N7T8https://blog.csdn.net/Ym_quiet/article/details/130838654

      Android开源 日志框架 LogDog V1.2icon-default.png?t=N7T8https://blog.csdn.net/Ym_quiet/article/details/130550198

      Android开源 日志框架 LogDog V1.0icon-default.png?t=N7T8https://blog.csdn.net/Ym_quiet/article/details/130453232

LogDog 2.3.1版本,比较之前版本,变化有点大,如果已经引用之前的版本,需要修改初始化和初始化配置,但是在log 打印调用方法,不需要更改,LogDog框架始终以兼容的角度去优化框架,不会出现更新版本后,需要大量更改以前的代码调用,而是尽可能采取扩展式优化,减少重构式或者重写式优化,不管怎么样,在使用LogDog时哪怕要重写也是采用内部重写,外部调用方法不变。

二、下载使用

 添加jitpack 仓库

Android Gradle Plugin 为 v7.1.0 以下版本:进入项目根目录,打开 “build.gradle” 文件,在 “allprojects” 中加入如下代码:

...

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
        mavenCentral()
        google()
    }
}

当您的 Android Gradle Plugin 为 v7.1.0 或以上版本:进入项目根目录,打开 “settings.gradle” 文件,在 “dependencyResolutionManagement” 中加入如下代码:

...

dependencyResolutionManagement {         repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)

        repositories {   

                   maven { url 'https://jitpack.io' }

                  mavenCentral()

                  google()

         }

}

添加依赖:

进入 “app” 目录,打开 “build.gradle” 文件,在 “dependencies” 中添加 :

...

dependencies {

...

implementation "com.gitee.ym521:logdog:2.3.1"

}

三、更改

1、 LogDogV2.3.1初始化:

Kotlin

logDog.install(this, object : IJsonEngine {override fun toJSON(obj: Any): String {return gson.toJson(obj)}})LogDog.builder.logWriteLogFileEnable(true) //是否开启写入日志文件.logShowMethodEnable(true) //是否开启显示方法栈信息 默认打印两个方法信息.logShowThreadInfoEnable(true) //是否打印当前线程信息

Java

 //这里使用的是 Google开源 Gson 也可以使用其他Json 框架 如:阿里的FastJsonGson gson = new Gson();logDog.install(this, new IJsonEngine() {@NonNull@Overridepublic String toJSON(@NonNull Object obj) {return gson.toJson(obj);}});LogDog.getBuilder().logWriteLogFileEnable(true) //是否开启写入日志文件.logShowMethodEnable(true) //是否开启显示方法栈信息 默认打印两个方法信息.logShowThreadInfoEnable(true); //是否打印当前线程信息

其他更多配置可以参考LogDog V2.0.0 ,配置方法级别不会发生改变,一般只会新增。

2、通过上面的初始化 ,已经知道IJsonEngine 优化了泛型参数,采用 Object/Any 

3、优化空异常的判断,哪怕打印变量是NULL LogDog会打印“null” 提示开发人员

四、新增

1、新增 log 格式换行开关

  Koltin

 LogDog.builder.wrapFormat()

默认是没有开启的,也就是默认不会换行的就是Log 有多长会打印多长,但是会在系统日志安全长度内,如果超出会被强制切断打印输出到下一条Log。这个开关建议在开发调试可以开启,在测试阶段如果需要Log文件输出建议关闭,因为会对日志文件产生误解。

2、新增log 方法栈打印深度校准

Koltin

 LogDog.builder.extraOffset()

这个主要是对LogDog.custom()有自己封装需求的开发人员开放的,因为有自己封装的会多一层方法(封装方法层),深度校准范围[-3,5] ,闭区间 -3到5。

3、新增日志文件分享

在我们日常开发时,总是需要修复Bug,但是Android开发的bug就不好找了,尤其碰到非专业测试,他们给的现象都不是准确,但是APP 又是在他们测试手机上,每次copy Log文件也很麻烦,所以我嘛,纯属就是怕麻烦,新增在这个Log文件分享的功能,测试APP 直接把Log文件分享给办公APP 然后发给开发人员不就很方便了。

好了开始配置:

 在AndroidManifest.xml 新增如下:

<provider android:name="com.ym521.logdog.provider.LogFileShareProvider"android:authorities="${applicationId}.fileshare" android:exported="false"android:grantUriPermissions="true"><meta-data android:name="android.support.FILE_PROVIDER_PATHS"android:resource="@xml/provider_logfile_paths" />
</provider>

代码上:

LogDog.logFileShare()

注意:必须开启了日志文件输出(logWriteLogFileEnable(true)),不然调用是没有效果的

期望:后面可能会把crash 日志加入进去,大概只需要开发人员,开启搜集Crash Log开关就可以将Crash 日志写入日志文件内。方便定位bug。

五、结语

希望您给博主一些鼓励(点赞、关注、收藏),如果LogDog有BUG或者您有好的建议欢迎大家提出。


http://www.ppmy.cn/news/1112849.html

相关文章

go Gorm连接数据库,并实现增删改查操作

Gorm 1. 准备工作 首先进入终端下载我们需要的包&#xff08;确保go和mysql安装完成&#xff0c;并设置了环境变量&#xff09; go get -u gorm.io/driver/mysql go get -u gorm.io/gorm有两份官方文档有对 GORM 更详细的讲解。 创建 | GORM - The fantastic ORM library f…

怎么给网络加速

首先&#xff0c;按winr&#xff0c;调出运行窗口。 输入cmd&#xff0c;回车&#xff0c;再输入gpedit.msc&#xff0c;调出本地组策略编辑器。 点击计算机配置下的管理模版。 再点击网络。 再点击Qos数据包计划程序。 再点击限制可保留宽带。 选择已启用&#xff0c;再把带宽…

def和class的区别

fed浅谈Python内 def 与 class 的区别--知识点整理&#xff08;B站 - BV11g411w73x&#xff09;_pythonclass和def的区别_奋进的小咸鱼的博客-CSDN博客def 是用于函数的封装代码如下&#xff1a;def jianfa(a,b): print(a-b) jianfa(100,9)输出结果&#xff1a;91class可用于多…

浅谈C++|构造.析构函数篇

一对象的初始化和处理 1.1构造函数和析构函数 C拥有构造函数和析构函数&#xff0c;这两个函数将会被编译器自动调用&#xff0c;完成对象初始化和清理工作。对象的初始化和清理工作是编译器强制要我们做的事情&#xff0c;因此如果我们不提供构造和析构&#xff0c;编译器提供…

TouchGFX之缓存位图

位图缓存是专用RAM缓冲区&#xff0c;应用可将位图保存&#xff08;或缓存&#xff09;在其中。 如果缓存了位图&#xff0c;在绘制位图时&#xff0c;TouchGFX将自动使用RAM缓存作为像素来源。位图缓存在许多情况下十分有用。 从RAM读取数据通常比从闪存读取要快&#xff08;特…

Mapbox加载arcgis的底图

成果图 这种底图基本上都是按照raster来加载的&#xff0c;主要就是知道地址了&#xff0c;拼参数 具体参数请参考官网 https://developers.arcgis.com/rest/services-reference/enterprise/export-map.htm 源码 我的服务列表是这样的 http://XXXX:XXXX/arcgis/rest/services/…

【k8s】kube-proxy 工作模式

文章目录 Userspace模式&#xff1a;iptables模式&#xff1a;负载均衡&#xff08;Load Balancing&#xff09; LB轮询&#xff08;Round Robin&#xff09;&#xff1a;SessionAffinity&#xff1a;最少连接&#xff08;Least Connection&#xff09;&#xff1a;IP哈希&…

uni-app监听页面滚动

在uni-app中可以通过监听页面滚动事件来实现滚动效果或响应滚动事件 在需要监听滚动的页面或组件中&#xff0c;添加一个scroll元素&#xff0c;用于容纳内容并实现滚动效果。 <template><view class"container"><scroll-view scroll-y scroll"…