Skip to content

Instantly share code, notes, and snippets.

@yarikc
Created January 25, 2016 01:06
Show Gist options
  • Save yarikc/ce5b3d0accc839d10710 to your computer and use it in GitHub Desktop.
Save yarikc/ce5b3d0accc839d10710 to your computer and use it in GitHub Desktop.
Generate log4j records or configurable size
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment