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对象的实例。
Android Gradle 学习笔记(三):Gradle 日志的更多相关文章
- Android Studio 学习笔记(三):简单控件及实例
控件.组件.插件概念区分 说到控件,就不得不区分一些概念. 控件(Control):编程中用到的部件 组件(Component):软件的组成部分 插件(plugin): 应用程序中已经预留接口的组件 ...
- Android Fragement学习笔记(三)----PreferenceFragment的使用
相信大家对Perference都比較熟悉了,也就是我们常说的偏好设置,首选项设置,能够保存一些数据,比如我们在上一次使用的时候的一些内容,希望在下一次启动后依旧生效,而不须要再进行配置那么麻烦.一般这 ...
- Android Fragement学习笔记(三)----PreferenceFragment使用
我相信每个人都Perference大家都比较熟悉,这就是我们常说的偏好,首选项设置,一些数据可以保存.例如,一些元件的,我们使用上次.希望下次启动后仍然生效,烦.一般这个时候我们便会使用perfere ...
- Android:日常学习笔记(8)———探究UI开发(5)
Android:日常学习笔记(8)———探究UI开发(5) ListView控件的使用 ListView概述 A view that shows items in a vertically scrol ...
- Android:日常学习笔记(2)——分析第一个Android应用程序
Android:日常学习笔记(2)——分析第一个Android应用程序 Android项目结构 整体目录结构分析 说明: 除了APP目录外,其他目录都是自动生成的.APP目录的下的内容才是我们的工作重 ...
- Android Studio 学习笔记(一)环境搭建、文件目录等相关说明
Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...
- Android自动化学习笔记:编写MonkeyRunner脚本的几种方式
---------------------------------------------------------------------------------------------------- ...
- Android自动化学习笔记之MonkeyRunner:官方介绍和简单实例
---------------------------------------------------------------------------------------------------- ...
- Android动画学习笔记-Android Animation
Android动画学习笔记-Android Animation 3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...
- [Firefly引擎][学习笔记三][已完结]所需模块封装
原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读: 笔记三主要就是各个模块的封装了,这里贴 ...
随机推荐
- redhat 常用命令记录
开机设置网络信息: vim /etc/rc.local 然后在里面输入设置信息 ifconfig eth0:0 192.168.127.130 netmask 255.255.255.0 up i ...
- mariadb 学习笔记
安装:yum install mariadb-server mariadb vim /etc/my.cnf.d/server.cnfinnodb_file_per_table = on#设置后当创建数 ...
- CentOS7环境下安装docker
操作系统 : CentOS7.5.1804_x64 docker版本: docker-ce-18.06.3 准备环境 1.如之前安装过移除老旧版本 yum remove docker docker-c ...
- Linux 周期任务
一次性任务 在某个特定的时间,执行一次后被清除 相关命令/进程 at 命令 atd进程 在centos6中,系统服务的名称: /etc/init.d/atd 查看系统上该进程时候启动: [root@e ...
- 《C#并发编程经典实例》学习笔记—2.8 处理 async Task 方法的异常
异常处理一直是所有编程语言不可避免需要考虑的问题,C#的异步方法的异常处理和同步方法并无差别,同样要借助 try catch 语句捕获异常. 首先编写一个抛出异常的方法 static async Ta ...
- Ligg.WinOa-000: Windows运维自动化编程实战--前言
本开源项目Ligg.WinOa是一个基于Ligg.EasyWinApp的Windows运维自动化应用.通过Ligg.EasyWinForm生成2个功能界面:管理员工具箱和用户工具箱:通过Lig ...
- 搭建Nginx四层反向代理
需求背景: 前段时间公司因为业务需求需要部署一个正向代理,我已经分享出来了https://www.cnblogs.com/Dfengshuo/p/11911406.html,现有因架构个更改,需要再加 ...
- NETGEAR R7800路由器TFTP刷回原厂固件方法
前几天因图新鲜将用了一年的R7800刷为dd-wrt固件,结果发现信号覆盖和网络速率相对于原厂固件还有一些差距. 然后从dd-wrt固件刷回原厂,具体操作过程如下: 1.到NETGEAR官网[支持]模 ...
- 华为开发者联盟 方舟编译器 DevEco IDE
华为开发者联盟 https://developer.huawei.com/consumer/cn/ 方舟编译器是为支持多种编程语言.多种芯片平台的联合编译.运行而设计的统一编程平台,包含编译器.工具链 ...
- 【Kafka】《Kafka权威指南》——提交和偏移量
KafkaConsumer(消费者)每次调用 poll()方法,它总是返回由生产者写入 Kafka但还没有被消费者读取过的记录, 我们因 此可以追踪到哪些记录是被群组里的哪个消费者读取的.之前已经讨论 ...