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(int level, String levelStr, 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(Object o) { 130 if (o instanceof Priority) { 131 Priority r = (Priority) o; 132 return this.level == r.level; 133 } else { 134 return false; 135 } 136 } 137 138 /** 139 * Returns the syslog equivalent of this priority as an integer. 140 * @return The equivalent syslog value. 141 */ 142 public 143 final int getSyslogEquivalent() { 144 return syslogEquivalent; 145 } 146 147 148 /** 149 * Returns {@code true} if this level has a higher or equal 150 * level than the level passed as argument, {@code false} 151 * otherwise. 152 * <p/> 153 * <p>You should think twice before overriding the default 154 * implementation of <code>isGreaterOrEqual</code> method. 155 * @param r The Priority to check. 156 * @return true if the current level is greater or equal to the specified Priority. 157 */ 158 public boolean isGreaterOrEqual(Priority r) { 159 return level >= r.level; 160 } 161 162 /** 163 * Returns all possible priorities as an array of Level objects in 164 * descending order. 165 * @return An array of all possible Priorities. 166 * 167 * @deprecated This method will be removed with no replacement. 168 */ 169 @Deprecated 170 public static Priority[] getAllPossiblePriorities() { 171 return new Priority[]{Priority.FATAL, Priority.ERROR, Level.WARN, 172 Priority.INFO, Priority.DEBUG}; 173 } 174 175 176 /** 177 * Returns the string representation of this priority. 178 * @return The name of the Priority. 179 */ 180 @Override 181 public final String toString() { 182 return levelStr; 183 } 184 185 /** 186 * Returns the integer representation of this level. 187 * @return The integer value of this level. 188 */ 189 public final int toInt() { 190 return level; 191 } 192 193 /** 194 * @param sArg The name of the Priority. 195 * @return The Priority matching the name. 196 * @deprecated Please use the {@link Level#toLevel(String)} method instead. 197 */ 198 @Deprecated 199 public static Priority toPriority(String sArg) { 200 return Level.toLevel(sArg); 201 } 202 203 /** 204 * @param val The value of the Priority. 205 * @return The Priority matching the value. 206 * @deprecated Please use the {@link Level#toLevel(int)} method instead. 207 */ 208 @Deprecated 209 public static Priority toPriority(int val) { 210 return toPriority(val, Priority.DEBUG); 211 } 212 213 /** 214 * @param val The value of the Priority. 215 * @param defaultPriority The default Priority to use if the value is invalid. 216 * @return The Priority matching the value or the default Priority if no match is found. 217 * @deprecated Please use the {@link Level#toLevel(int, Level)} method instead. 218 */ 219 @Deprecated 220 public static Priority toPriority(int val, Priority defaultPriority) { 221 return Level.toLevel(val, (Level) defaultPriority); 222 } 223 224 /** 225 * @param sArg The name of the Priority. 226 * @param defaultPriority The default Priority to use if the name is not found. 227 * @return The Priority matching the name or the default Priority if no match is found. 228 * @deprecated Please use the {@link Level#toLevel(String, Level)} method instead. 229 */ 230 @Deprecated 231 public static Priority toPriority(String sArg, Priority defaultPriority) { 232 return Level.toLevel(sArg, (Level) defaultPriority); 233 } 234 }