Einleitung Grundlagen Stealth-Logger Resourcen Fragen                              Easy Logging                  Einf¨hrun...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   ¨         ¨                                                       ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   ¨         ¨                                                       ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   ¨         ¨                                                       ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   ¨         ¨                                                       ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen     Priorit¨ten Appender Layouts                                    ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Priorit¨ten Appender Layouts                                      ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceEasy Mode (Ste...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceAutomatisch im...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceAutomatisch im...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceAutomatisch im...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceEasy Mode init...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceEasy Mode init...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceHallo Welt im ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceLoglevel im Ea...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceLayout im Easy...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceAusgabemedium ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceSkalare Variab...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceKonstanten    ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceArrays, Hashes...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceKleine Arrays ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceArrays     Arr...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceKleine Hashes ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceHashes     Has...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceNeed for Speed...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceMessage output...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceDump Profiling ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceDump Profiling ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceDump Profiling ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceKonfiguration A...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceEasy Mode aus ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen    Basics Datenstrukturen Appender Packages PerformanceKonfigurations...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceFehlende Konfig...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceFehlende Konfig...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages Performanceinit once - nu...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages Performanceinit and watch...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceLogdateien rot...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceLogs per E-Mai...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceLogdateien rot...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceLogdateien rot...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceSyslog     Log...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceLoggen in eine...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceLoggen in eine...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceLoggen in eine...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceLoggen in eine...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceChainsaw     B...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceLilith     Bil...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceLog::Lop4perl ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceLog::Lop4perl ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformanceWorkflow       ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Basics Datenstrukturen Appender Packages PerformancePerformance   ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   RTFM Vortr¨ge Artikel Recommended Readings                        ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   RTFM Vortr¨ge Artikel Recommended Readings                        ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   RTFM Vortr¨ge Artikel Recommended Readings                        ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   RTFM Vortr¨ge Artikel Recommended Readings                        ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   RTFM Vortr¨ge Artikel Recommended Readings                        ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   RTFM Vortr¨ge Artikel Recommended Readings                        ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Fragen Danke! Perl.orgFragen?     Fragen?         Fragen!         ...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Fragen Danke! Perl.orgVielen Dank!     Danke!         Vielen Dank!...
Einleitung Grundlagen Stealth-Logger Resourcen Fragen   Fragen Danke! Perl.orgPerl.org     When you need Perl think Perl.o...
Nächste SlideShare
Wird geladen in …5
×

Log4perl - Easy Logging - FrOSCon 2011

3.610 Aufrufe

Veröffentlicht am

Easy Logging
Einfü̈hrung in Log::Log4perl qw/:easy/

Veröffentlicht in: Technologie, Business
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
3.610
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
1.463
Aktionen
Geteilt
0
Downloads
10
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Log4perl - Easy Logging - FrOSCon 2011

  1. 1. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u Thomas Fahle FrOSCon 2011, St. Augustin, 21. August 2011 Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  2. 2. Einleitung Grundlagen Stealth-Logger Resourcen Fragen ¨ ¨ Ubersicht Uber Log::Log4perl¨Uber diesen Vortrag Einf¨hrung in Log::Log4perl u Log::Log4perl Grundlagen Easy Mode - Stealth-Logger Basics Datenstrukturen Appender Packages Performance Resourcen im Netz - Mehr Infos Slides online http://www.slideshare.net/thomasfahle Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  3. 3. Einleitung Grundlagen Stealth-Logger Resourcen Fragen ¨ ¨ Ubersicht Uber Log::Log4perl Log::Log4perl? Port von log4j Author: Michael Schilli sehr ausgereiftes Logging-Framework (Profil¨sung) o Umfangreiche, komplette, aber oft verwirrende Dokumentation Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  4. 4. Einleitung Grundlagen Stealth-Logger Resourcen Fragen ¨ ¨ Ubersicht Uber Log::Log4perl Log::Log4perl liefert Information aus dem tats¨chlichen Betrieb des a Programms durch Konfigurationsdateien k¨nnen Loggingstatements, die o eigentlich zum Testen/Debuggen gedacht sind im ausgeliefertem Code verbleiben Ausgabeziele und Formate k¨nnen uber Konfigurationsdateien o ¨ unterschiedlichen Umgebungen und Bed¨rfnissen angepasst u werden. Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  5. 5. Einleitung Grundlagen Stealth-Logger Resourcen Fragen ¨ ¨ Ubersicht Uber Log::Log4perlLog::Log4perl Betriebsmodi Log::Log4perl kennt zwei Betriebsmodi Standardmodus: Sehr sehr viele fein granulierte Optionen Easy Mode oder Stealth Logger: komfortables, einfaches Loggen, eben EASY. Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  6. 6. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aPriorit¨ten a Priorit¨ten oder Loglevel a (lat. prior = der Vordere) legen die Wichtigkeit eines Loggingereignisses fest. Ob ein Logger die ihm ubergebenen Nachrichten tats¨chlich ¨ a weitergibt oder unterdr¨ckt, wird in der Konfiguration festgelegt. u Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  7. 7. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aVordefinierte Priorit¨ten a Log::Log4perl stellt sechs vordefinierte Loglevel zur Verf¨gung u Die Level in absteigender Reihenfolge: FATAL ERROR WARN INFO DEBUG TRACE Zus¨tzlich wird auch das Pseudolevel ALWAYS bereitgestellt. a Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  8. 8. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aPriorit¨t TRACE a TRACE Das Level TRACE kennzeichnet sehr, sehr feink¨rnige Ereignisse - o feink¨rniger als das n¨chste Level DEBUG. o a Beispiel: TRACE( ” $ b y t e s b y t e s t r a n s f e r r e d ” ) ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  9. 9. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aPriorit¨t DEBUG a DEBUG Das Level DEBUG kennzeichnet feink¨rnige Ereignisse, die n¨tzlich o u sind, um eine Applikation zu debuggen. Beispiel: DEBUG( ”HTTP GET r e q u e s t OK” ) ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  10. 10. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aPriorit¨t INFO a INFO Das Level INFO kennzeichnet grobk¨rnige Ereignisse, die uber den o ¨ Fortschritt des Programms informieren. Beispiel: INFO ( ” S t a r t e $0 ” ) ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  11. 11. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aPriorit¨t WARN a WARN Das Level WARN kennzeichnet Ereignisse, die auf kleine Fehler hinweisen. Das Programm kann aber weiterlaufen. Beispiel: WARN( ”HTTP GET f a i l e d , r e t r y i n g ” ) ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  12. 12. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aPriorit¨t ERROR a ERROR Das Level ERROR kennzeichnet Ereignisse, die auf gr¨ßere Fehler o hinweisen. Das Programm kann aber oft noch weiterlaufen. Beispiel: ERROR( ”Out o f r e t r i e s ! ” ) ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  13. 13. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aPriorit¨t FATAL a FATAL Das Level FATAL kennzeichnet Ereignisse, die auf schwerwiegende Fehler hinweisen. Das Programm wird meist beendet werden m¨ssen. u Beispiel: FATAL( ”Can ’ t c o n n e c t t o d a t a b a s e . ” ) ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  14. 14. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aPriorit¨t ALWAYS a ALWAYS Das Level ALWAYS kennzeichnet Ereignisse, die immer geloggt werden sollen. Sie werden niemals geblockt. Beispiel: ALWAYS( ” T h i s w i l l be p r i n t e d r e g a r d l e s s of the log l e v e l . ” ) ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  15. 15. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aKonfiguration Priorit¨t a Konfiguration entscheidet, wie sich ein Logger verh¨lt. a d.h. ob wie wohin geloggt wird. Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  16. 16. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aKonfiguration und Priorit¨t a Priorit¨t a Konfiguration FATAL FATAL ERROR ERROR WARN WARN INFO INFO DEBUG DEBUG TRACE TRACE Priorit¨t und Konfiguration a Zu jeder Priorit¨t im Programm geh¨rt eine entsprechende a o Priorit¨t in der Konfiguration. a Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  17. 17. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aBeispiel: Konfiguriertes Level WARN Priorit¨t a Konfiguriertes Level FATAL + ERROR + WARN WARN INFO - DEBUG - TRACE - Konfiguriertes Level WARN Nachrichten unterhalb von WARN werden nicht ausgegeben. Nachrichten der Priorit¨t WARN oder h¨her werden a o ausgegeben. Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  18. 18. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aBeispiel: Konfiguriertes Level ERROR Priorit¨t a Konfiguriertes Level FATAL + ERROR ERROR WARN - INFO - DEBUG - TRACE - Konfiguriertes Level ERROR Nachrichten unterhalb von ERROR werden nicht ausgegeben. Nachrichten der Priorit¨t ERROR oder h¨her werden a o ausgegeben. Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  19. 19. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aBeispiel: Konfiguriertes Level DEBUG Priorit¨t a Konfiguriertes Level FATAL + ERROR + WARN + INFO + DEBUG DEBUG TRACE - Konfiguriertes Level DEBUG Nachrichten unterhalb von DEBUG werden nicht ausgegeben. Nachrichten der Priorit¨t DEBUG oder h¨her werden a o ausgegeben. Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  20. 20. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aAppender Appender/Datensenken Appender sind Datensenken, in die Log-Nachrichten geschrieben werden. Als Datensenke l¨sst sich von der einfachen Bildschirmausgabe a (STDERR) uber Logdateien, Syslog, SMS- oder ¨ E-Mail-Benachrichtigung, bis hin zu Datenbanken, so ziemlich alles verwenden, was man sich als Ausgabe-Medium vorstellen kann. Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  21. 21. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aLog::Log4perl Appender Log::Log4perl Appender (Auswahl) Log::Log4perl::Appender::Screen Log::Log4perl::Appender::File Log::Log4perl::Appender::Socket Log::Log4perl::Appender::DBI Log::Log4perl::Appender::Synchronized Log::Log4perl::Appender::RRDs Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  22. 22. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aLog::Dispatch Appender Log::Dispatch Appender (Auswahl) Log::Dispatch::ApacheLog Log::Dispatch::DBI Log::Dispatch::Email Log::Dispatch::Email::MIMELite Log::Dispatch::File Log::Dispatch::FileRotate Log::Dispatch::Screen Log::Dispatch::Syslog u.v.a.m. ... Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  23. 23. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aLayouts Layouts - Informationsumfang Layouts formatieren Log-Nachrichten und legen den Informationsumfang fest. Log-Nachrichten k¨nnen in einer printf()-¨hnlichen Syntax o a einfach an die eigenen Bed¨rfnisse angepasst (formatiert) u werden. Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  24. 24. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aLayouts Layouts - Formatierungsanweisungen 1 %c Category of the logging event. %C Fully qualified package (or class) name of the caller %d Current date in yyyy/MM/dd hh:mm:ss format %F File where the logging event occurred %H Hostname (if Sys::Hostname is available) %l Fully qualified name of the calling method followed by the callers source the file name and line number between parentheses. Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  25. 25. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Priorit¨ten Appender Layouts aLayouts Layouts - Formatierungsanweisungen 2 %T A stack trace of functions called %L Line number within the file where the log statement was issued %m The message to be logged %M Method or function where the logging request was issued %n Newline (OS-independent) %p Priority of the logging event %P pid of the current process %r Number of milliseconds elapsed from program start to logging %% A literal percent (%) sign Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  26. 26. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceEasy Mode (Stealth Logger) qw/:easy/1 #! / u s r / b i n / p e r l2 use s t r i c t ;3 use warnings ;45 u s e Log : : L o g 4 p e r l qw / : e a s y / ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  27. 27. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceAutomatisch importierte Funktionen qw/:easy/ Level/Priortit¨ten a FATAL ERROR WARN INFO DEBUG TRACE Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  28. 28. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceAutomatisch importierte Funktionen qw/:easy/ Convenience: Log and ... LOGWARN LOGDIE LOGEXIT LOGCARP LOGCLUCK LOGCROAK LOGCONFESS Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  29. 29. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceAutomatisch importierte Konstanten qw/:easy/ Level/Priortit¨ten a $FATAL $ERROR $WARN $INFO $DEBUG $TRACE Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  30. 30. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceEasy Mode initialisieren 1 easy init()1 #! / u s r / b i n / p e r l2 use s t r i c t ;3 use warnings ;4 u s e Log : : L o g 4 p e r l qw / : e a s y / ;5 Log : : L o g 4 p e r l −> e a s y i n i t ( ) ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  31. 31. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceEasy Mode initialisieren 2 easy init() initialisiert einen einfachen Logger. Der Appender ist vom Typ SCREEN, d.h. die Log-Nachrichten erscheinen auf STDERR. Das Layout der Nachrichten wird auf das Format ”%d %m%n”gesetzt. Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  32. 32. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceHallo Welt im Easy Mode Hallo Welt!1 u s e Log : : L o g 4 p e r l qw / : e a s y / ;2 Log : : L o g 4 p e r l −> e a s y i n i t ( ) ;3 INFO ( ” S t a r t e $0 ” ) ;4 p r i n t ” H a l l o Welt ! n” ;5 INFO ( ” Beende $0 ” ) ; Ausgabe1 2011/08/20 1 5 : 3 1 : 2 1 S t a r t e h a l l o w e l t . p l2 H a l l o Welt !3 2011/08/20 1 5 : 3 1 : 2 1 Beende h a l l o w e l t . p l Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  33. 33. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceLoglevel im Easy Mode konfigurieren Priorit¨t/Level DEBUG a1 u s e Log : : L o g 4 p e r l qw / : e a s y / ;2 Log : : L o g 4 p e r l −> e a s y i n i t ( {3 l e v e l => $DEBUG ,4 } ); Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  34. 34. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceLayout im Easy Mode konfigurieren Layout1 u s e Log : : L o g 4 p e r l qw / : e a s y / ;2 Log : : L o g 4 p e r l −> e a s y i n i t ( {3 l e v e l => $DEBUG ,4 l a y o u t =>5 ’%d [%M] %F %L> % %n ’ , } ) ; m Ausgabe1 2011/08/20 1 6 : 2 7 : 3 6 [ main : : ] hallowelt . pl 2 10> S t a r t e h a l l o w e l t . p l3 H a l l o Welt !4 2011/08/20 1 6 : 2 7 : 3 6 [ main : : ] hallowelt . pl 5 12> Beende h a l l o w e l t . p l Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  35. 35. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceAusgabemedium im Easy Mode konfigurieren Ausgabe in eine Datei1 u s e Log : : L o g 4 p e r l qw / : e a s y / ;2 Log : : L o g 4 p e r l −> e a s y i n i t ( {3 l e v e l => $DEBUG ,4 l a y o u t =>5 ’%d [%M] %F %L> % %n ’ , m6 f i l e =>7 ’>> . / t e s t . l o g ’ ,8 } ); Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  36. 36. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceSkalare Variablen Skalare Variablen werden wie gewohnt expandiert1 my $ c o u n t e r = 0 ;2 # Double Quotes3 DEBUG( ” C o u n t e r $ c o u n t e r ” ) ; Tipp: Begrenzer um Variablen setzen1 my $ c o u n t e r = 0 ;2 # Double Quotes3 DEBUG( ” C o u n t e r <$ c o u n t e r >” ) ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  37. 37. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceKonstanten Bei Konstanten kommt der Verkettungsoperator . zum Einsatz.1 u s e c o n s t a n t PI => 4 ∗ a t a n 2 ( 1 , 1 ) ;2 DEBUG( ” K o n s t a n t e PI ” . PI . ” . . . ” ) ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  38. 38. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceArrays, Hashes und komplexe Datenstrukturen Data::Dumper to the rescue Arrays, Hashes und komplexe Datenstrukturen lassen sich meist nur sinnvoll mit Data::Dumper loggen. Data::Dumper in Version 2.09 ist seit Perl 5.005 ein Coremodule. Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  39. 39. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceKleine Arrays Kleine Arrays - Expansion1 sub f o o {2 DEBUG( ” P a r a m e t e r : @ ” ) ;3 } Kleine Arrays - foreach1 my @ a r r a y = 1 . . 1 0 ;2 f o r e a c h my $ e l e m e n t ( @ a r r a y ) {3 DEBUG( ” A r r a y e l e m e n t : <$ e l e m e n t >” ) ;4 } Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  40. 40. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceArrays Arrays (langsam) dumpen1 u s e Data : : Dumper ;2 # turn o f f a l l pretty print3 $Data : : Dumper : : I n d e n t = 0 ;4 my @ a r r a y = 1 . . 1 0 ;5 TRACE( ” A r r a y : ” , Dumper ( @ a r r a y ) ) ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  41. 41. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceKleine Hashes Kleine Hashes - Expansion1 my %h as h ;2 DEBUG( ” Hash @ { [ %h a s h ] } ” ) ; Kleine Hashes - while1 w h i l e ( my ( $key , $ v a l u e ) = e a c h %h a s h ) {2 DEBUG( ” Hash : Key <$key> V a l u e <$ v a l u e >” ) ;3 } Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  42. 42. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceHashes Hashes (langsam) dumpen1 u s e Data : : Dumper ;2 # turn o f f a l l pretty print3 $Data : : Dumper : : I n d e n t = 0 ;4 my %h as h ;5 TRACE( ” Hash : ” , Dumper ( %h a s h ) ) ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  43. 43. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceNeed for Speed - message output filter format Arrays1 TRACE( ” A r r a y : ” , {2 f i l t e r => &Data : : Dumper : : Dumper ,3 v a l u e => @ a r r a y } ) ; Hashes1 TRACE( ” Hash : ” , {2 f i l t e r => &Data : : Dumper : : Dumper ,3 v a l u e => %h a s h } ) ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  44. 44. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceMessage output filter format Message output filter format Log::Log4perl wird die filter Funktion, erst dann aufrufen, wenn die Nachricht wirklich in einen Appender geschrieben wird. Die filter Funktion erwartet eine Referenz auf ein Unterprogramm, welches den Dump ausf¨hrt, und eine u Referenz auf die zu loggende Datenstruktur. Spart sp¨rbar Rechenzeit und Hauptspeicher. u Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  45. 45. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceDump Profiling Beispielprogramm 1 my %h as h = ( ) ; 2 f o r ( 1 . . 10 0 0 0 ) { 3 $ has h { $ } = 1 ; 4 } 5 6 w h i l e ( my ( $key , $ v a l u e ) = e a c h %h a s h ) { 7 TRACE( ” Hash : Key <$key> V a l u e <$ v a l u e >” ) ; 8 } 9 TRACE( ” Hash : ” , Dumper ( %h a s h ) ) ;10 TRACE( ” Hash : ” , {11 f i l t e r => &Data : : Dumper : : Dumper ,12 v a l u e => %h a s h } ) ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  46. 46. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceDump Profiling - Konfiguriertes Level TRACE Konfiguriertes Level TRACE d.h., es soll geloggt werden. Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  47. 47. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceDump Profiling - Konfiguriertes Level INFO Konfiguriertes Level INFO d.h., es soll nicht geloggt werden. Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  48. 48. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceKonfiguration Appender Konfiguration entscheidet, wie sich ein Logger verh¨lt. a d.h. ob wann wie wohin geloggt wird. Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  49. 49. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceEasy Mode aus Konfigurationsdatei initialisieren init()1 #! / u s r / b i n / p e r l2 use s t r i c t ;3 use warnings ;4 u s e Log : : L o g 4 p e r l qw / : e a s y / ;5 Log : : L o g 4 p e r l −> i n i t ( ’ l 4 p . c o n f ’ )6 or die $ ! ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  50. 50. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceKonfigurationsdatei Beispiel Log::Log4perl Konfigurationsdatei1 log4perl . logger = TRACE, A12 l o g 4 p e r l . a p p e n d e r . A1 3 = Log : : D i s p a t c h : : F i l e4 l o g 4 p e r l . a p p e n d e r . A1 . f i l e n a m e = ./ test . log5 l o g 4 p e r l . a p p e n d e r . A1 . mode = append6 l o g 4 p e r l . a p p e n d e r . A1 . l a y o u t 7 = Log : : L o g 4 p e r l : : L a y o u t : : P a t t e r n L a y o u t8 l o g 4 p e r l . a p p e n d e r . A1 . l a y o u t . C o n v e r s i o n P a t t e r n 9 = %d %p> %F{1}:%L % − % %n M m Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  51. 51. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceFehlende Konfigurationsdateien 1 Try1 u s e Log : : L o g 4 p e r l qw / : e a s y / ;2 my $ l o g 4 p c f g f i l e = ’ /tmp/XXXXX . c f g ’ ;34 # t r y to i n i t with a c o n f i g f i l e5 eval {6 Log : : L o g 4 p e r l −> i n i t ( $ l o g 4 p c f g f i l e )7 or die ” Error $ l o g 4 p c f g f i l e − $ ! ” ;8 }; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  52. 52. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceFehlende Konfigurationsdateien 2 Catch: 1 # c a t c h e r r o r s from i n i t and u s e a s i m p l e 2 # c o n f i g u r a t i o n , s e n d i n g e v e r y message t o 3 # STDERR 4 i f ( $@ ) { 5 Log : : L o g 4 p e r l −> e a s y i n i t ( { 6 ’ l e v e l ’ => $DEBUG , 7 ’ l a y o u t ’ => ”%d %p> %F { 1 } : %L % − % %n” , M m 8 } ); 9 WARN( ” F a l l i n g back t o e a s y c o n f i g u r a t i o n ! ” ) ;10 } Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  53. 53. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages Performanceinit once - nur ein einziges Mal initialisieren init once() - Nur initialisieren, falls noch nicht initialisiert1 # I n i t o r s k i p i f a l r e a d y done2 Log : : L o g 4 p e r l −>i n i t o n c e ( $ l o g 4 p c f g f i l e ) ; mod perl Entweder in der startup.pl initialisieren oder init once() verwenden. Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  54. 54. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages Performanceinit and watch - Konfiguration im laufendem Betrieb¨ndern.a init and watch() - zeitgesteuert.1 my $ d e l a y = 3 0 0 ; # s e c o n d s2 Log : : L o g 4 p e r l −>i n i t a n d w a t c h (3 $ l o g 4 p c f g f i l e , $delay ); init and watch() - signalgesteuert.1 Log : : L o g 4 p e r l −>i n i t a n d w a t c h (2 $ l o g 4 p c f g f i l e , ’HUP ’ ) ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  55. 55. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceLogdateien rotieren Log::Log4perl Konfigurationsdatei 1 log4perl . logger = TRACE, A1 2 # Appender A1 3 l o g 4 p e r l . a p p e n d e r . A1 = Log : : D i s p a t c h : : F i l e R o t a t e 4 l o g 4 p e r l . a p p e n d e r . A1 . max = 10 5 l o g 4 p e r l . a p p e n d e r . A1 . s i z e = 20 0 0 0 6 l o g 4 p e r l . a p p e n d e r . A1 . f i l e n a m e = . / l o g s / l o g f i l e . l o g 7 l o g 4 p e r l . a p p e n d e r . A1 . mode = append 8 l o g 4 p e r l . a p p e n d e r . A1 . l a y o u t 9 = Log : : L o g 4 p e r l : : L a y o u t : : P a t t e r n L a y o u t10 l o g 4 p e r l . a p p e n d e r . A1 . l a y o u t . C o n v e r s i o n P a t t e r n 11 = %d %p> %F{1}:%L % − % %n M m Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  56. 56. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceLogs per E-Mail versenden Log::Log4perl Konfigurationsdatei1 log4perl . logger = TRACE, M a i l e r2 l o g 4 p e r l . appender . Mailer = Log : : D i s p a t c h : : E m a i l : : M a i l S e n d3 l o g 4 p e r l . appender . Mailer . to = your@email . address4 l o g 4 p e r l . appender . Mailer . s u b j e c t = My Program N o t i c e5 l o g 4 p e r l . appender . Mailer . b u f f e r e d = 16 l o g 4 p e r l . appender . Mailer . l a y o u t 7 = Log : : L o g 4 p e r l : : L a y o u t : : P a t t e r n L a y o u t8 l o g 4 p e r l . appender . Mailer . l a y o u t . ConversionPattern 9 = %d %p> %F{1}:%L % − % %n M m Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  57. 57. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceLogdateien rotieren und FATALs per E-Mail versenden 1 Log::Log4perl Konfigurationsdatei 1 1 log4perl . logger = TRACE, A1 , M a i l e r 2 # Appender A1 3 l o g 4 p e r l . a p p e n d e r . A1 4 = Log : : D i s p a t c h : : F i l e R o t a t e 5 l o g 4 p e r l . a p p e n d e r . A1 . max = 10 6 l o g 4 p e r l . a p p e n d e r . A1 . s i z e = 20 0 0 0 7 l o g 4 p e r l . a p p e n d e r . A1 . f i l e n a m e = . / l o g s / l o g f i l e . l o g 8 l o g 4 p e r l . a p p e n d e r . A1 . mode = append 9 l o g 4 p e r l . a p p e n d e r . A1 . l a y o u t 10 = Log : : L o g 4 p e r l : : L a y o u t : : P a t t e r n L a y o u t11 l o g 4 p e r l . a p p e n d e r . A1 . l a y o u t . C o n v e r s i o n P a t t e r n 12 = %d %p> %F{1}:%L % − % %n M m Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  58. 58. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceLogdateien rotieren und FATALs per E-Mail versenden 2 Log::Log4perl Konfigurationsdatei 2 1 # Mailer 2 l o g 4 p e r l . appender . Mailer 3 = Log : : D i s p a t c h : : E m a i l : : M a i l S e n d 4 l o g 4 p e r l . appender . Mailer . to 5 = your@email . address 6 l o g 4 p e r l . appender . Mailer . s u b j e c t 7 = My Program N o t i c e 8 l o g 4 p e r l . appender . Mailer . b u f f e r e d = 1 9 l o g 4 p e r l . appender . Mailer . m i n l e v e l = f a t a l10 l o g 4 p e r l . appender . Mailer . l a y o u t 11 = Log : : L o g 4 p e r l : : L a y o u t : : P a t t e r n L a y o u t12 l o g 4 p e r l . appender . Mailer . l a y o u t . ConversionPattern 13 = %d %p> %F{1}:%L % − % %n M m Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  59. 59. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceSyslog Log::Log4perl Konfigurationsdatei1 log4perl . logger = TRACE, S y s l o g23 l o g 4 p e r l . appender . Syslog = Log : : D i s p a t c h : : S y s l o g4 l o g 4 p e r l . appender . Syslog . i d e n t = MyIdent5 l o g 4 p e r l . appender . Syslog . f a c i l i t y = user6 l o g 4 p e r l . appender . Syslog . l a y o u t 7 = Log : : L o g 4 p e r l : : L a y o u t : : P a t t e r n L a y o u t8 l o g 4 p e r l . appender . Syslog . l a y o u t . ConversionPattern 9 = %d %p> %F{1}:%L % − % %n M m Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  60. 60. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceLoggen in eine Datenbank 1 Datenbank und Loggingtabelle erstellen 1 create database logs ; 2 u l o g s 3 create table L ( 4 i d BIGINT u n s i g n e d AUTO INCREMENT NOT NULL , 5 d a t e DATETIME , 6 l o g l e v e l VARCHAR( 2 0 ) , 7 c a t e g o r y VARCHAR( 2 5 5 ) , 8 f i l e VARCHAR( 2 5 5 ) , 9 l i n e INT ( 1 0 ) UNSIGNED ,10 message TEXT,11 PRIMARY KEY( i d ) ) ; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  61. 61. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceLoggen in eine Datenbank 2 Log::Log4perl Konfigurationsdatei 11 log4perl . logger = TRACE, DB2 l o g 4 p e r l . a p p e n d e r .DB = 3 Log : : L o g 4 p e r l : : Appender : : DBI4 l o g 4 p e r l . a p p e n d e r .DB. l a y o u t = 5 Log : : L o g 4 p e r l : : L a y o u t : : P a t t e r n L a y o u t6 l o g 4 p e r l . a p p e n d e r .DB. d a t a s o u r c e = 7 DBI : m y s q l : l o g s : l o c a l h o s t8 l o g 4 p e r l . a p p e n d e r .DB. username = loguser9 l o g 4 p e r l . a p p e n d e r .DB. p a s s w o r d = geheym Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  62. 62. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceLoggen in eine Datenbank 3 Log::Log4perl Konfigurationsdatei 2 1 l o g 4 p e r l . a p p e n d e r .DB. s q l = insert into L 2 ( d at e , l o g l e v e l , c a t e g o r y , f i l e , l i n e , message ) 3 VALUES ( ? , ? , ? , ? , ? , ? ) 4 l o g 4 p e r l . a p p e n d e r .DB. params . 1 = %d 5 l o g 4 p e r l . a p p e n d e r .DB. params . 2 = %p 6 l o g 4 p e r l . a p p e n d e r .DB. params . 3 = %c 7 l o g 4 p e r l . a p p e n d e r .DB. params . 4 = %F 8 l o g 4 p e r l . a p p e n d e r .DB. params . 5 = %L 9 l o g 4 p e r l . a p p e n d e r .DB. params . 6 =% m10 # For e f f i c i e n c y s a k e l o g o n l y a f t e r n m e s s a g e s11 #l o g 4 p e r l . a p p e n d e r .DB. b u f f e r S i z e = 3 Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  63. 63. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceLoggen in eine XML-Datei Log::Log4perl Konfigurationsdatei1 l o g 4 p e r l . l o g g e r = WARN, A12 l o g 4 p e r l . a p p e n d e r . A1 = 3 Log : : L o g 4 p e r l : : Appender : : F i l e4 l o g 4 p e r l . a p p e n d e r . A1 . f i l e n a m e = l o g . xml5 l o g 4 p e r l . a p p e n d e r . A1 . l a y o u t 6 = Log : : L o g 4 p e r l : : L a y o u t : : XMLLayout7 l o g 4 p e r l . a p p e n d e r . A1 . l a y o u t . L o c a t i o n I n f o = TRUE8 l o g 4 p e r l . a p p e n d e r . A1 . l a y o u t . E n c o d i n g = i s o 8 8 5 9 −1 XML kann von Logviewern wie z.B. Chainsaw oder Lilith gelesen werden Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  64. 64. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceChainsaw Bildnachweis: http://logging.apache.org/chainsaw/index.html Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  65. 65. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceLilith Bildnachweis: http://sourceforge.net/projects/lilith/ Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  66. 66. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceLog::Lop4perl in Packages Packages 1 p a c k a g e Foo ; 2 use s t r i c t ; 3 use warnings ; 4 u s e Log : : L o g 4 p e r l qw / : e a s y / ; 5 6 sub f o o { 7 my $ b a r = s h i f t @ ; 8 DEBUG( ” F o o i n g <$bar>” ) ; 9 # . . . do s o m e t h i n g10 }11 1; Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  67. 67. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceLog::Lop4perl in Packages In Packages wird nicht initialisiert wird nicht konfiguriert werden Log Priorit¨ten vergeben a Stealth (engl. Heimlichkeit) Wenn ein Logger nicht durch ein Programm initialisiert wird, wird der Logging Code im Package nicht ausgef¨hrt. u Das hat den Charme, das man auch Pakete Log::Log4perl f¨hig machen kann, ohne treibende Programme zu ¨nderen. a a Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  68. 68. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformanceWorkflow Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  69. 69. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Basics Datenstrukturen Appender Packages PerformancePerformance Je mehr geloggt wird, desto schlechter die Performance Loglevel WARN f¨r produktive Systeme u Loglevel ERROR f¨r produktive Systeme mit hoher Last u Spezielle Konfigurationen nutzen, falls spezielle Probleme gel¨st werden m¨ssen o u Ein Profiler wie Devel::NYTProf ist hilfreich Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  70. 70. Einleitung Grundlagen Stealth-Logger Resourcen Fragen RTFM Vortr¨ge Artikel Recommended Readings aRTFM Log::Log4perl wird mit umfangreicher Dokumentation ausgeliefert. The log4perl project – log4j for Perl http://mschilli.github.com/log4perl/ Manual http://search.cpan.org/perldoc?Log::Log4perl FAQ http://search.cpan.org/perldoc?Log::Log4perl::FAQ Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  71. 71. Einleitung Grundlagen Stealth-Logger Resourcen Fragen RTFM Vortr¨ge Artikel Recommended Readings aArtikel Michael Schilli Logging nach Bedarf mit Log::Log4perl - Wachsame Schl¨fer a http://www.linux-magazin.de/heft_abo/ausgaben/ 2003/01/wachsame_schlaefer Retire your debugger, log smartly with Log::Log4perl! http: //www.perl.com/pub/a/2002/09/11/log4perl.html Praktisch jeder Artikel im Linux-Magazin - Entwicklung - Perl http://www.linux-magazin.de/Themengebiete/ Entwicklung/Perl Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  72. 72. Einleitung Grundlagen Stealth-Logger Resourcen Fragen RTFM Vortr¨ge Artikel Recommended Readings aArtikel Diverse Autoren brian d foy: Mastering Perl: Logging http://www252.pair.com/comdog/mastering_perl/ Chapters/13.logging.html Horshack’s Log4perl Page http://lena.franken.de/perl_hier/log4perl.html Kennedy Clark: Using Catalyst with Log4perl http://www.catalystframework.org/calendar/2006/11 Patrick H. Piper: 8 Useful Log::Log4perl Recipes http://netlinxinc.com/netlinx-blog/52-perl/ 126-eight-loglog4perl-recipes.html Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  73. 73. Einleitung Grundlagen Stealth-Logger Resourcen Fragen RTFM Vortr¨ge Artikel Recommended Readings aVortr¨ge a Michael Schilli Log4perl: the Only Logging System You’ll Ever Need - OSCON 2008 http://mschilli.github.com/log4perl/l4p.ppt Talk at YAPC 2007 (Houston, TX) - Smart Logging with Log4perl: http://perlmeister.com/log4perl_yapc.html Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  74. 74. Einleitung Grundlagen Stealth-Logger Resourcen Fragen RTFM Vortr¨ge Artikel Recommended Readings aVortr¨ge a Diverse Autoren Madmongers - Logging http://www.madmongers.org/uploads/Mc/oB/ McoBWGNx-nYiEpqQfYz4kA/logging---madmongers.pdf WebGUI TV - Logging http://www.webgui.org/wgtv/logging Ren´e B¨cker - Log::Log4perl (FrOSCon 2010) e a http://www.renee-baecker.de/vortraege.html Thomas Fahle - Log::Log4perl qw/:easy/ http://www.slideshare.net/thomasfahle/ loglog4perl-qweasy-presentation Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  75. 75. Einleitung Grundlagen Stealth-Logger Resourcen Fragen RTFM Vortr¨ge Artikel Recommended Readings alog4j zum Vergleich log4j Ceki G¨lc¨ - Short introduction to log4j u u http://logging.apache.org/log4j/1.2/manual.html Apache log4jTM http://logging.apache.org/log4j/ Vipan Singla - Don’t Use System.out.println! Use Log4j http://www.vipan.com/htdocs/log4jhelp.html Logback Project - intended as a successor to the popular log4j project - http://logback.qos.ch/ Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  76. 76. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Fragen Danke! Perl.orgFragen? Fragen? Fragen! Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  77. 77. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Fragen Danke! Perl.orgVielen Dank! Danke! Vielen Dank! Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u
  78. 78. Einleitung Grundlagen Stealth-Logger Resourcen Fragen Fragen Danke! Perl.orgPerl.org When you need Perl think Perl.org http://www.Perl.org http://learn.Perl.org http://blogs.Perl.org http://jobs.Perl.org Flexible & Powerful That’s why we love Perl! Thomas Fahle Easy Logging Einf¨hrung in Log::Log4perl qw/:easy/ u

×