Skip to content

XingdongYu/MethodLog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MethodLog

前言

  • 当应用的业务逻辑比较复杂时,我们经常会因为方法的调用顺序烦恼,且Debug远远没有Log来的直观。
  • 用AspectJ实现日志的repo很多,却没有找到整体输出的。
  • 实现比较简单,但由于AspectJ的实现需要创建lib,建一个库可以方便在测试时使用。

MethodLog将所有的方法当作切面,在日志输出时进行统一过滤,并非最优解。这么做主要是为了能展示方法的调用顺序, 并且能够方便快速地使用。建议只在测试时引入。

引入

延用了Jake Wharton God Hugo 中的Plugin。由于引入库不同,稍作了修改。

buildscript {
    dependencies {
        classpath 'com.robog.methodlog:methodlog-plugin:1.0.1'
    }
}

apply plugin: 'com.robog.methodlog'

可通过如下方式禁用:

MethodLog {
    enabled false
}

使用

Runtime期间可以通过 LogConfig.get().enable()启用Log,通过 LogConfig.get().disable()停用。默认开启。

在Application中进行统一配置:

public class LogApplication extends Application {

    /**
     * 若不配置,默认输出所有方法log
     */
    {
        final LogConfig logConfig = LogConfig.get();
        // 屏蔽类
        logConfig.mode(LogMode.BLOCK).blockClass(MainActivity.class, SecondActivity.class);
        // 选择类
        logConfig.mode(LogMode.SELECT).selectClass(MainActivity.class, SecondActivity.class);

        // 屏蔽方法
        logConfig.blockMethod("onCreate");
    }

}

LogMode.BLOCK和LogMode.SELECT互斥,默认模式为LogMode.BLOCK,屏蔽method不受LogMode约束。 若blockMethod参数为"on",则会屏蔽所有以"on"开头的方法。

输出

日志的输出借鉴了logger

image

关于Kotlin

可参考gradle_plugin_android_aspectjx

About

一个可以查看方法调用顺序的库

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors