Sie können JRas-Operationen konfigurieren, wenn Tracedaten und Protokollierungsnachrichten
nur an benutzerdefinierten Positionen ausgegeben werden sollen.
Vorbereitende Schritte
Das JRas-Framework, das in dieser Task und den untergeordneten
Tasks beschrieben wird, wird nicht weiter unterstützt. Sie können jedoch ähnliche Ergebnisse mit der
Java™-Protokollierung erzielen.
Informationen zu diesem Vorgang
Im eigenständigen Modus werden Nachrichten und Traces nur in benutzerdefinierten
Protokollen erfasst. Im folgenden Beispiel wird Folgendes vorausgesetzt:
- Sie haben einen benutzerdefinierten Handler mit dem Namen SimpleFileHandler und einen benutzerdefinierten Formatter mit dem Namen
SimpleFormatter.
- Sie verwenden keine benutzerdefinierten Ereignistypen.
Vorgehensweise
- Importieren Sie die vorausgesetzten JRas-Erweiterungsklassen:
import com.ibm.ras.*;
import com.ibm.websphere.ras.*;
- Importieren Sie den benutzerdefinierten Handler und den Formatter:
import com.ibm.ws.ras.test.user.*;
- Deklarieren Sie die Protokollfunktionsreferenzen:
private RASMessageLogger msgLogger = null;
private RASTraceLogger trcLogger = null;
- Fordern Sie eine Referenz auf die Managerklasse an, erstellen Sie die
Protokollfunktionen (Logger), und fügen Sie die benutzerdefinierten Handler hinzu. Da Protokollfunktionen
benannte Singletons sind, können Sie an verschiedenen Stellen eine Referenz auf die Protokollfunktionen anfordern. Ein logischer Kandidat für
Enterprise-Beans ist die Methode ejbCreate. Achten Sie jedoch darauf, dass nicht versehentlich mehrere
Instanzen eines benutzerdefinierten Handlers in dieselbe
Protokollfunktion eingefügt werden.
Ihr Initialisierungscode muss diese Methode unterstützen. Nachfolgend sehen Sie ein Beispiel für eine
Nachrichtenprotokollfunktion. Die Prozedur für eine Traceprotokollfunktion sieht ähnlich aus.
com.ibm.websphere.ras.Manager mgr = com.ibm.websphere.ras.Manager.getManager();
msgLogger = mgr.createRASMessageLogger("Acme", "WidgetCounter", "RasTest",
myTestBean.class.getName());
// Konfigurieren Sie die Nachrichtenprotokollfunktion für die Verwendung der im Beispiel
// ResourceBundle definierten Nachrichtendatei
msgLogger.setMessageFile("acme.widgets.DefaultMessages");
// Referenz auf den Handler anfordern und aus der Protokollfunktion entfernen
RASIHandler aHandler = null;
Enumeration enum = msgLogger.getHandlers();
while (enum.hasMoreElements()) {
aHandler = (RASIHandler)enum.nextElement();
if (aHandler instanceof WsHandler)
msgLogger.removeHandler(wsHandler);
}
//Benutzer-Handler und -Formatter erstellen. Formatter konfigurieren
//und zum Handler hinzufügen.
RASIHandler handler = new SimpleFileHandler("meinHandler", "Dateiname");
RASIFormatter formatter = new SimpleFormatter("simple formatter");
formatter.addEventClass("com.ibm.ras.RASMessageEvent");
handler.addFormatter(formatter);
//Hinzufügen des Handler zur Protokollfunktion. Fügen Sie die Protokollfunktion zur Liste der
//Listener für den Handler hinzu. Definieren Sie dann die Handler-Maske,
//was die Aktualisierung der zusammengesetzten Protokollfunktionsmaske nach sich zieht.
// ACHTUNG - Es gibt eine Abhängigkeit von der Reihenfolge, die deshalb eingehalten werden muss.
msgLogger.addHandler(handler);
handler.addMaskChangeListener(msgLogger);
handler.setMessageMask(RASIMessageEvent.DEFAULT_MESSAGE_MASK);