blob: a03dc334ddc2a5f5f2024acbdb4ed9b439109eee [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache license, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the license for the specific language governing permissions and
* limitations under the license.
*/
package org.apache.logging.log4j.core.net;
import org.apache.logging.log4j.util.EnglishEnums;
/**
* The facility codes used by the Syslog system.
*
* <table>
* <tr>
* <th>Numerical Code</th>
* <th>Facility</th>
* </tr>
* <tr>
* <td>0</td>
* <td>kernel messages</td>
* </tr>
* <tr>
* <td>1</td>
* <td>user-level messages</td>
* </tr>
* <tr>
* <td>2</td>
* <td>mail system</td>
* </tr>
* <tr>
* <td>3</td>
* <td>system daemons</td>
* </tr>
* <tr>
* <td>4</td>
* <td>security/authorization messages</td>
* </tr>
* <tr>
* <td>5</td>
* <td>messages generated internally by syslogd</td>
* </tr>
* <tr>
* <td>6</td>
* <td>line printer subsystem</td>
* </tr>
* <tr>
* <td>7</td>
* <td>network news subsystem</td>
* </tr>
* <tr>
* <td>8</td>
* <td>UUCP subsystem</td>
* </tr>
* <tr>
* <td>9</td>
* <td>clock daemon</td>
* </tr>
* <tr>
* <td>10</td>
* <td>security/authorization messages</td>
* </tr>
* <tr>
* <td>11</td>
* <td>FTP daemon</td>
* </tr>
* <tr>
* <td>12</td>
* <td>NTP subsystem</td>
* </tr>
* <tr>
* <td>13</td>
* <td>log audit</td>
* </tr>
* <tr>
* <td>14</td>
* <td>log alert</td>
* </tr>
* <tr>
* <td>15</td>
* <td>clock daemon (note 2)</td>
* </tr>
* <tr>
* <td>16</td>
* <td>local use 0 (local0)</td>
* </tr>
* <tr>
* <td>17</td>
* <td>local use 1 (local1)</td>
* </tr>
* <tr>
* <td>18</td>
* <td>local use 2 (local2)</td>
* </tr>
* <tr>
* <td>19</td>
* <td>local use 3 (local3)</td>
* </tr>
* <tr>
* <td>20</td>
* <td>local use 4 (local4)</td>
* </tr>
* <tr>
* <td>21</td>
* <td>local use 5 (local5)</td>
* </tr>
* <tr>
* <td>22</td>
* <td>local use 6 (local6)</td>
* </tr>
* <tr>
* <td>23</td>
* <td>local use 7 (local7)</td>
* </tr>
* </table>
*/
public enum Facility {
/** Kernel messages. */
KERN(0),
/** User level messages. */
USER(1),
/** Mail system. */
MAIL(2),
/** System daemons. */
DAEMON(3),
/** Security/Authorization messages. */
AUTH(4),
/** Messages generated by syslogd. */
SYSLOG(5),
/** Line printer subsystem. */
LPR(6),
/** Network news subsystem. */
NEWS(7),
/** UUCP subsystem. */
UUCP(8),
/** Clock daemon. */
CRON(9),
/** Security/Authorization messages. */
AUTHPRIV(10),
/** FTP daemon. */
FTP(11),
/** NTP subsystem. */
NTP(12),
/** Log audit. */
LOG_AUDIT(13),
/** Log alert. */
LOG_ALERT(14),
/** Clock daemon. */
CLOCK(15),
/** Local use 0. */
LOCAL0(16),
/** Local use 1. */
LOCAL1(17),
/** Local use 2. */
LOCAL2(18),
/** Local use 3. */
LOCAL3(19),
/** Local use 4. */
LOCAL4(20),
/** Local use 5. */
LOCAL5(21),
/** Local use 6. */
LOCAL6(22),
/** Local use 7. */
LOCAL7(23);
private final int code;
Facility(final int code) {
this.code = code;
}
/**
* Returns the Facility for the given string.
*
* @param name The Facility enum name, case-insensitive. If null, returns, null
* @return a Facility enum value or null if name is null
*/
public static Facility toFacility(final String name) {
return toFacility(name, null);
}
/**
* Returns the Facility for the given string.
*
* @param name The Facility enum name, case-insensitive. If null, returns, defaultFacility
* @param defaultFacility the Facility to return if name is null
* @return a Facility enum value or null if name is null
*/
public static Facility toFacility(final String name, final Facility defaultFacility) {
return EnglishEnums.valueOf(Facility.class, name, defaultFacility);
}
/**
* Retrieve the value of the enumeration.
* @return The value associated with the enumeration.
*/
public int getCode() {
return this.code;
}
/**
* Determine if this enumeration matches the specified name (ignoring case).
* @param name The name to check.
* @return true if the name matches this enumeration, ignoring case.
*/
public boolean isEqual(final String name) {
return this.name().equalsIgnoreCase(name);
}
}