2016-08-31 7 views
1

Log4jでのロギングを理解しようとしていますが、私の現在の調査の1つは、大量のデータエントリ(100k)をログファイルに書き込むことです。私は現在、Log4j 1.2.17を使い、NetBeans 8.1を使用しています。私のlog4j.propertiesファイルは大量のログを基本的に記録する

log4j.rootLogger=debug, stdout, R 
# This is use for debuging mode 
log4j.logger.testlogging=DEBUG 

#### Appender writes to console 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p [%t] (%F:%L) - %m%n 

#### Appender writes to a file 
log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=example.log 
log4j.appender.R.MaxBackupIndex=1 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p [%t] (%F:%L) - %m%nenter code here 

であると私は私がいないすべてのエントリが人口なっていることがわかり、このプログラムを実行した後に作成された私のexamples.logファイルを表示すると、私の実際のプログラムは

package log4j; 
import org.apache.log4j.Logger; 
public class Log4j { 
//initializing the logger 
private final static Logger log = Logger.getLogger(Log4j.class.getName()); 
    public static void main(String[] args) { 
     int testnum = 100000; 
     for (int i = 0; i<testnum ; i++) { 
      log.debug("This is a test and the current value is " + i);    
     } 
    }  
} 

です私はコンソールで見るように。私はおそらく6962から14752から99775までの間で変動しているのが分かります。ファイルが出力できるメモリには限界がありますか?すべて100kのエントリがログファイルに書き込まれるようにするにはどうすればよいですか?

答えて

1

デフォルトでは、org.apache.log4j.RollingFileAppenderのデフォルトのサイズ制限は10Mbになります。

log4j.appender.R.maxFileSize=<number_of_bytes_you_need> 

また、別のアペンダーの実装を選択することもできます。公式manualに詳しい情報があります。

NOTE

モーメントのlog4j 1.xバージョンでは廃止されました。私はlog4jを使用することをお勧めします2.x

+0

私はうまくいけばすべてを説明するためにサイズを作ってみましたが、それはまだ36KBになってもすべてをつかむことはありません。とにかく私は1.xのバージョンが廃止されていることを知っていますが、私は2.xを自分のワークスペースで動かすことができませんでしたので、私はロールバックしました。 – TimTom

関連する問題