您现在的位置是:首页 >技术交流 >Android开发 LogDog (日志狗)V2.0.0网站首页技术交流
Android开发 LogDog (日志狗)V2.0.0
目录
一、简介
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 {
@Override
public 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
@Override
public <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欢迎大家提出。