import com.google.common.base.Stopwatch; import org.apache.log4j.Level; import org.apache.log4j.Logger; import java.util.Random; import java.util.concurrent.TimeUnit; public class Log4jRecordGenerator { public static void main(String[] args) { Logger logger = Logger.getLogger("Log4jRecordGenerator"); MessageGenerator generator = new MessageGenerator(); int count = 100000; int recordSize = 2; //kb Stopwatch stopwatch = Stopwatch.createStarted(); for (int i = 0; i < count; i++) { String msg = generator.buildMessage(i, recordSize * 1024); logger.log(Level.toLevel(i % 5 * 10000), msg); } logger.debug("----------------- DONE HERE -----------------------"); long time = stopwatch.elapsed(TimeUnit.MILLISECONDS); System.out.println("Time to generate " + count + " records: " + time + " milli sec with rate: " + Math.round(count / time)); } static public class MessageGenerator { Random random = new Random(); public String buildMessage(long sequence, int length) { StringBuilder builder = new StringBuilder(length); builder.append('<').append(sequence).append(">\u001F"); for (int i = 0; i < length; i++) { builder.append((char) (random.nextInt(86) + 40)); } return builder.toString(); } } } # Simple configuration #log4j.rootLogger = DEBUG, toFile1 #log4j.appender.toFile1=org.apache.log4j.RollingFileAppender #log4j.appender.toFile1.File=logs/example.log #log4j.appender.toFile1.MaxFileSize=1Gb #log4j.appender.toFile1.MaxBackupIndex=10 #log4j.appender.toFile1.Append=false #log4j.appender.toFile1.layout=org.apache.log4j.PatternLayout #log4j.appender.toFile1.layout.ConversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}\u001F%p\u001F%m%n