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.logging.log4j.core.net;
    18
    19  import org.apache.logging.log4j.util.EnglishEnums;
    20
    21  /**
    22   *  The facility codes used by the Syslog system.
    23   *
    24   *        Numerical          Facility<br>
    25   *           Code<br>
    26   *
    27   *             0             kernel messages<br>
    28   *             1             user-level messages<br>
    29   *             2             mail system<br>
    30   *             3             system daemons<br>
    31   *             4             security/authorization messages<br>
    32   *             5             messages generated internally by syslogd<br>
    33   *             6             line printer subsystem<br>
    34   *             7             network news subsystem<br>
    35   *             8             UUCP subsystem<br>
    36   *             9             clock daemon<br>
    37   *            10             security/authorization messages<br>
    38   *            11             FTP daemon<br>
    39   *            12             NTP subsystem<br>
    40   *            13             log audit<br>
    41   *            14             log alert<br>
    42   *            15             clock daemon (note 2)<br>
    43   *            16             local use 0  (local0)<br>
    44   *            17             local use 1  (local1)<br>
    45   *            18             local use 2  (local2)<br>
    46   *            19             local use 3  (local3)<br>
    47   *            20             local use 4  (local4)<br>
    48   *            21             local use 5  (local5)<br>
    49   *            22             local use 6  (local6)<br>
    50   *            23             local use 7  (local7)<br>
    51   */
    52  public enum Facility {
    53      /** Kernel messages. */
    54      KERN(0),
    55      /** User level messages. */
    56      USER(1),
    57      /** Mail system. */
    58      MAIL(2),
    59      /** System daemons. */
    60      DAEMON(3),
    61      /** Security/Authorization messages. */
    62      AUTH(4),
    63      /** Messages generated by syslogd. */
    64      SYSLOG(5),
    65      /** Line printer subsystem. */
    66      LPR(6),
    67      /** Network news subsystem. */
    68      NEWS(7),
    69      /** UUCP subsystem. */
    70      UUCP(8),
    71      /** Clock daemon. */
    72      CRON(9),
    73      /** Security/Authorization messages. */
    74      AUTHPRIV(10),
    75      /** FTP daemon. */
    76      FTP(11),
    77      /** NTP subsystem. */
    78      NTP(12),
    79      /** Log audit. */
    80      LOG_AUDIT(13),
    81      /** Log alert. */
    82      LOG_ALERT(14),
    83      /** Clock daemon. */
    84      CLOCK(15),
    85      /** Local use 0. */
    86      LOCAL0(16),
    87      /** Local use 1. */
    88      LOCAL1(17),
    89      /** Local use 2. */
    90      LOCAL2(18),
    91      /** Local use 3. */
    92      LOCAL3(19),
    93      /** Local use 4. */
    94      LOCAL4(20),
    95      /** Local use 5. */
    96      LOCAL5(21),
    97      /** Local use 6. */
    98      LOCAL6(22),
    99      /** Local use 7. */
    100     LOCAL7(23);
    101
    102     private final int code;
    103
    104     private Facility(final int code) {
    105         this.code = code;
    106     }
    107
    108     /**
    109      * Returns the Facility for the given string.
    110      *
    111      * @param name The Facility enum name, case-insensitive. If null, returns, null
    112      * @return a Facility enum value or null if name is null
    113      */
    114     public static Facility toFacility(final String name) {
    115         return toFacility(name, null);
    116     }
    117
    118     /**
    119      * Returns the Facility for the given string.
    120      *
    121      * @param name The Facility enum name, case-insensitive. If null, returns, defaultFacility
    122      * @param defaultFacility the Facility to return if name is null
    123      * @return a Facility enum value or null if name is null
    124      */
    125     public static Facility toFacility(final String name, final Facility defaultFacility) {
    126         return EnglishEnums.valueOf(Facility.class, name, defaultFacility);
    127     }
    128
    129     /**
    130      * Retrieve the value of the enumeration.
    131      * @return The value associated with the enumeration.
    132      */
    133     public int getCode() {
    134         return this.code;
    135     }
    136
    137     /**
    138      * Determine if this enumeration matches the specified name (ignoring case).
    139      * @param name The name to check.
    140      * @return true if the name matches this enumeration, ignoring case.
    141      */
    142     public boolean isEqual(final String name) {
    143         return this.name().equalsIgnoreCase(name);
    144     }
    145
    146 }