Eventuell benutzt man bereits java.util.logging zu Loggingzwecken. Falls ja, dürfte man sich darüber freuen, dass dieses Paket in Java 1.5 als Standard-Mbean zur Verfügung steht. Man kann die Jconsole verwenden, um die Loggingstufen jeder Instanz eines Loggers zu erhöhen oder herabzusetzen. Der Beispielcode wurde um einige Logging-Nachrichten ergänzt. Nun führt man das Bespiel aus und stellt die Verbindung mit der Jconsole her. Dort wählt man die Registerkarte Mbeans, öffnet java.util.logging in der Mbeans-Baumansicht und wählt Logging. Wie man sieht, hat die Registerkarte Attributes ein Attribut: LoggerNames. Wenn man auf das Value-Feld klickt, sieht man alle Namen der konfigurierten Logs.
|
In dieser Liste sollte auch „watchme“ auftauchen. Wenn man auf die Registerkarte Operations klickt, sieht man die drei Methoden, die man aufrufen kann: getParentLoggerName, getLoggerLevel und setLoggerLevel.
|
Bei setLoggerLevel ist p0 der Name des Loggers und p1 eine Stringrepräsentation der gewünschten Stufe. Die Stufe ist ein String in Großbuchstaben oder eine Ganzzahl, wie sie von der Level.parse-Methode bearbeitet wird. Gibt man „watchme“ für p0 und „OFF“ für p1 ein und klickt auf den setLoggerLevel-Button, ist das Logging deaktiviert (was man mit einem Blick auf die Konsole erkennen kann). Die Eingabe von „ALL“ für p1 aktiviert alle Logging-Nachrichten.
|
Beim Schreiben dieses Beispiels stellte sich heraus, dass die Loggingstufe nicht für mehr Details über „INFO“ hinaus eingestellt werden konnte. Das liegt daran, dass das Logging-Mbean nur die Stufe der Logger-Instanz einstellt, nicht aber irgendwelche Handler, die mit dem Log verknüpft sind. Daher findet sich im WatchMeBean-Konstruktor der folgende Code:
Damit werden alle verknüpften ConsoleHandler angewiesen, alle Logging-Nachrichten anzuzeigen. Ohne diese Anweisung würde man Nachrichten der Stufen FINE, FINER, FINEST auf der Konsole nicht angezeigt bekommen.
Zusammenfassung
Jconsole ist zwar kein ausgewachsener JMX-Client, aber als Standardbestandteil des Entwicklerkits in J2SE 5.0 sollte sie immer zur Hand sein, falls man eine Anwendung vor Ort oder aus der Ferne verwalten oder eine JVM überwachen will. Die Jconsole ist aber beileibe nicht der einzige Client. MX4J ist eine Open-Source-JMX-Implementierung mit eigener Konsole, und man kann natürlich auch seine eigenen JMX-Clients für das Anwendungsmanagement implementieren (zum Beispiel zur Überwachung des Durchsatzes in einem Cluster von Backend-Servern). Jconsole ist aber ein guter Ausgangspunkt für die Fernverwaltung von Anwendungen.
Neueste Kommentare
Noch keine Kommentare zu Jconsole: Fernverwaltung, Benachrichtigungen und Logging
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.