2016-12-26 2 views
0

Я использую Github (https://github.com/connecta-solutions/connecta-framework) и Travis (https://travis-ci.org/connecta-solutions/connecta-framework) для размещения и сборки моего проекта с открытым исходным кодом, который использует Metamodel для Apache как одну из его зависимостей.Travis max log size & omitting library generated log

Я не делаю много модульных тестов, но журнал, сгенерированный конкретным тестом, который использует функцию Metamodel, является гигантским и передает размер журнала 4MB, определенный Travis, поэтому он выходит из сборки со следующим сообщением:

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 был журнал двигатель для этой функции Metamodel , и я обнаружил, что невозможно уменьшить loglevel Logback с таким параметром, как вы можете в Log4j. Однако я не нашел способ удалить журнал и использовать стандартный логгер, который я использую для всего приложения, тогда я мог бы контролировать, на каком уровне он пытается вывести сообщение.

Это последнее слово Travis CI? Разве нет способа сохранить весь журнал, даже если он пропускает размер журнала 4 МБ?

Если это не так, как я могу удалить только эту несущественную часть журнала внутри Metamodel?

Сохранение всего журнала в режиме детектора и просто исключение его в сборке Travis было бы идеальным, но если я не могу, я могу навсегда забыть эту часть журнала, если нет выбора.

ответ

1

Попробуйте настроить регистрацию определенного пространства имен (например, целое org.apache.metamodel) с помощью файла конфигурации log4j.xml, размещенного в src/test/resources вашего проекта.

Пример можно найти в метамодели кодовую: https://github.com/apache/metamodel/blob/060884c17d1c5c35348d2cb675bed1c404013579/jdbc/src/test/resources/log4j.xml#L12

+0

Ницца, Томас! Я дам ему попробовать прямо сейчас :) – ViniciusPires

+0

Смешно, это не работает, потому что моя Metamodel все еще использует Logback, но в вашей ссылке зависимость Metamodel указывает только на log4j. Я исследую, какой модуль приносит эту зависимость, и попытаюсь исправить это ... – ViniciusPires

+0

Я исключил все модули регистратора, которые могли бы использоваться вместо lo4j, и теперь это сработало. Большое спасибо :) – ViniciusPires

Смежные вопросы