【发布时间】:2011-09-11 08:00:57
【问题描述】:
我已经为 Flyway 编写了一个包装器,我称之为 Nomad。我对 Flyway 很满意,省去了它在 Maven 之外执行的不间断日志记录。我创建了一个问题here。 Nomad 的每个用户都必须自己配置 log4j 以使 Flyway 静音。如果不这样做,例如在规范测试期间,这将是有问题的。然而,让配置恰到好处是一个挑战,而且,必须这样做会破坏我的库的抽象。
我的问题是:我怎样才能永久地让 flyway 保持沉默,这样 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 的帮助,而不是过于健谈。误导仍然存在,但不经常发生。
【问题讨论】: