Project Report: fawkez

Packagesummary org.jcoderz.commons.logging

org.jcoderz.commons.logging.LogLevelFilter

LineHitsNoteSource
1  /*
2   * $Id: LogLevelFilter.java 1011 2008-06-16 17:57:36Z amandel $
3   *
4   * Copyright 2006, The jCoderZ.org Project. All rights reserved.
5   *
6   * Redistribution and use in source and binary forms, with or without
7   * modification, are permitted provided that the following conditions are
8   * met:
9   *
10   *    * Redistributions of source code must retain the above copyright
11   *      notice, this list of conditions and the following disclaimer.
12   *    * Redistributions in binary form must reproduce the above
13   *      copyright notice, this list of conditions and the following
14   *      disclaimer in the documentation and/or other materials
15   *      provided with the distribution.
16   *    * Neither the name of the jCoderZ.org Project nor the names of
17   *      its contributors may be used to endorse or promote products
18   *      derived from this software without specific prior written
19   *      permission.
20   *
21   * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND
22   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24   * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS
25   * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
28   * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29   * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30   * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
31   * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32   */
33  package org.jcoderz.commons.logging;
34  
35  import java.util.logging.Level;
36  import java.util.logging.LogManager;
37  import java.util.logging.LogRecord;
38  
39  import org.jcoderz.commons.Loggable;
40  
41  
42  /**
43   * Log filter that filters on fawkez loggables and on the log level
44   * of the respective record.
45   * @author Albrecht Messner
46   */
47  public class LogLevelFilter
48        extends LogFilterBase
49  {
50     /** The full qualified name of this class. */
510    private static final String CLASSNAME = LogLevelFilter.class.getName();
52  
530    private static final String LOGLEVEL_PROPERTY_NAME = CLASSNAME + ".level";
54  
55     private final Level mFilterLevel;
56  
57     /**
58      * Creates a new instance of this and initiates the log level for messages,
59      * which should pass this filter. If an error occurs retrieving the
60      * configured level, <code>java.util.logging.Level.INFO</code> is set.
61      *
62      */
63     public LogLevelFilter ()
640    {
650       final String levelStr
66              = LogManager.getLogManager().getProperty(LOGLEVEL_PROPERTY_NAME);
67        Level level;
68        try
69        {
700          level = Level.parse(levelStr);
71        }
72        // possible exceptions: NullPointer, IllegalArgument
730       catch (Exception x)
74        {
750          level = Level.INFO;
760       }
770       mFilterLevel = level;
780    }
79  
80     /** {@inheritDoc} */
81     public boolean isLoggable (LogRecord record)
82     {
830       final Loggable loggable = getLoggable(record);
84        final boolean result;
850       if (loggable != null
86              && record.getLevel().intValue() >= mFilterLevel.intValue())
87        {
880          result = true;
89        }
90        else
91        {
920          result = false;
93        }
940       return result;
95     }
96  }

Findings in this File