在第一节,我们使用到了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对象的实例。

Android Gradle 学习笔记(三):Gradle 日志的更多相关文章

  1. Android Studio 学习笔记(三):简单控件及实例

    控件.组件.插件概念区分 说到控件,就不得不区分一些概念. 控件(Control):编程中用到的部件 组件(Component):软件的组成部分 插件(plugin): 应用程序中已经预留接口的组件 ...

  2. Android Fragement学习笔记(三)----PreferenceFragment的使用

    相信大家对Perference都比較熟悉了,也就是我们常说的偏好设置,首选项设置,能够保存一些数据,比如我们在上一次使用的时候的一些内容,希望在下一次启动后依旧生效,而不须要再进行配置那么麻烦.一般这 ...

  3. Android Fragement学习笔记(三)----PreferenceFragment使用

    我相信每个人都Perference大家都比较熟悉,这就是我们常说的偏好,首选项设置,一些数据可以保存.例如,一些元件的,我们使用上次.希望下次启动后仍然生效,烦.一般这个时候我们便会使用perfere ...

  4. Android:日常学习笔记(8)———探究UI开发(5)

    Android:日常学习笔记(8)———探究UI开发(5) ListView控件的使用 ListView概述 A view that shows items in a vertically scrol ...

  5. Android:日常学习笔记(2)——分析第一个Android应用程序

    Android:日常学习笔记(2)——分析第一个Android应用程序 Android项目结构 整体目录结构分析 说明: 除了APP目录外,其他目录都是自动生成的.APP目录的下的内容才是我们的工作重 ...

  6. Android Studio 学习笔记(一)环境搭建、文件目录等相关说明

    Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...

  7. Android自动化学习笔记:编写MonkeyRunner脚本的几种方式

    ---------------------------------------------------------------------------------------------------- ...

  8. Android自动化学习笔记之MonkeyRunner:官方介绍和简单实例

    ---------------------------------------------------------------------------------------------------- ...

  9. Android动画学习笔记-Android Animation

    Android动画学习笔记-Android Animation   3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...

  10. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

随机推荐

  1. JS---案例:协议按钮禁用(倒计时)

    案例:协议按钮倒计时和禁用 <textarea name="texta" id="" cols="30" rows="10& ...

  2. Android 插件化开发(二):加载外部Dex文件

    在学习Java反射的技术后,我们可以开始更深一步的探究插件化开发了.首先先讲一下Android App的打包流程,然后我们通过一个简单的例子 —— 实现插件化加载外部Dex来完成初级的插件化开发的探索 ...

  3. weblogic的linux静默搭建

    前言: Weblogic与Tomcat都是java应用的容器,而这两者有什么大的不同呢?Tomcat是Apache基金会提供的Servlet容器,它支持JSP, Servlet和JDBC等J2EE关键 ...

  4. flyway 非常坑爹的中文乱码问题

    flyway 也真是够了, 动不动乱码,烦死了! 我的 命令是这样的: flyway  -driver=com.mysql.jdbc.Driver -user=root -password=12345 ...

  5. GO语言编译环境采用gosublime(19新版)

    环境:博主已下载好,并安装在E:/SDK,使用过sublime text3,有git 0x00 环境变量 默认已经有GOPATH(代码存放在这),PATH(安装go的bin目录即E:\SDK\bin) ...

  6. Java题库——Chapter14 JavaFX基础

    Chapter 14 JavaFX Basics Section 14.2 JavaFX vs Swing and AWT1. Why is JavaFX preferred?a. JavaFX is ...

  7. SpringBoot"热"部署解决方案

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 SpringBoot热部署两种方式 1.SpringLoader 插件 ​ 缺点: Java 代码做部署处理.但是对页面无能为力. 2.DevToo ...

  8. Filter List Views 筛选器列表视图

    In this lesson, you will learn how to filter a List View. Three techniques, based on different scena ...

  9. English:Day-to-day 1104

    \ ------------------------------ editor by enomothem ------------------------------ It snowed throug ...

  10. 入职小白随笔之Android四大组件——服务(Service)

    Service Android多线程编程 当我们在程序中执行一些耗时操作时,比如发起一条网络请求,考虑到网速等原因,服务器未必会立刻响应我们的请求,此时我们就需要将这些操作放在子线程中去运行,以防止主 ...