package log;

import java.io.*;

/**
  * Abstract Factory for {@link Log} creation.
  *
  * <p>Instances of this class (or subclasses of it) are used to define the class to be instantiated when
  * creating new log files. The {@link Log#setLogCreator} takes as a parameter a
  * LogCreator, which will then be used when creating new log files.</p>
  *
  * @see Log
  * @see Log#setLogCreator
  * @see Log#createLog
  *
  * @author Steffen Zschaler
  * @version 1.0
  * @since v1.0
  */
public interface LogCreator {

  /**
    * Create a new log file using the given OutputStream. Called by
    * {@link Log#createLog}.
    *
    * @param oo the OutputStream to be used.
    *
    * @see log.Log#createLog
    *
    * @override Always
    */
  public Log createLog (OutputStream os);
}