前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Gradle-日志

Gradle-日志

作者头像
佛系编码
发布2019-12-11 11:29:27
9470
发布2019-12-11 11:29:27
举报
文章被收录于专栏:Android学习之路Android学习之路

日志级别

Gradle 的日志 和Android 一样也有多个级别。

级别

用于

ERROR

错误消息

QUITE

重要消息

WARNING

警告消息

LIFECYCLE

进度消息

INFO

信息消息

DEBUG

调试消息

要显示指定级别的日志,可以通过日志开关来控制的,在执行的时候加入下面这些开关即可.

开关选项

输出的日志级别

无选项 LIFECYCLE

及其更高级别

-q 或者 –quite

QUITE

-i 或者 –info

INFO

-d 或者 –debug

DEBUG

代码语言:javascript
复制
//在执行 build task时的输出的日志会是 QUITE 级别    
gradle -q build

如果不想每次都在命令行加入参数来指定,可以在 配置文件(gradle.properties) 中修改,值可以是六种的任意一个,不区分大小写

代码语言:javascript
复制
org.gradle.logging.level=(quiet,warn,lifecycle,info,debug)

或者在脚本中更改级别 ,project 类 提供了 LoggerManager 来管理 日志

代码语言:javascript
复制
logging.captureStandardOutput LogLevel.INFO
println 'A message which is logged at INFO level'

Task 类也提供了这个 LoggerManager 所以在 任务中也是可以配置的;

代码语言:javascript
复制
task logInfo {
    logging.captureStandardOutput LogLevel.INFO
    doFirst {
        println 'A task message which is logged at INFO level'
    }
}

输出堆栈信息

在任务执行出问题的时候,堆栈信息就显得尤为重要了, 然而默认堆栈信息开关是关闭的,只有打开开关才会输出出来。

命令行选项

用于

无选项

没有堆栈信息输出

-s 或者 –stacktrace

输出关键堆栈信息

-S 或者 -full-stacktrace

输出全部堆栈信息

一般使用 -s 或者 –stacktrace 输出关键堆栈,输出全部堆栈信息就太多了,不好定位问题。

代码语言:javascript
复制
gradle build -s

输入自己的日志

通常情况下都是使用 print 系列方法,把日子输出到 控制台(它把 Gradle 定向为 QUITE 级别日志)

代码语言:javascript
复制
println '输出一段日志信息'

除了 print 系列之外,还可以使用内置的 logger 更灵活的控制输出不同级别的日志。

代码语言:javascript
复制
task log(){
  doLast{    
  logger.quiet('quiet 重要消息')    
  logger.error('error 错误消息')    
  logger.lifecycle('lifecycler 进度消息')    
  logger.warn('warn 警告消息')    
  logger.info('info 消息 信息')    
  logger.debug('debug 调试信息')  
  }
}

新建一个 logger.gradle 添加一个 log Task 运行 log Task

代码语言:javascript
复制
gradle -b logger.gradle log

如果使用 -d 的话 就是下面这种了。

代码语言:javascript
复制
gradle -b logger.gradle -d log

更改日志内容

可以通过 Gradle.useLogger()) 方法传入一个自定义的日志对象。

这个对象可以是以下几个监听的派生类

这里以 任务执行 (TaskExecutionListener ) 为例

代码语言:javascript
复制
task test {
    doLast{
        logger.quiet "级别:{}","quite"
        logger.error "级别:error"
    }
}


//使用指定的日志对象
gradle.useLogger(new CustomEventLogger())

//自定义日志内容
class CustomEventLogger extends BuildAdapter implements TaskExecutionListener {
   void beforeExecute(Task task){
       println "beforeExecute-> ${task.name}"
   }

   void afterExecute(Task task,TaskState state){
       println "afterExecute -> ${task.name} successed?${state.failure==null}"
   }

   void buildFinished(BuildResult result){
       println "build completed"
       if(result.failure){
           result.failure.printStackTrace()
       }
   }

}

执行

代码语言:javascript
复制
gradle test

输出如下

代码语言:javascript
复制
> Task :test
beforeExecute-> test
级别:quite
级别:error
afterExecute -> test succeed?true
build completed
1 actionable task: 1 executed
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 日志级别
  • 输出堆栈信息
  • 输入自己的日志
  • 更改日志内容
相关产品与服务
日志服务
日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档