4

以下のエントリがLog4jプロパティ ファイルで行われるアプリケーションがあります。このアプリケーションでは、サイズ ベースのローリングが機能しません。ファイルは 5 MB でロールオーバーせず、アプリケーションはログを記録して GB 単位で作成し続けます。1 回の実行で、約 6 MB のログが生成されます。アプリケーションは 1 日に複数回実行されます。

誰かが私が間違いをしている場所を指摘するのを助けることができますか?

# SampleApp configuration
log4j.category.com.ibm.hmel.hwmmphdya=INFO, SampleApp  
log4j.additivity.com.ibm.hmel.hwmmphdya=false  
log4j.appender.SampleApp =org.apache.log4j.rolling.RollingFileAppender  
log4j.appender.SampleApp.File=S:/FIH/LOG/SAMPLE_APP_01/SAMPLE_APP_01.log  
log4j.appender.SampleApp.layout=org.apache.log4j.PatternLayout  
log4j.appender.SampleApp.layout.ConversionPattern=%-21d{dd-MMM-yyyy HH:mm:ss} [%t] %-5p %c %x - %m%n  

log4j.appender.SampleApp.RollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy
log4j.appender.SampleApp.RollingPolicy.FileNamePattern=S:/HIF/LOG/SAMPLE_APP_01  /SAMPLE_APP_01.log.%i.zip
log4j.appender.SampleApp.RollingPolicy.MinIndex=1
log4j.appender.SampleApp.RollingPolicy.MaxIndex=10
log4j.appender.SampleApp.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.SampleApp.TriggeringPolicy.MaxFileSize=5242880
4

4 に答える 4

1

私のために次の作品

log4j.rootLogger=TRACE, Roller

log4j.appender.Roller=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.Roller.RollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy  
log4j.appender.Roller.RollingPolicy.maxIndex=13
log4j.appender.Roller.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy  
log4j.appender.Roller.TriggeringPolicy.MaxFileSize=26214400
log4j.appender.Roller.RollingPolicy.FileNamePattern=j_log_%i.log
log4j.appender.Roller.RollingPolicy.ActiveFileName=j_log_0.log
log4j.appender.Roller.layout=org.apache.log4j.PatternLayout
log4j.appender.Roller.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
于 2014-07-11T01:50:35.830 に答える
0

ご覧のとおり、lo4j コンパニオン エクストラを使用しています。最新の log4j.jar を使用していることを確認してください (バージョン 1.2.17 で動作し、バージョン 1.2.14 で問題が発生しました)。

問題を再現するための簡単なテストアプリを作成しました:

package com.ibm.hmel.hwmmphdya;
import org.apache.log4j.Logger;

public class Roller {

    private Logger logger = Logger.getLogger(Roller.class);
    private final String FAKE_LOG_LINE = "12345678901234567890123456789012345678901234567890";

    public static void main(String[] args) {
        Roller roller = new Roller();
        roller.logStuff();
    }

    private void logStuff() {
        for (;;) { // ugly loop
            logger.info(FAKE_LOG_LINE);
        }
    }
}

log4j.propertiesクラスパスに次のように配置します。

log4j.category.com.ibm.hmel.hwmmphdya=INFO, Roller
log4j.additivity.com.ibm.hmel.hwmmphdya=false
log4j.appender.Roller=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.Roller.File=D:/FIH/SAMPLE_APP_01.log
log4j.appender.Roller.layout=org.apache.log4j.PatternLayout
log4j.appender.Roller.layout.ConversionPattern=%-21d{dd-MMM-yyyy HH:mm:ss} [%t] %-5p %c %x - %m%n
log4j.appender.Roller.RollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy
log4j.appender.Roller.RollingPolicy.FileNamePattern=D:/FIH/SAMPLE_APP_01.log.%i.zip 
log4j.appender.Roller.RollingPolicy.MinIndex=1 
log4j.appender.Roller.RollingPolicy.MaxIndex=10 
log4j.appender.Roller.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.Roller.TriggeringPolicy.MaxFileSize=5242880

私の結果は問題ないと思います。ログ出力ディレクトリの内容は次のとおりです。

2013-02-27  09:30    <DIR>          .
2013-02-27  09:30    <DIR>          ..
2013-02-27  09:30         4 440 720 SAMPLE_APP_01.log
2013-02-27  09:30         5 242 920 SAMPLE_APP_01.log.1.zip
2013-02-27  09:30         5 242 920 SAMPLE_APP_01.log.2.zip
2013-02-27  09:30         5 242 920 SAMPLE_APP_01.log.3.zip
2013-02-27  09:30         5 242 920 SAMPLE_APP_01.log.4.zip
2013-02-27  09:30         5 242 920 SAMPLE_APP_01.log.5.zip

ファイルサイズ「5 242 920」は、ほぼ設定されたものです。

-Dlog4j.debugシステム プロパティを提供することで、ケースのトラブルシューティングをさらに進めることができます。

更新: コンパニオン エクストラ lib ( apache-log4j-extras-1.1.jar) がクラスパスに存在することを確認することをお勧めします。

于 2013-02-27T08:51:39.673 に答える
0

あなたのサイズにユニットを追加してみてください

MaxFileSize=5242880KB
于 2013-02-27T07:34:19.153 に答える
0

apache-log4j-extras.jarが含まれており、 log4j-1.2.16.jarまたは少なくとも 2.17 バージョン以上を使用していることを確認してください。使用できる log4j.properties のサンプルを次に示します。

    #Worked with 2.17 version
    #make log files rotate based on size and zip old rotated
    log4j.rootLogger=INFO, loggerId
    log4j.appender.loggerId=org.apache.log4j.rolling.RollingFileAppender
    log4j.appender.loggerId.rollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy
    log4j.appender.loggerId.rollingPolicy.maxIndex=5
    log4j.appender.loggerId.triggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
    log4j.appender.loggerId.triggeringPolicy.MaxFileSize=10000000
    log4j.appender.loggerId.rollingPolicy.FileNamePattern=worker-%i.log.gz
    log4j.appender.loggerId.rollingPolicy.ActiveFileName=worker.log
    log4j.appender.loggerId.layout=org.apache.log4j.PatternLayout
    log4j.appender.loggerId.layout.ConversionPattern=%d [%t] %-5p (%F:%L) - %m%n

物件の詳細はこちらをご確認ください

于 2016-10-26T13:26:53.333 に答える