我使用Github(https://github.com/connecta-solutions/connecta-framework)和Travis(https://travis-ci.org/connecta-solutions/connecta-framework)来托管和构建我的开源项目,该项目使用Apache Metamodel作为其依赖项之一。Travis最大日志大小和省略库生成日志
我没有进行很多单元测试,但是使用Metamodel中的一个特性生成的日志是巨大的,并且传递了Travis确定的4MB日志大小,因此它会使用以下消息退出构建:
The log length has exceeded the limit of 4 MB (this usually means that the test suite is raising the same exception over and over).
The job has been terminated
大多数日志,我得到的是来自内部的元模型,通常给出以下输出的比较不重要的调试消息:
18:18:23.519 [main] DEBUG o.a.metamodel.util.ObjectComparator - compare(Sul,50)
18:18:23.519 [main] INFO o.a.metamodel.util.ObjectComparator - Using ToStringComparator because no apparent better comparison method could be found
18:18:23.519 [main] DEBUG org.apache.metamodel.util.BaseObject - SUM(csv_cities.csv.vendas).hashCode()
18:18:23.519 [main] DEBUG org.apache.metamodel.util.BaseObject - obj is null, returning constant
18:18:23.519 [main] DEBUG org.apache.metamodel.util.BaseObject - obj is null, returning constant
18:18:23.519 [main] DEBUG org.apache.metamodel.util.BaseObject - obj is a regular object, returning hashCode
18:18:23.519 [main] DEBUG org.apache.metamodel.util.BaseObject - obj is a regular object, returning hashCode
18:18:23.519 [main] DEBUG org.apache.metamodel.util.BaseObject - obj is a regular object, returning hashCode
18:18:23.519 [main] DEBUG org.apache.metamodel.util.BaseObject - obj is null, returning constant
18:18:23.519 [main] DEBUG org.apache.metamodel.util.BaseObject - obj is null, returning constant
18:18:23.519 [main] DEBUG o.a.metamodel.util.EqualsBuilder - append(false)
18:18:23.519 [main] DEBUG o.a.metamodel.util.EqualsBuilder - append(true)
18:18:23.519 [main] DEBUG o.a.metamodel.util.ObjectComparator - compare(Sul,50)
18:18:23.519 [main] INFO o.a.metamodel.util.ObjectComparator - Using ToStringComparator because no apparent better comparison method could be found
18:18:23.519 [main] DEBUG org.apache.metamodel.util.BaseObject - SUM(csv_cities.csv.vendas).hashCode()
18:18:23.519 [main] DEBUG org.apache.metamodel.util.BaseObject - obj is null, returning constant
18:18:23.519 [main] DEBUG org.apache.metamodel.util.BaseObject - obj is null, returning constant
18:18:23.519 [main] DEBUG org.apache.metamodel.util.BaseObject - obj is a regular object, returning hashCode
18:18:23.519 [main] DEBUG org.apache.metamodel.util.BaseObject - obj is a regular object, returning hashCode
18:18:23.519 [main] DEBUG org.apache.metamodel.util.BaseObject - obj is a regular object, returning hashCode
18:18:23.519 [main] DEBUG org.apache.metamodel.util.BaseObject - obj is null, returning constant
18:18:23.519 [main] DEBUG org.apache.metamodel.util.BaseObject - obj is null, returning constant
18:18:23.519 [main] DEBUG o.a.metamodel.util.EqualsBuilder - append(false)
18:18:23.519 [main] DEBUG o.a.metamodel.util.EqualsBuilder - append(true)
理想的情况是,特拉维斯莫名其妙地接受了这个,不重要的日志可以很快成为当您遇到问题时,您很重要。无论如何,我试图减少日志级别来获得唯一的警告和错误,传递参数的log4j的这样做,是这样的:
mvn test -Dorg.slf4j.simpleLogger.defaultLogLevel=warn
我后来才意识到是的logback是这个元模型功能日志引擎,并且我发现用Log4j中的参数来减少Logback的日志级别是不可能的。然而,我没有找到一种方法来删除logback并使用我用于整个应用程序的标准记录器,然后我可以控制它尝试输出消息的级别。
这是Travis CI的最后一个词吗?没有办法保留所有日志,即使通过4MB日志大小?
如果没有,我该如何删除Metamodel内部的这个不重要的部分?
保持在开发状态的总体日志,只是忽略它在特拉维斯构建将是完美的,但如果我不能,我可以永远忽略日志的这部分,如果没有选择。
好的,Tomas!我现在就试试看:) – ViniciusPires
有趣的是,它不起作用,因为我的Metamodel仍在使用Logback,但在您的链接中,Metamodel的依赖关系仅指向log4j。我将调查哪个模块引入了这种依赖关系,并尝试修复它... – ViniciusPires
我排除了可能正在使用的所有记录器模块,而不是lo4j,现在它可以工作。非常感谢 :) – ViniciusPires