Log的级别?

日志级别按照高低排序为:ERROR,WARN,INFO,DEBUG,VERBOSE,

日志输出:

Log.e()输出ERROR级别的日志信息

Log.w()输出WARN,ERROR级别的日志

Log.i()输出WARN,ERROR级别的日志

Log.d() 输出DEBUG,INFO,WARN,ERROR级别的日志

Log.v () 输出VERBOSE,DEBUG,INFO,WARN,ERROR级别的日志

Log的封装?

平时在开发的过程中,总是随手就来Log.e(),Log.w(),Log,i().........调试的不亦乐乎,等项目完成准备上线时,这些日志咋办呢?留着?显得不够正式,删了?费时费力伤神,以后维护指不定这些日志信息能帮忙保住饭碗,那咋整?LogUtil,开发的时候打印,发布时不打印。

package com.kbr.issuestandard.utils;

import android.util.Log;

/**
* LOG工具类
*/
public class LogUtil {
private final static boolean isDebug = true;
private final static String TAG = "LogUtil"; public static void v(String tag, String msg) {
if (isDebug)
Log.v(tag, msg);
} public static void v(String msg) {
if (isDebug)
Log.v(TAG, msg);
} public static void d(String tag, String msg) {
if (isDebug)
Log.d(tag, msg);
} public static void d(String msg) {
if (isDebug)
Log.d(TAG, msg);
} public static void i(String tag, String msg) {
if (isDebug)
Log.i(tag, msg);
} public static void i(String msg) {
if (isDebug)
Log.i(TAG, msg); } public static void w(String tag, String msg) {
if (isDebug)
Log.w(tag, msg);
} public static void w(String msg) {
if (isDebug)
Log.w(TAG, msg);
} public static void e(String tag, String msg) {
if (isDebug)
Log.e(tag, msg);
} public static void e(String msg) {
if (isDebug)
Log.e(TAG, msg);
}
}

使用强大的Logger库

考虑到系统的log硬件条件太基础啦,我们不妨使用简单,强大的Logger框架,项目地址为https://github.com/orhanobut/logger

1:首先我们先在项目中添加依赖(implementation 'com.orhanobut:logger:2.2.0')

    //logger
implementation "com.orhanobut:logger:$rootProject.loggerVersion"

2:在Application中配置初始化(非必须,有默认的)

private void initLogger() {
FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
.showThreadInfo(false) // 是否显示线程,默认显示
.methodCount(3) // 显示多少方法 默认 2
.methodOffset(7) // 设置方法的偏移量. 默认是 5
.tag("My custom tag")
.build();
Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy));
Logger.addLogAdapter(new AndroidLogAdapter(){
@Override
public boolean isLoggable(int priority, @Nullable String tag) {
//返回true,打印日志,返回false ,不打印日志,可调试时返回true,发布时返回false
return BuildConfig.DEBUG;
}
});
//保存日志到文件中
Logger.addLogAdapter(new DiskLogAdapter());
}

3:使用方法

打印不同级别日志

Logger.d("debug");
Logger.e("error");
Logger.w("warning");
Logger.v("verbose");
Logger.i("information");
Logger.wtf("What a Terrible Failure");

支持字符串格式参数

Logger.d("hello %s", "world");

支持集合输出(仅适用于Debug 模式)

Logger.d(MAP);
Logger.d(SET);
Logger.d(LIST);
Logger.d(ARRAY);

支持Json和Xml格式数据输出(仅适用于Debug 模式)

Logger.json(JSON_CONTENT);
Logger.xml(XML_CONTENT);

将日志保存到文件

Logger.addLogAdapter(new DiskLogAdapter());

使用android日志工具的更多相关文章

  1. Android学习之基础知识三(Android日志工具Log的使用)

    Android中的日志工具Log(android.util.Log): 1.打印日志的方法(按级别从低到高排序): Log.v():级别verbose,用于打印最为烦琐,意义最小的日志 Log.d() ...

  2. Android日志工具的使用

    一.使用Android的日志工具Log 1.Android中的日志工具类是Log,这个类中提供了如下5个方法来供我们打印日志. log.v():用于打印哪些最为繁琐.意义最小的日志信息.对应级别ver ...

  3. Android Studio日志工具的使用

    Android Studio的LogCat工具 Verbose:对应Log.v(),这个方法用于打印那些最为琐碎的信息,意义最小的日志信息.是Android日志里面级别最低的一种. Debug:对应L ...

  4. Android Studio 单刷《第一行代码》系列 02 —— 日志工具 LogCat

    前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...

  5. Android中日志工具的使用

    添加LogCat到你的Eclipse日志在任何项目的开发过程中都会起到非常重要的作用,在Android项目中如果你想要查看日志则必须要使用LogCat工具.当你第一次在Eclipse中运行Androi ...

  6. Android开发调试日志工具类[支持保存到SD卡]

    直接上代码: package com.example.callstatus; import java.io.File; import java.io.FileWriter; import java.i ...

  7. Android基础知识02—安卓日志工具LogCat的五种方法

    --------Android 02-------- >>> Android的日志工具LogCat    五个方法,记录信息的级别不一样,从低到高为:    1.Log.v()-日志 ...

  8. 使用 Android 的日志工具LogCat

    Android 中的日志工具类是 Log(android.util.Log),这个类中提供了如下几个方法来供我们打印日志. 1.    Log.v() 这个方法用于打印那些最为琐碎的,意义最小的日志信 ...

  9. 【转】使用 Android 的日志工具LogCat

    Android中的日志工具类是 Log(android.util.Log),这个类中提供了如下几个方法来供我们打印日志. 1.    Log.v() 这个方法用于打印那些最为琐碎的,意义最小的日志信息 ...

随机推荐

  1. 简单的PHP上传图片实例

    分享一个简单的PHP上传图片实例,本实例主要介绍了上传图片的一些限制判断和上传图片的方法. 首先我们在form表单加上上传附件#file,上传按钮#imgbut,记得给form 表单加上multipa ...

  2. 团队项目之团队展示&选题

    团队博文:https://www.cnblogs.com/blackpanda/p/11734448.html 一. 团队展示 1.  队名: Black Panda 2.  队员: 郑伟金 3117 ...

  3. numpy中array和matrix的区别

    两者相似但执行相同的运算可能得到不同的结果 显然,array只能通过dot()实现"矩阵乘法",array的"*"运算实现的是两个纬度相同的"矩阵&q ...

  4. SQL Server有意思的数据类型隐式转换问题

    写这篇文章的时候,还真不知道如何取名,也不知道这个该如何将其归类.这个是同事遇到的一个案例,案例比较复杂,这里抽丝剥茧,仅仅构造一个简单的案例来展现一下这个问题.我们先构造测试数据,如下所示: CRE ...

  5. Django_xadmin_TypeError: Related Field got invalid lookup: icontains

    问题: 当我在给某一张表加上外键搜索的时候,会出现 TypeError: Related Field got invalid lookup: icontains 问题原因: a 表关联 b表,也就是说 ...

  6. 一个EMFILE问题定位:lsof、ulimit的应用,以及简单分析

    关键词:errno.EMFILE.ulimit.lsof等等. 背景是在对程序进行压力测试,运行了一段时间之后出现一个复位操作失败. 这个复位操作通过打开一个设备,进行读写操作,已达到控制GPIO输入 ...

  7. python配置yaml

    我们在做自动化的过程中无论是接口自动化还是UI自动化都会存在很多数据,我们对于自动化中如何存放这些数据也是很重要一点,如果写在代码里的话,每次更换数据就有点繁琐,我们可以通过一个文件存放这些数据,然后 ...

  8. java8-14-时间API

    原来的时间类  1.默认值 我们使用起来不方便 2.在不同包 不规范   在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包中定义 3.可变  线程 ...

  9. 垃圾收集器GC

    (1)DefNew(串行)收集器 Serial(串行)垃圾收集器是最基本.发展历史最悠久的收集器:JDK1.3.1前是HotSpot新生代收集的唯一选择: 特点: (1) 针对新生代采用复制算法,单线 ...

  10. 简单的Python GUI界面框架

    Python开发GUI界面, 可以使用pyQT或者wxpython. 不过不论pyQT还是wxpython都需要比较多的学习成本.Python工程往往是用于快速开发的,有些时候引入pyQT,wxpyt ...