あなたは、アプリケーションの起動時にログファイルをロールオーバーするExternallyRolledFileAppender
とRoller
クラスを使用することができます。
import org.apache.log4j.Logger;
import org.apache.log4j.varia.Roller;
public class Test {
private static final Logger log = Logger.getLogger(Test.class);
public static void main(final String[] args) {
Roller.main(new String[] {"localhost", "9999"});
log.debug("Started application!");
}
}
そして例log4j.properties
ファイル:
log4j.appender.file=org.apache.log4j.varia.ExternallyRolledFileAppender
log4j.appender.file.File=app.log
log4j.appender.file.Port=9999
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5p: %t: %c: %m%n
log4j.rootLogger=DEBUG, file
が
ExternallyRolledFileAppender
で警告に耳を傾けてください:イニシエータが認証されていないことを
注
は、ここでの例のクラスです。誰でもロールオーバーを開始できます。実稼働環境では、望ましくないロールオーバーを防ぐために何らかの形の保護を追加することをお勧めします。
これがあなたのニーズに合わない場合は、独自の同様のAppender
実装を作成するのは簡単です。
私は私自身のアペンダ書き込むことによってこれを解決した
私は自分のコードを "きれい"にしておきたいので、以前はlog4jの設定をすべてXMLファイルに取り除いていました。しかし、私はsetFile()を唯一のプログラム的な設定として使ってみました。 – EsTeGe