订制自己的日志工具
来源:互联网 发布:战地1终极版 淘宝 编辑:程序博客网 时间:2024/04/28 01:30
打个比方,你正在编写一个比较庞大的项目,期间为了方便调试,在代码的很多地方都打印了大量的日志。最近项目已经基本完成了,但是却有一个非常让人头疼的问题,之前用于调试的那些日志,在项目正式上线之后仍然会照常打印,这样不仅会降低程序的运行效率,还有可能将一些机密的数据泄漏出去。
如果你想一行一行的把 所有的打印日志代码都删掉,显然这不是什么好点子,不仅费时费力,而且以后你继续维护这个项目的时候可能还会需要这些日志,所以最理想的情况是能够自由地控制日志的打印,当程序处于开发阶段就让日志打印出来,当程序上线之后就把日志屏蔽掉。
下面我们来编写一下这个日志工具
public class LogUtil { public static final int VERBOSE = 1; public static final int DEBUG = 2; public static final int INFO = 3; public static final int WARN = 4; public static final int ERROR = 5; public static final int NOTHING = 6; public static final int LEVEL = VERBOSE; public static void v(String tag, String msg) { if (LEVEL <= VERBOSE) { Log.v(tag, msg); } } public static void d(String tag, String msg) { if (LEVEL <= VERBOSE) { Log.v(tag, msg); } } public static void i(String tag, String msg) { if (LEVEL <= INFO) { Log.i(tag, msg); } } public static void w(String tag, String msg) { if (LEVEL <= WARN) { Log.w(tag, msg); } } public static void e(String tag, String msg) { if (LEVEL <= ERROR) { Log.e(tag, msg); } }}可以看到我们在LogUtil中先是定义了VERBOSE、 DEBUG、 INFO、 WARN、 ERROR、 NOTHING这六个整数常量,并且它们对应的值都是递增的。然后又定义一个LEVEL常量,可以将它的值指定为上面六个常量中的任意一个。
接下来我们提供了v()、 d()、 i()、 w()、 e()这五个字定义的日志方法,在其内部分别调用了Log.v()、 Log.d()、 Log.i()、 Log.w()、 Log.e()这五个方法来打印日志,只不过这些自定义的方法中我们都加入了一个if()判断,只有当LEVEL常量的值小于或等于对应日志级别值的时候,才会将日志打印出来。
这样就把一个自定义的日志工具创建好了,之后在项目里我们可以像使用普通的日志工具一样使用LogUtil,比如打印一行DEBUG级别的日志就可以这样写:
LogUtil.d("TAG","debug log");然后我们只需要修改LEVEL等于NOTHING就可以把所有日志都屏蔽掉。使用了这种方法之后,刚才所说的那个问题就不复存在了,你只需要在开发阶段将LEVEL指定成VERBOSE,当项目正式上线的时候将LEVEL指定成NOTHING就可以了。
0 0
- 订制自己的日志工具
- 订制自己的KernelIoControl
- C#软件开发实例.私人订制自己的屏幕截图工具(一)功能概览
- C#软件开发实例.私人订制自己的屏幕截图工具(一)功能概览
- Js订制自己的AlertBox
- js订制自己的右键菜单
- centos开机界面的自己订制
- C#软件开发实例.私人订制自己的屏幕截图工具(三)托盘图标及菜单的实现
- C#软件开发实例.私人订制自己的屏幕截图工具(七)添加放大镜的功能
- C#软件开发实例.私人订制自己的屏幕截图工具(八)添加键盘操作截图的功能
- C#软件开发实例.私人订制自己的屏幕截图工具(三)托盘图标及菜单的实现
- C#软件开发实例.私人订制自己的屏幕截图工具(七)添加放大镜的功能
- C#软件开发实例.私人订制自己的屏幕截图工具(八)添加键盘操作截图的功能
- C#软件开发实例.私人订制自己的屏幕截图工具(十一)编辑工具栏的实现
- C#软件开发实例.私人订制自己的屏幕截图工具——放大镜的功能代码优化
- C#软件开发实例.私人订制自己的屏幕截图工具(四)基本截图功能实现
- C#软件开发实例.私人订制自己的屏幕截图工具(六)添加配置管理功能
- C#软件开发实例.私人订制自己的屏幕截图工具(四)基本截图功能实现
- Win7+Nginx+Tomcat7搭建负载均衡和同时实现session共享
- android opencv配置及运行时不用opencv Manager即可运行APP
- [APUE chapter 11] POSIX线程
- TensorFlow & im2txt学习笔记(一)
- GetForce规格参数
- 订制自己的日志工具
- Http的基础认识
- js中的事件委托
- android studio 常用技巧
- Java设计模式之访问者模式
- 大奖赛积分
- Python学习四(递归)
- Android_正弦波动画
- Thinkphp 打印最近执行的一条SQL语句