Thread Problem bei Textverarbeitung: Logfile -> JSON. Problem mit Gruppierung.
(0 answers)
Opened by roooot at 2009-04-16 13:51
Hallo Leute.
Folgendes: Mein Logfile sieht so aus: Code: (dl
)
1 2009-04-16 13:13:31 - 141.30.***.*** - SID:991bc2f453756b37348835ec3d4d968b [NOTE] user_login - uid #1 Nun habe ich einen Code entwickelt um diesen zuerst nach Datum und anschließend nach SID zu gruppieren. Das gibt folgendes JSON aus: Code: (dl
)
1 "log_data" : { Nun stehe ich vor dem Problem, das die [INFO] Children von [NOTE] sind. Und daher sollen sie auch bei der Umwandlung zu einem JSON File als children Tag in den [NOTE] geschrieben werden, bei dem der zuvorgehende Tag eine ähnliche "msg" hat. Beispielsweise admin_login ist das Eltern Element zu admin_login_detail. Also soll bei admin_login ein children mit den admin_login_detail (können mehrere sein) mit gleichen Schema wie oben erstellt werden. Nun verlange ich von euch keine Problemlösung, sondern Anregungen wie ich vorgehen kann. Vielen Dank im Vorraus Hier mein Code, mit dem ich das obige Json erstelle: 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 23 24 25 26 27 28 29 30 31 32 my %hash_sorted_by_day; for my $line (@logfile) { my %tmphash; my ($logdate, $logtime, $logip, $logsid, $logtype, $logmsg) = $line =~ m/([\d-]{10}) # date \s # _blank ([\d:]{8}) # time \s-\s # _divider ([\d\.]+) # IP \s-\s # _divider SID:([a-zA-Z0-9]{32}) # sid \s # _blank \[([A-Z]+)\] # LogType \s # _blank (.*)/xms; # message $tmphash{'time'} = $logtime; $tmphash{'ip'} = $logip; $tmphash{'type'} = $logtype; $tmphash{'msg'} = $logmsg; my @tmparray = defined $hash_sorted_by_day{$logdate}{$logsid} ? @{$hash_sorted_by_day{$logdate}{$logsid}} : () ; push (@tmparray, \%tmphash); $hash_sorted_by_day{$logdate}{$logsid} = \@tmparray; }; Last edited: 2009-04-16 13:55:12 +0200 (CEST) Viele Grüße :)
|