at.spardat.xma.boot.logger.LogLevel Maven / Gradle / Ivy
/*
*
* Project : XMA
* Filename : -
* Created on : 25.06.2003
* Created by : s3595
*
* Spardat Sparkassen Datendienst GmbH
* (C) Copyright 2003 Spardat All rights reserved.
*
* Change History:
*
* Maintainer Date Defect Modification
* ------------ ------ -------- ------------
*
*/
package at.spardat.xma.boot.logger;
/**
* LogLevel
*
* @author s3595 Chr. Schaefer (CGS)
* @version $Id: LogLevel.java 1005 2003-08-08 13:53:54Z S1462 $
*
*/
public class LogLevel {
/**
* @serial The non-localized name of the level.
*/
private final String name;
/**
* @serial The integer value of the level.
*/
private final int value;
public static LogLevel getLogLevelNamed( String name ) {
if( name.equals(OFF.getName())) {
return OFF;
}
if( name.equals(SEVERE.getName())) {
return SEVERE;
}
if( name.equals(WARNING.getName())) {
return WARNING;
}
if( name.equals(INFO.getName())) {
return INFO;
}
if( name.equals(CONFIG.getName())) {
return CONFIG;
}
if( name.equals(FINE.getName())) {
return FINE;
}
if( name.equals(ALL.getName())) {
return ALL;
}
return null;
}
/**
* OFF is a special level that can be used to turn off logging.
* This level is initialized to Integer.MAX_VALUE
.
*/
public static final LogLevel OFF = new LogLevel("OFF",Integer.MAX_VALUE); //$NON-NLS-1$
/**
* SEVERE is a message level indicating a serious failure.
*
* In general SEVERE messages should describe events that are
* of considerable importance and which will prevent normal
* program execution. They should be reasonably intelligible
* to end users and to system administrators.
* This level is initialized to 1000
.
*/
public static final LogLevel SEVERE = new LogLevel("SEVERE",1000); //$NON-NLS-1$
/**
* WARNING is a message level indicating a potential problem.
*
* In general WARNING messages should describe events that will
* be of interest to end users or system managers, or which
* indicate potential problems.
* This level is initialized to 900
.
*/
public static final LogLevel WARNING = new LogLevel("WARNING", 900); //$NON-NLS-1$
/**
* INFO is a message level for informational messages.
*
* Typically INFO messages will be written to the console
* or its equivalent. So the INFO level should only be
* used for reasonably significant messages that will
* make sense to end users and system admins.
* This level is initialized to 800
.
*/
public static final LogLevel INFO = new LogLevel("INFO", 800); //$NON-NLS-1$
/**
* CONFIG is a message level for static configuration messages.
*
* CONFIG messages are intended to provide a variety of static
* configuration information, to assist in debugging problems
* that may be associated with particular configurations.
* For example, CONFIG message might include the CPU type,
* the graphics depth, the GUI look-and-feel, etc.
* This level is initialized to 700
.
*/
public static final LogLevel CONFIG = new LogLevel("CONFIG", 700); //$NON-NLS-1$
/**
* FINE is a message level providing tracing information.
*
* All of FINE, FINER, and FINEST are intended for relatively
* detailed tracing. The exact meaning of the three levels will
* vary between subsystems, but in general, FINEST should be used
* for the most voluminous detailed output, FINER for somewhat
* less detailed output, and FINE for the lowest volume (and
* most important) messages.
*
* In general the FINE level should be used for information
* that will be broadly interesting to developers who do not have
* a specialized interest in the specific subsystem.
*
* FINE messages might include things like minor (recoverable)
* failures. Issues indicating potential performance problems
* are also worth logging as FINE.
* This level is initialized to 500
.
*/
public static final LogLevel FINE = new LogLevel("FINE", 500); //$NON-NLS-1$
/**
* ALL indicates that all messages should be logged.
* This level is initialized to Integer.MIN_VALUE
.
*/
public static final LogLevel ALL = new LogLevel("ALL", Integer.MIN_VALUE); //$NON-NLS-1$
/**
* Create a named Level with a given integer value.
*
* Note that this constructor is "protected" to allow subclassing.
* In general clients of logging should use one of the constant Level
* objects such as SEVERE or FINEST. However, if clients need to
* add new logging levels, they may subclass Level and define new
* constants.
* @param name the name of the Level, for example "SEVERE".
* @param value an integer value for the level.
*/
protected LogLevel(String name, int value) {
this.name = name;
this.value = value;
}
/**
* Return the non-localized string name of the Level.
*
* @return non-localized name
*/
public String getName() {
return name;
}
/**
* @return the non-localized name of the Level, for example "INFO".
*/
public final String toString() {
return name;
}
/**
* Get the integer value for this level. This integer value
* can be used for efficient ordering comparisons between
* Level objects.
* @return the integer value for this level.
*/
public final int intValue() {
return value;
}
/**
* Compare two objects for value equality.
* @return true if and only if the two objects have the same level value.
*/
public boolean equals(Object ox) {
try {
LogLevel lx = (LogLevel)ox;
return (lx.value == this.value);
} catch (Exception ex) {
return false;
}
}
/**
* Generate a hashcode.
* @return a hashcode based on the level value
*/
public int hashCode() {
return this.value;
}
}