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

Größe: px
Ab Seite anzeigen:

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

Transkript

1 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, 16. Dezember 2002

2 Logging in Java: Java Loggin API & Jakarta Log4j Seite 1 Summary Logging in software applications goes far beyond the simple use of System.out.println instructions and helps software developers and supporters debugging, maintaining and servicing software. In Java, Jakarta s Log4j project and, since Java 1.4.0, Java Logging API offer solutions to realise structured logging of your application. Vorwort Der folgende Seminarbericht zum Thema Logging soll anhand einiger Beispiele erklären, was Logging ist und wie man in Java mit den beiden Frameworks Java Logging API und Log4j Loggersysteme nutzen kann. Der Bericht soll eine Einführung in das Thema sein und ist desshalb sicherlich nicht eine vollständige Beschreibung sämtlicher von den beiden Frameworks zur Verfügung gestellten Möglichkeiten. Wer genaueres über die Möglichkeiten von Java Logging API und Log4j wissen möchte verweise ich auf die Bibliographie im Anhang. Es ist jedoch zu bemerken, dass das Studium der Lektüre alleine keine tiefen Einblicke ermöglicht und man mit probieren und tüfteln eher in die Tiefen des Loggings eindringen kann.

3 Logging in Java: Java Loggin API & Jakarta Log4j Seite 2 Inhaltsverzeichnis 1 Was ist Logging Java Logging API Framework Funktionsweise Logger Log Levels Filter Handler Formatter Konfiguration Beispiele Jakarta Log4j Framework Funktionsweise Logger Log Levels Filter Appender Layout Konfiguration Das Chainsaw Tool Beispiele Fazit A. Bibliographie... 20

4 Logging in Java: Java Loggin API & Jakarta Log4j Seite 3 1 Was ist Logging Unter Logging versteht man die Ausgabe und das Festhalten von während der Laufzeit eines Programmes entstehenden Meldungen. Jeder Javaprogrammierer kennt den System.out.println() Befehl und nützt diesen um bestimmte Ausgaben auf der Konsole auszugeben, oftmals auch um Fehler zu lokalisieren. Logging geht weit über diese Funktion hinaus und ermöglicht dem Programmierer Debugmeldungen, Fehler oder andere Meldungen nicht nur auf der Konsole auszugeben, sondern diese auch in Dateien zu schreiben, über Netzwerkverbindungen zu senden oder anderweitig auszugeben und zu verwalten. Loggersysteme sollen aber nicht nur dem Entwickler das Programmieren und Debuggen erleichtern, sondern die Software auch besser wartbar und überwachbar machen, indem Informationen wie Ressourcenausnützung, Systemcrashes oder auftretende Fehler gespeichert werden und vom Software Supporter ausgewertet werden können. Loggersysteme wie Java Logging API oder Jakarta Log4j basieren auf dem Grundgedanken Meldungen verschiedener Softwarekomponenten unterschiedlich festhalten und behandeln zu können, so dass nur dann eine Information gespeichert oder ausgegeben wird, wenn das erwünscht ist. Um das zu ermöglichen bestehen beide Systeme aus drei Hauptkomponenten: Dem Loggerobjekt, welches einer Softwarekomponente zugeordnet wird und die eigentlichen Loggerfunktionen übernimmt. Einem Überwacher, der festlegt wann und wo etwas geloggt wird. Und dem Layout oder Format, das bestimmt wie die Informationen dargestellt werden sollen. In den folgenden zwei Kapiteln wird näher auf die beiden Loggersysteme Java Logging API und Log4j eingegangen.

5 Logging in Java: Java Loggin API & Jakarta Log4j Seite 4 2 Java Logging API Seit der Version 1.4 besitzt Java ein eigenes Logging API welches im package java.util.logging zu finden ist. Da dieses API noch relativ neu ist, wird es wahrscheinlich in nächster Zeit noch weiterentwickelt werden. In diesem Kapitel soll ein Überblick über das Framework und die Funktionsweise der einzelnen Klassen und Interfaces gegeben und anhand eines Beispiels erläutert werden. Der Inhalt dieses Kapitels stützt sich hauptsächlich auf die Java Dokumentation und die Java Logging Overview von Sun. 2.1 Framework Hier eine kurze Übersicht über das Java Logging API mit allen Klassen. Wie dieses API funktioniert wird in Kapitel 2.2 genauer erklärt. Interfaces Filter Classes ConsoleHandler ErrorManager FileHandler Formatter Handler Level Logger LoggingPermission LogManager LogRecord MemoryHandler SimpleFormatter SocketHandler StreamHandler XMLFormatter 2.2 Funktionsweise Wie oben gesehen besteht das Java Logging API unter anderem aus den Klassen Logger, LogRecord, Handler, Level, Filter und Formatter. Die Applikation, in welcher wir etwas loggen wollen, macht ihre logging Aufrufe auf Logger Objekten. Diese Logger senden ihrerseits einen LogRecord an einen Handler der dafür verantwortlich ist, wie die Meldung ausgegeben wird. Level und Filter werden dazu verwendet, um die Priorität oder Wichtigkeit eines LogRecords zu bestimmen. Dies ist dann nützlich, wenn wir nur bestimmte Meldungen, zum Beispiel nur von einer Klasse A, verarbeiten wollen.

6 Logging in Java: Java Loggin API & Jakarta Log4j Seite 5 Wollen wir unseren LogRecord extern ablegen, so muss nach dem Handler noch ein Formatter eingeschaltet werden, bevor die Meldung an einen I/O Stream geht Logger Das Logger Objekt wird benutzt um Meldungen für eine bestimmte Applikation zu loggen. Die Logger sind hierarchisch geordnet und können mit einem beliebigen Namen versehen werden, es ist jedoch üblich sie nach dem Packet oder Klassennamen zu benennen. Neben mit Namen versehenen Loggern besteht jedoch auch die Möglichkeit einen anonymen Logger zu generieren, der nicht im gleichen namespace liegt. Beispiel für einen Logger der Klasse LogB im Packet aaa.bbb: static Logger logger = Logger.getLogger("aaa.bbb.LogB"); Die Methode Logger.getLogger("aaa.bbb.LogB") gibt einen passenden Logger zurück falls schon einer existiert, andernfalls erstellt sie einen neuen Logger. Jeder Logger behält seinen nächsten Vorfahren oder Vater im namespace im Auge, im obigen Beispiel der Logger aaa.bbb, und erbt von ihm den Logging Level, Handler und Resource Bundle Name falls nichts anderes angegeben wurde. Der Vater eines anonymen Logger ist immer der root Logger mit dem Namen "". Die eigentlichen Logging Anfragen werden mit den Methoden log(), logp() und logrb() gemacht die sich nur geringfügig unterscheiden. Wenn aber nur ein einfacher String geloggt werden soll, können vereinfachte Methoden benutzt werden, die nach den jeweiligen Log Levels benannt sind. Beispiele für Logging Anfragen: // Standard log Aufruf: catch (Exception e) { logger.log(level.warning, "Hab eine Exception gefangen", e); // Vereinfachter Aufruf über entsprechenden Log Level: logger.info("das ist eine Info."); Bei den vereinfachten Loggern wie logger.info(string msg) wird unterschieden zwischen logging Methoden, die explizit einen Klassen- und Methodennamen verlangen, und diese dann auch genau so loggen, oder Methoden die nur eine Meldung, siehe oben, verlangen. Wird nur eine Meldung an die Methode übergeben, so wird das Logging Framework beim Loggen versuchen herauszufinden welche Klasse und Methode das Logging aufruft. Der Aufruf solcher Methoden ist zwar sehr simpel, erlaubt aber keine genauen Loggs. Beispiele für explizite und nicht explizite Angaben von Aufrufer Klasse und Methode:

7 Logging in Java: Java Loggin API & Jakarta Log4j Seite 6 logger.info(string sourceclass, String sourcemethod, String msg); logger.info(string msg) Log Levels Log Level dienen dazu, die Wichtigkeit und Dringlichkeit einer log Meldung zu bestimmen. Die Klasse Level enthält sieben, der Priorität nach geordnete, vordefinierte Levels: SEVERE (höchster Wert und somit höchste Priorität) WARNING INFO CONFIG FINE FINER FINEST (niedrigster Wert und niedrigste Priorität) Zusätzlich zu diesen Levels gibt es noch die Level OFF, um Logging auszuschalten, und ALL um jede Meldung zu loggen. Wird ein Logger mit einem bestimmten Level initialisiert, so werden alle Meldungen mit niedriger Priorität nicht berücksichtigt. Setzten wir also zum Beispiel unseren Logger logg mit dem Level WARNING werden nur Meldungen der Level WARNING und SEVERE geloggt. Beispiel für einen Logger logger mit Log Level WARNING: logger.setlevel(level.warning); Es steht dem Entwickler frei, neue Log Level zu definieren, jedoch muss darauf geachtet werden, dass der Prioritätswert (vom Typ int) einmalig ist und das Objekt Serializable bleibt Filter Zusätzlich zu den Log Levels können auch noch Filter eingebaut werden, um noch genauer zu unterscheiden was geloggt werden soll oder nicht. Filter werden mit der Methode setfilter(filter newfilter) einem Logger Objekt oder Handler (siehe Kapitel 2.2.4) zugeordnet um dessen Output zu kontrollieren. Im Interface Filter wird die Methode boolean isloggable(logrecord record) definiert. In der Implementation dieses Interfaces können Bedingungen angegeben werden, die bestimmen wann ein LogRecord geloggt werden soll. So können wir zum Beispiel bestimmen, dass nur Loggingnachrichten mit dem Level WAR- NING geloggt werden in dem wir die LogRecord Methode getlevel() aufrufen und den Rückgabewert in unserem Filter mit dem Level WARNING vergleichen. Auf diese Weise können in diesem Beispiel Meldungen mit dem Log Level SEVERE ausgefiltert werden.

8 Logging in Java: Java Loggin API & Jakarta Log4j Seite 7 Jeder Logger oder Handler ruft zuerst isloggable(logrecord record) auf und loggt ein Ereignis nur dann, wenn er als Rückgabewert true erhält Handler Jeder Logger verwaltet ein Set von Handlern, welche die Records an bestimmte Ziele schreibt/schickt. Default mässig schicken die Logger ihre LogRecords automatisch auch an den Vater-Logger. Logger können aber auch so konfiguriert werden, dass sie Handler die höher in der Hierarchie stehen ignorieren. Per Default besitzt Java folgende Handler: StreamHandler: Schreibt Log Record auf einen OutputStream. ConsoleHandler: Schreibt Log Record auf System.err (Konsole). FileHandler: Schreibt Log Record in eine Datei (siehe Bsp. Oben). SocketHandler: Sendet Log Record auf einen Socket. MemoryHandler: Puffert Log Records im Speicher. Es ist aber jederzeit möglich selber neue Handler zu entwickeln, in dem die Klasse Handler erweitert wird. Bemerkung: Die Level INFO und höher werden per Default auch auf die Konsole ausgegeben, FINER und niedriger nicht. Handlern kann, genau gleich wie bei Loggern, ein Log Level zugewiesen werden. Der Handler schreibt dann nur Meldungen mit gleichem oder höherem Wert an sein Ziel. Um ein Handler zu deaktivieren, wird im einfach der Level OFF zugewiesen. Es können auch mehrere Handler hintereinander geschaltet werden. Zum Beispiel kann ein MemoryHandler seine Records an einen FileHandler schicken. So können wir erreichen, dass die letzten zehn Meldungen vor einer Meldung des Log Levels SEVERE geloggt werden, in dem der MemoryHandler, der z.b. zehn Log Records speichert, seine Records beim Empfang einer severe Meldung an den FileHandler schickt Formatter Zusätzlich zu einem Filter kann ein Handler auch noch einen Formatter besitzen. Formatter stellen die Log Records in einem bestimmten Format dar. Java enthält von Werk her folgende beiden Formatter: SimpleFormatter: Er schreibt kurze, an uns Menschen angepasste Zusammenfassungen eines Log Records. XMLFormatter: Schreibt detaillierte XML Information.

9 Logging in Java: Java Loggin API & Jakarta Log4j Seite 8 Wie bei den Handlern können aber auch eigene Formatter entwickelt werden. Bemerkung: Mir ist aufgefallen, dass zum Beispiel der FileHandler default mässig einen XMLFormatter benutzt. Beispiele eines SimpleFormatter LogFiles (Beispiel für XMLFormatter siehe Kap. 2.3): :45:32 aaa.loga doa WARNUNG: Error in LogA! Konfiguration Da auch kleine Applikationen sehr bald sehr viele (tausende) Logger verwenden liegt es auf der Hand, dass es eine Möglichkeit geben muss, die Logger zu verwalten ohne jeden einzeln zu modifizieren. Alle Logger, Handler, Filter etc. können in einer Konfigurationsdatei im java.util.properties Format intitialisiert und über einen InputStream in den LogManager gelesen werden. Java Properties haben das Format key=value, wobei key als Variabelname und value als deren Wert in Form eines Strings angesehen werden können. Beispiel um den root Logger auf den Level SEVERE zu setzen: java.util.logging.rootlogger=severe Die Klasse LogManager stellt auch eine Methode readconfiguration() zur Verfügung, um config Files wieder zu lesen. Dabei werden alle bisher gemachten Veränderungen an Werten wieder auf die Werte im config-file zurückgesetzt. Durch Property-Files in Verbindung mit einem PropertyChangeListener im LogManager kann die Applikation zur Laufzeit rekonfiguriert werden. 2.3 Beispiele Ein einfaches Beispiel: package aaa; import java.io.ioexception; import java.util.logging.*; /** Phil Kaufmann */ public class LogA { static Logger logger; Handler fh; Formatter xml; public LogA() throws IOException{ logger = Logger.getLogger("LogA"); // wird automatisch zu aaa.loga

10 Logging in Java: Java Loggin API & Jakarta Log4j Seite 9 fh = new FileHandler("LogA.xml"); xml = new XMLFormatter(); fh.setformatter(xml); logger.addhandler(fh); public void doa() { double r = Math.random(); if(r<0.5){ logger.warning("error in LogA!"); else{ logger.info("loga ok :)"); package aaa.bbb; import java.io.ioexception; import java.util.logging.*; import aaa.loga; /** Phil Kaufmann */ public class LogB { static Logger logger = Logger.getLogger("LogB"); static Handler h; LogA a; public LogB(){ h = new ConsoleHandler(); h.setlevel(level.finest); logger.addhandler(h); logger.setuseparenthandlers(false); try{ a = new LogA(); logger.config("instanciated LogA."); catch (Exception e){ logger.severe("couldn't instanciate LogA!"); System.exit(1); public void dob() { logger.info("doing B."); a.doa(); package aaa.bbb.ccc; import java.io.ioexception; import java.util.logging.level; import java.util.logging.logger; import aaa.bbb.logb;

11 Logging in Java: Java Loggin API & Jakarta Log4j Seite 10 /** Phil Kaufmann */ public class LogC { static Logger logger = Logger.getLogger("LogC"); public static void main(string[] args) { logger.info("entering application"); LogB b = new LogB(); b.dob(); logger.log(level.info, "Exiting application"); Output auf Konsole: :42:31 aaa.bbb.ccc.logc main INFO: Entering application :42:34 aaa.bbb.logb dob INFO: Doing B :42:34 aaa.loga doa WARNUNG: Error in LogA! :42:35 aaa.bbb.ccc.logc main INFO: Exiting application Output in File LogA.txt: <?xml version="1.0" encoding="windows-1252" standalone="no"?> <!DOCTYPE log SYSTEM "logger.dtd"> <log> <record> <date> t20:53:38</date> <millis> </millis> <sequence>1</sequence> <logger>loga</logger> <level>warning</level> <class>aaa.loga</class> <method>doa</method> <thread>10</thread> <message>error in LogA!</message> </record> </log>

12 Logging in Java: Java Loggin API & Jakarta Log4j Seite 11 3 Jakarta Log4j Log4j ist ein open-source Projekt von Jakarta und eine sich ständig weiterentwickelnde Alternative zum Java Logging API von Sun. Log4j ist auch für die Sprachen C, C++ und C# erhältlich. In diesem Kapitel soll ein Überblick über das Framework und die Funktionsweise der einzelnen Klassen und Interfaces gegeben und anhand eines Beispiels erläutert werden. Der Inhalt dieses Kapitels stützt sich hauptsächlich auf das Log4j Manual von Ceki Gülcü und die Log4j Javadoc. 3.1 Framework Jakarta log4j enthält folgende Packages: org.apache.log4j org.apache.log4j.chainsaw org.apache.log4j.config org.apache.log4j.helpers org.apache.log4j.jdbc org.apache.log4j.jmx org.apache.log4j.lf5 org.apache.log4j.net org.apache.log4j.nt org.apache.log4j.or org.apache.log4j.or.jms org.apache.log4j.or.sax org.apache.log4j.performance org.apache.log4j.spi org.apache.log4j.varia org.apache.log4j.xml org.apache.log4j.xml.examples Wir beschränken uns jedoch auf das Haupt-Package org.apache.log4j mit folgenden Intefaces und Klassen: Interfaces Appender Classes AppenderSkeleton AsyncAppender BasicConfigurator Category ConsoleAppender DailyRollingFileAppender FileAppender Hierarchy HTMLLayout

13 Logging in Java: Java Loggin API & Jakarta Log4j Seite 12 Layout Level Logger LogManager MDC NDC PatternLayout Priority PropertyConfigurator RollingFileAppender SimpleLayout TTCCLayout WriterAppender Bemerkung: Die Klasse Category ist deprecated und wurde durch die Klasse Logger ersetzt. Um abwärtskompatibel zu bleiben wir die Klasse Category voraussichtlich bis Mitte 2003 weiterhin im log4j package vorhanden sein. 3.2 Funktionsweise Log4j funktioniert ähnlich wie das Java Logging API und besteht haupsächlich aus den Klassen Logger, Level und Layout und dem Interface Appender. Ich werde daher hauptsächlich auf die Unterschiede zwischen dem Java Logging API und Log4j eingehen und nur wo nötig zusätzliche Erläuterungen einbringen. Wer mehr Details möchte ist mit dem gut verständlichen Log4j Manual von Ceki Gülcü gut bedient. Um Log4j nutzen zu können, muss das Package org.apache.log4j eingebunden werden, in dem man den classpath auf das log4j.jar File setzt Logger Log4j Logger werden gleich wie Java Logging API Logger verwendet. Auch hier sind die Logger hierarchisch geordnet und vorzugsweise nach dem voll qualifizierten Klassennamen benannt. Am Anfang jeder Logger Hierarchie steht, wie bei Java Logging API, der root Logger. Logging Anfragen werden mit den Printmethoden debug, info, warn, error, fatal und log einer Logger Instance gemacht. Auch in Log4j erben die Logger den Level und die Appenders ihrer Vorfahren. Mit der Methode setadditivity(boolean additive) kann aber das additive Flag auf false gesetzt werden, was bewirkt, dass die Kinder dieses Loggers seine Appenders nicht erben. Bemerkung: Der root Logger besitzt per Default den DEBUG Level Log Levels Log4j besitzt fünf vorgegebene Log Level plus die Level ALL und OFF. Log Level werden in Java Logging API und Log4j auf die gleiche Art benutzt. Die fünf Log Level von Log4j heissen: FATAL (höchste Priorität)

14 Logging in Java: Java Loggin API & Jakarta Log4j Seite 13 ERROR WARN INFO DEBUG (niedrigste Priorität) Filter Die abstrakte Filter Klasse befindet sich im Package org.apache.log4j.spi und sollte vom Benutzer zuerst erweitert werden. Es ist in Log4j möglich, mehrere Filter hintereinander zu hängen und so eine Filterkette zu bauen die sequentiell durchlaufen wird beim Aufruf der Methode int decide(loggingevent event). decide gibt einen Wert zurück der einer der Konstanten DENY, NEUTRAL und ACCEPT entsprechen muss. Wird DENY zurückgegeben, so wird der Log Event verworfen und kein anderer Filter mehr aufgerugen. Bei der Rückgabe von NEUT- RAL wird der nächste Filter in der Kette aufgerufen. Ist kein Filter mehr übrig, wird der Log E- vent geloggt. Die Rückgabe von ACCEPT bewirkt das sofortige loggen ohne Konsultation der restlichen Filter Appender Appender übernehmen in Log4j die Funktionen, die bei Java Logging API die Handler haben. Appender bezeichnen das Ziel, an welches der Log Request geschickt oder geschrieben werden. Es existieren bereits folgende Appender im log4j Package: ConsoleAppender: Schreibt Log Events auf Seytem.out oder System.err(Default). FileAppender: Schreibt Log Events in eine Datei. RollingFileAppender: Erweiterung von FileAppender um Logfiels zu sichern, wenn sie eine bestimmte grösse erreicht haben. DailyRollingFileAppender: Erweiterung von FileAppender um Logfiles in bestimmten Zeitabständen zu sichern (z.b. täglich, wöchentlich, ). WriterAppender: Vaterklasse von ConsoleAppender und FileAppender. Loggt Events entweder auf einem Writer oder OutputStream. AsyncAppender: Ermöglich aynchrones Loggen und speichert alle Log Events in einem Puffer bevor er sie an einen oder mehrere Appender weitergibt (ähnlich MemoryHandler in Java Logging API). Bemerkung: In den Packages log4j.jdbc, log4j.net, log4j.nt, und log4j.varia befinden sich weiter Appender um auf externe Ziele wie Sockets zu loggen. Ich gehe hier aber nicht weiter auf diese Appender ein, da die oben genannten Appender uns zur Zeit genügen

15 Logging in Java: Java Loggin API & Jakarta Log4j Seite 14 sollten. Nähere Erklärungen zu allen Appendern sind der log4j Javadoc zu entnehmen. Alle Appender implementieren das Appender Interface und erweitern die abstrakte Klasse AppenderSkeleton. Es können somit jederzeit auch eigene Appender entwickelt werden. Es gelten für Log4j Appender dieselben Regeln wie für Java Logging Handler. Es können auch wieder mehrere Appender hintereinander geschachtelt werden. Jeder Appender sendet seinen Output an seine Vorfahren. Hat aber ein Vorfahre von Logger A, wir nenne ihn Logger B, sein additivity Flag auf false gesetzt, so wird der Output von A an alle Appender in A und in seinen Vorfahren bis und mit B gesendet, aber nicht in irgendein Vorfahre von B Layout Um zusätzlich zum Ausgabeziel auch das Ausgabeformat zu bestimmen wird dem Appender ein Layout zugewiesen (vgl Formatter). In Log4j sind folgende Layouts bereits enthalten (Package log4j falls nichts anderes angegeben): SimpleLayout: Besteht aus dem Log Level und der Log Message PatternLayout: Damit lässt sich ein Log Event beliebig formattieren. Die Bedienung ähnelt der, der printf - Funktion der Sprache C. HTMLLayout: Schreibt die Events in eine HTML Tabelle. TTCCLayout: Erweiterung des DateLayout. Stellt den Output in Form von Time, Thread, Category (bez. Logger) und Context Informationen dar. Dem Layout muss ein Zeit-Datum Format engegeben werden (per Default wird das RelativeTimeDateFormat aus dem Package org.apache.log4j.helpers verwendet). log4j.xml.xmllayout: Schreibt XML Informationen unter Verwendung der log4j.dtd. Beispiele: SimpleLayout: Aufruf: logger.debug("message 1"); Output: DEBUG - Message 1 PatternLayout: Erstellen des Layouts: layout.setconversionpattern("%-5p [%t]:%m%n"); Aufruf: logger.debug("message 1"); Output: DEBUG [main]: Message 1 TTCCLayout: Output (Default Konfiguration):

16 Logging in Java: Java Loggin API & Jakarta Log4j Seite [main] INFO org.apache.log4j.examples.sort - Exiting main method. Die erste Zahl (467) gibt dei Anzahl verstrichener Millisekunden seit Programmstart an Konfiguration Wie in Java Logging API kann auch in Log4j die Konfiguration über Java Property Files vorgenommen werden. Die Propertyfiles werden im Programm mit BasicConfigurator.configure("filename ") geladen. Ein Beispiel dazu ist in Kapitel 3.4 zu finden. 3.3 Das Chainsaw Tool Chainsaw ist eine graphische Oberfläche mit der Logging Events angeschaut und gefiltert werden können. Chainsaw horcht per Default nach LoggingEvents die einen SocketAppender verwenden und stellt diese in einer Tabelle dar. Mit dem SocketAppender können Logger Kontakt mit einem Remote Host aufnehmen. Weiteres zum SocketAppender findet man in der Javadoc unter dem Package org.apache.log4j.net. Es ist auch möglich, Events aus einer XML Datei zu laden, was den Vorteil hat, dass Chainsaw nicht immer Online sein muss. Um Logging Events an Chainsaw schicken zu können muss Log4j konfiguriert werden. Dies kann durch ein Property-File geschehen wie im folgenden Beispiel gezeigt.

17 Logging in Java: Java Loggin API & Jakarta Log4j Seite 16 log4j.rootlogger=debug, CHAINSAW_CLIENT log4j.appender.chainsaw_client=org.apache.log4j.net.socketappender log4j.appender.chainsaw_client.remotehost=localhost log4j.appender.chainsaw_client.port=4445 log4j.appender.chainsaw_client.locationinfo=true 3.4 Beispiele Zuerst ein einfaches Beispiel: package simple; import org.apache.log4j.*; /** Phil Kaufmann */ public class SimpleLog { Output: static Logger logger = Logger.getLogger("SimpleLog"); public static void main(string[] args) { BasicConfigurator.configure(); logger.info("simple :)"); 10 [main] INFO SimpleLog - Simple :) Hier ein zweites Beispiel mit einer Property Konfigurationsdatei: # Filename: l4jconfig.txt # Property configuration file for log4j # Properties of root Logger log4j.logger.rootlogger=debug, A log4j.appender.a=org.apache.log4j.consoleappender log4j.appender.a.layout=org.apache.log4j.simplelayout # (Bei Verwendung von Chainsaw folgende Konfiguration: # # Properties of root Logger # log4j.rootlogger=all, CHAINSAW_CLIENT # log4j.appender.chainsaw_client=org.apache.log4j.net.socketappender # log4j.appender.chainsaw_client.remotehost=localhost # log4j.appender.chainsaw_client.port=4445 # log4j.appender.chainsaw_client.locationinfo=true # ) # Properties of Logger LogA log4j.logger.aaa.loga=all, A11, A12 log4j.appender.a11=org.apache.log4j.fileappender log4j.appender.a11.file=erra.txt log4j.appender.a11.layout=org.apache.log4j.simplelayout log4j.appender.a12=org.apache.log4j.consoleappender log4j.appender.a12.layout=org.apache.log4j.simplelayout

18 Logging in Java: Java Loggin API & Jakarta Log4j Seite 17 # Properties of Logger LogB log4j.logger.aaa.bbb.logb=debug, A2 log4j.appender.a2=org.apache.log4j.consoleappender log4j.appender.a2.layout=org.apache.log4j.xml.xmllayout # Properties of Logger aaa.bbb.ccc.logc log4j.logger.aaa.bbb.ccc.logc=debug, A3 log4j.appender.a3=org.apache.log4j.consoleappender log4j.appender.a3.layout=org.apache.log4j.simplelayout package aaa; /** Phil Kaufmann */ import org.apache.log4j.logger; public class LogA { static Logger logger = Logger.getLogger(LogA.class); public void doa() { double r = Math.random(); if(r<0.5){ logger.error("error in LogA!"); else{ logger.info("loga ok :)"); package aaa.bbb; /** Phil Kaufmann */ import org.apache.log4j.*; import aaa.loga; public class LogB { static Logger logger = Logger.getLogger(LogB.class); LogA a = new LogA(); public void dob() { BasicConfigurator.configure(); logger.debug("doing B."); a.doa(); package aaa.bbb.ccc; /** Phil Kaufmann */

19 Logging in Java: Java Loggin API & Jakarta Log4j Seite 18 import org.apache.log4j.logger; import org.apache.log4j.propertyconfigurator; import aaa.bbb.logb; public class LogC { static Logger logger = Logger.getLogger(LogC.class); public static void main(string[] args) { PropertyConfigurator.configure("l4jconfig.txt"); logger.info("entering application"); LogB b = new LogB(); b.dob(); logger.info("exiting application"); Output Konsole: INFO - Entering application <log4j:event logger="aaa.bbb.logb" timestamp=" " level="debug" thread="main"> <log4j:message><![cdata[doing B.]]></log4j:message> </log4j:event> 40 [main] DEBUG aaa.bbb.logb - Doing B. ERROR - Error in LogA! 50 [main] ERROR aaa.loga - Error in LogA! INFO - Exiting application 50 [main] INFO aaa.bbb.ccc.logc - Exiting application Output in File erra.txt: ERROR - Error in LogA

20 Logging in Java: Java Loggin API & Jakarta Log4j Seite 19 4 Fazit Beide Tools sind sich sehr ähnlich und es ist desshalb sehr schwer zu sagen, welches jetzt besser sein soll. Das Java Logging API scheint mir schlanker und einfacher zu bedienen, jedoch dünkt mich die Dokumentation nicht besonders gut. Bei Log4j hat man ein mächtiges Tool, das für den Einstieg ins Logging auch ziemlich gut Dokumentiert und beschrieben ist. Jedoch empfand ich Log4j als Anfänger bedeutend schwieriger zu bedienen als dass ich es erwartet hatte. Dies liegt vermutlich an den unglaublich vielen Möglichkeiten, welche Log4j zu bieten hat und an den Altlasten und Leichen wie die Klasse Category, welche immer noch irgendwie benutzt werden. Im Grossen und Ganzen denke ich also, dass für Anfänger und Programmierer, die nur einen schnellen, simplen Logger brauchen die Lösung von Sun besser ist. Für komplexere Loggersysteme denke ich jedoch, dass Log4j noch die Nase vorn hat.

21 Logging in Java: Java Loggin API & Jakarta Log4j Seite 20 A. Bibliographie Java Logging API: Sun, Java Logging Overview, , Sun, Java 2 Platform SE v1.4.0 API Dokumentation, Jakarta Log4j: Ceki Gülcü, Short introduction to log4j, März 2002, Jakarta und diverse Authoren, Log4j Version Javadoc, jakarta-log4j-1.2.7\docs\api\index.html

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Was meinen die Leute eigentlich mit: Grexit?

Was meinen die Leute eigentlich mit: Grexit? Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?

Mehr

ICS-Addin. Benutzerhandbuch. Version: 1.0

ICS-Addin. Benutzerhandbuch. Version: 1.0 ICS-Addin Benutzerhandbuch Version: 1.0 SecureGUARD GmbH, 2011 Inhalt: 1. Was ist ICS?... 3 2. ICS-Addin im Dashboard... 3 3. ICS einrichten... 4 4. ICS deaktivieren... 5 5. Adapter-Details am Server speichern...

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Das Persönliche Budget in verständlicher Sprache

Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget mehr Selbstbestimmung, mehr Selbstständigkeit, mehr Selbstbewusstsein! Dieser Text soll den behinderten Menschen in Westfalen-Lippe,

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

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele

Mehr

Das Leitbild vom Verein WIR

Das Leitbild vom Verein WIR Das Leitbild vom Verein WIR Dieses Zeichen ist ein Gütesiegel. Texte mit diesem Gütesiegel sind leicht verständlich. Leicht Lesen gibt es in drei Stufen. B1: leicht verständlich A2: noch leichter verständlich

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Handbuch Groupware - Mailserver

Handbuch Groupware - Mailserver Handbuch Inhaltsverzeichnis 1. Einführung...3 2. Ordnerliste...3 2.1 E-Mail...3 2.2 Kalender...3 2.3 Kontakte...3 2.4 Dokumente...3 2.5 Aufgaben...3 2.6 Notizen...3 2.7 Gelöschte Objekte...3 3. Menüleiste...4

Mehr

Hex Datei mit Atmel Studio 6 erstellen

Hex Datei mit Atmel Studio 6 erstellen Hex Datei mit Atmel Studio 6 erstellen Es werden generell keine Atmel Studio Dateien ins Repository geladen, da jeder seine Dateien an anderen Orten liegen hat und weil nicht jeder das Atmel Studio 6 benutzt.

Mehr

Abwesenheitsnotiz im Exchangeserver 2010

Abwesenheitsnotiz im Exchangeserver 2010 Abwesenheitsnotiz im Exchangeserver 2010 Richten sie die Abwesenheitsnotiz in Outlook 2010 ein und definieren sie, dass nur Absender eine Nachricht bekommen, die ihnen direkt eine Mail gesendet haben.

Mehr

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert: Firewall für Lexware professional konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Windows XP SP2 und Windows 2003 Server SP1 Firewall...1 4. Bitdefender 9... 5 5. Norton Personal

Mehr

.procmailrc HOWTO. zur Mailfilterung und Verteilung. Stand: 01.01.2011

.procmailrc HOWTO. zur Mailfilterung und Verteilung. Stand: 01.01.2011 .procmailrc HOWTO zur Mailfilterung und Verteilung Stand: 01.01.2011 Copyright 2002-2003 by manitu. Alle Rechte vorbehalten. Alle verwendeten Bezeichnungen dienen lediglich der Kennzeichnung und können

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Leichte-Sprache-Bilder

Leichte-Sprache-Bilder Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen

Mehr

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen. Millennium SMS Service Schnellübersicht Seite 1 von 6 1. Tägliche Arbeiten mit der SMS Bestätigung Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

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

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert Beamen in EEP Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert Zuerst musst du dir 2 Programme besorgen und zwar: Albert, das

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden. In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website

Mehr

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Bedienungsanleitung für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Matthias Haasler Version 0.4 Webadministrator, email: webadmin@rundkirche.de Inhaltsverzeichnis 1 Einführung

Mehr

AutoTexte und AutoKorrektur unter Outlook verwenden

AutoTexte und AutoKorrektur unter Outlook verwenden AutoTexte und AutoKorrektur unter Outlook verwenden Die Hilfsmittel "AutoKorrektur" und "AutoTexte", die schon unter Microsoft Word das Arbeiten erleichtern, sind natürlich auch unter Outlook verfügbar.

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut Von Susanne Göbel und Josef Ströbl Die Ideen der Persönlichen Zukunftsplanung stammen aus Nordamerika. Dort werden Zukunftsplanungen schon

Mehr

Abwesenheitsnotiz im Exchange Server 2010

Abwesenheitsnotiz im Exchange Server 2010 Abwesenheitsnotiz im Exchange Server 2010 1.) Richten Sie die Abwesenheitsnotiz in Outlook 2010 ein und definieren Sie, an welche Absender diese gesendet werden soll. Klicken Sie dazu auf Datei -> Informationen

Mehr

! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006

!  # $  % & Nicki Wruck worldwidewruck 08.02.2006 !"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst

Mehr

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI TTS - TinyTimeSystem Unterrichtsprojekt BIBI Mathias Metzler, Philipp Winder, Viktor Sohm 28.01.2008 TinyTimeSystem Inhaltsverzeichnis Problemstellung... 2 Lösungsvorschlag... 2 Punkte die unser Tool erfüllen

Mehr

Programmieren I. Kapitel 15. Ein und Ausgabe

Programmieren I. Kapitel 15. Ein und Ausgabe Programmieren I Kapitel 15. Ein und Ausgabe Kapitel 15: Ein und Ausgabe Ziel: einen kleinen Einblick in die vielfältigen IO Klassen geben Grober Überblick Klasse File zur Verwaltung von Dateien Random

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten. 1 Einleitung Lernziele automatische Antworten bei Abwesenheit senden Einstellungen für automatische Antworten Lerndauer 4 Minuten Seite 1 von 18 2 Antworten bei Abwesenheit senden» Outlook kann während

Mehr

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst. 40-Tage-Wunder- Kurs Umarme, was Du nicht ändern kannst. Das sagt Wikipedia: Als Wunder (griechisch thauma) gilt umgangssprachlich ein Ereignis, dessen Zustandekommen man sich nicht erklären kann, so dass

Mehr

Kreativ visualisieren

Kreativ visualisieren Kreativ visualisieren Haben Sie schon einmal etwas von sogenannten»sich selbst erfüllenden Prophezeiungen«gehört? Damit ist gemeint, dass ein Ereignis mit hoher Wahrscheinlichkeit eintritt, wenn wir uns

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Serienbrief aus Outlook heraus Schritt 1 Zuerst sollten Sie die Kontakte einblenden, damit Ihnen der Seriendruck zur Verfügung steht. Schritt 2 Danach wählen Sie bitte Gerhard Grünholz 1 Schritt 3 Es öffnet

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Abschnitt 12: Strukturierung von Java-Programmen: Packages Abschnitt 12: Strukturierung von Java-Programmen: Packages 12. Strukturierung von Java-Programmen: Packages 12.1 Strukturierung durch Packages 12.2 Zugriffsspezifikationen 12.3 Zusammenfassung 12 Strukturierung

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Intranet E-Mail Moodle

Intranet E-Mail Moodle Intranet E-Mail Moodle Manual für Lernende V1.0 1 / 8 Inhaltsverzeichnis Übersicht... 3 1. Intranet... 3 2. Anmeldenamen... 4 3. Passwort... 4 3.1 Erste Anmeldung... 4 3.2 Passwort ändern... 5 3.3 Passwort

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost Adobe Photoshop Lightroom 5 für Einsteiger Bilder verwalten und entwickeln Sam Jost Kapitel 2 Der erste Start 2.1 Mitmachen beim Lesen....................... 22 2.2 Für Apple-Anwender.........................

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Dokumentation von Ük Modul 302

Dokumentation von Ük Modul 302 Dokumentation von Ük Modul 302 Von Nicolas Kull Seite 1/ Inhaltsverzeichnis Dokumentation von Ük Modul 302... 1 Inhaltsverzeichnis... 2 Abbildungsverzeichnis... 3 Typographie (Layout)... 4 Schrift... 4

Mehr

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten 2008 netcadservice GmbH netcadservice GmbH Augustinerstraße 3 D-83395 Freilassing Dieses Programm ist urheberrechtlich geschützt. Eine Weitergabe

Mehr

Arcavis Backend - Invoice Baldegger+Sortec AG

Arcavis Backend - Invoice Baldegger+Sortec AG Arcavis Backend - Invoice Baldegger+Sortec AG Inhalt 1.0 Einstellungen... 3 1.1 Grundeinstellungen... 3 2.0 Rechnungen erstellen und verwalten... 4 2.1 Rechnungen erstellen... 4 2.2 Rechnungen verwalten...

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Woche 1: Was ist NLP? Die Geschichte des NLP.

Woche 1: Was ist NLP? Die Geschichte des NLP. Woche 1: Was ist NLP? Die Geschichte des NLP. Liebe(r) Kursteilnehmer(in)! Im ersten Theorieteil der heutigen Woche beschäftigen wir uns mit der Entstehungsgeschichte des NLP. Zuerst aber eine Frage: Wissen

Mehr

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Wie richten Sie Ihr Web Paket bei Netpage24 ein Wie richten Sie Ihr Web Paket bei Netpage24 ein Eine kostenlose ebook Anleitung von Netpage24 - Webseite Information 1 E-Mail Bestätigung... 3 2 Ticketsystem... 3 3 FTP Konto anlegen... 4 4 Datenbank anlegen...

Mehr

Visual Basic Express erstes Projekt anlegen

Visual Basic Express erstes Projekt anlegen Inhalt Dokument Beschreibung... 1 Erstes Projekt anlegen... 1 Verweise hinzufügen... 2 Imports setzen... 5 Public Class vorbereiten... 6 Mehrere Tools programmieren... 7 Dokument Beschreibung Nach der

Mehr

Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung Outlook Weiterleitungen & Abwesenheitsmeldungen Seite 1 von 6 Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung Erstellt: Quelle: 3.12.09/MM \\rsiag-s3aad\install\vnc\email Weiterleitung

Mehr

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung

Mehr

GITS Steckbriefe 1.9 - Tutorial

GITS Steckbriefe 1.9 - Tutorial Allgemeines Die Steckbriefkomponente basiert auf der CONTACTS XTD Komponente von Kurt Banfi, welche erheblich modifiziert bzw. angepasst wurde. Zuerst war nur eine kleine Änderung der Komponente für ein

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

Mehr

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten Seit Anfang Juni 2012 hat Facebook die Static FBML Reiter deaktiviert, so wird es relativ schwierig für Firmenseiten eigene Impressumsreiter

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Massenversand Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering.

Massenversand Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering. Massenversand Massenversand Seite 1 Massenversand Seite 2 Inhaltsverzeichnis 1. WICHTIGE INFORMATIONEN ZUR BEDIENUNG VON CUMULUS 4 2. STAMMDATEN FÜR DEN MASSENVERSAND 4 2.1 ALLGEMEINE STAMMDATEN 4 2.2

Mehr

CodeSaver. Vorwort. Seite 1 von 6

CodeSaver. Vorwort. Seite 1 von 6 CodeSaver Vorwort Die Flut der Passwörter nimmt immer mehr zu. Kontopasswörter, Passwörter für Homepages, Shellzugriffe, Registrierungscodes für Programme und und und. Da ich aber nicht sonderlich viel

Mehr

Windows 10 > Fragen über Fragen

Windows 10 > Fragen über Fragen www.computeria-olten.ch Monatstreff für Menschen ab 50 Merkblatt 103 Windows 10 > Fragen über Fragen Was ist das? Muss ich dieses Upgrade machen? Was bringt mir das neue Programm? Wie / wann muss ich es

Mehr

PHPNuke Quick & Dirty

PHPNuke Quick & Dirty PHPNuke Quick & Dirty Dieses Tutorial richtet sich an all die, die zum erstenmal an PHPNuke System aufsetzen und wirklich keine Ahnung haben wie es geht. Hier wird sehr flott, ohne grosse Umschweife dargestellt

Mehr

Bilder zum Upload verkleinern

Bilder zum Upload verkleinern Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr

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

Ü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

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern 1 Einleitung Lernziele Symbolleiste für den Schnellzugriff anpassen Notizenseiten drucken eine Präsentation abwärtskompatibel speichern eine Präsentation auf CD oder USB-Stick speichern Lerndauer 4 Minuten

Mehr

Info-Veranstaltung zur Erstellung von Zertifikaten

Info-Veranstaltung zur Erstellung von Zertifikaten Info-Veranstaltung zur Erstellung von Zertifikaten Prof. Dr. Till Tantau Studiengangsleiter MINT Universität zu Lübeck 29. Juni 2011 Gliederung Zertifikate Wer, Wann, Was Ablauf der Zertifikaterstellung

Mehr

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999 Mind Mapping am PC für Präsentationen, Vorträge, Selbstmanagement von Isolde Kommer, Helmut Reinke 1. Auflage Hanser München 1999 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 21222 0 schnell

Mehr

Einrichtung des WS_FTP95 LE

Einrichtung des WS_FTP95 LE Einrichtung des WS_FTP95 LE Das Herunterladen des Programms (siehe Seite Hochladen) dauert durch die Größe von 656 KB auch mit dem Modem nicht lange. Im Ordner der herunter geladenen Dateien erscheint

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

Benutzerverwaltung Business- & Company-Paket

Benutzerverwaltung Business- & Company-Paket Benutzerverwaltung Business- & Company-Paket Gemeinsames Arbeiten mit der easyfeedback Umfragesoftware. Inhaltsübersicht Freischaltung des Business- oder Company-Paketes... 3 Benutzerverwaltung Business-Paket...

Mehr

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX Allgemeines Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX Stand 21.11.2014 Die Yeastar MyPBX Telefonanlagen unterstützen die automatische Konfiguration der tiptel 3010, tiptel 3020 und tiptel 3030

Mehr

Log xmllog textlog Log() start(filename) add(message) end() instance() Abbildung 7-10: Die Protokollierungs-API mit einer einfachen Fassade

Log xmllog textlog Log() start(filename) add(message) end() instance() Abbildung 7-10: Die Protokollierungs-API mit einer einfachen Fassade HACK #76 Hack APIs mit dem Façade-Muster vereinfachen Durch die Verwendung des Façade-Entwurfsmusters können Sie die anderen Programmierern zugängliche API vereinfachen. #76 Dies ist ein Muster, von dem

Mehr

Nicht über uns ohne uns

Nicht über uns ohne uns Nicht über uns ohne uns Das bedeutet: Es soll nichts über Menschen mit Behinderung entschieden werden, wenn sie nicht mit dabei sind. Dieser Text ist in leicht verständlicher Sprache geschrieben. Die Parteien

Mehr

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Änderungsbeschreibung HWS32 SEPA Überweisungen

Änderungsbeschreibung HWS32 SEPA Überweisungen Änderungsbeschreibung HWS32 SEPA Überweisungen Inhaltsverzeichnis SEPA ÜBERWEISUNGEN... 2 INSTALLATION... 2 ÄNDERUNGEN IN DER ADRESSVERWALTUNG... 4 ÄNDERUNGEN IM RECHNUNGSEINGANGSBUCH... 5 DIE ÜBERWEISUNGSPROGRAMME

Mehr

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock infach Ihr Weg zum finanzellen Erfolg Geld Florian Mock FBV Die Grundlagen für finanziellen Erfolg Denn Sie müssten anschließend wieder vom Gehaltskonto Rückzahlungen in Höhe der Entnahmen vornehmen, um

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Meet the Germans. Lerntipp zur Schulung der Fertigkeit des Sprechens. Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten

Meet the Germans. Lerntipp zur Schulung der Fertigkeit des Sprechens. Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten Meet the Germans Lerntipp zur Schulung der Fertigkeit des Sprechens Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten Handreichungen für die Kursleitung Seite 2, Meet the Germans 2. Lerntipp

Mehr

Hinweise zur Verwendung der Logging API im JDK 1.4

Hinweise zur Verwendung der Logging API im JDK 1.4 Hinweise zur Verwendung der Logging API im JDK 1.4 18. Oktober 2005 michael.wohlfart@zsw-bw.de dietmar.lippold@informatik.uni-stuttgart.de Inhalt 1 Logging... 2 1.1 Übersicht... 2 1.1.1 Logger...3 1.1.2

Mehr

Programme im Griff Was bringt Ihnen dieses Kapitel?

Programme im Griff Was bringt Ihnen dieses Kapitel? 3-8272-5838-3 Windows Me 2 Programme im Griff Was bringt Ihnen dieses Kapitel? Wenn Sie unter Windows arbeiten (z.b. einen Brief schreiben, etwas ausdrucken oder ein Fenster öffnen), steckt letztendlich

Mehr

Jeunesse Autopiloten

Jeunesse Autopiloten Anleitung für Jeunesse Partner! Wie Du Dir mit dem Stiforp-Power Tool Deinen eigenen Jeunesse Autopiloten erstellst! Vorwort: Mit dem Stiforp Power Tool, kannst Du Dir für nahezu jedes Business einen Autopiloten

Mehr

Der Kalender im ipad

Der Kalender im ipad Der Kalender im ipad Wir haben im ipad, dem ipod Touch und dem iphone, sowie auf dem PC in der Cloud einen Kalender. Die App ist voreingestellt, man braucht sie nicht laden. So macht es das ipad leicht,

Mehr

FastBill Automatic. Dokumentation Versand. FastBill GmbH. Holteyer Straße 30 45289 Essen Telefon 0201 47091505 Telefax 0201 54502360

FastBill Automatic. Dokumentation Versand. FastBill GmbH. Holteyer Straße 30 45289 Essen Telefon 0201 47091505 Telefax 0201 54502360 FastBill GmbH Holteyer Straße 30 45289 Essen Telefon 0201 47091505 Telefax 0201 54502360 FastBill Automatic Dokumentation Versand 1 Inhaltsverzeichnis: 1. Grundlegendes 2. Produkteinstellungen 2.1. Grundeinstellungen

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig?

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig? Pädagogik Melanie Schewtschenko Eingewöhnung und Übergang in die Kinderkrippe Warum ist die Beteiligung der Eltern so wichtig? Studienarbeit Inhaltsverzeichnis 1. Einleitung.2 2. Warum ist Eingewöhnung

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Updatehinweise für die Version forma 5.5.5

Updatehinweise für die Version forma 5.5.5 Updatehinweise für die Version forma 5.5.5 Seit der Version forma 5.5.0 aus 2012 gibt es nur noch eine Office-Version und keine StandAlone-Version mehr. Wenn Sie noch mit der alten Version forma 5.0.x

Mehr

Netzwerk einrichten unter Windows

Netzwerk einrichten unter Windows Netzwerk einrichten unter Windows Schnell und einfach ein Netzwerk einrichten unter Windows. Kaum ein Rechner kommt heute mehr ohne Netzwerkverbindungen aus. In jedem Rechner den man heute kauft ist eine

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent

Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent Outlook 2003 - Aufbaukurs 19 Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent Wie kann ich die Bearbeitung von Nachrichten automatisieren? Wie kann ich Nachrichten automatisch

Mehr

Dokumentation IBIS Monitor

Dokumentation IBIS Monitor Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt

Mehr

PCE-USM RS-232 - USB Logger

PCE-USM RS-232 - USB Logger PCE-USM RS-232 - USB Logger Der Logger ermöglicht die Sendedaten der RS-232 Schnittstelle als TXT Format in einen oder mehreren Ordnern mit Zeit und Datum zu speichern. Der Logger kann sowohl Daten empfangen

Mehr