001    package log;
002    
003    import java.io.*;
004    
005    /**
006     * Abstract Factory for {@link Log} creation.
007     *
008     * <p>Instances of this class (or subclasses of it) are used to define the class to be instantiated when
009     * creating new log files. The {@link Log#setLogCreator} takes as a parameter a
010     * LogCreator, which will then be used when creating new log files.</p>
011     *
012     * @see Log
013     * @see Log#setLogCreator
014     * @see Log#createLog
015     *
016     * @author Steffen Zschaler
017     * @version 1.0
018     * @since v1.0
019     */
020    public interface LogCreator {
021    
022        /**
023         * Create a new log file using the given OutputStream. Called by
024         * {@link Log#createLog}.
025         *
026         * @param os the OutputStream to be used.
027         *
028         * @see log.Log#createLog
029         *
030         * @override Always
031         */
032        public Log createLog(OutputStream os);
033    }