import java.io.*;

/**
 * Logs messages to a file
 *
 * @author  Prof. David Bernstein, James Madison University
 * @version 1.0
 */
public class MessageLogger implements EventListener
{
    FileWriter    out;
    String        fileName;

    /**
     * Default Constructor
     */
    public MessageLogger()
    {
       fileName = "log.txt";
    }


    /**
     * Handle an event
     *
     * @param event   The event to handle
     * @return        true if the event was handled
     */
    public boolean handleEvent(ListenerEvent event)
    {
       String name, value;
       
       name  = event.getName();
       value = event.getValue();
	
       logMessage(name, value);

       return true;
    }


    /**
     * Log a message
     *
     * This method re-opens the file (for append) each time
     * it is called to ensure that no messages are lost
     *
     * @param name   The name of the message
     * @param value  The message
     */
    private void logMessage(String name, String value)
    {
       try
       {
          out = new FileWriter(fileName, true);        
          out.write(name + "\t" + value + "\n");
          out.close();
       } 
       catch (IOException ioe)
       {
          System.out.println("Problem logging: " + name + 
                             "\t" + value);
       }
    }
    
}
