Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 

Repository files navigation

FxLog

简介

FxLog是一个android控制台日志打印库,内部封装了表格式的日志展现形式,默认添加了Json数据格式化的转换器和表格式的打印器,用户可以通过Converter注解实现自己的格式化转换器,输出自己想要的日志格式。也可以通过Printer注解实现自己的打印器也就是非默认的表格式。

效果

github
github

集成

dependencies {
    implementation 'com.github.airland:fxlog:1.0.0'
    annotationProcessor 'com.github.airland:fxlog-compiler:1.0.0'
}

使用

  #是否开启debug模式,设置为true才会打印日志
  FxLog.init(true);
  #日志分为d,w,e,i,v五个级别,其中方法名中Thread代表打印线程信息,Stack代表打印方法调用栈信息
  FxLog.d("AirLand", "简单打印日志");
  FxLog.wThread("AirLand", "打印线程信息");
  FxLog.vJson("AirLand", "{\"formtArrs\":[],\"info\":{\"appId\":\"10141c160b424dd186d75e2aa72d43e2\",\"roomToken\":\"00610141c160b424dd186d75e2aa72d43e2IAC8LzccZZcy5rwgigsGxl\",\"roomid\":1084726,\"sid\":1084725},\"msg\":\"success\",\"result\":1000,\"suc\":true,\"useTemplate\":true}");
  FxLog.eStackJson("AirLand", "{\"formtArrs\":[],\"info\":{\"appId\":\"10141c160b424dd186d75e2aa72d43e2\",\"roomToken\":\"00610141c160b424dd186d75e2aa72d43e2IAC8LzccZZcy5rwgigsGxl\",\"roomid\":1084726,\"sid\":1084725},\"msg\":\"success\",\"result\":1000,\"suc\":true,\"useTemplate\":true}");

自定义转换器

需要对日志内容进行格式化处理,比如json,xml等格式的日志,库中目前默认封装的有json格式转换器,要实现自己的转换器如下:

#实现ILogConverter接口同时添加@Converter注解,name是该转换器的名字,然后rebuild一下
#FxLog类中会自动生成对应的方法例如: FxLog.iXml("AirLand", "自定义XmlConverter,这里只是一个例子没有实现xml格式化");

@Converter(name = "Xml")
public class XmlConverter implements ILogConverter {
    @Override
    public String convert(@Nullable String log) {
        return "AirLand-"+log;
    }
}

自定义打印器

如果不满足现有的打印效果可以自定义自己的打印器,想怎么打印就怎么打印,例如:

#实现IPrinter接口同时添加@Printer注解,name是打印器的名字,然后rebuild一下
#FxLog类中会自动生成对应的方法例如:FxLog.dCustomPrinter("AirLand","自定义Printer");

@Printer(name = "CustomPrinter")
public class CustomPrinter implements IPrinter {
    @Override
    public void printLog(ILogConverter iLogConverter, int showLevel, int logLevel, String tag, String message) {
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append(" \n***********************************************")
            .append("\n*")
            .append("\t")
            .append(message)
            .append("\t\t")
            .append("\n***********************************************");
        Log.d(tag, stringBuilder.toString());
    }
}

About

android日志格式化打印,编译时注解自定义转换器和打印器

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages