ceki        01/09/02 14:48:55

  Added:       src/java/org/apache/log4j Level.java
  Log:
  Level replaces Priority.
  
  Revision  Changes    Path
  1.1                  jakarta-log4j/src/java/org/apache/log4j/Level.java
  
  Index: Level.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included  with this distribution in
   * the LICENSE.txt file.
   */
  
  // Contributors:  Kitching Simon <[EMAIL PROTECTED]>
  
  package org.apache.log4j;
  
  /**
     Defines the minimum set of priorities recognized by the system,
     that is {@link #FATAL}, {@link #ERROR}, {@link #WARN}, {@link
     #INFO} and {@link #DEBUG}.
  
     <p>The <code>Level</code> class may be subclassed to define a larger
     level set.
  
     @author Ceki G&uuml;lc&uuml;
   */
  public class Level {
  
    int level;
    String levelStr;
    int syslogEquivalent;
  
    public final static int OFF_INT = Integer.MAX_VALUE;
    public final static int FATAL_INT = 50000;
    public final static int ERROR_INT = 40000;
    public final static int WARN_INT  = 30000;
    public final static int INFO_INT  = 20000;
    public final static int DEBUG_INT = 10000;
    public final static int ALL_INT = Integer.MIN_VALUE;
  
  
    /**
       The <code>OFF</code> is used to turn off logging.
     */
    final static public Level OFF = new Level(OFF_INT, "OFF", 0);
  
  
    /**
       The <code>FATAL</code> Level designates very severe error
       events that will presumably lead the application to abort.
     */
    final static public Level FATAL = new Level(FATAL_INT, "FATAL", 0);
  
    /**
       The <code>ERROR</code> Level designates error events that
       might still allow the application to continue running.  */
    final static public Level ERROR = new Level(ERROR_INT, "ERROR", 3);
  
    /**
       The <code>WARN</code> Level designates potentially harmful situations.
    */
    final static public Level WARN  = new Level(WARN_INT, "WARN",  4);
  
    /**
       The <code>INFO</code> Level designates informational messages
       that highlight the progress of the application at coarse-grained
       level.  */
    final static public Level INFO  = new Level(INFO_INT, "INFO",  6);
  
    /**
       The <code>DEBUG</code> Level designates fine-grained
       informational events that are most useful to debug an
       application.  */
    final static public Level DEBUG = new Level(DEBUG_INT, "DEBUG", 7);
  
    /**
       The <code>ALL</code> is used to turn on all logging.
    */
    final static public Level ALL = new Level(ALL_INT, "ALL", 7);
  
    
    /**
       Instantiate a level object.
     */
    protected
    Level(int level, String levelStr, int syslogEquivalent) {
      this.level = level;
      this.levelStr = levelStr;
      this.syslogEquivalent = syslogEquivalent;
    }
  
    /**
       Return the syslog equivalent of this level as an integer.
     */
    public
    final
    int getSyslogEquivalent() {
      return syslogEquivalent;
    }
  
  
    /**
       Returns the string representation of this level.
     */
    final
    public
    String toString() {
      return levelStr;
    }
  
    /**
       Returns the integer representation of this level.
     */
    public
    final
    int toInt() {
      return level;
    }
  
      
    /**
       Returns <code>true</code> if this level has a higher or equal
       level than the level passed as argument, <code>false</code>
       otherwise.  
       
       <p>You should think twice before overriding the default
       implementation of <code>isGreaterOrEqual</code> method.
  
    */
    public
    boolean isGreaterOrEqual(Level r) {
      return level >= r.level;
    }
  
    /**
       Return all possible priorities as an array of Level objects in
       descending order.  */
    public
    static
    Level[] getAllPossiblePriorities() {
      return new Level[] {Level.FATAL, Level.ERROR, Level.WARN, 
                             Level.INFO, Level.DEBUG};
    }
  
  
    /**
       Convert the string passed as argument to a level. If the
       conversion fails, then this method returns {@link #DEBUG}. 
    */
    public
    static
    Level toLevel(String sArg) {
      return toLevel(sArg, Level.DEBUG);
    }
  
    /**
      Convert an integer passed as argument to a level. If the
      conversion fails, then this method returns {@link #DEBUG}.
  
    */
    public
    static
    Level toLevel(int val) {
      return toLevel(val, Level.DEBUG);
    }
  
    /**
      Convert an integer passed as argument to a level. If the
      conversion fails, then this method returns the specified default.
    */
    public
    static
    Level toLevel(int val, Level defaultLevel) {
      switch(val) {
      case ALL_INT: return ALL;
      case DEBUG_INT: return DEBUG;
      case INFO_INT: return INFO;
      case WARN_INT: return WARN;
      case ERROR_INT: return ERROR;
      case FATAL_INT: return FATAL;
      case OFF_INT: return OFF;
      default: return defaultLevel;
      }
    }
  
    /**
       Convert the string passed as argument to a level. If the
       conversion fails, then this method returns the value of
       <code>defaultLevel</code>.  
    */
    public
    static
    Level toLevel(String sArg, Level defaultLevel) {                  
      if(sArg == null)
         return defaultLevel;
      
      String s = sArg.toUpperCase();
  
      if(s.equals("ALL")) return Level.ALL; 
      if(s.equals("DEBUG")) return Level.DEBUG; 
      if(s.equals("INFO"))  return Level.INFO;
      if(s.equals("WARN"))  return Level.WARN;  
      if(s.equals("ERROR")) return Level.ERROR;
      if(s.equals("FATAL")) return Level.FATAL;
      if(s.equals("OFF")) return Level.OFF;
      return defaultLevel;
    }
  
  
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to