1 /*
2 * Copyright (c) 2003-2008 by Cosylab d. d.
3 *
4 * This file is part of Java-Common.
5 *
6 * Java-Common is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * Java-Common is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with Java-Common. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 package com.cosylab.logging;
21
22 import java.util.logging.Handler;
23 import java.util.logging.Level;
24 import java.util.logging.LogManager;
25 import java.util.logging.LogRecord;
26 import java.util.logging.Logger;
27
28
29 /**
30 * <code>NullLogger</code> extends Java <code>Logger</code> and overrides all
31 * logging methods to do nothing. Using this class statically switches all
32 * logging capabilities off, thus this method my be not callled at all by JVM
33 * optimization. Similar as sending logs to the /dev/null device.
34 *
35 * <p>
36 * <b>Recomended usage</b> is to add final Logger field to a class and use
37 * <code>NullLogger</code> instance when no debug information is necessary.
38 * </p>
39 *
40 * @author <a href="mailto:igor.kriznar@cosylab.com">Igor Kriznar</a>
41 * @version $Id: NullLogger.java,v 1.4 2008-04-22 12:26:29 jbobnar Exp $
42 *
43 * @since Jun 27, 2004.
44 */
45 public final class NullLogger extends Logger
46 {
47 /**
48 * Returns NullLogger registered at LogManager. IF Log manager does not
49 * have NullLogger, new one is created, registered at LogManager and
50 * returned.
51 *
52 * @return NullLogger instance registered at LogManager
53 */
54 public synchronized static final NullLogger getNullLogger()
55 {
56 NullLogger r = (NullLogger)LogManager.getLogManager().getLogger(NullLogger.class
57 .getName());
58
59 if (r == null) {
60 r = new NullLogger();
61 LogManager.getLogManager().addLogger(r);
62 }
63
64 return r;
65 }
66
67 private NullLogger()
68 {
69 super("NullLogger", null);
70
71 //super.setUseParentHandlers(false);
72 }
73
74 /* (non-Javadoc)
75 * @see java.util.logging.Logger#addHandler(java.util.logging.Handler)
76 */
77 public synchronized void addHandler(Handler handler)
78 throws SecurityException
79 {
80 // hopefully removed by JIT
81 }
82
83 /* (non-Javadoc)
84 * @see java.util.logging.Logger#config(java.lang.String)
85 */
86 public void config(String msg)
87 {
88 // hopefully removed by JIT
89 }
90
91 /* (non-Javadoc)
92 * @see java.util.logging.Logger#entering(java.lang.String, java.lang.String)
93 */
94 public void entering(String sourceClass, String sourceMethod)
95 {
96 // hopefully removed by JIT
97 }
98
99 /* (non-Javadoc)
100 * @see java.util.logging.Logger#entering(java.lang.String, java.lang.String, java.lang.Object)
101 */
102 public void entering(String sourceClass, String sourceMethod, Object param1)
103 {
104 // hopefully removed by JIT
105 }
106
107 /* (non-Javadoc)
108 * @see java.util.logging.Logger#entering(java.lang.String, java.lang.String, java.lang.Object[])
109 */
110 public void entering(String sourceClass, String sourceMethod,
111 Object[] params)
112 {
113 // hopefully removed by JIT
114 }
115
116 /* (non-Javadoc)
117 * @see java.util.logging.Logger#exiting(java.lang.String, java.lang.String)
118 */
119 public void exiting(String sourceClass, String sourceMethod)
120 {
121 // hopefully removed by JIT
122 }
123
124 /* (non-Javadoc)
125 * @see java.util.logging.Logger#fine(java.lang.String)
126 */
127 public void fine(String msg)
128 {
129 // hopefully removed by JIT
130 }
131
132 /* (non-Javadoc)
133 * @see java.util.logging.Logger#exiting(java.lang.String, java.lang.String, java.lang.Object)
134 */
135 public void exiting(String sourceClass, String sourceMethod, Object result)
136 {
137 // hopefully removed by JIT
138 }
139
140 /* (non-Javadoc)
141 * @see java.util.logging.Logger#finer(java.lang.String)
142 */
143 public void finer(String msg)
144 {
145 // hopefully removed by JIT
146 }
147
148 /* (non-Javadoc)
149 * @see java.util.logging.Logger#finest(java.lang.String)
150 */
151 public void finest(String msg)
152 {
153 // hopefully removed by JIT
154 }
155
156 /* (non-Javadoc)
157 * @see java.util.logging.Logger#info(java.lang.String)
158 */
159 public void info(String msg)
160 {
161 // hopefully removed by JIT
162 }
163
164 /* (non-Javadoc)
165 * @see java.util.logging.Logger#isLoggable(java.util.logging.Level)
166 */
167 public boolean isLoggable(Level level)
168 {
169 return false;
170 }
171
172 /* (non-Javadoc)
173 * @see java.util.logging.Logger#log(java.util.logging.Level, java.lang.String)
174 */
175 public void log(Level level, String msg)
176 {
177 // hopefully removed by JIT
178 }
179
180 /* (non-Javadoc)
181 * @see java.util.logging.Logger#log(java.util.logging.Level, java.lang.String, java.lang.Object)
182 */
183 public void log(Level level, String msg, Object param1)
184 {
185 // hopefully removed by JIT
186 }
187
188 /* (non-Javadoc)
189 * @see java.util.logging.Logger#log(java.util.logging.Level, java.lang.String, java.lang.Object[])
190 */
191 public void log(Level level, String msg, Object[] params)
192 {
193 // hopefully removed by JIT
194 }
195
196 /* (non-Javadoc)
197 * @see java.util.logging.Logger#log(java.util.logging.Level, java.lang.String, java.lang.Throwable)
198 */
199 public void log(Level level, String msg, Throwable thrown)
200 {
201 // hopefully removed by JIT
202 }
203
204 /* (non-Javadoc)
205 * @see java.util.logging.Logger#log(java.util.logging.LogRecord)
206 */
207 public void log(LogRecord record)
208 {
209 // hopefully removed by JIT
210 }
211
212 /* (non-Javadoc)
213 * @see java.util.logging.Logger#logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String)
214 */
215 public void logp(Level level, String sourceClass, String sourceMethod,
216 String msg)
217 {
218 // hopefully removed by JIT
219 }
220
221 /* (non-Javadoc)
222 * @see java.util.logging.Logger#logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Object)
223 */
224 public void logp(Level level, String sourceClass, String sourceMethod,
225 String msg, Object param1)
226 {
227 // hopefully removed by JIT
228 }
229
230 /* (non-Javadoc)
231 * @see java.util.logging.Logger#logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[])
232 */
233 public void logp(Level level, String sourceClass, String sourceMethod,
234 String msg, Object[] params)
235 {
236 // hopefully removed by JIT
237 }
238
239 /* (non-Javadoc)
240 * @see java.util.logging.Logger#logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Throwable)
241 */
242 public void logp(Level level, String sourceClass, String sourceMethod,
243 String msg, Throwable thrown)
244 {
245 // hopefully removed by JIT
246 }
247
248 /* (non-Javadoc)
249 * @see java.util.logging.Logger#logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
250 */
251 public void logrb(Level level, String sourceClass, String sourceMethod,
252 String bundleName, String msg)
253 {
254 // hopefully removed by JIT
255 }
256
257 /* (non-Javadoc)
258 * @see java.util.logging.Logger#logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Object)
259 */
260 public void logrb(Level level, String sourceClass, String sourceMethod,
261 String bundleName, String msg, Object param1)
262 {
263 // hopefully removed by JIT
264 }
265
266 /* (non-Javadoc)
267 * @see java.util.logging.Logger#logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[])
268 */
269 public void logrb(Level level, String sourceClass, String sourceMethod,
270 String bundleName, String msg, Object[] params)
271 {
272 // hopefully removed by JIT
273 }
274
275 /* (non-Javadoc)
276 * @see java.util.logging.Logger#logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Throwable)
277 */
278 public void logrb(Level level, String sourceClass, String sourceMethod,
279 String bundleName, String msg, Throwable thrown)
280 {
281 // hopefully removed by JIT
282 }
283
284 /* (non-Javadoc)
285 * @see java.util.logging.Logger#setLevel(java.util.logging.Level)
286 */
287 public void setLevel(Level newLevel) throws SecurityException
288 {
289 // hopefully removed by JIT
290 }
291
292 /* (non-Javadoc)
293 * @see java.util.logging.Logger#getLevel()
294 */
295 public Level getLevel()
296 {
297 return Level.OFF;
298 }
299
300 /* (non-Javadoc)
301 * @see java.util.logging.Logger#severe(java.lang.String)
302 */
303 public void severe(String msg)
304 {
305 // hopefully removed by JIT
306 }
307
308 /* (non-Javadoc)
309 * @see java.util.logging.Logger#throwing(java.lang.String, java.lang.String, java.lang.Throwable)
310 */
311 public void throwing(String sourceClass, String sourceMethod,
312 Throwable thrown)
313 {
314 // hopefully removed by JIT
315 }
316
317 /* (non-Javadoc)
318 * @see java.util.logging.Logger#getUseParentHandlers()
319 */
320 public synchronized boolean getUseParentHandlers()
321 {
322 return false;
323 }
324
325 /* (non-Javadoc)
326 * @see java.util.logging.Logger#setUseParentHandlers(boolean)
327 */
328 public synchronized void setUseParentHandlers(boolean useParentHandlers)
329 {
330 // hopefully removed by JIT
331 }
332
333 /* (non-Javadoc)
334 * @see java.util.logging.Logger#warning(java.lang.String)
335 */
336 public void warning(String msg)
337 {
338 // hopefully removed by JIT
339 }
340 }
341
342 /* __oOo__ */