Thread Laufzeiten anhand von Logfileeinträge ermitteln
(11 answers)
Opened by wiederlader at 2007-11-29 14:50
Hallo Zusammen,
nachdem ich schon längere Zeit nichts mehr mit Perl gemacht habe steht eine neue Herausforderung an. Leider tue ich mich damit ziemlich schwer. Ich habe ein Logfile "logfile.txt" (wird täglich neu geschrieben) dass wie folgt aufgebaut ist (in der ersten Zeile steht immer nur das Datum): 17.11.2007 17.11.2007 06:02:42 START Clients = 2 17.11.2007 06:02:42 Login=T718052 ActionId=1-VIDCK8 GF=Bereitstellung 17.11.2007 06:02:42 lese TSAM Felder 17.11.2007 06:02:43 Datei erzeugt: 1VIDCK8.xml 17.11.2007 06:02:43 SID anfragen 17.11.2007 06:02:44 SID fertig = 00000011952757638269 17.11.2007 06:02:44 lese TSAM Felder fertig 17.11.2007 06:02:44 STOPP 17.11.2007 06:04:19 START Clients = 2 17.11.2007 06:04:19 Login=T718756 ActionId=1-VIDCL4 GF=Bereitstellung 17.11.2007 06:04:19 lese TSAM Felder 17.11.2007 06:04:21 Datei erzeugt: 1VIDCL4.xml 17.11.2007 06:04:21 SID anfragen 17.11.2007 06:04:25 SID fertig = 00000119527586128810 17.11.2007 06:04:25 lese TSAM Felder fertig 17.11.2007 06:04:25 STOPP Im Logfile werden pro Bearbeitung 8 Zeilen (von START bis STOPP) geschrieben. Ich möchte jetzt für jede Bearbeitung die Laufzeit zwischen dem Step "SID anfragen" und "SID fertig" ermitteln und wie folgt ausgeben: Login=T718052 ActionId=1-VIDCK8 GF=Bereitstellung > 1 Sekunde(n) Login=T718756 ActionId=1-VIDCL4 GF=Bereitstellung > 4 Sekunde(n) Mir fehlt einfach die Idee wie ich die Auswertung umsetzten kann. Ich bin schon mal wie folgt angefangen, habe mich aber festgefahren. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #!perl -w use strict; use warnings; my $KWS_Logfile = "D:/logfile.txt"; open KWS_LOGFILE, "<$KWS_Logfile"; my @kws_logfile = <KWS_LOGFILE>; close KWS_LOGFILE; my $logfile_date = shift(@kws_logfile); # erste Zeile entfernen und in Scalar übergeben chomp @kws_logfile; # Alle Newline-Zeichen entfernen my $Spalten_Logfile = "D:/logfile_spalten.txt"; open SPALTEN_LOGFILE, ">$Spalten_Logfile"; foreach (@kws_logfile) { my $spalten = join ";", @kws_logfile[0..7]; print SPALTEN_LOGFILE "$spalten\n"; foreach (0..7) { shift(@kws_logfile) } } Kann mir vielleicht jemand einen Tipp geben wie ich weiter vorgehen könnte bzw. wie man die Sache anpacken muss. DANKE Gruß Markus |