/*

	class Logger.java
	by Richard Unger, June 1998, IBM Austria
	
	This class keeps a log, to stdout and to a file, if specified.

*/


import java.io.*;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.TimeZone;

public class Logger{

	
	private BufferedWriter logFile;
	public SimpleDateFormat df;

	public Logger(String logFileName){
	
		if (logFileName == null){
			logFile = null;
			return;
			}
		
		try{
			FileWriter f = new FileWriter(logFileName,true);
			logFile = new BufferedWriter(f);
			}
		catch (IOException e){
			System.err.println(e);
			System.err.println("Unable to open logfile: "+logFileName);
			System.err.println("Logging Disabled.");
			logFile = null;
			}

		df = new SimpleDateFormat("dd.MM.yyyy, HH:mm:ss");
		df.setTimeZone(TimeZone.getDefault());
		}
		
	
	synchronized public void Log(String what){
		Date now = new Date();
		what = df.format(now) + ": " + what;
		System.out.println(what);
		if (logFile != null){
			try{
				logFile.write(what);
				logFile.newLine();
				logFile.flush();
				}
			catch (IOException e){
				System.err.println(e);
				System.err.println("Error writing to log-file.");
				}
			}
		}
	
	public void CloseLog(){
		try {logFile.close();}
		catch (IOException e){
			}
		}
		
		
	public void finalize(){
		CloseLog();
		}
		
	}



