Hinweise zur Verwendung der Logging API im JDK 1.4

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Hinweise zur Verwendung der Logging API im JDK 1.4"

Transkript

1 Hinweise zur Verwendung der Logging API im JDK Oktober Inhalt 1 Logging Übersicht Logger Handler Logging Properties-File Logging Levels SEVERE WARNING INFO CONFIG FINE FINER FINEST Beispiele Programmierrichtlinien Initialisierung Logging Meldungen Debugging root-handler und root-logger Kurzanleitung Konfigurationsfile Start der Anwendung Meldungen /11

2 1 Logging Die Logging API wurde von Sun in der Java Version 1.4 in das JDK integriert. Vor JDK1.4 wurden Logging APIs in verschieden Open-Source Projekten entwickelt, diese APIs werden teilweise noch weiter verwendet (Jakarta Commons-Logging, Log4j). Im Folgenden wird die Logging API in JDK1.4 kurz dokumentiert und Überlegungen und Implementierungsvorschläge für die Verwendung zusammengefasst. Einen vollständigen Überblick findet man bei [http://java.sun.com/j2se/1.4.2/docs/guide/util/logging/] 1.1 Übersicht Die zentrale Komponente der Logging API ist die Klasse java.util.logging.logmanager. Der LogManager hat die Aufgabe verschiedene Logger-Objekte in einem hierachischem Namensraum zu organisieren, sowie zugehörige Logging-Handler zu verwalten. Der LogManager ist auch für das Einlesen des Logging Konfigurationsfiles beim Start einer Anwendung zuständig. Das folgende Schaubild zeigt stark vereinfacht den Ablauf bei der Verwendung der Logging API: Anwendung Logging Meldung LoggingManager Logger log(level,msg) LogRecord Handler Ausgabe Die Anwendung verwendet einen Logger um ein Ereignis an die Logging API zu melden, der Logger leitet diese Meldung in Form eines LogRecord an einen Handler weiter, der diese als Meldung ausgibt. Alle Handler sind Unterklassen der abstrakten Klasse java.util.logging.handler. Häufig verwendete Handler sind ConsoleHandler, der die Meldungen auf die Konsole ausgibt und FileHandler, der die Meldungen in eine Datei schreibt. Wird kein Handler explizit definiert, so installiert der LogManager einen ConsoleHandler als Default. Um einen Logger in einer Anwendung zu verwenden muss dieser zunächst mit der static Methode Logger.getLogger( <name> ) erzeugt werden. Meldungen können dann mit der Methode log(...) an diesen übergeben werden. Bei der Übergabe einer Meldung durch die Anwendung an den Logger wird explizit oder implizit ein Logging-Level für diese Meldung vorgegeben. Dieser Logging-Level gibt die Priorität der Meldung an. Logger und Handler können so konfiguriert werden, dass lediglich Meldungen ab einer bestimmten Priorität weitergeleitet werden. Hierfür wird die Methode setlevel() im Handler bzw. im Logger Objekt verwendet. Die Initialisierung des LogManager und damit die Konfiguration der verwendeten Logger und Handler kann beim Start einer Java Anwendung über ein properties-file vorgenommen werden. Dabei wird über den Parameter -Djava.util.logging.config.file=<filename> das zu verwendende Properties File angegeben. Für eine einfache Anwendung ist es hinreichend lediglich mit Logger Objekten zu arbeiten. Normalerweise werden die Handler lediglich in einem Konfigurationsfile definiert und nicht von der Anwendung selbst initialisiert. In einer aufwändigeren Konfiguration können sie verwendet werden um z.b. Log Records in einem Ringpuffer zu speichern und lediglich bei Bedarf auszugeben. Auch der LogManager selbst wird von einer einfachen Anwendung in der Regeln nicht direkt verwendet. Er kann bei Bedarf jedoch benutzt werden, um z.b. ein geändertes Konfigurationsfile in einer laufenden Anwendung neu zu laden. In den folgenden Abschnitten wird genauer auf die Konfiguration der einzelnen Komponenten der Logging API für eine einfache Anwendung eingegangen. 2/11

3 1.1.1 Logger 18. Oktober 2005 Alle Logger Objekte werden in einem Namensraum hierachisch verwaltet. Bei der Initialisierung eines Loggers mit der Methode Logger.getLogger( <name> ) wird der Name des Loggers angegeben. Normalerweise werden Logger nach dem Package- oder Klassennamen benannt in dem sie verwendet werden. Ein besonderer Logger ist der root-logger, der den Namen (leerer String) hat. Außer dem root-logger besitzt jeder Logger eine Referenz auf den im Namensraum übergeordneten Logger, dieser Logger wird auch als parent-logger bezeichnet. Ein Handler kann mit der Methode addhandler() bei einem Logger angemeldet werden. Alle Logging Meldungen werden sowohl an die im Logger registrierten Handler als auch an seinen parent-logger weitergeleitet. Aus diesem Grund genügt das Registrieren eines einzigen Handlers beim root-logger, um die Meldungen aller in einer Anwendung verwendeten Logger entgegenzunehmen. Jeder Logger besitzt einen Level, der den minimalen Level der Meldungen darstellt, die von ihm angenommen werden. Wenn die Meldung z.b. über die Methode log(level, String) von der Anwendung übermittelt wird nimmt der Logger diese Meldung an, wenn der als Parameter übergebene Logging-Level der Meldung größer ist als der vorgegebene minimale Logging-Level. Die Meldung wird dann an alle angehängten Handler und an den parent-logger weitergegeben. Der parent-logger führt die Überprüfung des Logging-Level nicht mehr durch da die Meldung bereits von einem anderen Logger angenommen wurde. Daraus folgt, dass eine Meldung, die durch einen Logger angenommen wurde, alle parent-logger dieses Loggers erreicht, und damit auch den Handler des root-loggers und zwar unabhängig vom Logging-Level der parent-logger. Der Logging-Level eines Loggers kann entweder über die Methode setlevel() in einer Anwendung direkt konfiguriert werden, oder wird in einem properties-file definiert. Wird vom Anwender kein Level vorgegeben, so wird der Level des parent-logger verwendet Handler Logging Handler haben die Aufgabe die Logging Meldungen von den Loggern entgegenzunehmen und auszugeben oder ggf. zwischenzuspeichern. Der Logging-Level kann über die Methode setlevel() konfiguriert werden und definiert welche Meldungen bearbeitet werden. Die folgende Auflistung beschreibt einen Teil der im JDK implementierten Handler: ConsoleHandler Dieser Handler schreibt die Meldungen nach System.err, als -Level wird INFO verwendet. FileHandler Dieser Handler schreibt die Meldungen in eine Datei oder in eine Menge von rotierenden Logfiles welche im Konstruktor angegeben werden können, als -Level wird ALL verwendet. MemoryHandler Bei diesem Handler werden die Meldungen in einem Ringpuffer gespeichert und können bei Bedarf an einen zweiten Handler weitergegeben werden. Für einen Handler können Formatter-Objekte gesetzt werden, die definieren in welchen Format die Meldungen ausgegeben werden. Im JDK sind die beiden folgenden Formatter implementiert: SimpleFormatter Konvertiert eine Logging Meldung in einen einfachen String, der aus ein oder zwei Zeilen besteht. Dieser Formatter wird als Default verwendet. XMLFormatter Konvertiert eine Logging Meldung in eine XML Struktur. 3/11

4 1.1.3 Logging Properties-File 18. Oktober 2005 Beim Start einer Java Anwendung kann mit dem Kommandozeilenparameter -Djava.util. logging.config.file=<filename> ein Properties-File angegeben werden, n dem für den LogManager die Konfiguration der Logger und Handler festgelegt werden kann. Wird kein solcher Kommandozeilenparameter angegeben so liest der LogManager die Konfiguration aus einer Datei an der Stelle lib/logging.properties im Verzeichnis der verwendeten JRE. Die Properties-Files können unter anderem die folgenden Angaben enthalten: Property handlers definiert eine durch Whitespace oder Komma getrennte Liste von Klassennamen, die dem root- Logger als Handler zugewiesen werden. Propety <logger>.handlers definiert eine durch Whitespace oder Komma getrennte Liste, die dem Logger mit dem Namen <logger> als Handler zugewiesen werden. Property.level definiert einen Logging Level für den root-logger. Property <logger>.level definiert einen Logging-Level für einen Logger mit dem Namen <logger>. Das oben genannte Properties-File innerhalb der JRE enthält u.a. die folgenden Parameter: handlers = java.util.logging.consolehandler java.util.logging.consolehandler.level = INFO.level = INFO Dadurch wird eine ConsoleHandler für den root-logger installiert, sowie der Level INFO als Default-Level für alle in einer Anwendung verwendeten Logger initialisiert. Diese Einstellungen können sowohl in der Anwendung durch explizite Methodenaufrufe als auch durch die Verwendung eines eigenen Properties-File verändert werden. Um z.b. einen ConsoleHandler für den root-logger zu installieren, der alle Logging Meldung ausgibt, müssen die folgenden Parameter im properties-file gesetzt werden: handlers = java.util.logging.consolehandler java.util.logging.consolehandler.level = ALL Um beispielsweise die Logger in einem Package net.mypackage so zu konfigurieren, dass sie alle Meldungen an den Handler weitergeben, muss der folgenden Parameter im properties-file gesetzt werden: net.mypackage.level = ALL An Stelle des Namens eines Packages kann auch eine einzelne Klasse angegeben werden. Dies ist jedoch nur sinnvoll, wenn für die Logger in der Klasse auch der Name der Klasse verwendet wurde. Für den root-logger setzt man den Level zur Ausgabe aller Meldungen mit dem Parameter.level = ALL 1.2 Logging Levels Für die Logger entscheidet der eingestellte Logging Level über die Annahme einer Meldung wenn diese z.b. über die log(level, String) Methode durch die Anwendung übergeben wird. Wurde eine Meldung jedoch einmal von einem Logger angenommen, so wird diese an den parent- Logger weitergegeben und von diesem unabhängig vom Logging-Level angenommen. Für die Handler entscheidet der Logging-Level über die Ausgabe einer Meldung z.b. auf die Konsole oder in eine Datei. 4/11

5 Zusammengefasst bedeutet dies: Entscheidend, ob eine Meldung angenommen wird, ist der Level des Loggers, entscheidend, ob eine Meldung ausgegeben wird, ist der Level des Handlers. Die Logging Levels des JDK 1.4 sind in der Reihenfolge ihrer Priorität: SEVERE (höchste Priorität) WARNING INFO ( Level für Logger und Handler) CONFIG FINE FINER FINEST (niedrigste Priorität) Darüber hinaus gibt es noch die Level OFF und ALL, diese können verwendet werden, um in den Loggern oder Handlern sämtliche Logging Meldungen ein- oder auszuschalten. Die Logging Level werden als public static Felder des Objekts java.util.logging.level implementiert. Es ist möglich java.util.logging.level zu erweitern und eigene Logging Level zu implementieren. In der -Konfiguration,d.h. wenn die verwendeten Logger oder Handler nicht durch das Setzen der Logging Levels in der Anwendung konfiguriert werden, werden alle Meldungen mit der Priorität INFO oder höher ausgegeben. Die folgenden Abschnitte schlagen Richtlinien zur Verwendung der einzelnen Level vor SEVERE Dieser Level sollte verwendet werden wenn aufgrund von auftretenden Fehlern eine Anwendungnicht länger ausgeführt werden kann, d.h. wenn ein weiteres Ausführen der Anwendung zu inkonsistenten Daten oder zum unmittelbaren Absturz der Anwendung führen würde. Dieser Level sollte auch verwendet werden, wenn Ereignisse im Programm auf einen Fehler in der Implementierung der Anwendung hindeuten (Programmierfehler), die Anwendung jedoch mit sinnvollen Werten weiterrechnen kann. Beispiele: Ein Operative konnte sich nach mehreren Versuchen nicht beim Dispatcher anmelden, der Operative bricht mit mit einer SEVERE Message ab. Bei der Überprüfung mit instanceof hat ein Objekt nicht die notwendige Klasse. Der Kontrollfluss in einem switch-block landet in einem unmöglichen case/-zweig. Fehler in Architeuthis WARNING Dieser Level sollte verwendet werden wenn Fehler in einer Anwendung auftreten, die Anwendung jedoch selbständig versucht den Fehler zu beheben, oder die Anwendung zunächst weiterarbeiten kann, der Fehler also keine unmittelbaren Auswirkungen hat. Beispiele: Temporäre Fehler z.b. durch Netzwerkprobleme. Der Verbindungsaufbau zu einem Operative ist fehlgeschlagen, es wird jedoch weiter versucht die Verbindung herzustellen. Fehler in den durch den Anwender programmierten Teilproblemen, RemoteStores etc. (Fehler im Benutzercode) 5/11

6 1.2.3 INFO 18. Oktober 2005 Sonstige Meldungen, die für den Anwender von Interesse sein könnten. Da Meldungen mit diesem Level in der -Konfiguration ausgegeben werden sollten lediglich selten auftretende wichtige Ereignisse in einer Anwendung dokumentiert werden, die für den Anwender von Interesse sind. Angeforderte Dateien im Classfileserver Start/Ende der Berechnung CONFIG Dieser Level sollte verwendet werden, um den normalen Kontrollfluss in einer Anwendung zu dokumentieren. Beispiel: Verbindungsaufbau oder Verbindungsabbau zu einem Operative Meldungen wenn -Werte für optionale Parameter beim Programmstart verwendet werden. Kommandozeilenargumente nach dem Parsen im Operative Anmeldung des Operative FINE Dieser Level sollte verwendet werden, um ein oberflächliches Debugging einer Anwendung zu erlauben. Dabei werden vor allen Konfigurationsparameter einer Anwendung ausgegeben. Damit können häufiger auftretende Ereignisse im normalen Kontrollfluss einer Anwendung dokumentiert werden Beispiele: Ausgabe der Filenamen von Ein- und Ausgabedateien, Port- und IP-Nummern im laufenden Betrieb. Ein neues Problem wird zum Dispatcher übermittelt und berechnet. Aufrufe der wichtigen Methoden registerremotestore() und fetchpartialproblem(). Zurückliefern eine Lösung im Operative FINER Dieser Level sollte verwendet werden um einzelne Methodenaufrufe zu dokumentieren. Dabei können zusätzlich auch die Parameter der Methodenaufrufe ausgegeben werden. Dieser Level wird von den Methoden entering(), exiting() und throwing() eines Logging Objekts verwendet. Diese Methoden definieren also implizit einen Logging Level und können verwendet werden, um bequem die entsprechenden Ereignisse in einer Anwendung an einen Logger zu melden. Beim Aufruf müssen als Parameter mindestens der Name der Methode sowie der Name der Klasse übergeben werden: Beispiele: entering(string sourceclass, String sourcemethod); sämtliche interessantern Methodenein- oder -austritte FINEST Dieser Level sollte verwendet werden, um gegebenenfalls den Kontrollfluss innerhalb einer Methode zu dokumentieren. Beispiele: 6/11

7 Ausgabe von Schleifendurchläufen interessante Ereignisse innerhalb einer Methode 1.3 Beispiele In diesem Abschnitt soll anhand einiger Beispiele die Funktionsweise der Logging API veranschaulicht werden. Es soll insbesondere die Verarbeitung der Logging Meldungen innerhalb der hierachischen Struktur der Logger verdeutlicht werden. Zunächst wird der Aufbau einer solchen Struktur aus Loggern und Handler sowohl mit Hilfe der Parameter eines Properties-Files als auch mit Hilfe von Java-Methoden beschrieben. Die folgende Abbildung verdeutlicht die verwendete Struktur, die Pfeile veranschaulichen den Weg zweier Logging-Meldungen, die im Folgenden besprochen werden. root-logger ( ) Logger ( A ) handler1 "hello A.B.A!" "hello A.B.C!" Logger ( A.A ) Logger ( A.B ) handler2 "hello A.B.A! "hello A.B.C!" Logger ( A.B.B ) Logger ( A.B.A ) log(level.info, "hello A.B.A!"); Logger ( A.B.C ) log(level.info, "hello A.B.C!"); handler3 "hello A.B.C!" Symbole: Logging-Level level object Objekt (Logger/Handler) Logging-Meldungen: weiter geleitet/ angenommen nicht angenommen Das folgende Codefragment erzeugt diese Struktur: Logger logger = Logger.getLogger(""); Logger logger_a = Logger.getLogger("A"); Logger logger_a_a = Logger.getLogger("A.A"); Logger logger_a_b = Logger.getLogger("A.B"); Logger logger_a_b_a = Logger.getLogger("A.B.A"); Logger logger_a_b_b = Logger.getLogger("A.B.B"); Logger logger_a_b_c = Logger.getLogger("A.B.C"); Handler handler1 = new ConsoleHandler(); logger_a.addhandler(handler1); Handler handler2 = new ConsoleHandler(); logger_a_b.addhandler(handler2); Handler handler3 = new ConsoleHandler(); logger_a_b_c.addhandler(handler3); alternativ kann diese Struktur auch mit einem properties-file mit dem folgenden Inhalt erzeugt werden: A.handlers = java.util.logging.consolehandler 7/11

8 A.B.handlers = java.util.logging.consolehandler A.B.C.handlers = java.util.logging.consolehandler 18. Oktober 2005 Durch dieses properties-file werden lediglich die verwendeten Handler den entsprechenden Loggern zugeordnet. Die gewünschte hierachische Struktur wird automatisch durch die Namen der verwendeten Logger erzeugt sobald diese in der Anwendung initialisiert werden. Die Initialisierung erfolgt in der Anwendung durch die statische Methode Logger.getLogger(... ). Mit dem folgenden Befehl wird durch jeden der 3 verwendeten Handler die Meldung hello A.B.C! ausgegeben: logger_a_b_c.log(level.info, "hello A.B.C!"); Der folgende Befehl gibt lediglich über handler1 und handler2 die Meldung hello A.B.A! aus: logger_a_b_a.log(level.info, hello A.B.A! ); Nun werden zusätzlich die Logging-Level der einzelnen Handler und Logger gesetzt, so dass die folgende Struktur entsteht: root-logger ( ) Logger ( A ) handler1 "hello A.B.C!" Logger ( A.A ) WARN. Logger ( A.B ) handler2 "hello A.B.C!" Level vom parent Logger ( A.B.B ) Logger ( A.B.A ) INFO Logger ( A.B.C ) WARN. handler3 log(level.info, "hello A.B.A!"); log(level.info, "hello A.B.C!"); Symbole: Logging-Level level object Das Setzen der Level erfolgt mit den folgenden zusätzlichen Methodenaufrufen: logger_a_b_c.setlevel(level.info); logger_a_b.setlevel(level.warning); handler3.setlevel(level.warning); Der folgende Befehl gibt keine Meldung aus: Objekt (Logger/Handler) Logging-Level wird vom vom parent-logger übernommen logger_a_b_a.log(level.info, "hello A.B.A!"); Für logger_a_b_a wurde kein Logging-Level explizit gesetzt, der Logger übernimmt also den Logging-Level WARNING seines parent-loggers wie in Abschnitt beschrieben. Die Meldung mit dem Level INFO wird also nicht angenommen. Der folgende Befehlt gibt über die handler1 und handler2 die Meldung hello A.B.C aus: logger_a_b_c.log(level.info, "hello A.B.C!"); Logging-Meldungen: weiter geleitet/ angenommen nicht angenommen Der Logger logger_a_b_c wird auf den level INFO gesetzt, die Meldung mit dem Level INFO wird also angenommen und an den registrierten Handler sowie den parent-logger 8/11

9 weitergegeben. Der parent-logger von logger_a_b_c hat zwar den Level WARNING, er leitet die Meldung jedoch ebenfalls an die registrierten Handler und an seinen parent- Logger weiter, da die Meldung nicht über die Methode log(... ) von der Anwendung abgesetzt wurde, sondern von einem anderen Logger an ihn weitergeleitet wurde. 1.4 Programmierrichtlinien In diesem Abschnitt werden verschiedenen Vorschläge für die Verwendung der Logging API zusammengefasst Initialisierung Für jede Klasse einer Anwendung kann wie folgt ein Logger initialisiert werden: private static final Logger LOGGER = Logger.getLogger(<Klassenname>.class.getName()); Diese Methode bietet die folgenden Vorteile Der Logger ist static und wird daher von allen Instanzen dieser Klasse verwendet. In einer Anwendung bilden die mit dieser Methode initialisierten Logger die Klassen- und Packagestruktur der Anwendung nach. Beim Umbenennen einer Klasse durch ein Refactoring-Tool wird auch der Name des Loggers umbenannt Logging Meldungen Jedem Logging Level ist in der Klasse Logger eine Methode zugeordnet, mit der Meldungen der entsprechenden Priorität an den Logger übermittelt werden können. Beispielsweise wird beim Aufruf der Methode info( Meldung ) die Meldung mit der Priorität INFO weitergeleitet. Diese Methode können verwendet werden, um bequem ein Ereignis mit dem entsprechenden Level zu melden. Häufig werden beim Aufruf der Logging Methoden die Meldungen aus mehreren Strings zusammengesetzt. Beispiel: LOGGER.log(Level.INFO, Verbindungsabau über Port + Portnumber + mit + IPnumber + war erfolgreich ); Da das Zusammenfügen von Strings mit dem + Operator in Java aufwändig ist, ist es in solchen Fällen sinnvoll zunächst zu prüfen, ob der Logging Level vom Logger überhaupt bearbeitet wird: if (LOGGER.isEnabled(Level.INFO)) { LOGGER.log(Level.INFO, Verbindungsabau über Port + Portnumber + mit + IPnumber + war erfolgreich ); } Debugging Für das Debugging einer Anwendung wird häufig ein Komandozeilenparameter verwendet. Dieser wird beim Start abgefragt und als ein boolean Flag innerhalb der Anwendung implementiert. Vor der Ausgabe von Debugging Informationen wird jeweils überprüft, ob dieses Flag gesetzt ist. Durch das folgenden Schema kann dieses Flag ersetzt werden: Der Komandozeilenparameter wird abgefragt. Falls gewünscht wird der Log-Level für die Logger der Anwendung auf einen definierten Wert gesetzt. Dies kann geschehen, indem man z.b. den Logging-Level für den root-logger ( ) auf eine entsprechend niedrigere Priorität setzt. Damit 9/11

10 werden in der gesamte Anwendung alle Meldungen mit der gleichen oder höheren Priorität ausgegeben. Der Zugriff auf dem root-logger wird in Abschnitt erläutert. Falls nur die Meldungen eines Teilpakets ausgegeben werden sollen kann natürlich auch nur der Logger dieses Teilpakets durch das Setzen der Priorität entsprechen konfiguriert werden. Bei der Ausgabe von Debugging Meldungen werden die Meldungen mit einer definierten Priorität an den Logger geschickt. Diese Priorität muss höher sein, als die zuvor für die Konfiguration der Logger verwendetet Priorität, damit die Meldungen angenommen und durch den Handler später ausgegeben werden. Durch Abfrage eines Kommandozeilenparameters und entsprechendes Setzen der Log-Level kann also die Ausgabe ein- oder ausgeschaltet werden. Vorteile: Das Verwalten des debug-flags und ggf. die Weitergabe des Flags an Komponenten einer Anwendung entfällt. Es können bequem mehrere debug-levels implementiert werden. Nachteile: Es muss darauf geachtet werden, dass der Logging Level im Handler nicht auf einem zu hohen Wert eingestellt werden, so dass die gewünschten Debug Meldungen im Handler versehentlich ausgefiltert werden root-handler und root-logger In einer einfachen Anwendung genügt es den root-handler für die Ausgabe von Logging- Meldungen zu verwenden. Damit können alle Meldungen direkt auf die Konsole ausgegeben werden. Standardmäßig werden alle Meldungen mit dem Level INFO oder höher ausgegeben. Möchte man in der Anwendung auch Meldungen mit niedrigerem Level ausgeben, so muss der Level des root-loggers und des root-handlers verändert werden. Dies kann mit dem folgenden Codefragment implementiert werden: // der DefaultHandler hängt am root-logger Logger rootlogger = Logger.getLogger(""); Handler[] handlers = rootlogger.gethandlers(); // einen ConsoleHandler finden: ConsoleHandler consolehandler = null; for (int i=0; i < handlers.length; i++) { if (handlers[i] instanceof ConsoleHandler) { consolehandler = (ConsoleHandler) handlers[i]; } } // kein ConsoleHandler am root-logger?! // wir hängen selbst einen an: if (consolehandler == null) { consolehandler = new java.util.logging.consolehandler(); Logger.getLogger("").addHandler(consoleHandler); } consolehandler.setlevel(level.fine); rootlogger.setlevel(level.fine); Damit werden alle Logging-Meldungen der Anwendung mit dem Level FINE oder höher ausgegeben. 10/11

11 1.5 Kurzanleitung In diesem Abschnitt werden noch einmal die wichtigsten Schritte zur Verwendung der Logging-API beschrieben Konfigurationsfile Ein minimales Konfigurationsfile, mit dem alle Meldungen auf die Konsole ausgegeben werden und der root-logger alle Meldungen annimmt, kann wie folgt aussehen: handlers = java.util.logging.consolehandler java.util.logging.consolehandler.level = ALL.level = ALL Dieses File kann unter dem Dateinamen logging.properties gespeichert werden. Möchte man nur für einen Teil der Anwendung alle Meldungen ausgeben, für alle anderen Teile der Anwendung lediglich Meldung mit dem Level WARNING oder höher: handlers = java.util.logging.consolehandler java.util.logging.consolehandler.level = ALL.level = WARNING teil.package.level = ALL Start der Anwendung Um dem LoggingManager das oben beschriebene Konfigurationsfile zu übergeben, muss die Java- Anwendung mit dem zusätzlichen Parameter -Djava.util.logging.config.file=logging.properties gestartet werden Meldungen In der Anwendung selbst wird zunächst der Logger innerhalb einer Klasse mit dem folgenden Befehl erzeugt: private static final Logger LOGGER = Logger.getLogger(MeineKlasse.class.getName()); Eine Meldung mit dem Level INFO wird mit folgendem Kommando abgesetzt: LOGGER.log(Level.INFO, eine info-meldung ); Um einen Methodeneintritt zu melden kann folgender Code verwendet werden: LOGGER.entering( Klassennamen, Methodennamen ); Die Meldung wird dann mit dem Level FINER ausgegeben. Falls gewünscht können zusätzlich noch die Parameter der Methode ausgegeben werden: LOGGER.entering( Klassennamen, Methodennamen, new Object[] {"param1", "param2"}); 11/11

Logging in Java. Java Logging API & Jakarta Log4J. Seminararbeit von Philipp Kaufmann, 5Ie

Logging in Java. Java Logging API & Jakarta Log4J. Seminararbeit von Philipp Kaufmann, 5Ie Logging in Java Java Logging API & Jakarta Log4J Seminararbeit von Philipp Kaufmann, 5Ie Fachhochschule Aargau Departement Technik Studiengang Informatik Betreuender Dozent: Prof. Dr. D. Gruntz Windisch,

Mehr

Benutzerhandbuch. Neukirchen

Benutzerhandbuch. Neukirchen Benutzerhandbuch Neukirchen August 2015 Kontakt: Kai Hübl Lambertsberg 17 D-34626 Neukirchen kai.huebl@asneg.de Contents 1 Einleitung... 5 1.1 Inhalt... 5 1.2 OPC UA Client Stack... 5 1.3 OPC UA Server

Mehr

Asynchrone Webservices mit Axis 1.x in Java

Asynchrone Webservices mit Axis 1.x in Java Asynchrone Webservices mit Axis 1.x in Java 1. Übersicht Architektur Da Webservices nach relativ kurzen Timeouts Anfragen abgearbeitet haben müsse, sind komplexe Anfragen wie sie in der Bioinformatik üblich

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

AccountPlus Systemkonfiguration

AccountPlus Systemkonfiguration Anwenderhandbuch AccountPlus Systemkonfiguration Version 1.10 Inhalt: 1 ANWENDUNG... 3 2 DAS PROGRAMM... 3 2.1 Startparameter...5 2.2 Die Karteikarte ACCTPLUS.INI...5 2.3 Die Karteikarte Datenbanken...5

Mehr

Logging in Java Verteilte und Parallele Systeme

Logging in Java Verteilte und Parallele Systeme Logging in Java Verteilte und Parallele Systeme Seminararbeit von Marc Berendes und Philipp Wever Fachhochschule Bonn-Rhein-Sieg Studiengang Angewandte Informatik Betreuender Dozent: Prof. Dr. Rudolf Berrendorf

Mehr

Delegatesund Ereignisse

Delegatesund Ereignisse Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Loggen am Beispiel von log4j ETIS 2005

Loggen am Beispiel von log4j ETIS 2005 Loggen am Beispiel von log4j ETIS 2005 Motivation Logging Hauptbestandteile Logger Appender Layout Konfiguration Gliederung Log4j vs. Sun s Logging API Zusammenfassung 2 Motivation - Aufgaben Logging Low

Mehr

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen Brainfuck 1 Brainfuck 1.1 Brainfuck Geschichte und Umfeld Brainfuck ist eine sogenannte esoterische Programmiersprache. Sie wurde 1993 vom Schweizer Urban Müller entworfen mit dem Ziel, eine Sprache mit

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Technische Dokumentation SilentStatistikTool

Technische Dokumentation SilentStatistikTool Technische Dokumentation SilentStatistikTool Version 1.0 Marko Schröder 1115063 Inhalt Einleitung... 3 Klasse Program... 3 Klasse ArgumentHandler... 3 Bereitgestellte Variablen... 3 Bereitgestellte Methoden...

Mehr

Eine Kommando-Oberfläche für.net

Eine Kommando-Oberfläche für.net Institut für Systemsoftware O.Univ.-Prof. Dr. Hanspeter Mössenböck Eine Kommando-Oberfläche für.net In.NET (wie auch in vielen anderen Systemen) haben Programme nur einen einzigen Eintrittspunkt (ihre

Mehr

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11

Mehr

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

KOGIS Checkservice Benutzerhandbuch

KOGIS Checkservice Benutzerhandbuch Technoparkstrasse 1 8005 Zürich Tel.: 044 / 350 10 10 Fax.: 044 / 350 10 19 KOGIS Checkservice Benutzerhandbuch Zusammenfassung Diese Dokumentation beschreibt die Bedienung des KOGIS Checkservice. 4.2.2015

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Jürgen Bayer. MDI-Anwendungen in C#

Jürgen Bayer. MDI-Anwendungen in C# Jürgen Bayer MDI-Anwendungen in C# Inhaltsverzeichnis 1 Grundlagen 2 1.1 Einrichten der Formulare 2 1.2 Öffnen von MDI-Childformularen 3 2 Menüs 4 2.1 Erstellen eines Menüs 4 2.2 Programmierung der Menüpunkte

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen

Mehr

Kurzanleitung. 29. Februar 2008 2. Oktober 2008 Update. APtool-Kurzanleitung-V1_2_DE Seite 1 von 8

Kurzanleitung. 29. Februar 2008 2. Oktober 2008 Update. APtool-Kurzanleitung-V1_2_DE Seite 1 von 8 Kurzanleitung 29. Februar 2008 2. Oktober 2008 Update APtool-Kurzanleitung-V1_2_DE Seite 1 von 8 Inhalt INHALT... 2 EINFÜHRUNG... 3 VORBEREITUNG... 3 LIZENZIERUNG... 3 PROJEKT LIZENZEN... 4 GENERIERUNG

Mehr

Word 2010 Änderungen nachverfolgen

Word 2010 Änderungen nachverfolgen WO.019, Version 1.0 05.01.2015 Kurzanleitung Word 2010 Änderungen nachverfolgen Bearbeiten mehrere Personen gemeinsam Dokumente, sollten alle Beteiligten nachverfolgen können, wer welche Änderungen vorgenommen

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6 WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 Abgabe: Montag, 05.12.2011, 12.00 Uhr, Informatik

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

Workbooster File Exchanger Command Line Tool

Workbooster File Exchanger Command Line Tool Thema Technische Benutzerdokumentation - WBFileExchanger Workbooster File Exchanger Command Line Tool Letzte Anpassung 18. Januar 2014 Status / Version Finale Version - V 1.1 Summary Erstellung Diese technische

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Zeiterfassung-Konnektor Handbuch

Zeiterfassung-Konnektor Handbuch Zeiterfassung-Konnektor Handbuch Inhalt In diesem Handbuch werden Sie den Konnektor kennen sowie verstehen lernen. Es wird beschrieben wie Sie den Konnektor einstellen und wie das System funktioniert,

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

1 Abstrakte Klassen, finale Klassen und Interfaces

1 Abstrakte Klassen, finale Klassen und Interfaces 1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Paynet Adapter Spezifikationen Voraussetzungen Datum : 21.07.08 Version : 1.0.0.2 21.07.2008 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung... 3 2 Architektur... 3 2.1 Grundsätze

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Neuerungen im JDK 1.4 : Die Java Logging API und Java Web Start

Neuerungen im JDK 1.4 : Die Java Logging API und Java Web Start Neuerungen im JDK 1.4 : Die Java Logging API und Java Web Start Projektarbeit SommerSemester 2002 von Derk Wesemann Diese Projektarbeit dient dazu, einen kurzen Überblick über neue Bestandteile im aktuellen

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Yellowbill Adapter Spezifikationen Voraussetzungen Datum : 22.08.2013 Version : 1.0.0.2 22.08.2013 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung...3 2 Architektur...3 2.1 Grundsätze

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

Mehr

2. Hintergrundverarbeitung in Android: Services und Notifications

2. Hintergrundverarbeitung in Android: Services und Notifications 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht: In Mobis 1: Threads; hier genauerer Blick auf Services

Mehr

Studentische Lösung zum Übungsblatt Nr. 7

Studentische Lösung zum Übungsblatt Nr. 7 Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int

Mehr

Wissenswertes über LiveUpdate

Wissenswertes über LiveUpdate Wissenswertes über LiveUpdate 1.1 LiveUpdate «LiveUpdate» ermöglicht den einfachen und sicheren Download der neuesten Hotfixes und Patches auf Ihren PC. Bei einer Netzinstallation muss das LiveUpdate immer

Mehr

Software-Projekt: Mensch ärgere Dich nicht. Dokumentation Softwareprojekt: Mensch ärgere Dich nicht

Software-Projekt: Mensch ärgere Dich nicht. Dokumentation Softwareprojekt: Mensch ärgere Dich nicht Dokumentation Softwareprojekt: Mensch ärgere Dich nicht Das Programm Mensch ärgere Dich nicht ermöglicht das Spielen des gleichnamigen Spieles über Netzwerke. Jeder Spieler verfügt dabei über einen Clienten,

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

4D v11 SQL Release 6 (11.6) ADDENDUM

4D v11 SQL Release 6 (11.6) ADDENDUM ADDENDUM Willkommen zu Release 6 von 4D v11 SQL. Dieses Dokument beschreibt die neuen Funktionalitäten und Änderungen der Version. Erweiterte Verschlüsselungsmöglichkeiten Release 6 von 4D v11 SQL erweitert

Mehr

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth Tutorial: Eigene Module und Extensions entwickeln version: 0.1 Author: Anja Beuth Table of contents 1 2 2.1 2.2 2.3 2.4 3 4 4.1 4.2 4.3 5 5.1 6 6.1 6.2 Notwendigkeit prüfen... Ein Projekt in Visual Studio

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen

Mehr

Convision IP-Videoserver und die Sicherheitseinstellungen von Windows XP (SP2)

Convision IP-Videoserver und die Sicherheitseinstellungen von Windows XP (SP2) Inhalt Convision IP-Videoserver und die Sicherheitseinstellungen von Windows XP (SP2)... 1 1. Die integrierte Firewall von Windows XP... 2 2. Convision ActiveX und Internet Explorer 6... 3 3. Probleme

Mehr

TimePunch. TimePunch Command. Benutzerhandbuch 14.08.2013. TimePunch KG, Wormser Str. 37, 68642 Bürstadt

TimePunch. TimePunch Command. Benutzerhandbuch 14.08.2013. TimePunch KG, Wormser Str. 37, 68642 Bürstadt TimePunch TimePunch Command Benutzerhandbuch 14.08.2013 TimePunch KG, Wormser Str. 37, 68642 Bürstadt Dokumenten Information: Dokumenten-Name Benutzerhandbuch, TimePunch Command Revisions-Nummer 37 Gespeichert

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Allgemeine Informatik II SS :30-13:30 Uhr

Allgemeine Informatik II SS :30-13:30 Uhr TU Darmstadt FB Informatik Prof. J. Fürnkranz Vordiplomsklausur - Lösungsvorschlag Allgemeine Informatik II SS 2005 15.09.2005 11:30-13:30 Uhr Hinweise: Als Hilfsmittel ist nur ein schwarzer oder blauer

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Automatische Installation (wenn das SSO-Applet nicht vorhanden ist)! Abbildung 1:Auswahldialog für Installationslaufwerk

Automatische Installation (wenn das SSO-Applet nicht vorhanden ist)! Abbildung 1:Auswahldialog für Installationslaufwerk SS EE IITTEE:: I 11/ /55 Bei jedem Aufruf des SSO-Applet wird kontrolliert, ob das Konfigurationsverzeichnis ( ssoapplet ) existiert. Dabei werden alle Laufwerke, auf die der Benutzer Lese- und Schreibrechte

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Autor: Uwe Labs Stand: 21.03.2008. 1. WinSecureCopy in der paedml 3.0 Novell...1

Autor: Uwe Labs Stand: 21.03.2008. 1. WinSecureCopy in der paedml 3.0 Novell...1 . WinSecureCopy in der paedml 3.0 Novell Autor: Uwe Labs Stand: 2.03.2008 Inhaltsverzeichnis. WinSecureCopy in der paedml 3.0 Novell..... Übersicht....2. Installation und Start....3. Benutzung von WinSCP...6..

Mehr

DLS 7.0 Microsoft Windows XP Service Pack 2. Anleitung zur Konfiguration

DLS 7.0 Microsoft Windows XP Service Pack 2. Anleitung zur Konfiguration DLS 7.0 Microsoft Windows XP Service Pack 2 Anleitung zur Konfiguration Projekt: DLS 7.0 Thema: MS Win XP SP 2 Autor: Björn Schweitzer Aktualisiert von: Andreas Tusche am 18.08.2004 2:38 Dateiname: xpsp2.doc

Mehr

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome (Timo Heinrich, t_hein03@uni-muenster.de) Inhaltsverzeichnis: 0.Einleitung 1.Teil: Helloworldprogramm 1.1 Quellcode: Helloworld.cpp 1.2

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList

Mehr

Installation des edu- sharing Plug- Ins für Moodle

Installation des edu- sharing Plug- Ins für Moodle Installation des edu- sharing Plug- Ins für Moodle [edu-sharing Team] [Dieses Dokument beschreibt die Installation und Konfiguration des edu-sharing Plug-Ins für das LMS Moodle.] edu- sharing / metaventis

Mehr

Aufgabenstellung und Zielsetzung

Aufgabenstellung und Zielsetzung Aufgabenstellung und Zielsetzung In diesem Szenario werden Sie eine Bestellung, vorliegend im XML-Format, über einen Web-Client per HTTP zum XI- System senden. Dort wird die XML-Datei mittels eines HTTP-Interfaces

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

Mehr

Fresh Minder 3-Server

Fresh Minder 3-Server Fresh Minder 3-Server Installation und Betrieb Fresh Minder-Vertrieb Rieslingweg 25 D - 74354 Besigheim support@freshminder.de www.freshminder.de ÜBERSICHT Die Standardversion (Einzelplatzversion) von

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Dokumentation zum Workarround mit DE und PEDisp

Dokumentation zum Workarround mit DE und PEDisp Dokumentation zum Workarround mit DE und PEDisp Der Experimentator meldet sich am PC SDPC032 an mit: Username: emi_messung Passwort: zu Erfragen bei W. Bayer (Tel.: GSI-1392) Das Workarround zur Datenaufnahme

Mehr

Wie kann ich meine Daten importieren? Wie kann ich meine Profile verwalten?

Wie kann ich meine Daten importieren? Wie kann ich meine Profile verwalten? Administration: Wie kann ich meine Daten importieren? Wie kann ich meine Profile verwalten? Wie kann ich von «Einzelgesellschaft» zu «Mehrere Gesellschaften» wechseln? Gebrauch Wie kann ich einen Arbeitnehmer

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90

Mehr

Java - Webapplikationen

Java - Webapplikationen Java - Webapplikationen Bestandteile (HTTP,, JSP) Aufbau (Model View Controller) Datenverwaltung (Java Beans, Sessions) Entwicklung (Projektstruktur, Sysdeoplugin für Eclipse) 17. Januar 2006 Jan Hatje

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

Schritt-für-Schritt-Anleitung zur Konfiguration eines E-Mail-Appenders zur Benachrichtigung über Fehlermeldungen und Warnungen der windream-dienste

Schritt-für-Schritt-Anleitung zur Konfiguration eines E-Mail-Appenders zur Benachrichtigung über Fehlermeldungen und Warnungen der windream-dienste Newsletter der windream GmbH Juni 2009 windreamnews Schritt-für-Schritt-Anleitung zur Konfiguration eines E-Mail-Appenders zur Benachrichtigung über Fehlermeldungen und Warnungen der windream-dienste Im

Mehr

3 Richtlinienbasierte Verwaltung und Multi-Server- Administration

3 Richtlinienbasierte Verwaltung und Multi-Server- Administration Richtlinienbasierte Verwaltung und Multi-Server-Administration 3 Richtlinienbasierte Verwaltung und Multi-Server- Administration SQL Server Management Studio bietet eine Reihe von Unterstützungsmöglichkeiten,

Mehr

Parallels Plesk Panel. Firewall-Modul für Parallels Plesk Panel 10 für Linux/Unix. Administratorhandbuch

Parallels Plesk Panel. Firewall-Modul für Parallels Plesk Panel 10 für Linux/Unix. Administratorhandbuch Parallels Plesk Panel Firewall-Modul für Parallels Plesk Panel 10 für Linux/Unix Administratorhandbuch Copyright-Vermerk Parallels Holdings, Ltd. c/o Parallels International GmbH Vordergasse 59 CH-Schaffhausen

Mehr

Programmierung eines NewsTickers in Java

Programmierung eines NewsTickers in Java Programmierung eines NewsTickers in Java ( & ) Projektarbeit Programmiertechnik:Java NTA FH Isny 12. Info David Mayr / Andreas Krug Seite 1 von 7 ::: David Mayr / Andreas Krug [ 12. Info NTA FH Isny ]

Mehr

Installationsanleitung kostal-fb Proxy für SOLARVIEW

Installationsanleitung kostal-fb Proxy für SOLARVIEW Installationsanleitung kostal-fb Proxy für SOLARVIEW Proxy für Kostal Piko und Solarfabrik Convert T Wechselrichter zum Betrieb mit SolarView Verfasser: Manfred Richter Version 1.5 vom 08. Juli 2015 http://www.solarview.info

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Zentrale Installation

Zentrale Installation Einführung STEP 7 wird durch ein Setup-Programm installiert. Eingabeaufforderungen auf dem Bildschirm führen Sie Schritt für Schritt durch den gesamten Installationsvorgang. Mit der Record-Funktion steht

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Im Falle der Neueingabe müssen Sie in dem nachfolgendem Formular die Datenquelle auswählen und die Art der Prüfung festlegen.

Im Falle der Neueingabe müssen Sie in dem nachfolgendem Formular die Datenquelle auswählen und die Art der Prüfung festlegen. Ereignismanager Ereignismanager Ereignismanager - Grundsätzliches Allgemeines Mit Hilfe des Ereignismanagers können Sie Feldeingaben (bei Neueingaben oder Änderungen) überprüfen lassen. Sie können für

Mehr

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum Starthilfe für C# Inhaltsverzeichnis Allgemeines... 2 Bezugsquellen... 2 SharpDevelop... 2.NET Runtime... 2.NET SDK... 2 Installation... 2 Reihenfolge... 2 Vorschlag für eine Ordnerstruktur... 3 Arbeit

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Kundenanforderungen. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 24.05.2013

Kundenanforderungen. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 24.05.2013 Software Komponenten FS13 Gruppe 03 Horw, 24.05.2013 Bontekoe Christian Estermann Michael Moor Simon Rohrer Felix Autoren Bontekoe Christian Studiengang Informatiker (Berufsbegleitend) Adresse Telefon

Mehr

Nutzung von Log4J und Commons Logging

Nutzung von Log4J und Commons Logging Nutzung von Log4J und Commons Logging Ausgaben steuern mit Commons Logging und Log4J by Peter Roßbach NOTICE: In der Centaurus Platform gibt es diverse Ausgabemechanismen zu steuern. Die meisten heutigen

Mehr

Geschachtelte Klassen

Geschachtelte Klassen Geschachtelte Klassen Die Programmiersprache Java bietet nicht nur die Möglichkeit innerhalb von Klassen Datenfelder und Methoden zu definieren, sondern auch Klassen. Solche Klassen heißen en geschachtelte

Mehr

Virtuemart-Template installieren? So geht es! (Virtuemart 2.0.x)

Virtuemart-Template installieren? So geht es! (Virtuemart 2.0.x) Virtuemart-Template installieren? So geht es! (Virtuemart 2.0.x) Navigation Systemvoraussetzungen! 1 1. Vorbereitung der Installation! 2 2. Installation des Templates! 2 3. Konfiguration des Yagendoo VirtueMart-Templates!

Mehr

NetMan Desktop Manager Quick-Start-Guide

NetMan Desktop Manager Quick-Start-Guide NetMan Desktop Manager Quick-Start-Guide In diesem Dokument wird die Installation von NetMan Desktop Manager beschrieben. Beachten Sie, dass hier nur ein Standard-Installationsszenario beschrieben wird.

Mehr

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Carla Delgado-Battenfeld Fatih Gedikli Tobias Marschall Benjamin Schowe

Mehr

Erste Schritte mit Eclipse

Erste Schritte mit Eclipse Erste Schritte mit Eclipse März 2008, KLK 1) Java Development Kit (JDK) und Eclipse installieren In den PC-Pools der HAW sind der JDK und Eclipse schon installiert und können mit dem Application Launcher

Mehr

Programmieren 2 Java Überblick

Programmieren 2 Java Überblick Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10

Mehr

Collax Web Application

Collax Web Application Collax Web Application Howto In diesem Howto wird die Einrichtung des Collax Moduls Web Application auf einem Collax Platform Server anhand der LAMP Anwendung Joomla beschrieben. LAMP steht als Akronym

Mehr