View Javadoc

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__ */