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.log4j.lf5;
    19
    20  import org.apache.log4j.PropertyConfigurator;
    21  import org.apache.log4j.spi.Configurator;
    22  import org.apache.log4j.spi.LoggerRepository;
    23
    24  import java.io.IOException;
    25  import java.net.URL;
    26
    27  /**
    28   * The <code>DefaultLF5Configurator</code> provides a default
    29   * configuration for the <code>LF5Appender</code>.
    30   *
    31   * Note: The preferred method for configuring a <code>LF5Appender</code>
    32   * is to use the <code>LF5Manager</code> class. This class ensures
    33   * that configuration does not occur multiple times, and improves system
    34   * performance. Reconfiguring the monitor multiple times can result in
    35   * unexpected behavior.
    36   *
    37   * @author Brent Sprecher
    38   */
    39
    40  // Contributed by ThoughtWorks Inc.
    41
    42  public class DefaultLF5Configurator implements Configurator {
    43    //--------------------------------------------------------------------------
    44    // Constants:
    45    //--------------------------------------------------------------------------
    46
    47    //--------------------------------------------------------------------------
    48    // Protected Variables:
    49    //--------------------------------------------------------------------------
    50
    51    //--------------------------------------------------------------------------
    52    // Private Variables:
    53    //--------------------------------------------------------------------------
    54
    55    //--------------------------------------------------------------------------
    56    // Constructors:
    57    //--------------------------------------------------------------------------
    58    /**
    59     * This class should never be instantiated! It implements the <code>
    60     * Configurator</code>
    61     * interface, but does not provide the same functionality as full
    62     * configurator class.
    63     */
    64    private DefaultLF5Configurator() {
    65
    66    }
    67
    68    //--------------------------------------------------------------------------
    69    // Public Methods:
    70    //--------------------------------------------------------------------------
    71    /**
    72     * This method configures the <code>LF5Appender</code> using a
    73     * default configuration file. The default configuration file is
    74     * <bold>defaultconfig.properties</bold>.
    75     * @throws java.io.IOException
    76     */
    77    public static void configure() throws IOException {
    78      String resource =
    79          "/org/apache/log4j/lf5/config/defaultconfig.properties";
    80      URL configFileResource =
    81          DefaultLF5Configurator.class.getResource(resource);
    82
    83      if (configFileResource != null) {
    84        PropertyConfigurator.configure(configFileResource);
    85      } else {
    86        throw new IOException("Error: Unable to open the resource" +
    87            resource);
    88      }
    89
    90    }
    91
    92    /**
    93     * This is a dummy method that will throw an
    94     * <code>IllegalStateException</code> if used.
    95     */
    96    public void doConfigure(URL configURL, LoggerRepository repository) {
    97      throw new IllegalStateException("This class should NOT be" +
    98          " instantiated!");
    99    }
    100
    101   //--------------------------------------------------------------------------
    102   // Protected Methods:
    103   //--------------------------------------------------------------------------
    104
    105   //--------------------------------------------------------------------------
    106   // Private Methods:
    107   //--------------------------------------------------------------------------
    108
    109   //--------------------------------------------------------------------------
    110   // Nested Top-Level Classes or Interfaces:
    111   //--------------------------------------------------------------------------
    112
    113 }