001: /*_############################################################################
002: _##
003: _## SNMP4J - LogAdapter.java
004: _##
005: _## Copyright (C) 2003-2008 Frank Fock and Jochen Katz (SNMP4J.org)
006: _##
007: _## Licensed under the Apache License, Version 2.0 (the "License");
008: _## you may not use this file except in compliance with the License.
009: _## You may obtain a copy of the License at
010: _##
011: _## http://www.apache.org/licenses/LICENSE-2.0
012: _##
013: _## Unless required by applicable law or agreed to in writing, software
014: _## distributed under the License is distributed on an "AS IS" BASIS,
015: _## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016: _## See the License for the specific language governing permissions and
017: _## limitations under the License.
018: _##
019: _##########################################################################*/
020:
021: package org.snmp4j.log;
022:
023: import java.util.Iterator;
024:
025: /**
026: * The <code>LogAdapter</code> specifies the logging interface used by
027: * SNMP4J. To provide another logging mechanism as the default no-logging
028: * the static method {@link LogFactory#setLogFactory} can be used to assign
029: * a different logging adapter factory.
030: *
031: * @author Frank Fock
032: * @version 1.6.1
033: * @since 1.2.1
034: */
035: public interface LogAdapter {
036:
037: /**
038: * Checks whether DEBUG level logging is activated for this log adapter.
039: * @return
040: * <code>true</code> if logging is enabled or <code>false</code> otherwise.
041: */
042: boolean isDebugEnabled();
043:
044: /**
045: * Checks whether INFO level logging is activated for this log adapter.
046: * @return
047: * <code>true</code> if logging is enabled or <code>false</code> otherwise.
048: */
049: boolean isInfoEnabled();
050:
051: /**
052: * Checks whether WARN level logging is activated for this log adapter.
053: * @return
054: * <code>true</code> if logging is enabled or <code>false</code> otherwise.
055: */
056: boolean isWarnEnabled();
057:
058: /**
059: * Logs a debug message.
060: * @param message
061: * the message to log.
062: */
063: void debug(Object message);
064:
065: /**
066: * Logs an informational message.
067: * @param message
068: * the message to log.
069: */
070: void info(Object message);
071:
072: /**
073: * Logs an warning message.
074: * @param message
075: * the message to log.
076: */
077: void warn(Object message);
078:
079: /**
080: * Logs an error message.
081: * @param message
082: * the message to log.
083: */
084: void error(Object message);
085:
086: /**
087: * Logs an error message.
088: * @param message
089: * the message to log.
090: * @param throwable
091: * the exception that caused to error.
092: */
093: void error(Object message, Throwable throwable);
094:
095: /**
096: * Logs a fatal message.
097: * @param message
098: * the message to log.
099: */
100: void fatal(Object message);
101:
102: /**
103: * Logs a fatal message.
104: * @param message
105: * the message to log.
106: * @param throwable
107: * the exception that caused to error.
108: */
109: void fatal(Object message, Throwable throwable);
110:
111: /**
112: * Sets the log level for this log adapter (if applicable).
113: * @param level
114: * a LogLevel instance.
115: * @since 1.6.1
116: */
117: void setLogLevel(LogLevel level);
118:
119: /**
120: * Returns the log level defined for this log adapter.
121: * @return
122: * a LogLevel instance.
123: * @since 1.6.1
124: */
125: LogLevel getLogLevel();
126:
127: /**
128: * Returns the log level that is effective for this log adapter.
129: * The effective log level is the first log level different from
130: * {@link LogLevel#NONE} to the root.
131: * @return
132: * a LogLevel different than {@link LogLevel#NONE}.
133: * @since 1.6.1
134: */
135: LogLevel getEffectiveLogLevel();
136:
137: /**
138: * Returns the name of the logger.
139: * @return
140: * the name of the logger.
141: */
142: String getName();
143:
144: /**
145: * Returns the log handlers associated with this logger.
146: * @return
147: * an Iterator of log system dependent log handlers.
148: * @since 1.6.1
149: */
150: Iterator getLogHandler();
151: }
|