001: /*
002: * Copyright 1999,2004 The Apache Software Foundation.
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016:
017: package org.apache.catalina;
018:
019: import java.beans.PropertyChangeListener;
020:
021: /**
022: * A <b>Logger</b> is a generic interface for the message and exception
023: * logging methods of the ServletContext interface. Loggers can be
024: * attached at any Container level, but will typically only be attached
025: * to a Context, or higher level, Container.
026: *
027: * @author Craig R. McClanahan
028: * @version $Revision: 1.2 $ $Date: 2004/02/27 14:58:38 $
029: */
030:
031: public interface Logger {
032:
033: // ----------------------------------------------------- Manifest Constants
034:
035: /**
036: * Verbosity level constants for log messages that may be filtered
037: * by the underlying logger.
038: */
039:
040: public static final int FATAL = Integer.MIN_VALUE;
041:
042: public static final int ERROR = 1;
043:
044: public static final int WARNING = 2;
045:
046: public static final int INFORMATION = 3;
047:
048: public static final int DEBUG = 4;
049:
050: // ------------------------------------------------------------- Properties
051:
052: /**
053: * Return the Container with which this Logger has been associated.
054: */
055: public Container getContainer();
056:
057: /**
058: * Set the Container with which this Logger has been associated.
059: *
060: * @param container The associated Container
061: */
062: public void setContainer(Container container);
063:
064: /**
065: * Return descriptive information about this Logger implementation and
066: * the corresponding version number, in the format
067: * <code><description>/<version></code>.
068: */
069: public String getInfo();
070:
071: /**
072: * Return the verbosity level of this logger. Messages logged with a
073: * higher verbosity than this level will be silently ignored.
074: */
075: public int getVerbosity();
076:
077: /**
078: * Set the verbosity level of this logger. Messages logged with a
079: * higher verbosity than this level will be silently ignored.
080: *
081: * @param verbosity The new verbosity level
082: */
083: public void setVerbosity(int verbosity);
084:
085: // --------------------------------------------------------- Public Methods
086:
087: /**
088: * Add a property change listener to this component.
089: *
090: * @param listener The listener to add
091: */
092: public void addPropertyChangeListener(
093: PropertyChangeListener listener);
094:
095: /**
096: * Writes the specified message to a servlet log file, usually an event
097: * log. The name and type of the servlet log is specific to the
098: * servlet container. This message will be logged unconditionally.
099: *
100: * @param message A <code>String</code> specifying the message to be
101: * written to the log file
102: */
103: public void log(String message);
104:
105: /**
106: * Writes the specified exception, and message, to a servlet log file.
107: * The implementation of this method should call
108: * <code>log(msg, exception)</code> instead. This method is deprecated
109: * in the ServletContext interface, but not deprecated here to avoid
110: * many useless compiler warnings. This message will be logged
111: * unconditionally.
112: *
113: * @param exception An <code>Exception</code> to be reported
114: * @param msg The associated message string
115: */
116: public void log(Exception exception, String msg);
117:
118: /**
119: * Writes an explanatory message and a stack trace for a given
120: * <code>Throwable</code> exception to the servlet log file. The name
121: * and type of the servlet log file is specific to the servlet container,
122: * usually an event log. This message will be logged unconditionally.
123: *
124: * @param message A <code>String</code> that describes the error or
125: * exception
126: * @param throwable The <code>Throwable</code> error or exception
127: */
128: public void log(String message, Throwable throwable);
129:
130: /**
131: * Writes the specified message to the servlet log file, usually an event
132: * log, if the logger is set to a verbosity level equal to or higher than
133: * the specified value for this message.
134: *
135: * @param message A <code>String</code> specifying the message to be
136: * written to the log file
137: * @param verbosity Verbosity level of this message
138: */
139: public void log(String message, int verbosity);
140:
141: /**
142: * Writes the specified message and exception to the servlet log file,
143: * usually an event log, if the logger is set to a verbosity level equal
144: * to or higher than the specified value for this message.
145: *
146: * @param message A <code>String</code> that describes the error or
147: * exception
148: * @param throwable The <code>Throwable</code> error or exception
149: * @param verbosity Verbosity level of this message
150: */
151: public void log(String message, Throwable throwable, int verbosity);
152:
153: /**
154: * Remove a property change listener from this component.
155: *
156: * @param listener The listener to remove
157: */
158: public void removePropertyChangeListener(
159: PropertyChangeListener listener);
160:
161: }
|