Ant - 监听器和记录器


Ant 允许使用侦听器和记录器来监视构建过程。

听众

Ant 提供了以下要使用侦听器捕获的事件。

  • 构建开始

  • 构建完成

  • 目标开始

  • 目标完成

  • 任务开始

  • 任务完成

  • 已记录消息

可以使用-listener参数在命令行上注册自定义侦听器。

伐木工

Loggers 扩展了侦听器功能并添加了以下功能

  • 可以使用-logfile参数将信息记录到控制台或文件

  • 可以使用 -quiet、-verbose、-debug 等日志级别进行日志记录

  • 是否支持 emacs 模式

内置监听器/记录器

  • org.apache.tools.ant.DefaultLogger - 隐式使用的记录器,除非用 -logger 命令行开关覆盖。

  • org.apache.tools.ant.NoBannerLogger - 此记录器忽略空目标输出的输出。

  • org.apache.tools.ant.listener.MailLogger - 扩展 DefaultLogger,以便仍然生成相同的输出,并且在构建完成后可以发送电子邮件。

  • org.apache.tools.ant.listener.AnsiColorLogger - 为构建输出着色。

  • org.apache.tools.ant.listener.Log4jListener - 将事件传递到 Apache Log4j 以进行高度可定制的日志记录。

  • org.apache.tools.ant.XmlLogger - 将构建信息写入 XML 文件。

  • org.apache.tools.ant.TimestampedLogger - 打印构建完成的时间

  • org.apache.tools.ant.listener.BigProjectLogger - 打印每个目标的项目名称

  • org.apache.tools.ant.listener.SimpleBigProjectLogger - 仅打印子项目的项目名称,否则类似于自 Ant 1.8.1 以来的 NoBannerLogger

  • org.apache.tools.ant.listener.ProfileLogger - 默认记录器,为每个任务和目标添加开始时间、结束时间和持续时间。

例子

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="sample" basedir="." default="copy">
   <target name="copy">
     <echo>File Copied</echo>
   </target>
</project>

输出

在上面的构建文件上运行 Ant 会产生以下输出 -

F:\tutorialspoint\ant>ant -logger org.apache.tools.ant.listener.TimestampedLogger
Buildfile: F:\tutorialspoint\ant\build.xml

copy:
   [echo] File Copied

BUILD SUCCESSFUL - at 03/12/21, 11:24 AM
Total time: 0 seconds

F:\tutorialspoint\ant>ant -logger org.apache.tools.ant.XmlLogger -verbose -logfile build_log.xml
Apache Ant(TM) version 1.10.12 compiled on October 13 2021
Trying the default build file: build.xml
Buildfile: F:\tutorialspoint\ant\build.xml

现在您可以检查 build_log.xml 文件是否已创建并包含相关日志。