Peter Feist, Mario Dietrich

Werbung
Log4j
Peter Feist
Mario Dietrich
Motivation: Warum Loggen?
• Logging bremst eine Anwendung
• Wir machen keine Fehler ...
• Ausgabe von Detailinformationen
schreckt ab
• ABER:
Logfile lesen schneller als
Debugging
Log4j
• Quelle:
http://logging.apache.org/log4j
• Open Source
• Logging Komponenten, auf
Geschwindigkeit ausgelegt
• Komfortabel im Handling
• Konfiguration zur Laufzeit
Bausteine
• Logger
• Appender
• Layout
Logger
• Logger übernehmen die Ausgabe
• Logger haben 1..n Appender
• Logger können Eigenschaften
erben
• Logger können z.B. pro Klasse
definiert werden
Methoden
• Creation & retrieval
– getRootLogger();
– getLogger(String name);
• Output
–
–
–
–
–
–
debug(Object message);
info(Object message);
warn(Object message);
error(Object message);
fatal(Object message);
log(Level l, Object message);
Loglevel
• Logger KANN ein Level
zugewiesen bekommen
• Erbt andernfalls vom nächsten
Vorfahren
• Logging, wenn Lvl(msg) >=
Lvl(Logger)
Level für Logger
•
•
•
•
•
DEBUG
INFO
WARN
ERROR
FATAL
Appender
•
•
•
•
File Appender
Rolling File Appender -> Sicherung
Socket Appender
Special Appenders
– NTEventLogAppender
– JDBC Appender
– SMTP Appender
Konfiguration
•
•
•
•
Properties – File
Einfach, schnell, übersichtlich
Code muss nicht angepasst werden
ConfigureAnd Watch()
Wir haben doch keine Zeit
• Erst testen, ob Logging
angeschaltet ist
• Dann komplexe Logstatements
ausgeben
Layout 1 (Schalter)
• %d{ISO8601} -> YYYY-mm-dd
HH:mm:ss,SSS
• %C Classname des Loggers
• %l location
• %n Zeilenende
• %p priority (debug, warn ...)
Layout 2 (Format)
•
•
•
•
%20c -> 20 Zeichen rechtsbündig
%-20c -> 20 Zeichen linksbündig
%.30c -> letzte 30 Zeichen
%20.30c -> Links bis auf 20
Zeichen auffüllen aber max. die
letzten 30 Zeichen anzeigen
Layouts
• Details:
http://logging.apache.org/log4j/docs
/api/org/apache/log4j/PatternLayout
.html
• http://www.allapplabs.com/log4j/log
4j_appenders.htm
Vorbereitung
• Eclipse – workspace anlegen
• Neues Javaprojekt
• Einstellungen für Log4j.jar
Javaklasse anlegen
• Klasse anlegen
• Interface anlegen
• Class-Files für PB bereit stellen
PowerBuilder – Vorbereitung
•
•
•
•
Neue Applikation
PBL für Proxies anlegen
Projekt EJB Client Wizard
Class - Files der Javaklassen
kopieren
PowerBuilder – Vorbereitung
• Proxies erzeugen
• pbejbclientXX.pbd einbinden (90 für
PB9)
Jetzt geht‘s los
•
•
•
•
JavaVM erzeugen
Classpath der Javaklasse setzen
EJBConnection erzeugen
Javaklasse instanziieren
Loggen
Logging im EAServer
• EAServer Log Profile konfigurieren
• EJB erstellen und deployen
(unterstützt durch XDoclet)
• PB-Client erstellen
J2EE Überblick
J2EE 1.3
Session Beans
Stateful
Session Beans
The
EJB 2.0
Servlet 2.3
Entity Beans
MDB
JSP 1.2
Stateless
Session Beans
J2EE Tutorial
http://java.sun.com/j2ee/tutorial/1_3-fcs/index.html
Woraus besteht eine EJB
• Component Interface (Lokal
und/oder Remote)
• Home Interface (Lokal und/oder
Remote)
• Bean Class
• Deployment Descriptor (ejb-jar.xml)
• Mit dem neuen EJB-Standard 3.0
wird sich viel ändern!
XDoclet
• XDoclet is an open source code
generation engine.
• It enables Attribute-Oriented
Programming for java.
In short, this means that you can add
more significance to your code by adding
meta data (attributes) to your java
sources.
This is done in special JavaDoc tags.
• http://xdoclet.sourceforge.net/xdoclet/ind
ex.html
Herunterladen