2

私はNomadと呼ぶFlywayのラッパーを作成しました。Flywayは、Mavenの外部で実行される絶え間ないロギングを除いて非常に満足しています。ここで問題を作成しました。Nomadの各ユーザーは、Flywayを無音にするために、log4jの独自の構成を作成する必要があります。これは、たとえば仕様テスト中に行われなかった場合に問題になります。ただし、構成を適切に行うことは困難であり、さらに、これを行う必要があると、ライブラリの抽象化が損なわれます。

私の質問はこれです: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は、過度におしゃべりではなく、役立つようになります。誤った方向性はまだ壊れていますが、頻繁ではありません。

4

2 に答える 2

3

あなたがそれをした方法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

おそらくそれはあなたとうまくいくでしょう。管理もしやすくなります。

于 2011-06-09T03:44:40.387 に答える
1

Flywayの唯一の非ロギングフレームワーク依存関係はSpringです。Mohamed Mansourが指摘したように、単純なLog4J構成設定で、エラーメッセージ以外のすべてを抑制することができます。

春の場合(モハメド・マンスールが指摘したように):

org.springframework=ERROR

Flywayの場合:

com.googlecode.flyway=ERROR
于 2011-06-10T17:39:36.217 に答える