public static void main()

in troubleshooting/tools/log4j-tcp-app/src/main/java/com/mycompany/app/App.java [24:98]


    public static void main( String[] args ) throws InterruptedException
    {
    	String tmp;
        System.out.println( "Hello World! v5: 2 second sleep, 1 mil logs" );
        //System.out.println(Thread.currentThread().getContextClassLoader().getResource("log4j.properties"));
        ClassLoader loader = App.class.getClassLoader();
        // System.out.println(loader.getResource("App.class"));
        
        tmp = System.getenv("LOOP_ITERATIONS");
        if (tmp != null) {
        	try {
        		LOOP_ITERATIONS = Integer.parseInt(tmp);
        	}
        	catch (NumberFormatException e) {
        		e.printStackTrace();
        	}
        }
        
        tmp = System.getenv("LOG_PADDING");
        if (tmp != null) {
        	try {
        		LOG_PADDING = Integer.parseInt(tmp);
        	}
        	catch (NumberFormatException e) {
        		e.printStackTrace();
        	}
        }
        
        String padding = createPadding(LOG_PADDING);
        
        logger.debug("Hello this is a debug message");
        logger.info("Hello this is an info message");
        
        double[] metrics = new double[LOOP_ITERATIONS];
        double total = 0;
        long total_ms = 0;
        
        
        for (int i=0; i < LOOP_ITERATIONS; i++) {
        
	        long startTime = System.currentTimeMillis();
	
	        
	        for (int k=0; k < INNER_LOOP_ITERATIONS; k++) {
	        	logger.debug("Hello " + i + " " + padding);
	            logger.info("Hello " + i + " " + padding);
	        }
	        
	        long endTime = System.currentTimeMillis();
	        
	        long elapsedms = (endTime - startTime);
	        total_ms += elapsedms;
	        
	        
	        long seconds = (endTime - startTime)/1000;
	        long milli = (endTime - startTime) % 1000;
	        double logspermillisecond = (INNER_LOOP_ITERATIONS * 2)/elapsedms;
	        total += logspermillisecond;
	        metrics[i] = logspermillisecond;
	        
	        System.out.println("Iteration: " + i);
	        System.out.println("Sent: " + (INNER_LOOP_ITERATIONS * 2) + " logs");
	        System.out.println("Log size: " + LOG_PADDING + " bytes");
	        System.out.println("Runtime: " + seconds + "." + milli + "s\nRate: " + logspermillisecond + " logs/ms");
	        System.out.println("Total execution time: " + (endTime - startTime)  + "ms");
	        System.out.println("_____________");
	        java.util.concurrent.TimeUnit.SECONDS.sleep(2);
        }
        System.out.println("AVERAGE RATE: " + (total / LOOP_ITERATIONS) + " logs/ms");
        System.out.println("AVERAGE RATE good math: " + ((LOOP_ITERATIONS * INNER_LOOP_ITERATIONS * 2)/ total_ms) + " logs/ms");
       
        double stdev = calculateStandardDeviation(metrics);
        System.out.println("STDEV: " + stdev + " logs/ms");
        
    }