当前位置: 首页 > news >正文

Android开发 LogDog (日志狗)V2.0.0

目录

一、简介

二、使用推荐

1、初始化LogDog

2、运行中如何更改初始化时的配置?

三、更改

四、新功能

1、Log过滤

2、自定义打印

3、提供占位符式打印


一、简介

LogDog V1.0 版本https://blog.csdn.net/Ym_quiet/article/details/130453232?spm=1001.2014.3001.5501     LogDog V1.2版本https://blog.csdn.net/Ym_quiet/article/details/130550198?spm=1001.2014.3001.5501

二、使用推荐

添加LogDog依赖

dependencies {implementation 'com.gitee.ym521:logdog:2.0.0'}

为了大家更好的使用LogDog,下面我推荐一个简单的使用示例

1、初始化LogDog

 Kotlin示例

class MyApplication:Application() {override fun onCreate() {super.onCreate()val gson =  GsonBuilder().setPrettyPrinting().create()val logdog =LogDog.Builder().logShowMethodEnable(true,3).logShowThreadInfoEnable(true).build()logdog.install(this,object :IJsonEngine{override fun <T> toJSON(obj: T): String {return  gson.toJson(obj)}})}}

Java示例

public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();Gson gson = new GsonBuilder().setPrettyPrinting().create();LogDog logdog = new LogDog.Builder().logShowMethodEnable(true, 3).logShowThreadInfoEnable(true).build();logdog.install(this, new IJsonEngine() {@NonNull@Overridepublic <T> String toJSON(T t) {return gson.toJson(t);}});}
}

IJsonEngine 为LogDog 对外暴露的Gson接口,也是对log内的引用类型的参数提供Json化的实现,在这里我使用的是Gson

implementation 'com.google.code.gson:gson:2.9.0'

2、运行中如何更改初始化时的配置?

 LogDog.Builder()/*** 打印日志过滤日志级别,默认全部打印* 日志过滤是过滤掉你添加的日志级别,不想打印的级别日志需要你添加对应的日志级别*/.logFilter(LogDog.WARN or LogDog.DEBUG)/*** 默认未启用* @param enabled 是否打印方法信息* @param methodCount 打印方法的个数 如果小于1 为1,大于10 为10*/.logShowMethodEnable(true,2)/*** 默认未启用* 是否打印线程信息*/.logShowThreadInfoEnable(true)/*** 默认是未启用* 是否将日志写入日志文件中* 日志文件以当天日期为单位生成*/.logWriteLogFileEnable(true)/*** 默认是未启用* 是否启动AES 加密 * 如果启动加密 但未配置key下,* 将使用默认秘钥"0000000000000000"*/.logFileAESEnable(true,"123456")/*** 默认未启用* 是否将日志文件输出到外部私有空间*/.logFileShowEnable(true)/*** 默认值 LOGDOG* 缺省TAG设置,没有自行填写的TAG的统一使用缺省TAG*/.defaultTAG("APP_LOG")

只需要再次对LogDog.Builder() 进行设置 就会覆盖初始化时的配置。

三、更改

新版本V2.0.0版本,去除了以前统一关闭打印输出,改为过滤式关闭Log打印输出,具体使用下面将提供java和kotlin示例

kotlin示例

 LogDog.Builder()/*** 打印日志过滤日志级别,默认全部打印* 日志过滤是过滤掉你添加的日志级别,不想打印的级别日志需要你添加对应的日志级别*/.logFilter(LogDog.WARN or LogDog.DEBUG)

Java示例

new LogDog.Builder()* 打印日志过滤日志级别,默认全部打印* 日志过滤是过滤掉你添加的日志级别,不想打印的级别日志需要你添加对应的日志级别*/.logFilter(LogDog.WARN | LogDog.DEBUG)

注意:过滤多个log级别,采用“或”运算拼接, kotlin 使用 or ,Java 使用 |  来选择要过滤(关闭)的日志级别,例如示例代码就是过滤warn和debug日志级别,非这里两个都可以打印输出。

四、新功能

新版本V2.0.0版本,新功能:打印过滤、自定义打印、提供占位符式打印。

1、Log过滤

在标题三中已阐述,在这里不在重复。

2、自定义打印

 /**
* @param printer 打印开关
* @param write 写文件开关
*/
fun custom( printer, write, priority, tag, msg) 

注意:printer 和write ,这两个开关将不会被LogDog.Builder 覆盖,也不会覆盖LogDog.Builder中的配置。

3、提供占位符式打印

示例代码:

 LogDog.errorf("DEBUG","我是%log,我的主人是%log","LogDog","Ym")

当然还有其他相关的方法函数提供例如 LogDog.debugf(),LogDog.customf()等,当然填充占位符的变量也不限制类型,还是一样引用类型将会被Json化后填充占位符。

注意:这里的占位符是%log(属于自定义的不能是%Log 、% log、%LOG、%s等;还有就是占位符个数必须大于等于对应的变量个数,反之会发生异常!

如果对您有一些意义,希望您给博主一些鼓励(点赞、关注、收藏),如果这个LogDog有BUG欢迎大家提出。

相关文章:

Android开发 LogDog (日志狗)V2.0.0

目录 一、简介 二、使用推荐 1、初始化LogDog 2、运行中如何更改初始化时的配置&#xff1f; 三、更改 四、新功能 1、Log过滤 2、自定义打印 3、提供占位符式打印 一、简介 LogDog V1.0 版本https://blog.csdn.net/Ym_quiet/article/details/130453232?spm1001.2014…...

JavaScript break

在JavaScript中&#xff0c;break语句用于提前退出或终止循环或switch语句。它允许您立即停止循环或switch的执行&#xff0c;并继续执行后面的代码。 以下是在循环中使用break的示例&#xff1a; javascript for (var i 0; i < 10; i) { if (i 5) { break; // 当…...

linux服务器使用curl命令处理常用es查询

目录 场景&#xff1a; 结果格式化显示&#xff1a; 验证服务启动&#xff1a; 单个参数变量查询&#xff1a; 分页查询&#xff1a; 日期范围查询: must中单个参数条件查询 must中多个参数条件查询 使用filter过滤查询 使用sort过滤查询 总结&#xff1a; 场景&#xf…...

Office Visio 2013安装

哈喽&#xff0c;大家好。今天一起学习的是Visio 2013的安装&#xff0c;这是一个绘制流程图的软件&#xff0c;用有效的绘图表达信息&#xff0c;比任何文字都更加形象和直观。Office Visio 是office软件系列中负责绘制流程图和示意图的软件&#xff0c;便于IT和商务人员就复杂…...

C++ 私有析构函数的作用

如果一个类的析构函数声明为私有&#xff08;private&#xff09;&#xff0c;其他对象或函数将无法直接调用析构函数。这意味着如果你尝试使用delete操作符删除该类的对象&#xff0c;将会导致编译错误&#xff0c;因为析构函数是不可访问的。 将析构函数声明为私有是一种防止…...

【C++】deque的用法

目录 一、容器适配器二、deque的介绍三、deque的使用及缺陷1、deque的构造函数2、deque的元素访问接口3、deque的 iterator的使用4、deque的增删查改4、deque的缺陷5、为什么选择deque作为stack和queue的底层默认容器 一、容器适配器 在了解deque前&#xff0c;我们先讲一讲什…...

Live800:智能客服有哪些未来发展趋势?

智能客服&#xff0c;也称智能问答系统&#xff0c;是一种利用机器学习、自然语言处理等技术实现自主询问、自主应答、自主维护的自动化系统。它们可以通过文字形式&#xff0c;为用户提供个性化、一对一的服务&#xff0c;避免了人工客服的人力成本和等待时间。 未来&#xff…...

【一】Java SE 基础

文章目录 一、初始Java1.1 什么是Java1.2 Java的特点1.3 第一个Java程序 二、数据类型与变量2.1 基本数据类型2.2 基本数据类型对应的包装类2.3 变量2.4 类型转换2.5 字符串类型及其与数字之间的转换 三、运算符3.1 算术运算符3.2 赋值运算符3.3 关系运算符3.4 逻辑运算符3.5 位…...

Linux防火墙学习笔记2

iptables是什么&#xff1f; 1&#xff09;iptables 不是防火墙&#xff0c;是防火墙用户代理。 2&#xff09;用于把用户的安全设置添加到“安全框架”中。 3&#xff09;“安全框架”是防火墙。 4&#xff09;安全框架的名称是netfilter。 5&#xff09;netfilter位于内…...

Linux下MongDB定时备份方案

1. 安装crontabs 首先安装crontabs yum install crontabs 2. 创建备份目录 [rootlocalhost data]# mkdir -p /data/backup/mongo/mongodb_bak_tmp [rootlocalhost data]# mkdir -p /data/backup/mongo/mongodb_bak_path 3. 创建MongoDB备份shell脚本 有密码&#xff1a; …...

长尾词挖掘,长尾词的优化方法有哪些

我们都知道&#xff0c;长尾词能给我们带来较高的流量和转化率&#xff0c;且优化难度低&#xff0c;成本低。今天就来分享长尾词的优化方法。 首先需要挖掘长尾词&#xff0c;挖掘长尾词的方法以下3种比较实用&#xff1a; 1、使用长尾词挖掘工具 可以通过第三方工…...

JUC基础-0601

6 多线程锁 6.1 锁的八个问题演示 class Phone {public static synchronized void sendSMS() throws Exception {//停留4秒TimeUnit.SECONDS.sleep(4);System.out.println("------sendSMS");}public synchronized void sendEmail() throws Exception {System.out.p…...

bash特性

bash bash是一个命令处理器&#xff0c;运行在文本窗口zh哦那个&#xff0c;执行用户输入的命令。 1、bash特性–历史命令 保留用户的历史执行的命令&#xff0c;可以使用history查看之前执行过的命令 #通过$HISTORY查看保存的命令条数 echo $HISTORY #存放用户执行的历史…...

[Flink] Flink On Yarn(yarn-session.sh)启动错误

在Flink上启动 yarn-session.sh时出现 The number of requested virtual cores for application master 1 exceeds the maximum number of virtual cores 0 available in the Yarn Cluster.错误。 版本说明&#xff1a; Hadoop&#xff1a; 3.3.4 Flink&#xff1a;1.17.1 问题…...

玩转css逐帧动画,努力成为更优质的Ikun~

&#x1f389; 一、前言 css3的animation想必大家都知道吧&#xff0c;那 steps 逐帧动画你知道吗&#xff1f;对于我来说&#xff0c;实际工作及练习中也很少用到这种跳跃式变化的动画&#xff0c;而它start和end的解释又比较“不说人话”&#xff0c;以前用到steps动画的时候…...

Linux Capabilities

Linux Capabilities是一种细粒度的权限管理机制,用于将root用户的特权划分为具体的功能集。它允许将部分root特权授予非root进程。 可以在shell中运行: man capabilities将显示capability man page,其中包含有关Linux功能的详细信息。 文章目录 什么是CapabilitiesLinux Cap …...

【自制C++深度学习框架】前言

KuiperCourse 介绍 此GitHub项目是一个初学者的深度学习框架&#xff0c;使用C编写&#xff0c;旨在为用户提供一种简单、易于理解的深度学习实现方式。以下是本项目的主要特点和功能&#xff1a; 计算图&#xff1a;使用计算图来描述深度学习模型的计算过程&#xff0c;利用计…...

【高危】泛微 e-cology9 存在任意用户登录漏洞

漏洞描述 泛微协同管理应用平台(e-cology)是一套企业大型协同管理平台。 泛微e-cology9部分版本中存在前台任意用户登录漏洞&#xff0c;由于系统默认配置固定密钥进行用户身份验证。 当存在/mobile/plugin/1/ofsLogin.jsp文件时&#xff08;可能通过插件方式安装&#xff0…...

1TB文本的实时全文检索系统搭建

1个T的文本是多大呢&#xff1f;1TB 1000GB&#xff0c;1GB是10亿&#xff0c;1TB就是1万亿字节。如果是英文字符&#xff0c;1TB文本就是1万亿个英文字符&#xff0c;如果是中文字符而且都是UTF8格式&#xff0c;1个中文字符占3个字节&#xff0c;1TB文本是3333亿中文字符&am…...

RHCA---DO477---变量实验

实验目的如下: 1. 环境准备: 使用命令lab inventory-variables start初始化环境 2. 进入/home/student/git-repos目录克隆下载http://git.lab.example.com:8081/git/inventory-variables.git 3. 将目录下yaml文件内容以group_vars形式修改 4. 部署并将修改后ansible-playbook代…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...