记录

描述

记录器是当前构建过程的监听器,它将输出记录到文件中。

可以同时存在多个记录器。每个记录器都与一个文件关联。文件名用作记录器的唯一标识符。第一次使用未使用的文件名调用record任务将创建一个记录器(使用提供的参数)并将其添加到构建的监听器中。所有后续使用此文件名的record任务调用将修改该记录器的状态(记录或不记录)或其他属性(如日志级别)。

一些技术问题:文件的打印流在“完成”事件(“buildFinished”、“targetFinished”和“taskFinished”)中被刷新,并在“buildFinished”事件中被关闭。

参数

属性 描述 必需
name 与该记录器关联的文件的名称。
action 这告诉记录器该做什么:它应该开始记录还是停止?第一次为该日志文件调用记录器任务时,如果未提供此属性,则此属性的默认值为“start”。如果在后续调用中未提供此属性,则状态保持为先前状态。 否 [值 = “start|stop”,默认 = 无状态更改]
append 记录器应该追加到文件,还是创建一个新文件?这仅适用于第一次为该文件调用此任务。 否 [值 = “start|stop”,默认 = 无状态更改]
emacsmode 如果设置为“true”,则会删除[task]横幅,类似于 Apache Ant 的-emacs 命令行开关。 否;默认值为“false”
loglevel 该记录器实例应该在哪个日志级别记录?这不是一次性参数(如append 那样)——您可以在构建过程继续时增加或降低日志级别。 否 [值 = “error|warn|info|verbose|debug”,默认 = 无更改]

示例

以下build.xml 代码片段是使用记录器仅记录<javac> 任务的示例

    ...
    <compile >
        <record name="log.txt" action="start"/>
        <javac ...
        <record name="log.txt" action="stop"/>
    <compile/>
    ...

以下对<record> 的两次调用设置了两个记录器:一个记录到文件records-simple.log,日志级别为“info”(默认值),另一个记录到文件ISO.log,使用日志级别“verbose”。

    ...
    <record name="records-simple.log"/>
    <record name="ISO.log" loglevel="verbose"/>
    ...

备注

我希望能添加一些功能。它们包括以下内容

属性 描述 必需
listener 要从现在开始使用的构建监听器的类名,而不是默认监听器。
includetarget 要自动记录的目标的逗号分隔列表。如果此值为“all”,则记录所有目标。 否;默认值为“all”
excludetarget
includetask 要自动记录或不记录的任务的逗号分隔列表。这可能很困难,因为它可能与includetarget/excludetarget 冲突。(例如:includetarget="compile" excludetask="javac",应该发生什么?)
excludetask
action action 属性添加更大的灵活性。例如,“close”用于关闭打印流。