一个简易的埋点解决方案(基于JakeWharton的hugo基础上改造)
-
JakeWharton的hugo的所有特点。
-
支持自定义对象序列化接口,方便打印对象。
-
内置默认的logcat打印突破了4000的打印限制。
-
支持日志的自定义打印(不仅简单的Logcat)。你可以使用我的XLog进行扩展。
-
支持设置日志的打印优先级。
目前支持主流开发工具AndroidStudio的使用,直接配置build.gradle,增加依赖即可.
1.先在项目根目录的 build.gradle 的 repositories 添加:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
2.再在项目根目录的 build.gradle 的 dependencies 添加xmark插件:
buildscript {
···
dependencies {
···
classpath 'com.github.xuexiangjys.XMark:xmark-plugin:1.0.5'
}
}
3.在项目的 build.gradle 中增加依赖并引用xmark插件
apply plugin: 'com.xuexiang.xmark' //引用xmark插件
dependencies {
···
implementation 'com.github.xuexiangjys.XMark:xmark-runtime:1.0.5' //添加依赖
}
XMark.debug(true); //默认是false
1.记录方法的执行
priority: 打印日志的优先级
@MarkLog
private void printDemo1(String lab, String name) {
Log.d("printing", lab + name);
}
@MarkLog(priority = Log.ERROR)
private String printDemo2(String lab, String name) {
return lab + name;
}
2.记录类的创建
@MarkLog
static class Greeter {
private final String name;
Greeter(String name) {
this.name = name;
}
private String sayHello() {
return "Hello, " + name;
}
}
1.可在应用初始化的Application下进行如下操作:
XMark.setLogger(new ILogger() { //设置日志打印的实现接口
@Override
public void log(int priority, String tag, String msg) {
···打印的方法
}
});
2.设置打印日志的优先级
如果只想打印出错信息及以上的日志,可如下设置:
XMark.setPriority(Log.ERROR);
3.设置对象序列化器,这样就不需要给每个对象重写其toString方法了。
XMark.setIObjectSerializer(new IObjectSerializer() {
@Override
public String toString(Object obj) {
return JsonUtil.toJson(obj); //直接转为json的对象序列化
}
});