Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7887[/thread]

bestimmte einträge aus einem logfile auslesen



<< >> 7 Einträge, 1 Seite
mr-sansibar
 2006-04-13 00:46
#64841 #64841
User since
2006-04-13
90 Artikel
BenutzerIn
[default_avatar]
Hallo !
Bin neu im Gebiet Perl-Programmierung.

Mein Problem ist ich möchte aus einem Log-File bestimmte Einträge, wie z.B den Eintrag: "Severity: Error" suchen und den text-blöck wo er gefunden wurde in eine andere Txt-Datei kopieren.

Ich hoffe könnte mein Problem einigermassen gut zeigen.

Danke...


[B]Ein ausschnitt aus der Log-Datei:

Date: 11.04.2006
Time: 06:17:39.074
Severity: Debug
Thread: ExecuteThread: '29' for queue: 'MessageBrokerQueue'
Class: de.deka.techarch.MessageBrokerSV
Method: authenticate
Location: MessageBrokerSV.java:851
Message: Entering method : <oid>de.deka.techarch.MessageBrokerSV@1273129</oid> : authenticate started

Date: 11.04.2006
Time: 06:17:39.212
Severity: Error
Thread: ExecuteThread: '29' for queue: 'MessageBrokerQueue'
Class: de.deka.techarch.MessageBrokerSV
Method: authenticate
Location: MessageBrokerSV.java:903
Message: authenticate failed
StackTrace:
javax.naming.AuthenticationException: BusinessServiceException: [msg: Bei der Verarbeitung sind fachliche Fehler aufgetreten. - code: DNFFSY0001] ValidationErrors [1 error(s)]: Error occured [code: DNFFGL0009 - msg: Die von Ihnen angegebenen Login-Daten sind nicht korrekt. Bitte versuchen Sie es erneut! (Hinweis: Bei dreimaliger Falscheingabe Ihres Kennwortes wird Ihr Zugang gesperrt.)]; [uuid: b8e9c5dc-34fd-4ad1-b9f7-3681b68e030b]
at de.deka.techarch.MessageBrokerSV.authenticate(MessageBrokerSV.java:891)
at de.deka.techarch.MessageBrokerSV.processRequest(MessageBrokerSV.java:267)
at de.deka.techarch.MessageBrokerSV.doPost(MessageBrokerSV.java:445)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6354)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3635)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)


Date: 11.04.2006
Time: 06:17:39.227
Severity: Warning
Thread: ExecuteThread: '29' for queue: 'MessageBrokerQueue'
Class: de.deka.techarch.MessageBrokerSV
Method: processFailedLogin
Location: MessageBrokerSV.java:533
Message: <oid>de.deka.techarch.MessageBrokerSV@1273129</oid><cid>E7tj9yCfvvqBIXelKT66VDQF41KX9WAHAr32TJQRYk5vnlKLVQdM!1847602308!-59970917!1144729059045</cid> : Message broker rejected request. The user could not be authenticated in the abaXX realm. Caused by: javax.naming.AuthenticationException [BusinessServiceException: [msg: Bei der Verarbeitung sind fachliche Fehler aufgetreten. - code: DNFFSY0001] ValidationErrors [1 error(s)]: Error occured [code: DNFFGL0009 - msg: Die von Ihnen angegebenen Login-Daten sind nicht korrekt. Bitte versuchen Sie es erneut! (Hinweis: Bei dreimaliger Falscheingabe Ihres Kennwortes wird Ihr Zugang gesperrt.)]; [uuid: b8e9c5dc-34fd-4ad1-b9f7-3681b68e030b]]

Date: 11.04.2006
Time: 06:17:39.513
Severity: Debug
Thread: ExecuteThread: '29' for queue: 'MessageBrokerQueue'
Class: de.deka.techarch.MessageBrokerSV
Method: doPost
Location: MessageBrokerSV.java:482
Message: Exiting method : <oid>de.deka.techarch.MessageBrokerSV@1273129</oid><cid>E7tj9yCfvvqBIXelKT66VDQF41KX9WAHAr32TJQRYk5vnlKLVQdM!1847602308!-59970917!1144729059045</cid>
Ronnie
 2006-04-13 01:08
#64842 #64842
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Mal ein kleines unvollständiges Beispiel. Zuerst alle "Blöcke" in ein Hash/Dictionary lesen und in einem Array ablegen. Dann das Array abklappern und die Elemente (aus den Hashes) raussuchen auf die das Filterkriterium zutrifft. Gibt natürlich viele andere Möglichkeiten.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/perl

use strict;
use warnings;

use Data::Dumper;

my @entries;
my @filtered;

my $event = {};
while (<>) {
chomp;

unless ($_) {
push @entries, $event if keys %$event;
$event = {};
next;
}

if (/^(\w+):\s?(.+)$/) {
$event->{$1} = $2;
} else {
$event->{msg_text} .= $_."\n";
}
}

@filtered = grep { $_->{Severity} =~ /Error/ } @entries;

die Dumper \@filtered;

Aufruf via:
Code: (dl )
$ perl skript.pl logfile.txt
\n\n

<!--EDIT|Ronnie|1144876210-->
renee
 2006-04-13 11:11
#64843 #64843
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mein Vorschlag:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

my @entries;

{
local $/ = "\n\n";
open(my $fh,'<',$ARGV[0]) or die $!;
while(my $entry = <$fh>){
push(@entries,$entry) if($entry =~ /Severity: Error/s);
}
close $fh;
}

print Dumper(\@entries);


Aufruf wie bei Ronnie
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Ronnie
 2006-04-13 11:34
#64844 #64844
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
local $/ = "\n\n";

@renee: Das ist 'ne gute Idee. Da hätte ich auch dran denken können. Für den beabsichtigten Zweck ist deine Lösung wahrscheinlich auch sinnvoller. Ich mag einfach AoH zu sehr, weil ich die dann direkt an HTML::Template verfüttern kann. *lacht*
pq
 2006-04-13 12:21
#64845 #64845
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
habe mal den termin deaktiviert.
kann bitte jemand von den admins mal den text ändern oder die option "zum kalender hinzufügen" ganz nach unten verschieben? der kalender ist für ereignisse gedacht, nicht für fragen...
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
mr-sansibar
 2006-04-13 12:50
#64846 #64846
User since
2006-04-13
90 Artikel
BenutzerIn
[default_avatar]
danke für deine hilfe.
da ich nicht so viel ahnung habe mit perl, muss ich mir einige zeilen mal anschauen, was die so genau machen.
renee
 2006-04-13 13:14
#64847 #64847
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Bei Fragen kannst Du Dich ja vertrauensvoll an uns wenden ;)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 7 Einträge, 1 Seite



View all threads created 2006-04-13 00:46.