2019独角兽企业重金招聘Python工程师标准>>>

1.log信息的分类

除了常用的 debug,info,warning,error ,gradle自己特有的quiet和lifecycle。

2.选择log等级

-q/--quiet

-i//--info

-d/--debug

引申出

-s/--stacktrace

-S/--full-stacktrace

3.编写自己的log信息

println 后跟信息,gradle会将其重定向到日志系统中,默认为quiet等级。

当然你可以使用logger属性来编写不同等级的,继承与slf4j logger接口,然后加上一些gradle自己的定义。

logger.quiet('An info log message which is always logged.')
logger.error('An error log message.')
logger.warn('A warning log message.')
logger.lifecycle('A lifecycle info log message.')
logger.info('An info log message.')
logger.debug('A debug log message.')
logger.trace('A trace log message.')
qianhuis-Mac-mini:0112 qianhui$ gradle
An info log message which is always logged.
An error log message.
A warning log message.
A lifecycle info log message.
:helpWelcome to Gradle 2.2.1.To run a build, run gradle <task> ...To see a list of available tasks, run gradle tasksTo see a list of command-line options, run gradle --helpBUILD SUCCESSFULTotal time: 2.265 secs

4.SLF4J日志

import org.slf4j.Logger
import org.slf4j.LoggerFactory
Logger slf4jLogger = LoggerFactory.getLogger('some-logger')
slf4jLogger.info('An info log message logged using SLF4j')

5.外部工具和库的logging

因为gradle是基于ant喝ivy的,所以前辈的logging输出应该被考虑,gradle会把它们的log重定向到gradle的log系统中,对于gradle有的等级,可以很好

的重定向,而对于gradle没有的,比如ant和ivy的trace等级,gradle会将其映射为debug等级,说明gradle默认情况智慧输出ant/ivy 的error和warning信息。

对于一些使用标准输出的工具,默认情况下,gradle重定向为quiet等级,标准的错误会被定义为error等级,但是这都是可以配置的。project对象提供一个LoggingManager,

该对象允许你去改变默认的重定向log等级。

logging.captureStandardOutput LogLevel.INFOprintln 'A message which is logged at info level'

将log等级定位成info等级,执行命令后,如果加-q后会无法显示:

qianhuis-Mac-mini:0112 qianhui$ gradle -qWelcome to Gradle 2.2.1.To run a build, run gradle <task> ...To see a list of available tasks, run gradle tasksTo see a list of command-line options, run gradle --help

6.为任务定义个log等级

println 'A message which is logged at info level'
task logInfo {logging.captureStandardOutput LogLevel.INFOdoFirst {println 'A task message which is logged at INFO level'
}}
println 'end'

执行命令后会发现,任务中的log被隐藏掉了,因为任务中定义了log的等级为info,小于quiet等级,所以没有输出。说明任务内定义log等级只在任务内有效。

qianhuis-Mac-mini:0112 qianhui$ gradle -q logInfo
A message which is logged at info level
end

7.改变gradle日志

使用Gradle.useLogger()方法,具体做法是通过API中的接口重新定义log器。

useLogger(new CustomEventLogger())
class CustomEventLogger extends BuildAdapter implements TaskExecutionListener {public void beforeExecute(Task task) {println "[$task.name]"
}public void afterExecute(Task task, TaskState state) {println()
}public void buildFinished(BuildResult result) {println 'build completed'if (result.failure != null) {} }

但是上面的程序暂时还无法运行成功,暂时不太清楚为什么,以后再找答案。

要想自定义log器,可以研究下面几个接口:

BuildListener

ProjectEvaluationListener

TaskExecutionGraphListener

TaskExecutionListener

TaskActionListener

转载于:https://my.oschina.net/xxjbs001/blog/368462

gradle学习(19)-log系统相关推荐

  1. java计算机毕业设计计算机课程在线培训学习管理系统MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计计算机课程在线培训学习管理系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计计算机课程在线培训学习管理系统MyBatis+系统+LW文档+源码+调试部署 ...

  2. 基于深度学习的手势识别系统(Python代码,UI界面版)

    摘要:本文详细介绍基于深度学习的手势识别系统,在介绍手势识别算法原理的同时,给出了_P__y__t__h__o__n_的实现代码以及_P__y__Q__t_的UI界面.手势识别采用了基于MediaPi ...

  3. java计算机毕业设计计算机类专业考研交流学习平台MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计计算机类专业考研交流学习平台MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计计算机类专业考研交流学习平台MyBatis+系统+LW文档+源码+调试部署 本源 ...

  4. java计算机毕业设计计算机类在线学习管理系统MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计计算机类在线学习管理系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计计算机类在线学习管理系统MyBatis+系统+LW文档+源码+调试部署 本源码技术栈 ...

  5. 计算机毕业设计ssm校园学习空间预约系统w314l系统+程序+源码+lw+远程部署

    计算机毕业设计ssm校园学习空间预约系统w314l系统+程序+源码+lw+远程部署 计算机毕业设计ssm校园学习空间预约系统w314l系统+程序+源码+lw+远程部署 本源码技术栈: 项目架构:B/S ...

  6. AndroidT(13) Log 系统 -- C plus plus 语言格式的LOG输出(二)

    1.概览   上一章提到的是在Android系统中,以C语言格式方式进行log输出.本章就来讲讲c++语言格式的. std::cout<<"This is a c++ log&q ...

  7. “交通·未来”第10期:基于深度学习的动态系统复杂数据建模方法:以铁路列车晚点预测为例...

    前一阵公众号正式推出了"交通·未来"系列线上公益学术活动等你来~, 9月21日晚19:00,我们将迎来活动的第10期. 1.讲座主题 基于深度学习的动态系统复杂数据建模方法:以铁路 ...

  8. Gradle学习教程

    Gradle学习教程 一.Gradle是什么 二.为什么要Gradle 三.如何安装Gradle 四.核心概念基础 五.Gradle构建的生命周期 初始化阶段 配置阶段 执行阶段 六.任务-(简单任务 ...

  9. c语言程序与实验系统,C/C++程序设计学习与实验系统

    C/C++程序设计学习与实验系统 编辑 锁定 上传视频 C/C++程序设计学习与实验系统是从事一线教学的大学教师根据C/C++ 初学者的特点,量身定制的一个简单易用的 C/C++程序设计学习与实验软件 ...

最新文章

  1. POJ 1840 Eqs 解方程式, 水题 难度:0
  2. TCP和UDP基本原理
  3. 图像去噪 使用dct变换进行去噪
  4. 配置库用户_GEE学习笔记 六十八:【GEE之Python版教程二】配置Python开发环境
  5. java字节码运行原理_JVM 内部原理(六)— Java 字节码基础之一
  6. 核心系统100%上云!全球最大流量洪峰,阿里云扛住了
  7. twitter.common.concurrent deadline and defer
  8. 一条数据的HBase之旅,简明HBase入门教程2:数据模型
  9. Jmeter设置环境变量支持在任意终端目录输入jmeter直接启动
  10. html5表单的css修饰,如何使用CSS3美化HTML5表单
  11. linux mysql5.7.12安装图解_centos 安装 mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz 详细步骤
  12. android studio 新建的项目无法绘制界面
  13. 怎么制作真人qq秀_真人秀---搏击赛事新风向标的机与忧
  14. js转换php时间戳,js和PHP 时间戳与日期转换
  15. web项目中如何启动爬虫程序?Django+Requests+Ajax制作可视化翻译界面详解
  16. 用diiv实现多个方块居中嵌套--padding
  17. android 路由跟踪,手机移动端网络路由跟踪探测方式
  18. 运用滤波反投影的方法对图像进行重建matlab仿真
  19. 相濡以沫,不如相忘于江湖
  20. openjudge 1.9.14 铺地毯

热门文章

  1. linux 中断 c语言程序,linux驱动之中断处理过程C程序部分
  2. 基于vue + element 的后台管理系统
  3. Windows操作系统的各进程的作用
  4. html让后端删除数据库,Chrome在请求之间删除WebSQL数据库
  5. java调用远程主机shell_Java 执行远程主机shell命令代码
  6. Python 下载文件并保存文件到本地
  7. java代码中的缓存类怎么找,JAVA缓存的实现 - dreamcloudz的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. java 1.7 可变参数,JDK1.7新特性(2):异常和可变长参数处理
  9. 电脑护眼模式_2020年双11护眼仪/眼部按摩仪推荐 |护眼仪/眼部按摩仪选购指南 |高性价比护眼仪推荐...
  10. 城乡规划转到计算机专业行吗,哪些大学城乡规划专业有博士点