|
qflib 0.98.0 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--de.qfs.lib.log.AbstractLogUser | +--de.qfs.lib.log.TreeFilter
This class filters log messages based on a tree of log levels. Log levels can be set for methods, classes, packages or even parts thereof.
Whether a message is filtered out depends on the most fine grained log level available for the sending class and method. For example if there is a message from class somePackage.SomeClass, method someMethod at level 5 and there is a setting of 4 for somePackage the message will be filtered out. If there is an additional setting of 6 for somePackage.SomeClass.someMethod, the message will be passed on instead.
To speed up the decision, log levels are cached in an internal hashtable.
Inner Class Summary | |
static class |
TreeFilter.UnitTest
Test cases for the TreeFilter class. |
Field Summary | |
protected java.util.Hashtable |
cache
The cache for the log levels. |
protected int |
defaultLevel
The default level for messages that aren't further defined. |
protected java.util.Hashtable |
levels
The hashtable holding the log levels |
static char |
msep
Used internally as a separator between class and method names. |
Fields inherited from class de.qfs.lib.log.AbstractLogUser |
mode |
Fields inherited from interface de.qfs.lib.log.LogUser |
FILTER_ALL, FILTER_NONE, FILTER_UNUSED, FILTER_USED |
Constructor Summary | |
TreeFilter()
Create a new TreeFilter with mode FILTER_UNUSED . |
|
TreeFilter(int mode,
LogWriter writer)
Create a new TreeFilter. |
|
TreeFilter(LogWriter writer)
Create a new TreeFilter with mode FILTER_USED . |
Method Summary | |
protected void |
clearCache(java.lang.String clazz)
Remove all cache entries for a class or package. |
boolean |
filter(int level,
java.lang.String clazz,
java.lang.String method,
java.lang.String message)
Decide, whether a message should be logged. |
int |
getDefault()
Get the default level for unknown classes/methods. |
int |
getLevel(java.lang.String clazz,
java.lang.String method)
Get the level for a message. |
protected int |
getParentLevel(java.lang.String clazz)
Get the most detailed level available for a class. |
protected boolean |
isUseful(LogEntry entry)
Decide whether a log message is useful and should be passed to the log writer. |
protected void |
methodAdded(java.lang.String Clazz,
java.lang.String method)
This method is intended to be implemented by a possible subclass. |
protected void |
removeChildren(java.lang.String clazz,
int level)
Remove all further detailed entries for a class. |
void |
removeLevel(java.lang.String clazz,
java.lang.String method,
boolean recurse)
Unset a level for a class, method pair. |
void |
setDefault(int defaultLevel)
Set the default level for unknown classes/methods. |
void |
setLevel(java.lang.String clazz,
java.lang.String method,
int level,
boolean recurse)
Set the log level for a class and method, where method may be null to set a general value. |
Methods inherited from class de.qfs.lib.log.AbstractLogUser |
filter, filter, getLogWriter, setFilterMode, setLogWriter |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected java.util.Hashtable cache
protected java.util.Hashtable levels
protected int defaultLevel
public static final char msep
Constructor Detail |
public TreeFilter()
FILTER_UNUSED
.public TreeFilter(LogWriter writer)
FILTER_USED
.writer
- The LogWriter to write useful entries to.public TreeFilter(int mode, LogWriter writer)
mode
- The LogUser
mode.writer
- The LogWriter to write useful entries to.Method Detail |
public boolean filter(int level, java.lang.String clazz, java.lang.String method, java.lang.String message)
level
- The level of the message.clazz
- The name of the sending class.method
- The name of the sending method.message
- The message.protected boolean isUseful(LogEntry entry)
isUseful
in class AbstractLogUser
entry
- The LogEntry to check.public int getDefault()
public void setDefault(int defaultLevel)
defaultLevel
- The level to set.public int getLevel(java.lang.String clazz, java.lang.String method)
clazz
- The name of the sending class.method
- The originating method.public void setLevel(java.lang.String clazz, java.lang.String method, int level, boolean recurse)
clazz
- The name of the class. Should end with '.' to denote
a package.method
- The name of the method. Null for class or package.level
- The level to set.recurse
- If true, set the same level for all further
detailed classes and their methods, if false
just clear the cache for the depending methods
but leave intermediate levels intact.public void removeLevel(java.lang.String clazz, java.lang.String method, boolean recurse)
clazz
- The name of the class. Should end with '.' to denote
a package.method
- The name of the method. Null for class or package.recurse
- If true, also remove the levels for all further
detailed classes and their methods, if false
just clear the cache for the depending messages
but leave intermediate levels intact.protected int getParentLevel(java.lang.String clazz)
clazz
- The name of the classprotected void removeChildren(java.lang.String clazz, int level)
clazz
- The name of the class.level
- The level to set for leaf entries, i.e. those
containing a method as well as a class.protected void clearCache(java.lang.String clazz)
clazz
- The name of the class or package.protected void methodAdded(java.lang.String Clazz, java.lang.String method)
clazz
- The new class.method
- The new method.
|
qflib 0.98.0 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |