自定义LogUtils

在开发过程中,Log是必不可少的,在代码节点加上调试Log,可以查看调试内容,比如在网络请求前添加请求参数Log,请求完成后,打印请求结果内容的Log等等,Android提供给我们的有Log,在android.util包下;
使用:

Log.d(TAG , "This is Android Debug Log");

输出后对应LogCat中的Debug级别,内容为:This is Android Debug Log,其实Android系统的Log比Java中System.out.print多了一个Log级别的划分,但是这样的调试日志在release的时候是需要关闭的,如果每次调试完都删除Log是一件很烦恼的事情,而且如果需要再次调试的时候再添加进去,这完全是没有必要的,我们可以设置一个变量,在Debug阶段允许Log输出,在Release的时候不允许日志输出就ok了,这是一个基本的演变过程;

下面我讲述一下我希望的LogUtils希望有如下功能:
1、我可以随意在关键节点添加Log,在Release的时候进行关闭,可以使用BuildeConfig.DEBUG这个系统变量进行控制;
2、因为Android系统的Log有2个参数,TAG和msg,我比较懒,不想每次都设置TAG,希望可以获取当前的class文件作为TAG;
3,如果Log比较多,我不好区分每一条,希望加一个区域给它控制起来;
4,扩展功能,可能为了排查故障,我想要将Log输出为文件,方便进行排查;


实现
可以通过Throwable().stackTrace获取当前栈获取调用信息,方便直接通过控制台跳转到Log输出位置,通过Thread.currentThread().name 获取当前线程名称,方便查看当前Log所在的线程;

效果图如下:

NLog效果图.png

代码中使用

        btnClick.setOnClickListener({ NLogUtls.e("This is NLogUtils's log ") })

具体使用方法及源码请参考:https://github.com/NeWolf/LogUtils

你可能感兴趣的:(自定义LogUtils)