首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ant-contrib foreach:如何在日志中识别正确的并行目标

ant-contrib foreach:如何在日志中识别正确的并行目标
EN

Stack Overflow用户
提问于 2016-02-26 19:18:49
回答 1查看 281关注 0票数 0

我使用Ant-contrib foreach任务来运行SonarQube分析,并进行并行目标调用。

问题是,日志被显示为foreach的一部分,这使得它很难读取,因为有并发执行被记录下来。

代码语言:javascript
复制
  [foreach] 01:18:12.054 INFO  - Initializing Hibernate
  [foreach] 01:18:12.065 INFO  - Initializing Hibernate
  [foreach] 01:18:12.098 INFO  - Initializing Hibernate
  [foreach] 01:18:16.504 ERROR - Server ID is invalid. Please check settings.
  [foreach] 01:18:16.517 ERROR - Server ID is invalid. Please check settings.
  [foreach] 01:18:16.530 ERROR - Server ID is invalid. Please check settings.
  [foreach] 01:18:16.533 ERROR - Server ID is invalid. Please check settings.
  [foreach] 01:18:17.360 INFO  - Load project repositories
  [foreach] 01:18:17.363 INFO  - Load project repositories

在上面的示例中,重复的行指的是不同的执行(每次执行一个特定的项目)。

有没有办法识别foreach循环中的每个执行(例如foreach:project1,foreach:project2)?

否则,还可以使用什么其他策略来改善这一点?

我想知道是否有可能实现一个Log Decorator,它在执行时根据循环中的变量在每个日志中添加前缀。

EN

回答 1

Stack Overflow用户

发布于 2016-03-01 00:43:07

每个Ant任务都支持taskname属性。taskname的值决定了任务记录消息时使用的banner:

build.xml

代码语言:javascript
复制
<project name="ant-taskname" default="run">
    <taskdef resource="net/sf/antcontrib/antlib.xml" />
    <target name="my-echo">
        <echo taskname="echo-${letter}">Letter ${letter}.</echo>
    </target>
    <target name="run">
        <foreach list="a,b,c" target="my-echo" param="letter" parallel="true"/>
    </target>
</project>

输出

代码语言:javascript
复制
run:

my-echo:

my-echo:

my-echo:
   [echo-b] Letter b.
   [echo-a] Letter a.
   [echo-c] Letter c.

即使<echo>任务实际记录了消息,输出也会显示诸如[echo-b]之类的横幅。您可以根据Sonar任务调整此解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35650338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档