Уровень ведения журнала под Maven Верный - PullRequest
23 голосов
/ 15 октября 2010

Я не могу настроить уровень ведения журнала в java.Я использую maven surefire (mvn test) и пытаюсь настроить INFO по умолчанию, например, FINEST.

У меня есть файл logging.properties в src / test / resources / logging.properties

после компиляции, я вижу в target / test-classes, я вижу файл logging.properties с предполагаемой конфигурацией:

java.util.logging.ConsoleHandler.level =FINEST

javax.enterprise.system.container.ejb.level = FINE

...

однако консоль выводится из Glassfishтолько сообщения уровня INFO / SEVERE.

Где я ошибся?или это еще одна боль в заднице с Maven?

Ответы [ 4 ]

16 голосов
/ 05 сентября 2012

Я попытался установить java.util.logging.config.file в переменной среды MAVEN_OPTS, которая не работает, но, наконец, она заработала, поместив это системное свойство в pom.xml (и, конечно, создав соответствующий logging.properties.в src / test / resources):

    <plugins>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
           <systemProperties>
             <property> 
               <name>java.util.logging.config.file</name>
               <value>src/test/resources/logging.properties</value>
             </property>
           </systemProperties>
        </configuration>
      </plugin>
    </plugins>
8 голосов
/ 22 октября 2010

Вам необходимо указать ваши обработчики в файле журнала

handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler

тогда должно работать

3 голосов
/ 27 июля 2011

try

${build.testOutputDirectory}/logging.properties

Кроме того, я указываю этот материал в командной строке с помощью surfire-args.

<argLine>${surefire.argLine} ${argLine} -Djava.util.logging.config.file=${build.testOutputDirectory}/logging.properties</argLine>
1 голос
/ 08 августа 2014

Я рассматривал именно эту проблему, но не хотел, чтобы файл конфигурации проекта (pom.xml) менялся каждый раз, когда мне нужна особая регистрация в тесте.

Свойство -D работает из команды mavenline.

Таким образом, вы можете выбрать файл конфигурации ведения журнала из командной строки:

mvn -Djava.util.logging.config.file=`enter filename here` test

Если вы используете общий знаменатель уровня .level=FINEST, помните, что появится также стороннее ведение журнала.на этом уровне.

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

У меня многоЖурнальные строки из com.google.inject .....

aug 08, 2014 12:14:33 PM com.google.inject.internal.util.$Stopwatch resetAndLog
FINE: Instance member validation: 3ms
aug 08, 2014 12:14:33 PM com.google.inject.internal.util.$Stopwatch resetAndLog
FINE: Provider verification: 1ms
aug 08, 2014 12:14:33 PM com.google.inject.internal.util.$Stopwatch resetAndLog
FINE: Static member injection: 1ms

Поэтому я добавляю:

com.google.inject.level=INFO

в файл.Помните, что настройка уровня является рекурсивной для всех подклассов.Таким образом, com.level=NONE отключит все журналы для всех регистраторов из домена com.

Объединение этого с функцией выбора теста -Dtest=... в описанном плагине surefire здесь очень хорошо дляВыделение ошибок и ошибок.

...