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; 18 19 /** 20 * <font color="#AA4444">Refrain from using this class directly, use 21 * the {@link Level} class instead</font>. 22 */ 23 public class Priority { 24 25 /** 26 * The <code>OFF</code> has the highest possible rank and is 27 * intended to turn off logging. 28 */ 29 public static final int OFF_INT = Integer.MAX_VALUE; 30 /** 31 * The <code>FATAL</code> level designates very severe error 32 * events that will presumably lead the application to abort. 33 */ 34 public static final int FATAL_INT = 50000; 35 /** 36 * The <code>ERROR</code> level designates error events that 37 * might still allow the application to continue running. 38 */ 39 public static final int ERROR_INT = 40000; 40 /** 41 * The <code>WARN</code> level designates potentially harmful situations. 42 */ 43 public static final int WARN_INT = 30000; 44 /** 45 * The <code>INFO</code> level designates informational messages 46 * that highlight the progress of the application at coarse-grained 47 * level. 48 */ 49 public static final int INFO_INT = 20000; 50 /** 51 * The <code>DEBUG</code> Level designates fine-grained 52 * informational events that are most useful to debug an 53 * application. 54 */ 55 public static final int DEBUG_INT = 10000; 56 //public final static int FINE_INT = DEBUG_INT; 57 /** 58 * The <code>ALL</code> has the lowest possible rank and is intended to 59 * turn on all logging. 60 */ 61 public static final int ALL_INT = Integer.MIN_VALUE; 62 63 /** 64 * @deprecated Use {@link Level#FATAL} instead. 65 */ 66 @Deprecated 67 public static final Priority FATAL = new Level(FATAL_INT, "FATAL", 0); 68 69 /** 70 * @deprecated Use {@link Level#ERROR} instead. 71 */ 72 @Deprecated 73 public static final Priority ERROR = new Level(ERROR_INT, "ERROR", 3); 74 75 /** 76 * @deprecated Use {@link Level#WARN} instead. 77 */ 78 @Deprecated 79 public static final Priority WARN = new Level(WARN_INT, "WARN", 4); 80 81 /** 82 * @deprecated Use {@link Level#INFO} instead. 83 */ 84 @Deprecated 85 public static final Priority INFO = new Level(INFO_INT, "INFO", 6); 86 87 /** 88 * @deprecated Use {@link Level#DEBUG} instead. 89 */ 90 @Deprecated 91 public static final Priority DEBUG = new Level(DEBUG_INT, "DEBUG", 7); 92 93 /* 94 * These variables should be private but were not in Log4j 1.2 so are left the same way here. 95 */ 96 transient int level; 97 transient String levelStr; 98 transient int syslogEquivalent; 99 100 /** 101 * Default constructor for deserialization. 102 */ 103 protected Priority() { 104 level = DEBUG_INT; 105 levelStr = "DEBUG"; 106 syslogEquivalent = 7; 107 } 108 109 /** 110 * Instantiate a level object. 111 * @param level The level value. 112 * @param levelStr The level name. 113 * @param syslogEquivalent The equivalent syslog value. 114 */ 115 protected Priority(final int level, final String levelStr, final int syslogEquivalent) { 116 this.level = level; 117 this.levelStr = levelStr; 118 this.syslogEquivalent = syslogEquivalent; 119 } 120 121 /** 122 * Two priorities are equal if their level fields are equal. 123 * @param o The Object to check. 124 * @return true if the objects are equal, false otherwise. 125 * 126 * @since 1.2 127 */ 128 @Override 129 public boolean equals(final Object o) { 130 if (o instanceof Priority) { 131 final Priority r = (Priority) o; 132 return this.level == r.level; 133 } 134 return false; 135 } 136 137 /** 138 * Returns the syslog equivalent of this priority as an integer. 139 * @return The equivalent syslog value. 140 */ 141 public 142 final int getSyslogEquivalent() { 143 return syslogEquivalent; 144 } 145 146 147 /** 148 * Returns {@code true} if this level has a higher or equal 149 * level than the level passed as argument, {@code false} 150 * otherwise. 151 * <p/> 152 * <p>You should think twice before overriding the default 153 * implementation of <code>isGreaterOrEqual</code> method. 154 * @param r The Priority to check. 155 * @return true if the current level is greater or equal to the specified Priority. 156 */ 157 public boolean isGreaterOrEqual(final Priority r) { 158 return level >= r.level; 159 } 160 161 /** 162 * Returns all possible priorities as an array of Level objects in 163 * descending order. 164 * @return An array of all possible Priorities. 165 * 166 * @deprecated This method will be removed with no replacement. 167 */ 168 @Deprecated 169 public static Priority[] getAllPossiblePriorities() { 170 return new Priority[]{Priority.FATAL, Priority.ERROR, Level.WARN, 171 Priority.INFO, Priority.DEBUG}; 172 } 173 174 175 /** 176 * Returns the string representation of this priority. 177 * @return The name of the Priority. 178 */ 179 @Override 180 public final String toString() { 181 return levelStr; 182 } 183 184 /** 185 * Returns the integer representation of this level. 186 * @return The integer value of this level. 187 */ 188 public final int toInt() { 189 return level; 190 } 191 192 /** 193 * @param sArg The name of the Priority. 194 * @return The Priority matching the name. 195 * @deprecated Please use the {@link Level#toLevel(String)} method instead. 196 */ 197 @Deprecated 198 public static Priority toPriority(final String sArg) { 199 return Level.toLevel(sArg); 200 } 201 202 /** 203 * @param val The value of the Priority. 204 * @return The Priority matching the value. 205 * @deprecated Please use the {@link Level#toLevel(int)} method instead. 206 */ 207 @Deprecated 208 public static Priority toPriority(final int val) { 209 return toPriority(val, Priority.DEBUG); 210 } 211 212 /** 213 * @param val The value of the Priority. 214 * @param defaultPriority The default Priority to use if the value is invalid. 215 * @return The Priority matching the value or the default Priority if no match is found. 216 * @deprecated Please use the {@link Level#toLevel(int, Level)} method instead. 217 */ 218 @Deprecated 219 public static Priority toPriority(final int val, final Priority defaultPriority) { 220 return Level.toLevel(val, (Level) defaultPriority); 221 } 222 223 /** 224 * @param sArg The name of the Priority. 225 * @param defaultPriority The default Priority to use if the name is not found. 226 * @return The Priority matching the name or the default Priority if no match is found. 227 * @deprecated Please use the {@link Level#toLevel(String, Level)} method instead. 228 */ 229 @Deprecated 230 public static Priority toPriority(final String sArg, final Priority defaultPriority) { 231 return Level.toLevel(sArg, (Level) defaultPriority); 232 } 233 }