com.ibm.ras
Interface RASILogger

All Superinterfaces:
RASIMaskChangeGenerator, RASIObject, java.io.Serializable
All Known Subinterfaces:
RASIMessageLogger, RASITraceLogger
All Known Implementing Classes:
RASLogger

public interface RASILogger
extends RASIMaskChangeGenerator

RASILogger defines the methods which are common to objects that wish to create RAS message and trace data. This interface is intended to be extended to include methods specific to the creation of message or trace data and should not be implemented directly.

An object which implements this interface may also wish to implement RASIMaskChangeListener.

Note: Classes which implement RASILogger should, in their constructors, call the addMessageEventClass and addTraceEventClass methods to register the RASIEvent classes which the logger uses. This will allow a graphical program to query the logger to determine the supported RAS events. The events, in turn, can be queried to determine their set of supported event types.

See Also:
RASIMessageLogger, RASITraceLogger

Method Summary
 void addHandler(RASIHandler handler)
          Registers a RAS handler with this logger.
 void fireRASEvent(RASIEvent event)
          Sends a RASIEvent to all handlers which will process the event.
 java.lang.String getClient()
          Gets the name of the client which is associated with this logger.
 java.util.Hashtable getConfig()
          Gets the configuration of this object.
 java.util.Enumeration getHandlers()
          Gets all of the handlers associated with this logger.
 java.lang.String getServer()
          Gets the name of the server which is associated with this logger.
 boolean isLoggable(long type)
          Determines if a log entry will be processed by the logger and any of the handlers.
 boolean isLogging()
          Determines if a logger is logging data ("on") or not ("off").
 boolean isSynchronous()
          Determines if synchronous logging is in effect.
 void removeHandler(RASIHandler handler)
          Removes a RAS handler from this logger.
 void setClient(java.lang.String name)
          Sets the name of the client which is associated with this logger.
 void setConfig(java.util.Hashtable ht)
          Sets the configuration of this object.
 void setLogging(boolean flag)
          Sets a flag that indicates whether the logger is logging data ("on") or not ("off").
 void setServer(java.lang.String name)
          Sets the name of the server which is associated with this logger.
 void setSynchronous(boolean flag)
          Sets a flag that tells the logger whether to log data synchronously.
 
Methods inherited from interface com.ibm.ras.RASIMaskChangeGenerator
addMaskChangeListener, addMessageEventClass, addTraceEventClass, fireMaskChangedEvent, getMaskChangeListeners, getMessageEventClasses, getMessageMask, getTraceEventClasses, getTraceMask, removeMaskChangeListener, removeMessageEventClass, removeTraceEventClass, setMessageMask, setTraceMask
 
Methods inherited from interface com.ibm.ras.RASIObject
getDescription, getGroup, getName, setDescription, setName
 

Method Detail

getConfig

public java.util.Hashtable getConfig()
Gets the configuration of this object.
Specified by:
getConfig in interface RASIMaskChangeGenerator
Returns:
A Hashtable containing the configuration. This object inserts the following key/value pairs into the configuration:

isLogging

true if the logger is logging data; otherwise, false.

isSync

true if the logger is logging synchronously; otherwise, false.

server

The server.

client

The client.

handlerNames

The names of the handlers attached to this logger.

All values are Strings. The parent and extensions of this object may add additional keys.


setConfig

public void setConfig(java.util.Hashtable ht)
Sets the configuration of this object. This method is used by a RASManager to initialize a RAS object. It should not be necessary for an application to use this method.
Specified by:
setConfig in interface RASIMaskChangeGenerator
Parameters:
ht - A Hashtable containing the configuration. This object searches for the following keys:

isLogging

true if the logger is logging data; otherwise, false.

isSync

true if the logger is logging synchronously; otherwise, false.

server

The server.

client

The client.

handlerNames

The names of the handlers attached to this logger.

All values are Strings. If a key is not found, an internal default for that element is set instead. The parent and extensions of this object may use additional keys.


getClient

public java.lang.String getClient()
Gets the name of the client which is associated with this logger.
Returns:
The client name, or an empty string ("") if the client has not been set.

setClient

public void setClient(java.lang.String name)
Sets the name of the client which is associated with this logger. If the name is null, the current name is not changed.
Parameters:
name - The client name.

getServer

public java.lang.String getServer()
Gets the name of the server which is associated with this logger.
Returns:
The server name, or an empty string ("") if the server has not been set.

setServer

public void setServer(java.lang.String name)
Sets the name of the server which is associated with this logger. If the name is null, the current name is not changed.
Parameters:
name - The server name.

addHandler

public void addHandler(RASIHandler handler)
Registers a RAS handler with this logger. More than one handler may be associated with a logger to direct the RAS data to multiple destinations. If the handler is null or is already registered, this method does nothing.
Parameters:
handler - A RAS handler.

removeHandler

public void removeHandler(RASIHandler handler)
Removes a RAS handler from this logger. If the handler is null or is not registered, this method does nothing.
Parameters:
handler - A RAS handler.

getHandlers

public java.util.Enumeration getHandlers()
Gets all of the handlers associated with this logger.
Returns:
An Enumeration of handlers. If no handlers are registered, the Enumeration is empty.

isSynchronous

public boolean isSynchronous()
Determines if synchronous logging is in effect. When logging synchronously, the logger will wait for the handlers to write a log entry before returning to the caller. Otherwise, the log entry is passed to the handler and the logger returns.
Returns:
true for synchronous logging and false otherwise.

setSynchronous

public void setSynchronous(boolean flag)
Sets a flag that tells the logger whether to log data synchronously. When logging synchronously, the logger will wait for the handlers to write a log entry before returning to the caller. Otherwise, the log entry is passed to the handler and the logger returns.
Parameters:
flag - A boolean set true for synchronous logging and false otherwise.

isLogging

public boolean isLogging()
Determines if a logger is logging data ("on") or not ("off").
Returns:
true when the logger is "on" and false otherwise.

setLogging

public void setLogging(boolean flag)
Sets a flag that indicates whether the logger is logging data ("on") or not ("off").
Parameters:
flag - true when the logger is "on" and false otherwise.

isLoggable

public boolean isLoggable(long type)
Determines if a log entry will be processed by the logger and any of the handlers. Wrapping a message or trace call with this method can improve performance. Log entries that will not be processed need not even be built. For example:
 if (isLoggable(RASITraceEvent.TYPE_PUBLIC)
   trace(RASITraceEvent.TYPE_PUBLIC...);
 
Parameters:
type - The type of the log entry. The set of possible values is defined by the RASIMessageEvent or RASITraceEvent TYPE_XXXX constants.
Returns:
true if the logger is enabled and at least one handler will process the log entry; false, otherwise.

fireRASEvent

public void fireRASEvent(RASIEvent event)
Sends a RASIEvent to all handlers which will process the event. A null event is ignored.
Parameters:
event - The event to be sent.