1/*
2 * Copyright 2001-2004 The Apache Software Foundation.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17
18package org.apache.commons.logging;
19
20/**
21 * <p>A simple logging interface abstracting logging APIs.  In order to be
22 * instantiated successfully by {@link LogFactory}, classes that implement
23 * this interface must have a constructor that takes a single String
24 * parameter representing the "name" of this Log.</p>
25 *
26 * <p> The six logging levels used by <code>Log</code> are (in order):
27 * <ol>
28 * <li>trace (the least serious)</li>
29 * <li>debug</li>
30 * <li>info</li>
31 * <li>warn</li>
32 * <li>error</li>
33 * <li>fatal (the most serious)</li>
34 * </ol>
35 * The mapping of these log levels to the concepts used by the underlying
36 * logging system is implementation dependent.
37 * The implemention should ensure, though, that this ordering behaves
38 * as expected.</p>
39 *
40 * <p>Performance is often a logging concern.
41 * By examining the appropriate property,
42 * a component can avoid expensive operations (producing information
43 * to be logged).</p>
44 *
45 * <p> For example,
46 * <code><pre>
47 *    if (log.isDebugEnabled()) {
48 *        ... do something expensive ...
49 *        log.debug(theResult);
50 *    }
51 * </pre></code>
52 * </p>
53 *
54 * <p>Configuration of the underlying logging system will generally be done
55 * external to the Logging APIs, through whatever mechanism is supported by
56 * that system.</p>
57 *
58 * @author <a href="mailto:sanders@apache.org">Scott Sanders</a>
59 * @author Rod Waldhoff
60 * @version $Id: Log.java 381838 2006-02-28 23:57:11Z skitching $
61 *
62 * @deprecated Please use {@link java.net.URL#openConnection} instead.
63 *     Please visit <a href="http://android-developers.blogspot.com/2011/09/androids-http-clients.html">this webpage</a>
64 *     for further details.
65 */
66@Deprecated
67public interface Log {
68
69
70    // ----------------------------------------------------- Logging Properties
71
72
73    /**
74     * <p> Is debug logging currently enabled? </p>
75     *
76     * <p> Call this method to prevent having to perform expensive operations
77     * (for example, <code>String</code> concatenation)
78     * when the log level is more than debug. </p>
79     *
80     * @return true if debug is enabled in the underlying logger.
81     */
82    public boolean isDebugEnabled();
83
84
85    /**
86     * <p> Is error logging currently enabled? </p>
87     *
88     * <p> Call this method to prevent having to perform expensive operations
89     * (for example, <code>String</code> concatenation)
90     * when the log level is more than error. </p>
91     *
92     * @return true if error is enabled in the underlying logger.
93     */
94    public boolean isErrorEnabled();
95
96
97    /**
98     * <p> Is fatal logging currently enabled? </p>
99     *
100     * <p> Call this method to prevent having to perform expensive operations
101     * (for example, <code>String</code> concatenation)
102     * when the log level is more than fatal. </p>
103     *
104     * @return true if fatal is enabled in the underlying logger.
105     */
106    public boolean isFatalEnabled();
107
108
109    /**
110     * <p> Is info logging currently enabled? </p>
111     *
112     * <p> Call this method to prevent having to perform expensive operations
113     * (for example, <code>String</code> concatenation)
114     * when the log level is more than info. </p>
115     *
116     * @return true if info is enabled in the underlying logger.
117     */
118    public boolean isInfoEnabled();
119
120
121    /**
122     * <p> Is trace logging currently enabled? </p>
123     *
124     * <p> Call this method to prevent having to perform expensive operations
125     * (for example, <code>String</code> concatenation)
126     * when the log level is more than trace. </p>
127     *
128     * @return true if trace is enabled in the underlying logger.
129     */
130    public boolean isTraceEnabled();
131
132
133    /**
134     * <p> Is warn logging currently enabled? </p>
135     *
136     * <p> Call this method to prevent having to perform expensive operations
137     * (for example, <code>String</code> concatenation)
138     * when the log level is more than warn. </p>
139     *
140     * @return true if warn is enabled in the underlying logger.
141     */
142    public boolean isWarnEnabled();
143
144
145    // -------------------------------------------------------- Logging Methods
146
147
148    /**
149     * <p> Log a message with trace log level. </p>
150     *
151     * @param message log this message
152     */
153    public void trace(Object message);
154
155
156    /**
157     * <p> Log an error with trace log level. </p>
158     *
159     * @param message log this message
160     * @param t log this cause
161     */
162    public void trace(Object message, Throwable t);
163
164
165    /**
166     * <p> Log a message with debug log level. </p>
167     *
168     * @param message log this message
169     */
170    public void debug(Object message);
171
172
173    /**
174     * <p> Log an error with debug log level. </p>
175     *
176     * @param message log this message
177     * @param t log this cause
178     */
179    public void debug(Object message, Throwable t);
180
181
182    /**
183     * <p> Log a message with info log level. </p>
184     *
185     * @param message log this message
186     */
187    public void info(Object message);
188
189
190    /**
191     * <p> Log an error with info log level. </p>
192     *
193     * @param message log this message
194     * @param t log this cause
195     */
196    public void info(Object message, Throwable t);
197
198
199    /**
200     * <p> Log a message with warn log level. </p>
201     *
202     * @param message log this message
203     */
204    public void warn(Object message);
205
206
207    /**
208     * <p> Log an error with warn log level. </p>
209     *
210     * @param message log this message
211     * @param t log this cause
212     */
213    public void warn(Object message, Throwable t);
214
215
216    /**
217     * <p> Log a message with error log level. </p>
218     *
219     * @param message log this message
220     */
221    public void error(Object message);
222
223
224    /**
225     * <p> Log an error with error log level. </p>
226     *
227     * @param message log this message
228     * @param t log this cause
229     */
230    public void error(Object message, Throwable t);
231
232
233    /**
234     * <p> Log a message with fatal log level. </p>
235     *
236     * @param message log this message
237     */
238    public void fatal(Object message);
239
240
241    /**
242     * <p> Log an error with fatal log level. </p>
243     *
244     * @param message log this message
245     * @param t log this cause
246     */
247    public void fatal(Object message, Throwable t);
248
249
250}
251