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 package org.apache.commons.logging.impl;
18
19 import java.io.Serializable;
20
21 import org.apache.commons.logging.Log;
22 import org.slf4j.Logger;
23 import org.slf4j.spi.LocationAwareLogger;
24
25 /**
26 * Implementation of {@link Log org.apache.commons.logging.Log} interface which
27 * delegates all processing to a wrapped {@link Logger org.slf4j.Logger} instance.
28 *
29 * <p>JCL's FATAL level is mapped to ERROR. All other levels map one to one.
30 *
31 * @author Ceki Gülcü
32 */
33 public class SLF4JLocationAwareLog implements Log, Serializable {
34
35 private static final long serialVersionUID = -2379157579039314822L;
36
37 // in both Log4jLogger and Jdk14Logger classes in the original JCL, the
38 // logger instance is transient
39 private transient LocationAwareLogger logger;
40
41 private static final String FQCN = SLF4JLocationAwareLog.class.getName();
42
43 SLF4JLocationAwareLog(LocationAwareLogger logger) {
44 this.logger = logger;
45 }
46
47 /**
48 * Delegates to the <code>isTraceEnabled<code> method of the wrapped
49 * <code>org.slf4j.Logger</code> instance.
50 */
51 public boolean isTraceEnabled() {
52 return logger.isTraceEnabled();
53 }
54
55 /**
56 * Directly delegates to the wrapped <code>org.slf4j.Logger</code> instance.
57 */
58 public boolean isDebugEnabled() {
59 return logger.isDebugEnabled();
60 }
61
62 /**
63 * Directly delegates to the wrapped <code>org.slf4j.Logger</code> instance.
64 */
65 public boolean isInfoEnabled() {
66 return logger.isInfoEnabled();
67 }
68
69 /**
70 * Directly delegates to the wrapped <code>org.slf4j.Logger</code> instance.
71 */
72 public boolean isWarnEnabled() {
73 return logger.isWarnEnabled();
74 }
75
76 /**
77 * Directly delegates to the wrapped <code>org.slf4j.Logger</code> instance.
78 */
79 public boolean isErrorEnabled() {
80 return logger.isErrorEnabled();
81 }
82
83 /**
84 * Delegates to the <code>isErrorEnabled<code> method of the wrapped
85 * <code>org.slf4j.Logger</code> instance.
86 */
87 public boolean isFatalEnabled() {
88 return logger.isErrorEnabled();
89 }
90
91
92 /**
93 * Converts the input parameter to String and then delegates to
94 * the debug method of the wrapped <code>org.slf4j.Logger</code> instance.
95 *
96 * @param message the message to log. Converted to {@link String}
97 */
98 public void trace(Object message) {
99 logger.log(null, FQCN, LocationAwareLogger.TRACE_INT, String.valueOf(message), null);
100 }
101
102 /**
103 * Converts the first input parameter to String and then delegates to
104 * the debug method of the wrapped <code>org.slf4j.Logger</code> instance.
105 *
106 * @param message the message to log. Converted to {@link String}
107 * @param t the exception to log
108 */
109 public void trace(Object message, Throwable t) {
110 logger.log(null, FQCN, LocationAwareLogger.TRACE_INT, String.valueOf(message), t);
111 }
112
113 /**
114 * Converts the input parameter to String and then delegates to the wrapped
115 * <code>org.slf4j.Logger</code> instance.
116 *
117 * @param message the message to log. Converted to {@link String}
118 */
119 public void debug(Object message) {
120 logger.log(null, FQCN, LocationAwareLogger.DEBUG_INT, String.valueOf(message), null);
121 }
122
123 /**
124 * Converts the first input parameter to String and then delegates to
125 * the wrapped <code>org.slf4j.Logger</code> instance.
126 *
127 * @param message the message to log. Converted to {@link String}
128 * @param t the exception to log
129 */
130 public void debug(Object message, Throwable t) {
131 logger.log(null, FQCN, LocationAwareLogger.DEBUG_INT, String.valueOf(message), t);
132 }
133
134 /**
135 * Converts the input parameter to String and then delegates to the wrapped
136 * <code>org.slf4j.Logger</code> instance.
137 *
138 * @param message the message to log. Converted to {@link String}
139 */
140 public void info(Object message) {
141 logger.log(null, FQCN, LocationAwareLogger.INFO_INT, String.valueOf(message), null);
142 }
143
144 /**
145 * Converts the first input parameter to String and then delegates to
146 * the wrapped <code>org.slf4j.Logger</code> instance.
147 *
148 * @param message the message to log. Converted to {@link String}
149 * @param t the exception to log
150 */
151 public void info(Object message, Throwable t) {
152 logger.log(null, FQCN, LocationAwareLogger.INFO_INT, String.valueOf(message), t);
153 }
154
155 /**
156 * Converts the input parameter to String and then delegates to the wrapped
157 * <code>org.slf4j.Logger</code> instance.
158 *
159 * @param message the message to log. Converted to {@link String}
160 */
161 public void warn(Object message) {
162 logger.log(null, FQCN, LocationAwareLogger.WARN_INT, String.valueOf(message), null);
163 }
164
165 /**
166 * Converts the first input parameter to String and then delegates to
167 * the wrapped <code>org.slf4j.Logger</code> instance.
168 *
169 * @param message the message to log. Converted to {@link String}
170 * @param t the exception to log
171 */
172 public void warn(Object message, Throwable t) {
173 logger.log(null, FQCN, LocationAwareLogger.WARN_INT, String.valueOf(message), t);
174 }
175
176 /**
177 * Converts the input parameter to String and then delegates to the wrapped
178 * <code>org.slf4j.Logger</code> instance.
179 *
180 * @param message the message to log. Converted to {@link String}
181 */
182 public void error(Object message) {
183 logger.log(null, FQCN, LocationAwareLogger.ERROR_INT, String.valueOf(message), null);
184 }
185
186 /**
187 * Converts the first input parameter to String and then delegates to
188 * the wrapped <code>org.slf4j.Logger</code> instance.
189 *
190 * @param message the message to log. Converted to {@link String}
191 * @param t the exception to log
192 */
193 public void error(Object message, Throwable t) {
194 logger.log(null, FQCN, LocationAwareLogger.ERROR_INT, String.valueOf(message), t);
195 }
196
197
198
199 /**
200 * Converts the input parameter to String and then delegates to
201 * the error method of the wrapped <code>org.slf4j.Logger</code> instance.
202 *
203 * @param message the message to log. Converted to {@link String}
204 */
205 public void fatal(Object message) {
206 logger.log(null, FQCN, LocationAwareLogger.ERROR_INT, String.valueOf(message), null);
207 }
208
209 /**
210 * Converts the first input parameter to String and then delegates to
211 * the error method of the wrapped <code>org.slf4j.Logger</code> instance.
212 *
213 * @param message the message to log. Converted to {@link String}
214 * @param t the exception to log
215 */
216 public void fatal(Object message, Throwable t) {
217 logger.log(null, FQCN, LocationAwareLogger.ERROR_INT, String.valueOf(message), t);
218 }
219
220 }