Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Loggen mit log4j ETIS 2004. Log4J2 Gliederung Motivation Geschichte Logger Appender Layout Konfiguration Log4j vs. Sun‘ s Logging API Zusammenfassung.

Ähnliche Präsentationen


Präsentation zum Thema: "Loggen mit log4j ETIS 2004. Log4J2 Gliederung Motivation Geschichte Logger Appender Layout Konfiguration Log4j vs. Sun‘ s Logging API Zusammenfassung."—  Präsentation transkript:

1 Loggen mit log4j ETIS 2004

2 Log4J2 Gliederung Motivation Geschichte Logger Appender Layout Konfiguration Log4j vs. Sun‘ s Logging API Zusammenfassung

3 Log4J3 Motivation Log4J (I) Loggen in vielen Projekten benötigt (in Entwicklung + produktiver Umgebung) Low level debug-Methode Aufgaben: –Innere Abläufe der Anwendung verfolgen Informationen über den Zustand des Programms Informationen über wichtige Ereignisse –Variablenwerte kontrollieren Fehlersuche

4 Log4J4 Motivation Log4J (II) System.out.print(...) –Meldungen nicht abschaltbar (nur löschbar), nicht staffelbar –nur Standardausgabe Fehlersuche mit Debugger: –Problem, wenn nicht verfügbar –Debugging transient - Logaufrufe bleiben im Programm –Loggen oft schneller Selber programmieren belastet eigentliches Projekt zusätzlich

5 Log4J5 Motivation Log4j (III) Evtl. Probleme beim Loggen: –Anwendung verlangsamt –Informationen schwer finden Ziele Log4J: –Wenig Performanceverluste durch Logging klassifizierbare Informationen (z.B. Ausschalten bestimmter Loginformationen) –Anwendung zur Laufzeit konfigurierbar Loginformationen an- und ausschalten frei definierbare Ausgabeformate/-orte der Log- Meldungen

6 Log4J6 Geschichte Open Source Projekt, um Log-Statements in eine Anwendung zu bringen (de facto Standard) Apaches Jakarta Projekt einsetzbar ab JDK 1.1 Hauptbestandteile: –Logger (Wird geloggt?) –Appender (Wohin?) –Layouts (Format?)

7 Log4J7 Klasse Logger Kernkomponente Klassenname als Loggername ist Konvention Bereitstellung als statische Variable in Anwendung private static Logger logger = Logger.getLogger(“test.Sample“); Besitzt Methoden, um Meldungen auf verschiedenen Stufen auszugeben (Stufen erweiterbar) logger.debug(“irgendwas“);

8 Log4J8 Vordefinierte Log-Level ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF Normale Log-Level DEBUGfeingranulare Informationsereignisse, zum Debuggen INFOinformierende Nachrichten, groben Ablauf aufzeigen WARNpotentiell nachteilige Situationen ERRORFehler, Anwendung läuft evtl. weiter FATALernster Fehler, meist Abbruch der Anwendung Spezielle Log-Level ALLniedrigste Priorität, Loggen anschalten OFFhöchste Priorität, Loggen abschalten

9 Log4J9 Log-Level (I) Logger haben bestimmtes Level z.B. Logger hat Level WARN (z.B. in Konfigurationsdatei festgelegt) Log-Methoden haben bestimmtes Level z.B. c.info(...): Log-Meldung auf Level INFO Level des Loggers entscheidet, ob Log-Meldung geschrieben wird –Schreiben, wenn Level der Log-Methode höher oder gleich dem Level seines Loggers INFO < WARN  c.info() ignoriert

10 Log4J10 Log-Level (II) Logger bilden durch “.“ getrennte hierarchische Baum-Struktur z.B. java.sql.Connection Ein Root-Logger weitere Logger ein Vorfahr und evtl. mehrere Nachfahren java Vorfahr java.sql Level der Logger vererbbar, wenn nicht explizit gesetzt, z.B. java: INFO, java.sql: keine Zuweisung  java.sql = INFO java: INFO, java.sql: WARN  java.sql = WARN Wenn Klassenname = Loggername  Logging für einzelne Klasse oder packages ein- und ausschaltbar

11 Log4J11 Logging - Performance Log-Statements bleiben i.d.R. im Code Versteckte Kosten für Parameterkonstruktion logger.debug(“irgendwas“); if-Statement als Performance-Wrapper if (logger.isDebugEnabled() == true){ logger.debug(“irgendwas“ + ichBinTeuer()); }

12 Log4J12 Appender jedem Logger sind ein oder mehrere Appender zuordenbar –Appender in Loggerhierarchie vererbt Appender legt fest, wohin geloggt wird –z.B. Console, File, JDBC, SMTP... (können um eigene erweitert werden) Vererbungskonzept Appender: Kinder des Loggers erben automatisch alle Appender des Vaters –z.B. Vater hat Konsole-Appender, Kind hat File- Appender  Kind schreibt auf Konsole und in File –Logger-Attribut additivity = false unterbindet Vererbung

13 Log4J13 Layout Appender wird bei Konfiguration Layout-Pattern übergeben –optische Aufbesserung –verbesserte Fehlersuche Z.B. PatternLayout, HTMLLayout, XMLLayout (können um eigene erweitert werden) Pattern-Layout am flexibelsten, C printf-Funktion nachempfunden

14 Log4J14 Konfiguration Ziel: Logging-Verhalten zur Laufzeit konfigurieren –in Konfigurationsdatei Verhalten einstellen –für Anbindung an Konfigurationsdatei sorgen durch einmaligen Aufruf von configure() BasicConfigurator –ohne Konfigurationsdatei, belegt System mit sinnvollen Startwerten PropertyConfigurator –bezieht Daten aus Properties-Datei DOMConfigurator –ähnlich P. Dateiformat XML

15 Log4J15 Properties-Datei #obersten Logger auf DEBUG setzen, Appender: A1 log4j.rootLogger = DEBUG, A1 #A1 ist ConsoleAppender  Ausgabe auf Console log4j.appender.A1 = org.apache.log4j.ConsoleAppender #A1 verwendet ein Pattern Layout log4j.appender.A1.layout = org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern = [%d / %p / %c ] - %m%n%n

16 Log4J16 Log4J vs. Sun‘s Log API Ähnlichkeiten in Namensgebung (Klassen: Logger, Level) Konzept hierarchischer Logger ähnlich Log4J viele Appender, Sun 3 Handler Log4J Konfiguration in XML + Properties-Datei, Sun nur Properties-Datei Log4J ab JDK 1.1, Sun erst ab 1.4 Log4J gereift und robust, performanter, umfangreicher Portierungen für C/C++, Python,.NET

17 Log4J17 Zusammenfassung open source gute Performance, Funktionalität, Handhabung gute Integrierbarkeit in eigene Anwendungen umfangreiche Erweiterungsmöglichkeiten in existierenden Systemen verwendet (JBoss) GUI-basierte Tools vorhanden (Chainsaw, LogFactor5) momentan besser als Sun‘ s Logging API, Wechsel allerdings recht unproblematisch

18 Log4J18 Quellen Wille, S., Go To Java Server Pages, Addison-Wesley, München, 2001 Evertz, M.: Logger Dir Einen, Javamagazin, 11/2002, S Eickstädt, D., Reuhl, T., Java mit Open Source-Tools, Markt+Technik, München, 2003


Herunterladen ppt "Loggen mit log4j ETIS 2004. Log4J2 Gliederung Motivation Geschichte Logger Appender Layout Konfiguration Log4j vs. Sun‘ s Logging API Zusammenfassung."

Ähnliche Präsentationen


Google-Anzeigen