View Javadoc
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  package org.apache.commons.logging.impl;
19  
20  import java.io.Serializable;
21  
22  import org.apache.commons.logging.Log;
23  import org.apache.log.Hierarchy;
24  import org.apache.log.Logger;
25  
26  /**
27   * Implements {@code org.apache.commons.logging.Log}
28   * to wrap the <a href="https://avalon.apache.org/logkit/">Apache Avalon Logkit</a>
29   * logging system. Configuration of {@code LogKit} is left to the user.
30   * <p>
31   * {@code LogKit} accepts only {@code String} messages.
32   * Therefore, this implementation converts object messages into strings
33   * by called their {@code toString()} method before logging them.
34   * </p>
35   *
36   * @deprecated Scheduled for removal because the Apache Avalon Project has been discontinued.
37   */
38  @Deprecated
39  public class LogKitLogger implements Log, Serializable {
40  
41      /** Serializable version identifier. */
42      private static final long serialVersionUID = 3768538055836059519L;
43  
44      /** Logging goes to this {@code LogKit} logger */
45      protected transient volatile Logger logger;
46  
47      /** Name of this logger */
48      protected String name;
49  
50      /**
51       * Constructs {@code LogKitLogger} which wraps the {@code LogKit}
52       * logger with given name.
53       *
54       * @param name log name
55       */
56      public LogKitLogger(final String name) {
57          this.name = name;
58          this.logger = getLogger();
59      }
60  
61      /**
62       * Logs a message with {@code org.apache.log.Priority.DEBUG}.
63       *
64       * @param message to log
65       * @see org.apache.commons.logging.Log#debug(Object)
66       */
67      @Override
68      public void debug(final Object message) {
69          if (message != null) {
70              getLogger().debug(String.valueOf(message));
71          }
72      }
73  
74      /**
75       * Logs a message with {@code org.apache.log.Priority.DEBUG}.
76       *
77       * @param message to log
78       * @param t log this cause
79       * @see org.apache.commons.logging.Log#debug(Object, Throwable)
80       */
81      @Override
82      public void debug(final Object message, final Throwable t) {
83          if (message != null) {
84              getLogger().debug(String.valueOf(message), t);
85          }
86      }
87  
88      /**
89       * Logs a message with {@code org.apache.log.Priority.ERROR}.
90       *
91       * @param message to log
92       * @see org.apache.commons.logging.Log#error(Object)
93       */
94      @Override
95      public void error(final Object message) {
96          if (message != null) {
97              getLogger().error(String.valueOf(message));
98          }
99      }
100 
101     /**
102      * Logs a message with {@code org.apache.log.Priority.ERROR}.
103      *
104      * @param message to log
105      * @param t log this cause
106      * @see org.apache.commons.logging.Log#error(Object, Throwable)
107      */
108     @Override
109     public void error(final Object message, final Throwable t) {
110         if (message != null) {
111             getLogger().error(String.valueOf(message), t);
112         }
113     }
114 
115     /**
116      * Logs a message with {@code org.apache.log.Priority.FATAL_ERROR}.
117      *
118      * @param message to log
119      * @see org.apache.commons.logging.Log#fatal(Object)
120      */
121     @Override
122     public void fatal(final Object message) {
123         if (message != null) {
124             getLogger().fatalError(String.valueOf(message));
125         }
126     }
127 
128     /**
129      * Logs a message with {@code org.apache.log.Priority.FATAL_ERROR}.
130      *
131      * @param message to log
132      * @param t log this cause
133      * @see org.apache.commons.logging.Log#fatal(Object, Throwable)
134      */
135     @Override
136     public void fatal(final Object message, final Throwable t) {
137         if (message != null) {
138             getLogger().fatalError(String.valueOf(message), t);
139         }
140     }
141 
142     /**
143      * Gets the underlying Logger we are using.
144      *
145      * @return the underlying Logger we are using.
146      */
147     public Logger getLogger() {
148         Logger result = logger;
149         if (result == null) {
150             synchronized(this) {
151                 result = logger;
152                 if (result == null) {
153                     logger = result = Hierarchy.getDefaultHierarchy().getLoggerFor(name);
154                 }
155             }
156         }
157         return result;
158     }
159 
160     /**
161      * Logs a message with {@code org.apache.log.Priority.INFO}.
162      *
163      * @param message to log
164      * @see org.apache.commons.logging.Log#info(Object)
165      */
166     @Override
167     public void info(final Object message) {
168         if (message != null) {
169             getLogger().info(String.valueOf(message));
170         }
171     }
172 
173     /**
174      * Logs a message with {@code org.apache.log.Priority.INFO}.
175      *
176      * @param message to log
177      * @param t log this cause
178      * @see org.apache.commons.logging.Log#info(Object, Throwable)
179      */
180     @Override
181     public void info(final Object message, final Throwable t) {
182         if (message != null) {
183             getLogger().info(String.valueOf(message), t);
184         }
185     }
186 
187     /**
188      * Checks whether the {@code LogKit} logger will log messages of priority {@code DEBUG}.
189      */
190     @Override
191     public boolean isDebugEnabled() {
192         return getLogger().isDebugEnabled();
193     }
194 
195     /**
196      * Checks whether the {@code LogKit} logger will log messages of priority {@code ERROR}.
197      */
198     @Override
199     public boolean isErrorEnabled() {
200         return getLogger().isErrorEnabled();
201     }
202 
203     /**
204      * Checks whether the {@code LogKit} logger will log messages of priority {@code FATAL_ERROR}.
205      */
206     @Override
207     public boolean isFatalEnabled() {
208         return getLogger().isFatalErrorEnabled();
209     }
210 
211     /**
212      * Checks whether the {@code LogKit} logger will log messages of priority {@code INFO}.
213      */
214     @Override
215     public boolean isInfoEnabled() {
216         return getLogger().isInfoEnabled();
217     }
218 
219     /**
220      * Checks whether the {@code LogKit} logger will log messages of priority {@code DEBUG}.
221      */
222     @Override
223     public boolean isTraceEnabled() {
224         return getLogger().isDebugEnabled();
225     }
226 
227     /**
228      * Checks whether the {@code LogKit} logger will log messages of priority {@code WARN}.
229      */
230     @Override
231     public boolean isWarnEnabled() {
232         return getLogger().isWarnEnabled();
233     }
234 
235     /**
236      * Logs a message with {@code org.apache.log.Priority.DEBUG}.
237      *
238      * @param message to log
239      * @see org.apache.commons.logging.Log#trace(Object)
240     */
241     @Override
242     public void trace(final Object message) {
243         debug(message);
244     }
245 
246     /**
247      * Logs a message with {@code org.apache.log.Priority.DEBUG}.
248      *
249      * @param message to log
250      * @param t log this cause
251      * @see org.apache.commons.logging.Log#trace(Object, Throwable)
252      */
253     @Override
254     public void trace(final Object message, final Throwable t) {
255         debug(message, t);
256     }
257 
258     /**
259      * Logs a message with {@code org.apache.log.Priority.WARN}.
260      *
261      * @param message to log
262      * @see org.apache.commons.logging.Log#warn(Object)
263      */
264     @Override
265     public void warn(final Object message) {
266         if (message != null) {
267             getLogger().warn(String.valueOf(message));
268         }
269     }
270 
271     /**
272      * Logs a message with {@code org.apache.log.Priority.WARN}.
273      *
274      * @param message to log
275      * @param t log this cause
276      * @see org.apache.commons.logging.Log#warn(Object, Throwable)
277      */
278     @Override
279     public void warn(final Object message, final Throwable t) {
280         if (message != null) {
281             getLogger().warn(String.valueOf(message), t);
282         }
283     }
284 }