Android开源 日志框架 LogDog V2.3.1

目录

一、简介

二、下载使用

[添加jitpack 仓库](#添加jitpack 仓库)

添加依赖:

三、更改

[1、 LogDogV2.3.1初始化:](#1、 LogDogV2.3.1初始化:)

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

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

四、新增

[1、新增 log 格式换行开关](#1、新增 log 格式换行开关)

[2、新增log 方法栈打印深度校准](#2、新增log 方法栈打印深度校准)

3、新增日志文件分享

五、结语


一、简介

以前版本:

Android开源 日志框架 LogDog V2.0.0https://blog.csdn.net/Ym_quiet/article/details/130838654

Android开源 日志框架 LogDog V1.2https://blog.csdn.net/Ym_quiet/article/details/130550198

Android开源 日志框架 LogDog V1.0https://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

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

java 复制代码
 //这里使用的是 Google开源 Gson 也可以使用其他Json 框架 如:阿里的FastJson
  Gson gson = new Gson();
   logDog.install(this, new IJsonEngine() {
            @NonNull
            @Override
            public 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

Kotlin 复制代码
 LogDog.builder
        .wrapFormat()

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

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

Koltin

Kotlin 复制代码
 LogDog.builder
     .extraOffset()

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

3、新增日志文件分享

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

好了开始配置:

在AndroidManifest.xml 新增如下:

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>

代码上:

Kotlin 复制代码
LogDog.logFileShare()

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

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

五、结语

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

相关推荐
程序员陆业聪1 天前
Android插件化原理与方案详解
android
likeshop 好像科技1 天前
新手学习AI智能体Agent逻辑设计的指引
人工智能·学习·开源·github
豆豆1 天前
企业网站模板 开源企业网站模板 网页模板源码 整站网站源码
开源·cms·源码·建站系统·网站源码·网页源码·模板源码
嗝o゚1 天前
开源鸿蒙 Flutter 应用包瘦身实战
flutter·华为·开源·harmonyos
中冕—霍格沃兹软件开发测试1 天前
Git版本控制在测试项目管理中的应用
人工智能·git·科技·开源·appium·bug
惟恋惜1 天前
Jetpack Compose 界面元素状态(UI Element State)详解
android·ui·android jetpack
_李小白1 天前
【Android FrameWork】延伸阅读:IGraphicBufferProducer驱动UI绘制过程
android·ui
_李小白1 天前
【Android FrameWork】第二十八天:Activity 的 UI 绘制全过程
android·ui
武汉唯众智创1 天前
高职510220开源技术与应用专业产教协同育人解决方案
开源·开源技术·开源技术与应用专业·开源技术与应用·开源开发·开源应用·开源技术与应用实训室
_李小白1 天前
【Android FrameWork】第三十天:Surface创建流程解析
android