View Javadoc

1   package org.lsst.ccs.utilities.logging;
2   
3   import java.util.logging.ConsoleHandler;
4   import java.util.logging.Level;
5   import java.util.logging.LogManager;
6   import java.util.logging.LogRecord;
7   
8   import static org.lsst.ccs.utilities.tracers.Tracer.trace;
9   
10  /**
11   * A Console handler that detects duplicate logs.
12   * <BR/>
13   * This Handler systematically eliminates the standard <TT>ConsoleHandler</TT> that could be
14   * running at the top of the hierarchy.
15   *
16   * @author bamade
17   */
18  // Date: 29/05/13
19  
20  public class ConsoleHandlerN extends ConsoleHandler {
21      protected static final IsLoggableDelegate isLoggableDelegate = new IsLoggableDelegate();
22  
23      @Override
24      public boolean isLoggable(LogRecord record) {
25          assert trace("->" + record.getLoggerName() + " loggable?: " + super.isLoggable(record));
26          return super.isLoggable(record) && isLoggableDelegate.isLoggable(record);
27      }
28  
29      public ConsoleHandlerN() {
30          LogManager logManager = LogManager.getLogManager();
31  
32          Level defaultLevel = LogManagement.cleanConsole();
33              /*
34              if (defaultLevel != null) {
35                  setLevel(defaultLevel);
36              */
37      }
38  }