Silencing Flyway - проблема log4j - PullRequest
2 голосов
/ 09 июня 2011

Я написал обертку вокруг Flyway Я звоню Кочевник .Я очень доволен Flyway, за исключением непрерывной регистрации, которую он выполняет за пределами Maven.Я создал проблему здесь .Каждый пользователь Nomad должен сделать свою собственную конфигурацию log4j, чтобы заставить Flyway замолчать.Это проблематично, если не сделано, например, во время тестирования SpecТем не менее, получить правильную конфигурацию - это непростая задача, и, более того, необходимость этого нарушает абстракцию моей библиотеки.

Мой вопрос таков: как я могу навсегда замолчать пролетный путь, чтобыЛюбой пользователь Nomad не обременен задачей?Я обнаружил, что это log4j.xml иногда работает:

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ISO8601} %t %-5p %c{1} - %m%n"/>
        </layout>
    </appender>

    <logger name="org.springframework" additivity="false">
        <level value="error"/>
        <appender-ref ref="console"/>
    </logger>

    <root>
        <priority value="error"/>
        <appender-ref ref="console"/>
    </root>
</log4j:configuration>

Это душит Flyway до такой степени, что он помогает, а не слишком болтлив.Направление неверно, но не часто.

Ответы [ 2 ]

3 голосов
/ 09 июня 2011

То, как вы это сделали в log4j.xml, кажется хорошим.Я не вижу ничего плохого.

Так как в проекте используется Maven, я рекомендую вместо файла log4j.properties добавить файл свойств, который помещается в src/main/resources

Содержимое может быть:

log4j.rootCategory=DEBUG, stderr
log4j.appender.stderr=org.apache.log4j.ConsoleAppender
log4j.appender.stderr.target=System.err
log4j.appender.stderr.layout=org.apache.log4j.PatternLayout
log4j.appender.stderr.layout.ConversionPattern=[%d] %-5p %c %x: %m%n

# Silence springframework messages.
org.springframework=ERROR

Возможно, это будет работать лучше с вами.Управлять тоже становится легче.

1 голос
/ 10 июня 2011

Единственной зависимой от логинга средой Flyway является Spring.Как отметил Мохамед Мансур, вы можете подавить все, кроме сообщений об ОШИБКАХ , с помощью простой настройки конфигурации Log4J.

Для Spring (как указал Мохамед Мансур):

org.springframework=ERROR

Для пролетного пути:

com.googlecode.flyway=ERROR
...