Logging in Java. Java Logging API & Jakarta Log4J. Seminararbeit von Philipp Kaufmann, 5Ie
|
|
- Elizabeth Lange
- vor 8 Jahren
- Abrufe
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() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrAnleitung ü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
MehrWas 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?
MehrICS-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...
MehrStellen 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.
MehrDas 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,
MehrLogging 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
MehrL10N-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
MehrDas 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
MehrHandbuch 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
MehrHandbuch 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
MehrHex 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.
MehrAbwesenheitsnotiz 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.
MehrFolgende 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 Copyright 2002-2003 by manitu. Alle Rechte vorbehalten. Alle verwendeten Bezeichnungen dienen lediglich der Kennzeichnung und können
MehrArbeiten 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
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrObjektorientierte 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
MehrProfessionelle 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
MehrLeichte-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
MehrDieser 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.
MehrEs 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
MehrEinfü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:
MehrDas 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
MehrPrimzahlen 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
MehrDie 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
MehrBedienungsanleitung. 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
MehrAutoTexte 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.
MehrKlassenentwurf. 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
MehrPersö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
MehrAbwesenheitsnotiz 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 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
MehrTTS - 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
MehrProgrammieren 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
MehrEinfü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
Mehr1 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
Mehr40-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
MehrKreativ 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
MehrProfessionelle 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
MehrOutlook. 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
MehrAbschnitt 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
MehrUrlaubsregel 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
MehrIntranet 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
MehrEr 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
MehrAdobe 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.........................
MehrJavadoc. 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
MehrDokumentation 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
MehrStundenerfassung 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
MehrArcavis 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...
MehrEinfü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
MehrWoche 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
MehrWie 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...
MehrVisual 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
MehrBeschreibung 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
MehrSoftware-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
MehrGITS 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
MehrMORE 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
MehrFacebook 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
MehrBinä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
MehrMassenversand 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
MehrCodeSaver. 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
MehrWindows 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
MehrPHPNuke 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
MehrBilder 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
MehrNutzung 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 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
MehrDer 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.
MehrWie 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,
Mehr1 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
MehrInfo-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
MehrMind 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
MehrEinrichtung 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
MehrDelegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
MehrBenutzerverwaltung 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...
MehrAuto-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
MehrLog 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
MehrNicht ü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
MehrIst 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,
MehrFachdidaktik 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 Inhaltsverzeichnis SEPA ÜBERWEISUNGEN... 2 INSTALLATION... 2 ÄNDERUNGEN IN DER ADRESSVERWALTUNG... 4 ÄNDERUNGEN IM RECHNUNGSEINGANGSBUCH... 5 DIE ÜBERWEISUNGSPROGRAMME
Mehrinfach 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
MehrSoftware 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
MehrMeet 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
MehrHinweise 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
MehrProgramme 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
MehrJeunesse 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
MehrDer 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,
MehrFastBill 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
MehrProgrammierkurs 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
MehrDatensicherung. 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
MehrPä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
MehrObjektorientierte 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/
MehrDatenbanken 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,
MehrEinrichtung 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
MehrUpdatehinweise 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
MehrNetzwerk 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 Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess
MehrModul 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
MehrDokumentation 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
MehrPCE-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