本文整理自网络,侵删。
日志
日志是构建工具的主要界面。如果日志太多,真正的警告和问题容易被隐藏。另一方面,如果出了错,你需要找出相关的信息。Gradle 定义了6个日志级别,如表 18.1,“日志级别”所示。除了那些您通过可能会看到的日志级别之外,有两个 Gradle 特定日志级别。这两个级别分别是 QUIET 和 LIFECYCLE. 默认使用后面的这个日志级别,用于报告构建进度。
表 18.1. 日志级别
Level | 用于 |
ERROR | 错误消息 |
QUIET | 重要的信息消息 |
WARNING | 警告消息 |
LIFECYCLE | 进度信息消息 |
INFO | 信息性消息 |
DEBUG | 调试消息 |
选择一个日志级别
您可以使用表 18.2,“日志级别的命令行选项”中所示的命令行开关来选择不同的日志级别。在表 18.3,“栈跟踪的命令行选项”中,你可以看到影响栈跟踪日志的命令行开关。
表 18.2. 日志级别的命令行选项
选项 | 输出日志级别 |
没有日志选项 | LIFECYCLE 及更高 |
--quiet
|
QUIET 及更高 |
--info
|
INFO 及更高 |
--debug
|
DEBUG 及更高 |
表 18.3. 栈跟踪的命令行选项
选项 | 意义 |
没有栈跟踪选项 |
构建错误(如编译错误)时没有栈跟踪打印到控制台。只有在内部异常的情况下才打印栈跟踪。如果选择 DEBUG 日志级别,则总是输出截取后的栈跟踪信息。 |
--stacktrace
|
输出截断的栈跟踪。我们推荐使用这一个选项而不是打印全栈的跟踪信息。Groovy 的全栈跟踪非常冗长 (由于其潜在的动态调用机制,然而他们通常不包含你的的代码中哪里错了的相关信息。) |
--full-stacktrace
|
打印全栈的跟踪信息。 |
编写自己的日志消息
在构建文件,打印日志的一个简单方法是把消息写到标准输出中。Gradle 会把写到标准输出的所有内容重定向到它的日志系统的 QUIET 级别中。
使用标准输出写日志
build.gradle
println 'A message which is logged at QUIET level'
Gradle 还提供了一个 logger 属性给构建脚本,它是一个 Logger 实例。该接口扩展自 SLF4J的 Logger 接口,并添加了几个 Gradle 的特有方法。下面是关于如何在构建脚本中使用它的示例:
编写自己的日志消息
build.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.')
您也可以在构建脚本中通过其他使用的类挂钩到 Gradle 的日志系统中(例如 buildSrc 目录中的类)。只需使用一个 SLF4J 的 logger 对象。你可以在构建脚本中,用与内置的 logger 同样的方式使用这个 logger。
使用 SLF4J 编写日志消息
相关阅读 >>
更多相关阅读请进入《Gradle》频道 >>