【问题标题】:Silencing Flyway -- a log4j problem使 Flyway 静音——一个 log4j 问题
【发布时间】: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 的帮助,而不是过于健谈。误导仍然存在,但不经常发生。

【问题讨论】:

    标签: java logging log4j flyway


    【解决方案1】:

    您在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
    

    也许这对你更有效。它也变得更容易管理。

    【讨论】:

    • 我不清楚你推荐的目的。 Nomad 在下面使用 SBT——Apache Ivy——而 Flyway 确实 使用 Maven 作为其构建工具,但当我开始使用它时,Flyway 只是一个 jar。另外,感谢您提供更简洁的等效属性。
    【解决方案2】:

    Flyway 唯一的非日志框架依赖项是 Spring。正如 Mohamed Mansour 指出的那样,您可以通过简单的 Log4J 配置设置抑制除错误消息之外的所有消息

    对于春天(正如 Mohamed Mansour 所指出的):

    org.springframework=ERROR
    

    对于飞行路线:

    com.googlecode.flyway=ERROR
    

    【讨论】:

    • 这将成为每个 Nomad 用户的必要配置步骤;我更希望在 Nomad 中完成一次
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 2017-03-17
    • 2011-11-20
    相关资源
    最近更新 更多