1

org.apache.log4j.PropertyConfigurator を介してロギングを構成しました

log4j.rootLogger=ERROR, console
log4j.logger.com.mypackage=INFO
log4j.appender.console=org.apache.log4j.ConsoleAppender
// pattern, layout
log4j.appender.console.Threshold=INFO

直接呼び出してロギングを使用するサードパーティコードを使用しています

org.apache.log4j.Logger.getLogger(name).callAppenders(...)

この呼び出しはレベル チェックをスキップし、アペンダーのしきい値のみに依存します。私のパッケージからのログもそれを通過しないため、アペンダーのしきい値を上げることはできません。コードの INFO ログ レベルとサード パーティのエラーが必要です。

4

2 に答える 2

1

機能する解決策は (あまりいいとは思いませんが)、Cygnusx1 が提案したものと似ています: 異なるしきい値を持つ 2 つのコンソール アペンダを定義し、それに応じて割り当てます:

log4j.rootLogger=ERROR, console // receive error message on console from all packages
log4j.logger.com.problematic= , console2  // define another appender for the problematic package
log4j.additivity.com.problematic = false // don't propagate messages to root to avoid duplicates

log4j.appender.console2 = org.apache.log4j.ConsoleAppender
log4j.appender.console2.Threshold = ERROR
于 2013-04-22T07:06:34.593 に答える
1

2 つのアペンダーを定義する必要があります。1 つは自分のもの用、もう 1 つはサードパーティのもの用です。次に、参照する2つのロガーを構成します。適切なしきい値を持つ適切なアペンダー。

そんな感じ:

<appender name="mystuff" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="../logs/mystuff.log" />
    <param name="datePattern" value="yyyy-MM-dd" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd-MM-yyyy kk:mm:ss.SSS} %-5p %c %x - %m%n" />

    </layout>
</appender>

<appender name="thridPartystuff" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="../logs/thirdParty.log" />
    <param name="datePattern" value="yyyy-MM-dd" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd-MM-yyyy kk:mm:ss.SSS} %-5p %c %x - %m%n" />

    </layout>
</appender>

<logger name="com.mystuf" additivity="true">
    <level value="info" />
    <appender-ref ref="mystuff" />
</logger>

<logger name="com.third.party.package">
    <level value="error" />
    <appender-ref ref="thridPartystuff" />
</logger>
于 2013-04-19T19:34:12.423 に答える