Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
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.722 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Technologie, Business
  • Als Erste(r) kommentieren

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

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

×