View Javadoc

1   package cz.cuni.amis.pogamut.base.utils.logging;
2   
3   import java.util.logging.LogRecord;
4   
5   /**
6    * Java logging API relies on handlers for publishing records, we have
7    * created one instance of this Handler (LogHandler instnace) and delegate
8    * abstract methods from Handler on the publisher interface.
9    * <p><p>
10   * Default implementation LogPublisher exists which is using Formatter
11   * to format the LogRecord - inside this LogPublisher you will find
12   * public static inner class with default implementation for publishing
13   * log records to Console or File (LogPublisher.ConsolePublisher and
14   * LogPublisher.FilePublisher classes).
15   * 
16   * @author Jimmy
17   */
18  public interface ILogPublisher {
19  	
20  	/**
21  	 * From JavaDoc API:
22  	 * <p>
23       * Publish a <tt>LogRecord</tt>.
24       * <p>
25       * The logging request was made initially to a <tt>Logger</tt> object,
26       * which initialized the <tt>LogRecord</tt> and forwarded it here.
27       * <p>
28       * The <tt>Handler</tt>  is responsible for formatting the message, when and
29       * if necessary.  The formatting should include localization.
30       * <hr>
31       * 
32       *
33       * @param  record  description of the log event. A null record is
34       *                 silently ignored and is not published
35       */
36      public void publish(LogRecord record);
37  
38      /**
39       * From JavaDoc API:
40  	 * <p>
41       * Flush any buffered output.
42       */
43      public void flush();
44  
45      /**
46       * From JavaDoc API:
47  	 * <p>
48       * Close the <tt>Handler</tt> and free all associated resources.
49       * <p>
50       * The close method will perform a <tt>flush</tt> and then close the
51       * <tt>Handler</tt>.   After close has been called this <tt>Handler</tt>
52       * should no longer be used.  Method calls may either be silently
53       * ignored or may throw runtime exceptions.
54       *
55       * @exception  SecurityException  if a security manager exists and if
56       *             the caller does not have <tt>LoggingPermission("control")</tt>.
57       */
58      public void close() throws SecurityException;
59  
60  }