Android Gradle 学习笔记(三):Gradle 日志

在第一节,我们使用到了gradle -q hello命令行来运行Hello World,并对Hello World进行了简单的分析,了解到 gradle -q hello 的意思是要执行的build.gradle脚本中定义的名为hello的Task,-q参数用于控制gradle输出的日志级别,以及哪些日志可以输出被看到。这节我们讲一些Gradle日志相关的知识。

一、Gradle 日志级别

Gradle 日志级别和平时我们开发Android时的日志级别差不多。但是除了一些通用的级别之外,Gradle还增加了Quite和Lifecycle两个级别,用于标记重要以及进度级别的日志信息。具体如下:

  • ERROR:错误信息
  • QUITE:重要信息
  • WARNING:警告信息
  • LIFECYCLE:进度信息
  • INFO:一般信息
  • Debug:调试信息

如果我们想要显示的日志等级,就可以在task之前使用-首字母即可实现控制。

例如:

  • -q 表示输出QUIET及更高级别的日志。
  • -i 表示输出INFO及更高级别的日志。

二、Gradle 输出错误堆栈信息

使用Gradle构建的时候,经常会遇到构建失败,这时候我们就需要通过日志去分析和解决。除了我们在上面提到的日志信息之外,Gradle还支持堆栈信息的打印,它能够帮助我们很好的定位和分析问题。

默认情况下,堆栈信息的输出是关闭的,需要我们通过命令行的堆栈信息开关打开它,这样我们在构建失败的时候,能看到输出的堆栈信息,便于分析和解决问题。下面是错误堆栈的开关选项说明:

  • 无选项:没有堆栈信息输出
  • -s:输出关键性的堆栈信息
  • -S:输出全部堆栈信息

一般的,我们推荐使用-s,因为-S的堆栈太长太多了,不方便查询和分析,-s相对精简,能帮助定位和解决大部分问题。

三、使用Gradle自定义日志信息

在编写Gradle脚本时,我们有时候还需要输出一些日志,来验证我们的逻辑是否正确,这时我们可以使用Gradle提供的日志功能。

通常我们使用的时print系列的方法,把日志信息输出到标准的控制台输出流(它被Gradle定为QUIET级别的日志):

println '输出一段日志信息'

除了print系列方法之外,我们也可以使用logger灵活的输出不同级别的日志:

logger.quiet('quiet 日志信息')
logger.error('quiet 日志信息') 
......

其中logger是调用的Project的getLogger方法获取的Logger对象的实例。

 

posted @ 2019-05-16 17:20  灰色飘零  阅读(1294)  评论(0编辑  收藏  举报