Commit 8ce88e2c authored by James Hughes's avatar James Hughes
Browse files

restructure MyLogger

parent d03a3723
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -6,8 +6,6 @@
			<attribute name="maven.pomderived" value="true"/>
		</attributes>
	</classpathentry>
	<classpathentry kind="lib" path="/Users/hughes/Desktop/workspace3/jfreechart-1.0.19/lib/jfreechart-1.0.19.jar"/>
	<classpathentry kind="lib" path="/Users/hughes/Desktop/workspace3/jfreechart-1.0.19/lib/jcommon-1.0.23.jar"/>
	<classpathentry combineaccessrules="false" kind="src" path="/MyLogger"/>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
		<attributes>

Demo1/.gitignore

0 → 100755
+2 −0
Original line number Diff line number Diff line
/target/
/target/
+5 −0
Original line number Diff line number Diff line
@@ -27,5 +27,10 @@
  		<artifactId>jackson-core-asl</artifactId>
  		<version>1.9.13</version>
  	</dependency>
  	<dependency>
  		<groupId>org.jfree</groupId>
  		<artifactId>jfreechart</artifactId>
  		<version>1.0.19</version>
  	</dependency>
  </dependencies>
</project>
 No newline at end of file
+0 −16
Original line number Diff line number Diff line
package com.jim;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
@@ -32,37 +30,23 @@ import javax.swing.JPanel;
import javax.swing.ListSelectionModel;
import javax.swing.SwingWorker;
import javax.swing.Timer;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.map.ObjectMapper;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.plot.dial.DialPlot;
import org.jfree.chart.plot.dial.DialPointer;
import org.jfree.chart.plot.dial.DialValueIndicator;
import org.jfree.chart.plot.dial.StandardDialFrame;
import org.jfree.chart.plot.dial.StandardDialScale;
import org.jfree.chart.renderer.xy.DefaultXYItemRenderer;
import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.data.general.DefaultValueDataset;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.RegularTimePeriod;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

import com.jims.MyLogger;

/**
 * A demonstration application showing a time series chart where you can
 * dynamically add (random) data by clicking on a button.
+98 −0
Original line number Diff line number Diff line
package com.jim;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.ConsoleHandler;
import java.util.logging.Formatter;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger;



public class MyLogger { 

	private static String thisClass(int n) {
		StackTraceElement[] ste = new RuntimeException().getStackTrace();
		if (n>ste.length)
			throw new Error("depth incorrect");
		return ste[n].getClassName();
	}

	public static Logger get(Level thisClassLevel, Level rootLevel) {
		Logger log = Logger.getLogger(thisClass(1));
		log.setLevel(thisClassLevel);
		root.setLevel(rootLevel);
		return log;
	}

	public static Logger get(Level thisClassLevel) {
		Logger log = Logger.getLogger(thisClass(1));
		log.setLevel(thisClassLevel);
		return log;
	}

	public static Logger get() {
		Logger log = Logger.getLogger(thisClass(1));
		return log;
	}

	
	static class myFormatter extends Formatter {

		static final DateFormat formatter = new SimpleDateFormat("HH:mm:ss.SSS");

		public String format(LogRecord record) {
			
			Date date = new Date(record.getMillis());
			
			return formatter.format(date) + ":  " + record.getLevel() + ":  "
					+ record.getSourceClassName() + ": "
					+ record.getSourceMethodName() + ": " + record.getMessage()
					+ "\n";
		}
	}
	
	private static Logger root = Logger.getLogger("");
	static {		
		Handler[] handlers = root.getHandlers();
		for (Handler h:handlers)
			root.removeHandler(h);
		// log.setUseParentHandlers(false);
		Handler conHdlr = new ConsoleHandler();
		conHdlr.setFormatter(new myFormatter());
		conHdlr.setLevel(Level.FINEST);
		root.addHandler(conHdlr);
		root.setLevel(Level.FINEST);
	}

	private static long baseNano  = System.nanoTime();
	private static long baseMilli = System.currentTimeMillis();
	static {
		long n1,n3,n5;
		long m2, m4;
		long dt = Integer.MAX_VALUE;
		for (int i=0;i<20;i++) {
			do {
				n1=System.nanoTime();
				m2=System.currentTimeMillis();
				n3=System.nanoTime();
				m4=System.currentTimeMillis();
				n5=System.nanoTime();				
			} while (m2==m4);
			long dt1 = n5-n1;
			if (dt1 < dt) {
				baseMilli = m4;
				baseNano = n3;
				dt = dt1;
			}
		}
	}
	
	public static double nanoTime() {
		double t = (System.nanoTime()-baseNano)/1e9;
		return (baseMilli/1e3)+t;
	}
}
 No newline at end of file
Loading