1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 19 package org.apache.commons.logging.impl; 20 21 import java.io.Serializable; 22 import org.apache.log.Logger; 23 import org.apache.log.Hierarchy; 24 import org.apache.commons.logging.Log; 25 26 /** 27 * <p>Implementation of <code>org.apache.commons.logging.Log</code> 28 * that wraps the <a href="http://avalon.apache.org/logkit/">avalon-logkit</a> 29 * logging system. Configuration of <code>LogKit</code> is left to the user. 30 * </p> 31 * 32 * <p><code>LogKit</code> accepts only <code>String</code> messages. 33 * Therefore, this implementation converts object messages into strings 34 * by called their <code>toString()</code> method before logging them.</p> 35 * 36 * @author <a href="mailto:sanders@apache.org">Scott Sanders</a> 37 * @author Robert Burrell Donkin 38 * @version $Id: LogKitLogger.java 424107 2006-07-20 23:15:42Z skitching $ 39 */ 40 41 public class LogKitLogger implements Log, Serializable { 42 43 44 // ------------------------------------------------------------- Attributes 45 46 47 /** Logging goes to this <code>LogKit</code> logger */ 48 protected transient Logger logger = null; 49 50 /** Name of this logger */ 51 protected String name = null; 52 53 54 // ------------------------------------------------------------ Constructor 55 56 57 /** 58 * Construct <code>LogKitLogger</code> which wraps the <code>LogKit</code> 59 * logger with given name. 60 * 61 * @param name log name 62 */ 63 public LogKitLogger(String name) { 64 this.name = name; 65 this.logger = getLogger(); 66 } 67 68 69 // --------------------------------------------------------- Public Methods 70 71 72 /** 73 * <p>Return the underlying Logger we are using.</p> 74 */ 75 public Logger getLogger() { 76 77 if (logger == null) { 78 logger = Hierarchy.getDefaultHierarchy().getLoggerFor(name); 79 } 80 return (logger); 81 82 } 83 84 85 // ----------------------------------------------------- Log Implementation 86 87 88 /** 89 * Logs a message with <code>org.apache.log.Priority.DEBUG</code>. 90 * 91 * @param message to log 92 * @see org.apache.commons.logging.Log#trace(Object) 93 */ 94 public void trace(Object message) { 95 debug(message); 96 } 97 98 99 /** 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 }