自定义日志打印
2016-02-28 16:52
381 查看
Android中的日志工具类Log(android.util.Log),这个类提供了如下几个方法来提供我们打印:
1.Log.v();
这个方法用于打印那些最为琐碎的,意义最小的日志信息。对应的级别verbose,是Android日志里面级别最低的一中。
2.Log.d();
这个方法是打印一些调试信息,这些信息对你调试程序和分析问题应该有帮助的。对应的级别是debug,比verbose高一级。
3.Log.i();
这个方法是用于打印一些比较重要的数据,这些数据应该是你非常想看的。可以帮助你分析用户行为的那种。对应级别是info,比debug高一级。
4.Log.w();
这个方法用于打印一些警告信息,提示程序在这个地方可能存在潜在的风险,最好去修复一下这些出现的警告的地方。对应的级别warm,比info高一级。
5.Log.e();
这个方法是打印程序中的错误信息,比如程序中的catch语句当中,有错误信息打印的时候。对应的级别是error,比warm高一级
现在我们了解了Android的打印数据的级别,当时有这写在项目中应用还是不够的,这样在项目上线之前我们还要一个一个的将项目中的日志打印代码删除,来保护一些机密诗句不被泄露或者提高运行效率,现在我们就来设计一个既不用删除代码并且能够随意切换日志级别与是否打印的自定义的日志工具类。
1.Log.v();
这个方法用于打印那些最为琐碎的,意义最小的日志信息。对应的级别verbose,是Android日志里面级别最低的一中。
2.Log.d();
这个方法是打印一些调试信息,这些信息对你调试程序和分析问题应该有帮助的。对应的级别是debug,比verbose高一级。
3.Log.i();
这个方法是用于打印一些比较重要的数据,这些数据应该是你非常想看的。可以帮助你分析用户行为的那种。对应级别是info,比debug高一级。
4.Log.w();
这个方法用于打印一些警告信息,提示程序在这个地方可能存在潜在的风险,最好去修复一下这些出现的警告的地方。对应的级别warm,比info高一级。
5.Log.e();
这个方法是打印程序中的错误信息,比如程序中的catch语句当中,有错误信息打印的时候。对应的级别是error,比warm高一级
现在我们了解了Android的打印数据的级别,当时有这写在项目中应用还是不够的,这样在项目上线之前我们还要一个一个的将项目中的日志打印代码删除,来保护一些机密诗句不被泄露或者提高运行效率,现在我们就来设计一个既不用删除代码并且能够随意切换日志级别与是否打印的自定义的日志工具类。
package *; import android.text.TextUtils; import android.util.Log; /** * * 日志打印工具 */ public class LogUtil { /** * level 决定日志的显示级别, * VERBOSE显示所有级别日志 * 显示中间个个级别的日志 * NOTHING不是显示任何日志 */ private static final int VERBOSE = 1; private static final int DEBUG = 2; private static final int INFO = 3; private static final int WARN = 4; private static final int ERROR = 5; private static final int NOTHING = 6; /** * 控制打印级别 * 是否打印日志 */ private static final int LEVEL = VERBOSE; //本项目默认tag private static final String defaultTag = "zonglv"; public static void v(String msg){ v(null, msg); } public static void v(String tag, String meg){ if(TextUtils.isEmpty(tag)){ tag = defaultTag; } if(LEVEL <= VERBOSE){ Log.v(tag,meg); } } public static void d(String msg){ d(null, msg); } public static void d(String tag, String msg){ if(TextUtils.isEmpty(tag)){ tag = defaultTag; } if(LEVEL <= DEBUG){ Log.d(tag, msg); } } public static void i(String msg){ i(null, msg); } public static void i(String tag, String msg){ if(TextUtils.isEmpty(tag)){ tag = defaultTag; } if(LEVEL <= INFO){ Log.i(tag, msg); } } public static void w(String msg){ w(null,msg); } public static void w(String tag, String msg){ if(TextUtils.isEmpty(tag)){ tag = defaultTag; } if(LEVEL <= WARN){ Log.w(tag, msg); } } public static void e(String msg){ e(null, msg); } public static void e(String tag, String msg){ if(TextUtils.isEmpty(tag)){ tag = defaultTag; } if(LEVEL <= ERROR){ Log.e(tag, msg); } } }
相关文章推荐
- Dijkstra 模板 最短路
- mac OS X中升级php5.5至php5.6 or php7
- hadoop在linux上的配置
- 华为机试题: 将数组中的字符串按指定长度重新分割(java)
- String类中你不知道的知识
- String类中你不知道的知识
- muduo库的学习6---Buffer的基本设计
- [leetcode] 314. Binary Tree Vertical Order Traversal 解题报告
- Java HashMap 核心源码解读
- FFmpeg源码结构图 - 解码
- namenode两次格式化的问题
- WordPress中文汉字username不能注冊怎么办?
- APP市场推广统计有效推广量新思路
- SQL学习记录
- MFC中利用序列化技术实现撤销功能
- 3696: 化合物|树形DP
- 配置CENTOS YUM更新源
- PAT-1024 科学计数法
- 实现RadioGroup与Fragment的交互
- 会议论文重新投稿算不算侵权?这肯定是所多人都遇到过的问题(转)