5

Log4j では、アプリケーション内のさまざまなパッケージをさまざまなレベルで簡単にログに記録できます (これは、デバッグに特に役立ちます)。独自のフィルターを作成する以外に、これを行う簡単な方法はありますか?

ルートタグ内またはパッケージ名の後にタグを作成しようとしました(つまり、Log4Jを連想させます)。その後、その中にアペンダーを配置しましたが、機能しませんでした。

では、カスタム フィルターの実装を必要としない、特定のパッケージのロガーやログ レベルを定義する LogBack の組み込みの方法はありますか?

4

1 に答える 1

10

私はプレイを使用しています!Web アプリであり、パッケージごとに異なるログ レベルがあります。<logger>要素の名前でパッケージを指定できます 。

私の設定は次のとおりです。

<configuration>

    <conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel"/>

    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${application.home}/logs/application.log</file>
        <encoder>
            <pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
        </encoder>
    </appender>
    <appender name="TIMESTAMP_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <file>${application.home}/logs/batches/current.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy" maxHistory="720">
            <fileNamePattern>${application.home}/logs/batches/archived/%d{yyyy/MM/dd}.gz</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>{mpoplib} %date - [%level] in %thread %n%message%n%xException%n</pattern>
        </encoder>
    </appender>


    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%coloredLevel %logger{15} - %message%n%xException{5}</pattern>
        </encoder>
    </appender>

    <logger name="play" level="INFO">
        <appender-ref ref="FILE"/>
    </logger>
    <logger name="application" level="INFO">
        <appender-ref ref="FILE"/>
    </logger>
    <logger name="ru.kupikupon.mpoplib" level="DEBUG">
        <appender-ref ref="TIMESTAMP_FILE"/>
    </logger>


    <root level="DEBUG">
        <appender-ref ref="STDOUT"/>
    </root>

</configuration>
于 2013-03-29T06:26:33.737 に答える