正篇
首先,我们在需要对APP错误进行分析时,我们通常会在对应位置打印日志,但有时候有些位置由于异常而直接导致程序崩溃,这时候就需要我们抛出错误,捕捉异常,输出相应日志。
不规范的示例:
try { throw new FileNotFoundException(); } catch (Exception e) { e.fillInStackTrace(); Log.e("There has a error, code = ", e.getMessage()); }
网络异常,图片无法展示
|
这里的 System.exit(0)
是用于在异常获取并输出日志后退出程序。
而XLog是非常好用的日志输出工具,可同时在多个通道打印日志,如 Logcat、Console 和文件。
这里我们用到的是XLog的这个方法:
/** * Log a message and a throwable with level {@link LogLevel#ERROR}. * * @param msg the message to log * @param tr the throwable to be log */ public static void e(String msg, Throwable tr) { assertInitialization(); sLogger.e(msg, tr); }
当然,这里附上最新的XLog包导入命令,在项目下app的build.gradle中加入下列这一行代码:
implementation 'com.elvishew:xlog:1.10.1'
网络异常,图片无法展示
|
即可使用XLog来输出日志,官方给出的介绍说这是一款轻量、美观强大、可扩展的 Android 和 Java 日志库。
网络异常,图片无法展示
|
从官方给出的图来看,的确非常清晰。 如果想使用可以看这个官方使用文档:xLog/README_ZH.md at master · elvishew/xLog · GitHub。
小结
今天这篇是有感而发,希望可以总结平时收获,后面会单独开栏用来收集这些平时突然想记录的技术小栈,希望可以记得更扎实一些。