
Android中的日志工具类Log详细介绍
发布日期:2021-05-06 00:55:30
浏览次数:24
分类:原创文章
本文共 2127 字,大约阅读时间需要 7 分钟。
1. 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高一级。 |
1.1 为什么不使用System.out而去使用Log
我相信很多的Java新手都非常喜欢使用System.out.println()方法来打印日志,不知道你是不是也喜欢这么做。不过在真正的项目开发中,是极度不建议使用System.out.println()方法的!为什么System.out.println()方法会这么遭大家唾弃呢?经过我仔细分析之后,发现这个方法除了使用方便一点之外,其他就一无是处了。。那缺点又在哪儿了呢?这个就太多了,比如日志打印不可控制、打印时间无法确定、不能添加过滤器、日志没有级别区分…
1.1.1 logcat中可以很轻松的添加过滤器
目前只有3个过滤器,Show only selected application表示只显示当前选中程序的日志,Firebase是谷歌提供的一个分析工具,我们可以不用管它,No Filters相当于没有过滤器,会把所有的日志都显示出来。那可不可以自定义过滤器呢?当然可以,我们现在就来添加一个过滤器试试。
点击图中的Edit Filter Configuration,会弹出一个过滤器配置界面。我们给过滤器起名叫data,并且让它对名为data的 tag进行过滤,如下图所示:
2.
点击OK,你就会发现你已经多出了一个data过滤器。当你点击这个过滤器的时候,你会发现刚才在onCreate()方法里打印的日志没了,这是因为data这个过滤器只会显示tag名称为data的日志。你可以尝试在oncreate()方法中把打印日志的语句改成Log.d( " data","onCreateexecute"), 然后再次运行程序,你就会在data过滤器下看到这行日志了。不知道你有没有体会到使用过滤器的好处,可能现在还没有吧。不过当你的程序打印出成百上千行日志的时候,你就会迫切地需要过滤器了。
public class HelloWorldActivity extends AppCompatActivity { private static final String TAG="HelloWorldActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.hello_world_layout); Log.d("data", "onCreate: execute"); }}
运行结果(在Android Monitor里面查看):
1.1.2 logcat 中的日志级别控制
logcat中主要有5个级别
当前我们选中的级别是verbose,也就是最低等级。这意味着不管我们使用哪一个方法打印日志,这条日志都一定会显示出来。而如果我们将级别选中为debug,这时只有我们使用debug及以上级别方法打印的日志才会显示出来,以此类推。你可以做一下试验,当你把 logcat中的级别选中为info、warn或者error时,我们在oncreate()方法中打印的语句是不会显示的,因为我们打印日志时使用的是Log.d()方法。日志级别控制的好处就是,你可以很快地找到你所关心的那些日志。相信如果让你从上千行日志中查找一条崩溃信息,你一定会抓狂的吧。而现在你只需要将日志级别选中为 error,那些不相干的琐碎信息就不会再干扰你的视线了。最后我们再来看一下关键字过滤。如果使用过滤器加日志级别控制还是不能锁定到你想查看的日志内容的话,那么还可以通过关键字进行进一步的过滤,如下图所示:
我们可以在输入框里输人关键字的内容,这样只有符合关键字条件的日志才会显示出来,从而能够快速定位到任何你想查看的日志。另外还有一点需要注意,关键字过滤是支持正则表达式的,有了这个特性,我们就可以构建出更加丰富的过滤条件。
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年03月31日 20时42分58秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Labview表达式节点的应用——以一个计算式为例
2019-03-04
python项目中session和cookie的使用
2019-03-04
vue.js常用指令及用法
2019-03-04
GET和POST的区别
2019-03-04
Vue中keep-alive的深入理解和使用
2019-03-04
vuex的核心概念和运行机制
2019-03-04
v-if和v-show的区别
2019-03-04
System V共享内存的基本使用与实现
2019-03-04
SSLOJ1210最佳游览问题
2019-03-04
P1026 统计单词个数&&SSL1017
2019-03-04
SSLOJ1692 USACO 3.2 Magic Squares 魔板&P2730
2019-03-04
SSLOJ1063 统计数字
2019-03-04
P4305 [JLOI2011]不重复数字
2019-03-04
P3957 [NOIP2017 普及组] 跳房子
2019-03-04
P3374 【模板】树状数组 1
2019-03-04
《ybtoj高效进阶》第二部分第二章例题5 子正方形
2019-03-04
P1381 单词背诵
2019-03-04
SSLOJ1230 战略游戏
2019-03-04
P5854 【模板】笛卡尔树
2019-03-04
SpringMVC的基础配置之注解驱动
2019-03-04