001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017
018
019 package org.apache.commons.logging.impl;
020
021 import java.io.Serializable;
022 import org.apache.log.Logger;
023 import org.apache.log.Hierarchy;
024 import org.apache.commons.logging.Log;
025
026 /**
027 * <p>Implementation of <code>org.apache.commons.logging.Log</code>
028 * that wraps the <a href="http://avalon.apache.org/logkit/">avalon-logkit</a>
029 * logging system. Configuration of <code>LogKit</code> is left to the user.
030 * </p>
031 *
032 * <p><code>LogKit</code> accepts only <code>String</code> messages.
033 * Therefore, this implementation converts object messages into strings
034 * by called their <code>toString()</code> method before logging them.</p>
035 *
036 * @author <a href="mailto:sanders@apache.org">Scott Sanders</a>
037 * @author Robert Burrell Donkin
038 * @version $Id: LogKitLogger.java 424107 2006-07-20 23:15:42Z skitching $
039 */
040
041 public class LogKitLogger implements Log, Serializable {
042
043
044 // ------------------------------------------------------------- Attributes
045
046
047 /** Logging goes to this <code>LogKit</code> logger */
048 protected transient Logger logger = null;
049
050 /** Name of this logger */
051 protected String name = null;
052
053
054 // ------------------------------------------------------------ Constructor
055
056
057 /**
058 * Construct <code>LogKitLogger</code> which wraps the <code>LogKit</code>
059 * logger with given name.
060 *
061 * @param name log name
062 */
063 public LogKitLogger(String name) {
064 this.name = name;
065 this.logger = getLogger();
066 }
067
068
069 // --------------------------------------------------------- Public Methods
070
071
072 /**
073 * <p>Return the underlying Logger we are using.</p>
074 */
075 public Logger getLogger() {
076
077 if (logger == null) {
078 logger = Hierarchy.getDefaultHierarchy().getLoggerFor(name);
079 }
080 return (logger);
081
082 }
083
084
085 // ----------------------------------------------------- Log Implementation
086
087
088 /**
089 * Logs a message with <code>org.apache.log.Priority.DEBUG</code>.
090 *
091 * @param message to log
092 * @see org.apache.commons.logging.Log#trace(Object)
093 */
094 public void trace(Object message) {
095 debug(message);
096 }
097
098
099 /**
100 * Logs a message with <code>org.apache.log.Priority.DEBUG</code>.
101 *
102 * @param message to log
103 * @param t log this cause
104 * @see org.apache.commons.logging.Log#trace(Object, Throwable)
105 */
106 public void trace(Object message, Throwable t) {
107 debug(message, t);
108 }
109
110
111 /**
112 * Logs a message with <code>org.apache.log.Priority.DEBUG</code>.
113 *
114 * @param message to log
115 * @see org.apache.commons.logging.Log#debug(Object)
116 */
117 public void debug(Object message) {
118 if (message != null) {
119 getLogger().debug(String.valueOf(message));
120 }
121 }
122
123
124 /**
125 * Logs a message with <code>org.apache.log.Priority.DEBUG</code>.
126 *
127 * @param message to log
128 * @param t log this cause
129 * @see org.apache.commons.logging.Log#debug(Object, Throwable)
130 */
131 public void debug(Object message, Throwable t) {
132 if (message != null) {
133 getLogger().debug(String.valueOf(message), t);
134 }
135 }
136
137
138 /**
139 * Logs a message with <code>org.apache.log.Priority.INFO</code>.
140 *
141 * @param message to log
142 * @see org.apache.commons.logging.Log#info(Object)
143 */
144 public void info(Object message) {
145 if (message != null) {
146 getLogger().info(String.valueOf(message));
147 }
148 }
149
150
151 /**
152 * Logs a message with <code>org.apache.log.Priority.INFO</code>.
153 *
154 * @param message to log
155 * @param t log this cause
156 * @see org.apache.commons.logging.Log#info(Object, Throwable)
157 */
158 public void info(Object message, Throwable t) {
159 if (message != null) {
160 getLogger().info(String.valueOf(message), t);
161 }
162 }
163
164
165 /**
166 * Logs a message with <code>org.apache.log.Priority.WARN</code>.
167 *
168 * @param message to log
169 * @see org.apache.commons.logging.Log#warn(Object)
170 */
171 public void warn(Object message) {
172 if (message != null) {
173 getLogger().warn(String.valueOf(message));
174 }
175 }
176
177
178 /**
179 * Logs a message with <code>org.apache.log.Priority.WARN</code>.
180 *
181 * @param message to log
182 * @param t log this cause
183 * @see org.apache.commons.logging.Log#warn(Object, Throwable)
184 */
185 public void warn(Object message, Throwable t) {
186 if (message != null) {
187 getLogger().warn(String.valueOf(message), t);
188 }
189 }
190
191
192 /**
193 * Logs a message with <code>org.apache.log.Priority.ERROR</code>.
194 *
195 * @param message to log
196 * @see org.apache.commons.logging.Log#error(Object)
197 */
198 public void error(Object message) {
199 if (message != null) {
200 getLogger().error(String.valueOf(message));
201 }
202 }
203
204
205 /**
206 * Logs a message with <code>org.apache.log.Priority.ERROR</code>.
207 *
208 * @param message to log
209 * @param t log this cause
210 * @see org.apache.commons.logging.Log#error(Object, Throwable)
211 */
212 public void error(Object message, Throwable t) {
213 if (message != null) {
214 getLogger().error(String.valueOf(message), t);
215 }
216 }
217
218
219 /**
220 * Logs a message with <code>org.apache.log.Priority.FATAL_ERROR</code>.
221 *
222 * @param message to log
223 * @see org.apache.commons.logging.Log#fatal(Object)
224 */
225 public void fatal(Object message) {
226 if (message != null) {
227 getLogger().fatalError(String.valueOf(message));
228 }
229 }
230
231
232 /**
233 * Logs a message with <code>org.apache.log.Priority.FATAL_ERROR</code>.
234 *
235 * @param message to log
236 * @param t log this cause
237 * @see org.apache.commons.logging.Log#fatal(Object, Throwable)
238 */
239 public void fatal(Object message, Throwable t) {
240 if (message != null) {
241 getLogger().fatalError(String.valueOf(message), t);
242 }
243 }
244
245
246 /**
247 * Checks whether the <code>LogKit</code> logger will log messages of priority <code>DEBUG</code>.
248 */
249 public boolean isDebugEnabled() {
250 return getLogger().isDebugEnabled();
251 }
252
253
254 /**
255 * Checks whether the <code>LogKit</code> logger will log messages of priority <code>ERROR</code>.
256 */
257 public boolean isErrorEnabled() {
258 return getLogger().isErrorEnabled();
259 }
260
261
262 /**
263 * Checks whether the <code>LogKit</code> logger will log messages of priority <code>FATAL_ERROR</code>.
264 */
265 public boolean isFatalEnabled() {
266 return getLogger().isFatalErrorEnabled();
267 }
268
269
270 /**
271 * Checks whether the <code>LogKit</code> logger will log messages of priority <code>INFO</code>.
272 */
273 public boolean isInfoEnabled() {
274 return getLogger().isInfoEnabled();
275 }
276
277
278 /**
279 * Checks whether the <code>LogKit</code> logger will log messages of priority <code>DEBUG</code>.
280 */
281 public boolean isTraceEnabled() {
282 return getLogger().isDebugEnabled();
283 }
284
285
286 /**
287 * Checks whether the <code>LogKit</code> logger will log messages of priority <code>WARN</code>.
288 */
289 public boolean isWarnEnabled() {
290 return getLogger().isWarnEnabled();
291 }
292
293
294 }