私は広く使用されているlog4jのような別のロギングソリューションを試してみることをお勧めします(多くの場合、コモンズログと組み合わせて)。これは、ロギングに対する実践的なアプローチを提供します。
さらに多くの制御が必要な場合は、独自のアペンダーを実装できます。あなたがファイルアペンダーを望むと仮定すると、FileAppenderのappendルーチンを上書きすることができます。
フルデバッグログを実行するときに、5〜10%の性能低下が予想され、例えば、
public class BatchingFileAppender extends FileAppender {
private List<LoggingEvent> batch = new LinkedList<LoggingEvent>;
public static final int BATCH_SIZE = 10;
@Override
protected void append(LoggingEvent event) {
batch.add(event);
// you can even optionally push ever 10'th or so messages to file
if (batch.size() == BATCH_SIZE) {
appendBatch();
}
}
@Override
protected void reset() {
appendBatch();
}
@Override
protected void closeWriter() {
appendBatch();
}
private void appendBatch() {
for(LoggingEvent event : batch) {
super.append(event);
}
batch.clear();
}
}
ログイベントのメモリにバッファリングがある場合、アプリケーションがクラッシュします。通常、それはあなたが何を言ったかを知りたがっているものです。 –