SlideShare una empresa de Scribd logo
1 de 67
use Log::Log4perl qw(:easy); ,[object Object],Thomas Fahle – Frankfurter Perl-Workshop 2008
[object Object],[object Object],[object Object],[object Object],[object Object],Log:Log4perl
Prioritäten
[object Object],Prioritäten
Prioritätslevel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],Priorität Trace
[object Object],[object Object],Priorität Debug
[object Object],[object Object],Priorität Info
[object Object],[object Object],Priorität Warn
[object Object],[object Object],Priorität Error
[object Object],[object Object],Priorität Fatal
Prioritäten konfigurieren ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Prioritäten - Geschwätzige Konfiguration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Prioritäten - Schweigsame Konfiguration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Appender
Appender ,[object Object],[object Object]
Log::Log4perl Appender ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Log::Dispatch Appender ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Layouts
Layouts ,[object Object],[object Object]
Layouts - Formatierungsanweisungen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Betriebsmodi
Easy vs. Standard Mode ,[object Object],[object Object],[object Object],[object Object],[object Object]
Easy Mode (Stealth-Logger) ,[object Object]
Easy Mode inititialisieren ,[object Object],[object Object],[object Object],[object Object],[object Object]
Easy Mode mit Konfigurationsdatei inititialisieren ,[object Object],[object Object],[object Object],[object Object],[object Object]
Automatisch importierte Funktionen qw/:easy/ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Automatisch importierte Konstanten qw/:easy/ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Log::Log4perl->easy_init() ,[object Object],[object Object],[object Object],[object Object],[object Object]
Hallo Welt im Easy Mode ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ausgabe - Hallo Welt im Easy Mode ,[object Object],[object Object],[object Object],[object Object]
Loglevel im Easy Mode konfigurieren ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Layout im Easy Mode konfigurieren ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ausgabe - Hallo Welt im Easy Mode mit geändertem Layout ,[object Object],[object Object],[object Object]
Ausgabemedium im Easy Mode konfigurieren ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Stealth-Logger  in Modulen
Einfaches Package ohne Log::Log4perl package  Person ; use  strict; use   warnings ; sub  new  {  bless ( {} ,  shift  ) ; } sub  vorname  { my   $self  =  shift ; $self-> { 'Vorname' } =  shift   if   @_ ; warn   "Vorname nicht definiert"   unless   $self-> { 'Vorname' }; return   $self-> { 'Vorname' }; } 1  ;
Einfaches Treiberprogramm ohne Log::Log4perl #!/usr/bin/perl  use  strict; use   warnings ; use  Person; my   $person  = Person->new(); $person->vorname ( 'Hans' ); $person->nachname ( 'Meier' );
Einfaches Package mit Log::Log4perl package  Person ; use  strict; use   warnings ; use  Log::Log4perl  qw/:easy/ ; sub  new  {  bless ( {} ,  shift  ) ; } sub  vorname  { my   $self  =  shift ; $self-> { 'Vorname' } =  shift   if   @_ ; WARN( "Vorname nicht definiert" ) unless   $self-> { 'Vorname' }; return   $self-> { 'Vorname' }; } 1  ;
Einfaches Treiberprogramm mit Log::Log4perl ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Merke Im Paket legt der/die Programmierer(in) fest, was mit welcher Priorität geloggt werden kann. Die Konfiguration erfolgt stets im Anwendungs-programm.
Konfigurationsdateien
Vorteile Konfigurationsdateien ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Einfaches Treiberprogramm mit Konfigurationsdatei ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Beispiel - Konfigurationsdatei log4perl.logger=TRACE, A1 log4perl.appender.A1=Log::Dispatch::File log4perl.appender.A1.filename=./person.log log4perl.appender.A1.mode=append log4perl.appender.A1.layout= Log::Log4perl::Layout::PatternLayout log4perl.appender.A1.layout.ConversionPattern=  %d %p> %F{1}:%L %M - %m%n
Konfigurationsdatei (Root Looger) log4perl. logger =TRACE, A1 log4perl.appender.A1=Log::Dispatch::File log4perl.appender.A1.filename=./person.log log4perl.appender.A1.mode=append log4perl.appender.A1.layout= Log::Log4perl::Layout::PatternLayout log4perl.appender.A1.layout.ConversionPattern=  %d %p> %F{1}:%L %M - %m%n Name der Kategorie (Root Logger)
Konfigurationsdatei (Log Level) log4perl.logger= TRACE , A1 log4perl.appender.A1=Log::Dispatch::File log4perl.appender.A1.filename=./person.log log4perl.appender.A1.mode=append log4perl.appender.A1.layout= Log::Log4perl::Layout::PatternLayout log4perl.appender.A1.layout.ConversionPattern=  %d %p> %F{1}:%L %M - %m%n Log Level: TRACE, DEBUG, .....
Konfigurationsdatei (Log Alias Definition) log4perl.logger= TRACE ,  A1 log4perl.appender.A1=Log::Dispatch::File log4perl.appender.A1.filename=./person.log log4perl.appender.A1.mode=append log4perl.appender.A1.layout= Log::Log4perl::Layout::PatternLayout log4perl.appender.A1.layout.ConversionPattern=  %d %p> %F{1}:%L %M - %m%n Log Alias Definition
Konfigurationsdatei (Log AliasVerwendung) log4perl.logger= TRACE ,  A1 log4perl.appender. A1 =Log::Dispatch::File log4perl.appender. A1 .filename=./person.log log4perl.appender. A1 .mode=append log4perl.appender. A1 .layout= Log::Log4perl::Layout::PatternLayout log4perl.appender. A1 .layout.ConversionPattern=  %d %p> %F{1}:%L %M - %m%n Log Alias Verwendung
Konfigurationsdatei (Appender festlegen) log4perl.logger= TRACE ,  A1 log4perl.appender.A1= Log::Dispatch::File log4perl.appender.A1.filename=./person.log log4perl.appender.A1.mode=append log4perl.appender.A1.layout= Log::Log4perl::Layout::PatternLayout log4perl.appender.A1.layout.ConversionPattern=  %d %p> %F{1}:%L %M - %m%n Appender
Konfigurationsdatei (Appender konfigurieren log4perl.logger= TRACE ,  A1 log4perl.appender.A1= Log::Dispatch::File log4perl.appender.A1.filename=./person.log log4perl.appender.A1.mode=append log4perl.appender.A1.layout= Log::Log4perl::Layout::PatternLayout log4perl.appender.A1.layout.ConversionPattern=   %d %p> %F{1}:%L %M - %m%n Appender konfigurieren
Log::Log4perl in CPAN-Modulen
CPAN-Module, die Log::Log4perl bereits benutzen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Log::Log4perl in CPAN-Module einbinden ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Log::Log4perl in CPAN-Module einbinden – So einfach geht’s! ,[object Object],[object Object]
Weblinks
Links ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Artikel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Vorträge ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Fragen?
Danke! ,[object Object]
About
About Thomas Fahle ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
About Thomas Fahle - Websites ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
About Thomas Fahle – Weitere Websites ,[object Object],[object Object],[object Object],[object Object]
Sonstiges
Foliendesign ,[object Object],[object Object],[object Object]

Más contenido relacionado

Similar a Log::Log4perl qw/:easy/

Why websecurity sucks
Why websecurity sucksWhy websecurity sucks
Why websecurity sucksThaDafinser
 
Lösungsorientierte Fehlerbehandlung
Lösungsorientierte FehlerbehandlungLösungsorientierte Fehlerbehandlung
Lösungsorientierte Fehlerbehandlungroskakori
 
Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003
Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003
Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003Brigitte Jellinek
 
TYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein WissenTYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein WissenAlex Kellner
 
SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSchlomo Schapiro
 
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...NETWAYS
 
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package ManagerEinfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package ManagerLenz Grimmer
 
Check cisco voice
Check cisco voiceCheck cisco voice
Check cisco voicebboguhn
 
OSMC 2014: Plugin Entwicklung für Einsteiger | Alexander Wirt
OSMC 2014: Plugin Entwicklung für Einsteiger | Alexander WirtOSMC 2014: Plugin Entwicklung für Einsteiger | Alexander Wirt
OSMC 2014: Plugin Entwicklung für Einsteiger | Alexander WirtNETWAYS
 
PhpStorm 6 Configuration for TYPO3
PhpStorm 6 Configuration for TYPO3PhpStorm 6 Configuration for TYPO3
PhpStorm 6 Configuration for TYPO3marco-huber
 
Rex - Infrastruktur als Code
Rex - Infrastruktur als CodeRex - Infrastruktur als Code
Rex - Infrastruktur als CodeJan Gehring
 
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang BarthNagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang BarthNETWAYS
 
OSMC 2010 | Logverarbeitung mit syslog-ng - Status und Zukunft by Martin Grauel
OSMC 2010 | Logverarbeitung mit syslog-ng - Status und Zukunft by Martin GrauelOSMC 2010 | Logverarbeitung mit syslog-ng - Status und Zukunft by Martin Grauel
OSMC 2010 | Logverarbeitung mit syslog-ng - Status und Zukunft by Martin GrauelNETWAYS
 
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...NETWAYS
 
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookUlrich Krause
 
Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenExtbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenSpeedPartner GmbH
 

Similar a Log::Log4perl qw/:easy/ (20)

Web Entwicklung mit PHP - Teil 1
Web Entwicklung mit PHP - Teil 1Web Entwicklung mit PHP - Teil 1
Web Entwicklung mit PHP - Teil 1
 
Why websecurity sucks
Why websecurity sucksWhy websecurity sucks
Why websecurity sucks
 
Lösungsorientierte Fehlerbehandlung
Lösungsorientierte FehlerbehandlungLösungsorientierte Fehlerbehandlung
Lösungsorientierte Fehlerbehandlung
 
Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003
Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003
Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003
 
TYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein WissenTYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein Wissen
 
SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauen
 
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...
 
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package ManagerEinfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager
 
Check cisco voice
Check cisco voiceCheck cisco voice
Check cisco voice
 
OpenWRT - Überblick
OpenWRT - ÜberblickOpenWRT - Überblick
OpenWRT - Überblick
 
OSMC 2014: Plugin Entwicklung für Einsteiger | Alexander Wirt
OSMC 2014: Plugin Entwicklung für Einsteiger | Alexander WirtOSMC 2014: Plugin Entwicklung für Einsteiger | Alexander Wirt
OSMC 2014: Plugin Entwicklung für Einsteiger | Alexander Wirt
 
PhpStorm 6 Configuration for TYPO3
PhpStorm 6 Configuration for TYPO3PhpStorm 6 Configuration for TYPO3
PhpStorm 6 Configuration for TYPO3
 
Rex - Infrastruktur als Code
Rex - Infrastruktur als CodeRex - Infrastruktur als Code
Rex - Infrastruktur als Code
 
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang BarthNagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
 
OSMC 2010 | Logverarbeitung mit syslog-ng - Status und Zukunft by Martin Grauel
OSMC 2010 | Logverarbeitung mit syslog-ng - Status und Zukunft by Martin GrauelOSMC 2010 | Logverarbeitung mit syslog-ng - Status und Zukunft by Martin Grauel
OSMC 2010 | Logverarbeitung mit syslog-ng - Status und Zukunft by Martin Grauel
 
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
 
FLOW3-Workshop F3X12
FLOW3-Workshop F3X12FLOW3-Workshop F3X12
FLOW3-Workshop F3X12
 
Haxe & NME
Haxe & NMEHaxe & NME
Haxe & NME
 
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbook
 
Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenExtbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobieren
 

Log::Log4perl qw/:easy/

  • 1.
  • 2.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 16.
  • 17.
  • 18.
  • 20.
  • 21.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. Stealth-Logger in Modulen
  • 37. Einfaches Package ohne Log::Log4perl package Person ; use strict; use warnings ; sub new { bless ( {} , shift ) ; } sub vorname { my $self = shift ; $self-> { 'Vorname' } = shift if @_ ; warn "Vorname nicht definiert" unless $self-> { 'Vorname' }; return $self-> { 'Vorname' }; } 1 ;
  • 38. Einfaches Treiberprogramm ohne Log::Log4perl #!/usr/bin/perl use strict; use warnings ; use Person; my $person = Person->new(); $person->vorname ( 'Hans' ); $person->nachname ( 'Meier' );
  • 39. Einfaches Package mit Log::Log4perl package Person ; use strict; use warnings ; use Log::Log4perl qw/:easy/ ; sub new { bless ( {} , shift ) ; } sub vorname { my $self = shift ; $self-> { 'Vorname' } = shift if @_ ; WARN( "Vorname nicht definiert" ) unless $self-> { 'Vorname' }; return $self-> { 'Vorname' }; } 1 ;
  • 40.
  • 41. Merke Im Paket legt der/die Programmierer(in) fest, was mit welcher Priorität geloggt werden kann. Die Konfiguration erfolgt stets im Anwendungs-programm.
  • 43.
  • 44.
  • 45. Beispiel - Konfigurationsdatei log4perl.logger=TRACE, A1 log4perl.appender.A1=Log::Dispatch::File log4perl.appender.A1.filename=./person.log log4perl.appender.A1.mode=append log4perl.appender.A1.layout= Log::Log4perl::Layout::PatternLayout log4perl.appender.A1.layout.ConversionPattern= %d %p> %F{1}:%L %M - %m%n
  • 46. Konfigurationsdatei (Root Looger) log4perl. logger =TRACE, A1 log4perl.appender.A1=Log::Dispatch::File log4perl.appender.A1.filename=./person.log log4perl.appender.A1.mode=append log4perl.appender.A1.layout= Log::Log4perl::Layout::PatternLayout log4perl.appender.A1.layout.ConversionPattern= %d %p> %F{1}:%L %M - %m%n Name der Kategorie (Root Logger)
  • 47. Konfigurationsdatei (Log Level) log4perl.logger= TRACE , A1 log4perl.appender.A1=Log::Dispatch::File log4perl.appender.A1.filename=./person.log log4perl.appender.A1.mode=append log4perl.appender.A1.layout= Log::Log4perl::Layout::PatternLayout log4perl.appender.A1.layout.ConversionPattern= %d %p> %F{1}:%L %M - %m%n Log Level: TRACE, DEBUG, .....
  • 48. Konfigurationsdatei (Log Alias Definition) log4perl.logger= TRACE , A1 log4perl.appender.A1=Log::Dispatch::File log4perl.appender.A1.filename=./person.log log4perl.appender.A1.mode=append log4perl.appender.A1.layout= Log::Log4perl::Layout::PatternLayout log4perl.appender.A1.layout.ConversionPattern= %d %p> %F{1}:%L %M - %m%n Log Alias Definition
  • 49. Konfigurationsdatei (Log AliasVerwendung) log4perl.logger= TRACE , A1 log4perl.appender. A1 =Log::Dispatch::File log4perl.appender. A1 .filename=./person.log log4perl.appender. A1 .mode=append log4perl.appender. A1 .layout= Log::Log4perl::Layout::PatternLayout log4perl.appender. A1 .layout.ConversionPattern= %d %p> %F{1}:%L %M - %m%n Log Alias Verwendung
  • 50. Konfigurationsdatei (Appender festlegen) log4perl.logger= TRACE , A1 log4perl.appender.A1= Log::Dispatch::File log4perl.appender.A1.filename=./person.log log4perl.appender.A1.mode=append log4perl.appender.A1.layout= Log::Log4perl::Layout::PatternLayout log4perl.appender.A1.layout.ConversionPattern= %d %p> %F{1}:%L %M - %m%n Appender
  • 51. Konfigurationsdatei (Appender konfigurieren log4perl.logger= TRACE , A1 log4perl.appender.A1= Log::Dispatch::File log4perl.appender.A1.filename=./person.log log4perl.appender.A1.mode=append log4perl.appender.A1.layout= Log::Log4perl::Layout::PatternLayout log4perl.appender.A1.layout.ConversionPattern= %d %p> %F{1}:%L %M - %m%n Appender konfigurieren
  • 53.
  • 54.
  • 55.
  • 57.
  • 58.
  • 59.
  • 61.
  • 62. About
  • 63.
  • 64.
  • 65.
  • 67.