package ch.qos.logback.classic; import org.slf4j.LoggerFactory; import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.spi.LoggingEvent; import junit.framework.TestCase; // it takes about 250 nanos to create a LoggingEvent public class LoggerEventCreationTest extends TestCase { public LoggerEventCreationTest(String arg0) { super(arg0); } protected void setUp() throws Exception { super.setUp(); } protected void tearDown() throws Exception { super.tearDown(); } public void testEventLoop() { long len = 10000000; System.out.println((eventLoop(len))/len); } public void testFfilterMethod() { long len = 10000000; System.out.println((methodCalLoop(len))/len); } long eventLoop(long len) { Logger logger = (Logger) LoggerFactory.getLogger(this.getClass()); LoggingEvent le = null; long start = System.nanoTime(); for(long i = 0; i < len; i++) { le = new LoggingEvent("", logger, Level.DEBUG, "asdasdasd", null, null); } le.getLevel(); long end = System.nanoTime(); return end-start; } long methodCalLoop(long len) { Logger logger = (Logger) LoggerFactory.getLogger(this.getClass()); long start = System.nanoTime(); for(long i = 0; i < len; i++) { filterMethod(logger, Level.DEBUG, "asdasdasd", null, null); } long end = System.nanoTime(); return end-start; } int filterMethod(Logger logger, Level level, String msg, Object[] params, Exception e) { if(level.levelInt < 100) { return 1; } else { return 0; } } }