001/**
002 * Copyright (c) 2004-2011 QOS.ch
003 * All rights reserved.
004 *
005 * Permission is hereby granted, free  of charge, to any person obtaining
006 * a  copy  of this  software  and  associated  documentation files  (the
007 * "Software"), to  deal in  the Software without  restriction, including
008 * without limitation  the rights to  use, copy, modify,  merge, publish,
009 * distribute,  sublicense, and/or sell  copies of  the Software,  and to
010 * permit persons to whom the Software  is furnished to do so, subject to
011 * the following conditions:
012 *
013 * The  above  copyright  notice  and  this permission  notice  shall  be
014 * included in all copies or substantial portions of the Software.
015 *
016 * THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
017 * EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
018 * MERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND
019 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
020 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
021 * OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
022 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
023 *
024 */
025package org.slf4j.helpers;
026
027import org.slf4j.Logger;
028import org.slf4j.helpers.MarkerIgnoringBase;
029
030/**
031 * A direct NOP (no operation) implementation of {@link Logger}.
032 *
033 * @author Ceki Gülcü
034 */
035public class NOPLogger extends MarkerIgnoringBase {
036
037    private static final long serialVersionUID = -517220405410904473L;
038
039    /**
040     * The unique instance of NOPLogger.
041     */
042    public static final NOPLogger NOP_LOGGER = new NOPLogger();
043
044    /**
045     * There is no point in creating multiple instances of NOPLogger,
046     * except by derived classes, hence the protected  access for the constructor.
047     */
048    protected NOPLogger() {
049    }
050
051    /**
052     * Always returns the string value "NOP".
053     */
054    public String getName() {
055        return "NOP";
056    }
057
058    /**
059     * Always returns false.
060     * @return always false
061     */
062    final public boolean isTraceEnabled() {
063        return false;
064    }
065
066    /** A NOP implementation. */
067    final public void trace(String msg) {
068        // NOP
069    }
070
071    /** A NOP implementation.  */
072    final public void trace(String format, Object arg) {
073        // NOP
074    }
075
076    /** A NOP implementation.  */
077    public final void trace(String format, Object arg1, Object arg2) {
078        // NOP
079    }
080
081    /** A NOP implementation.  */
082    public final void trace(String format, Object... argArray) {
083        // NOP
084    }
085
086    /** A NOP implementation. */
087    final public void trace(String msg, Throwable t) {
088        // NOP
089    }
090
091    /**
092     * Always returns false.
093     * @return always false
094     */
095    final public boolean isDebugEnabled() {
096        return false;
097    }
098
099    /** A NOP implementation. */
100    final public void debug(String msg) {
101        // NOP
102    }
103
104    /** A NOP implementation.  */
105    final public void debug(String format, Object arg) {
106        // NOP
107    }
108
109    /** A NOP implementation.  */
110    public final void debug(String format, Object arg1, Object arg2) {
111        // NOP
112    }
113
114    /** A NOP implementation.  */
115    public final void debug(String format, Object... argArray) {
116        // NOP
117    }
118
119    /** A NOP implementation. */
120    final public void debug(String msg, Throwable t) {
121        // NOP
122    }
123
124    /**
125     * Always returns false.
126     * @return always false
127     */
128    final public boolean isInfoEnabled() {
129        // NOP
130        return false;
131    }
132
133    /** A NOP implementation. */
134    final public void info(String msg) {
135        // NOP
136    }
137
138    /** A NOP implementation. */
139    final public void info(String format, Object arg1) {
140        // NOP
141    }
142
143    /** A NOP implementation. */
144    final public void info(String format, Object arg1, Object arg2) {
145        // NOP
146    }
147
148    /** A NOP implementation.  */
149    public final void info(String format, Object... argArray) {
150        // NOP
151    }
152
153    /** A NOP implementation. */
154    final public void info(String msg, Throwable t) {
155        // NOP
156    }
157
158    /**
159     * Always returns false.
160     * @return always false
161     */
162    final public boolean isWarnEnabled() {
163        return false;
164    }
165
166    /** A NOP implementation. */
167    final public void warn(String msg) {
168        // NOP
169    }
170
171    /** A NOP implementation. */
172    final public void warn(String format, Object arg1) {
173        // NOP
174    }
175
176    /** A NOP implementation. */
177    final public void warn(String format, Object arg1, Object arg2) {
178        // NOP
179    }
180
181    /** A NOP implementation.  */
182    public final void warn(String format, Object... argArray) {
183        // NOP
184    }
185
186    /** A NOP implementation. */
187    final public void warn(String msg, Throwable t) {
188        // NOP
189    }
190
191    /** A NOP implementation. */
192    final public boolean isErrorEnabled() {
193        return false;
194    }
195
196    /** A NOP implementation. */
197    final public void error(String msg) {
198        // NOP
199    }
200
201    /** A NOP implementation. */
202    final public void error(String format, Object arg1) {
203        // NOP
204    }
205
206    /** A NOP implementation. */
207    final public void error(String format, Object arg1, Object arg2) {
208        // NOP
209    }
210
211    /** A NOP implementation.  */
212    public final void error(String format, Object... argArray) {
213        // NOP
214    }
215
216    /** A NOP implementation. */
217    final public void error(String msg, Throwable t) {
218        // NOP
219    }
220}