使用android日志工具

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日志工具的更多相关文章
- Android学习之基础知识三(Android日志工具Log的使用)
Android中的日志工具Log(android.util.Log): 1.打印日志的方法(按级别从低到高排序): Log.v():级别verbose,用于打印最为烦琐,意义最小的日志 Log.d() ...
- Android日志工具的使用
一.使用Android的日志工具Log 1.Android中的日志工具类是Log,这个类中提供了如下5个方法来供我们打印日志. log.v():用于打印哪些最为繁琐.意义最小的日志信息.对应级别ver ...
- Android Studio日志工具的使用
Android Studio的LogCat工具 Verbose:对应Log.v(),这个方法用于打印那些最为琐碎的信息,意义最小的日志信息.是Android日志里面级别最低的一种. Debug:对应L ...
- Android Studio 单刷《第一行代码》系列 02 —— 日志工具 LogCat
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- Android中日志工具的使用
添加LogCat到你的Eclipse日志在任何项目的开发过程中都会起到非常重要的作用,在Android项目中如果你想要查看日志则必须要使用LogCat工具.当你第一次在Eclipse中运行Androi ...
- Android开发调试日志工具类[支持保存到SD卡]
直接上代码: package com.example.callstatus; import java.io.File; import java.io.FileWriter; import java.i ...
- Android基础知识02—安卓日志工具LogCat的五种方法
--------Android 02-------- >>> Android的日志工具LogCat 五个方法,记录信息的级别不一样,从低到高为: 1.Log.v()-日志 ...
- 使用 Android 的日志工具LogCat
Android 中的日志工具类是 Log(android.util.Log),这个类中提供了如下几个方法来供我们打印日志. 1. Log.v() 这个方法用于打印那些最为琐碎的,意义最小的日志信 ...
- 【转】使用 Android 的日志工具LogCat
Android中的日志工具类是 Log(android.util.Log),这个类中提供了如下几个方法来供我们打印日志. 1. Log.v() 这个方法用于打印那些最为琐碎的,意义最小的日志信息 ...
随机推荐
- 2018最新cocoapods详细安装和使用
1查看当前终端里存在的源 终端输入:$ gem sources -l2移除淘宝镜像 $ gem sources --remove https://rubygems.org/ 3装上目前能用的源 终端输 ...
- innodb存储引擎监控
innodb存储引擎监控分为四种,表监控,表空间监控,锁监控,状态监控.可以在mysql客户端开启监控选项,然后信息将会输出在mysql的错误日志内.innodb_monitor和innodb_loc ...
- ORACLE DATAGUARD 日志传输状态监控
ORACLE DATAGUARD的主备库同步,主要是依靠日志传输到备库,备库应用日志或归档来实现.当主.备库间日志传输出现GAP,备库将不再与主库同步.因此需对日志传输状态进行监控,确保主.备库间日志 ...
- spark利用yarn提交任务报:YARN application has exited unexpectedly with state UNDEFINED
spark用yarn提交任务会报ERROR cluster.YarnClientSchedulerBackend: YARN application has exited unexpectedly w ...
- Horovod 分布式深度学习框架相关
最近需要 Horovod 相关的知识,在这里记录一下,进行备忘: 分布式训练,分为数据并行和模型并行两种: 模型并行:分布式系统中的不同GPU负责网络模型的不同部分.神经网络模型的不同网络层被分配到不 ...
- vue/cli2.0优化
vue/cli2.0 脚手架 在项目写完了之后, 运行npm run build --report可以看出这个项目的资源占比情况.可以看出整个项目哪一个资源在整个项目占比最大.它会自动打开一个可视化的 ...
- python保护变量(_),私有变量(__),私有方法,
上图为常规代码 私有变量(__),私有方法:只是解释器换名字了,可以通过方法/实例字典发现改后的名字: 保护变量,解释器不做任何处理:只是开发者约定的,尽量不要改动: 此时实例无法修改__age属性值 ...
- 浅谈vue中的计算属性和侦听属性
计算属性 计算属性用于处理复杂的业务逻辑 计算属性具有依赖性,计算属性依赖 data中的初始值,只有当初始值改变的时候,计算属性才会再次计算 计算属性一般书写为一个函数,返回了一个值,这个值具有依赖性 ...
- django实现多种支付、并发订单处理
django实现多种支付方式 ''' #思路 我们希望,通过插拔的方式来实现多方式登录,比如新增一种支付方式,那么只要在项目中新增一个py文件,导入里面的pay方法就可以了,这样在支付业务中支付语句是 ...
- Python 列表生成式 & 字典生成式
Python 列表生成式 & 字典生成式 通过生成式可以更加简洁地生成列表和字典 列表生成式 对比 直接生成数据后加入列表示例: user_list = list() for i in ran ...