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  package org.apache.log4j.spi;
    18
    19  import org.apache.log4j.Level;
    20  import org.apache.log4j.Category;
    21  import org.apache.log4j.Logger;
    22  import org.apache.log4j.Appender;
    23
    24  import java.util.Enumeration;
    25  import java.util.Vector;
    26
    27  /**
    28   *  No-operation implementation of LoggerRepository which is used when
    29   *  LogManager.repositorySelector is erroneously nulled during class reloading.
    30   *  @since 1.2.15
    31   */
    32  public final class NOPLoggerRepository implements LoggerRepository {
    33      /**
    34       * {@inheritDoc}
    35      */
    36      public void addHierarchyEventListener(final HierarchyEventListener listener) {
    37      }
    38
    39      /**
    40       * {@inheritDoc}
    41       */
    42      public boolean isDisabled(final int level) {
    43          return true;
    44      }
    45
    46      /**
    47       * {@inheritDoc}
    48       */
    49      public void setThreshold(final Level level) {
    50      }
    51
    52      /**
    53       * {@inheritDoc}
    54       */
    55      public void setThreshold(final String val) {
    56      }
    57
    58      /**
    59       * {@inheritDoc}
    60       */
    61      public void emitNoAppenderWarning(final Category cat) {
    62      }
    63
    64      /**
    65       * {@inheritDoc}
    66       */
    67      public Level getThreshold() {
    68          return Level.OFF;
    69      }
    70
    71      /**
    72       * {@inheritDoc}
    73       */
    74      public Logger getLogger(final String name) {
    75          return new NOPLogger(this, name);
    76      }
    77
    78      /**
    79       * {@inheritDoc}
    80       */
    81      public Logger getLogger(final String name, final LoggerFactory factory) {
    82          return new NOPLogger(this, name);
    83      }
    84
    85      /**
    86       * {@inheritDoc}
    87       */
    88      public Logger getRootLogger() {
    89          return new NOPLogger(this, "root");
    90      }
    91
    92      /**
    93       * {@inheritDoc}
    94       */
    95      public Logger exists(final String name) {
    96          return null;
    97      }
    98
    99      /**
    100      * {@inheritDoc}
    101      */
    102     public void shutdown() {
    103     }
    104
    105     /**
    106      * {@inheritDoc}
    107      */
    108     public Enumeration getCurrentLoggers() {
    109         return new Vector().elements();
    110     }
    111
    112     /**
    113      * {@inheritDoc}
    114      */
    115     public Enumeration getCurrentCategories() {
    116         return getCurrentLoggers();
    117     }
    118
    119
    120     /**
    121      * {@inheritDoc}
    122      */
    123     public  void fireAddAppenderEvent(Category logger, Appender appender) {
    124     }
    125
    126     /**
    127      * {@inheritDoc}
    128      */
    129     public void resetConfiguration() {
    130     }
    131 }