组件化思想之Log的封装
来源:互联网 发布:战地4淘宝怎么搜 编辑:程序博客网 时间:2024/05/22 23:19
前言
Android中的日志工具类是Log(android.util.Log),这个类中提供了如下5个方法来供我们打印日志
Log.v() :用于打印些最为琐碎的,意义最小的日志信息。对应级别verbose,是Android日志里面级别最低的一种
Log.d() :用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的,对应级别debug,比verbose高一级
Log.i() : 用于打印一些较为重要的数据,这些数据应该是你非常想看到的,可以帮你分析用户行为数据。对应级别info,比debug高一级
Log.w() : 用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复一下这些出现警告的地方。对应级别warn,比info高一级
Log.e(): 用于打印程序中的错误信息,比如程序进入catch语句当中。当有错误信息打印出来的时候,一般都代表你的程序出现严重的问题,必须尽快修复。对应级别error,比warn高一级。
其实很简单,一共就5个方法,当然每个方法还会有不同的重载,但对你来说不是什么难理解的地方了。
我们现在在HelloWorld项目中试一下系统自带的日志工具好不好用吧
打开HelloWorldActivity,在onCreate()方法中添加一行打印日志的语句,如下所示
protected void onCreate(Bundle savedInstanceState){super.oncreate(savedInstanceState);setContentView(R.layout.hello_world_layout);Log.d("MainActivity","开始执行");}
Log.d()方法传入了两个参数:第一个参数是tag,一般传入当前的类名就好,主要用于打印信息进行过滤;第二个参数是msg,即想要打印的具体内容。
现在可以用Shifit+F10运行HelloWorld这个项目了,或点击顶部工具类的运行按钮,在logcat中我们看到打印信息,如下所示:
10-08 07:30:24.423 1457-2245/com.lijizhi.myapplication D/MainActivity: 开始执行
从中你不仅可以看到打印日志的内容和Tag名,就连程序的包名,打印时间以及应用程序的进程号都可以看到。
那么我们为什么还要自定义Log并对其封装呢?
首先 log是有助于我们调式bug,或者看一些重要的信息,特别是在开发的过程中,难免会产生很多很多的log,但如果开发完了需要发正式的release版本,如果不撤销这些log日志,会多多少少影响着性能,还有就是也会被其他开发人员开到一些敏感的信息。android提供的Log这个类,功能太少了,如果不自己再封装下,很难达到自己的要求,比如你想在debug版本时可以随时看到日志,并且也可以给测试的同事看到,还有个场合就是正式发布的时候屏蔽所有的日志,还有些场景就是希望能看到更具体的这个log信息具体在哪个类中哪个方法中并且还可以看到具体在哪一行,它所在的线程是什么,那么Logger就可以做到。
具体操作步骤
首先建立util包,并在util包内新建一个名为L的Java Class,具体代码如下所示:
package com.lijizhi.myapplication.util;import android.util.Log;/* 项目名 MyApplication * 包名 com.lijizhi.myapplication.util * 文件名: L * 创建者 : LJZ * 创建时间:2017/10/8 0008 上午 7:41 * 描述 Log的封装*/public class L { //开关 public static final boolean DEBUG = true; //TAG public static final String TAG = "myapplication"; //五个等级 DIWE public static void d(String text){ if(DEBUG){ Log.d(TAG,text); } } public static void i(String text){ if(DEBUG){ Log.i(TAG,text); } } public static void w(String text){ if(DEBUG){ Log.w(TAG,text); } } public static void e(String text){ if(DEBUG){ Log.e(TAG,text); } }}
那么怎么使用这个封装的Log类,其实很简单,比如我们要打印一条debug级别的日志,只要相应的位置添加下面这一行就好了
L.d("开始执行");
这时再观察logcat的打印信息如下所示:
10-08 07:52:44.517 2437-2437/com.lijizhi.myapplication D/MainActivity: 开始执行
- 组件化思想之Log的封装
- 组件化思想之图片加载库picasso的用法及封装
- 组件化思想之适配器的使用及优化
- 编程思想之封装
- extjs6 基础组件扩展和自定义组件封装--04静态js方法的设计思想
- 简单的封装log
- Android Log的封装
- 封装的思想
- 封装的思想
- Android之Log的日志打印信息的封装
- Android之系统Log输出日志的封装类LogUtil
- Android之系统Log输出日志的封装类LogUtil
- 数据挖掘之导引(学习数据挖掘算法的组件化思想)
- WEB组件化思想
- 工具类的封装--Log封装
- 封装php的Log类
- 封装自己的LOG类
- 封装的log工具类
- 【LeetCode】C# 7、Reverse Integer
- Leetcode406. 根据身高重新构造队列
- 初探SQL Server 2017 on Docker@macOS
- VS Professional 2017 配置Jsoncpp
- 奋斗群群赛---15,16
- 组件化思想之Log的封装
- oracle安装教程
- 一个不错的听力训练软件
- 查看和分析微信公众号客服数据-微信公众号使用教程21
- 写好第一个Shell脚本#!/bin/bash作用
- [bzoj-1853][Scoi2010]幸运数字 题解
- oracle账户锁定后解锁
- 037 中值定理之预备知识极值点及Rolle罗尔定理
- 公众号客服怎么登录-微信公众号使用教程22