index 256c310f232a0dd13d10d51b1e6c6b5d99ab0a2e..7a7cd5e74946c7afbbd245e4f4396a7615d99d9d 100755 (executable)
use strict;
use warnings;
use Getopt::Long;
+use Data::Dumper;
+my $pattern;
my $log_file = "/var/log/gosa-si-server.log";
-my $within_session = 0;
-my $within_incoming = 0;
-my $session;
-my $incoming;
-sub check_incoming {
- my ($line) = @_ ;
- my @line_list = split(" ", $line);
-
- # new incoming msg, set all values back to default
- if ($line =~ /INFO: Incoming msg with session ID \d+ from/ ) {
- $within_incoming = 0;
- }
-
- if ($line =~ /INFO: Incoming msg with session ID \d+ from '$incoming'/) {
- $within_incoming = 1;
- return $line;
- } else {
- if ($within_incoming) {
- return $line;
- } else {
- return;
- }
- }
-}
-
-sub check_session {
- my ($line) = @_ ;
- my @line_list = split(" ", $line);
-
- if (not $line_list[4]) {
- if ($within_session) {
- return $line;
- }
- return;
- }
-
- if($line_list[4] eq $session) {
- $within_session = 1;
- return $line;
- } else {
- $within_session = 0;
- }
- return;
-}
### MAIN ######################################################################
GetOptions(
- "s|session=s" => \$session,
- "i|incoming=s" => \$incoming,
+ "p|pattern=s" => \$pattern,
);
-# check script pram
-my $check_script_pram = 0;
-if (defined $session) {
- print "session: $session\n";
- $check_script_pram++;
-}
-if (defined $incoming) {
- print "incoming msg for mac: $incoming\n";
- $check_script_pram++;
-}
-
-if ($check_script_pram == 0) {
- # print usage and die
- print "exiting script\n";
- exit(0);
-}
+open(FILE, "<$log_file") or die "\ncan not open log-file '$log_file'\n";
+my @lines;
+my $messages = {};
-open(FILE, "<$log_file") or die "\t can not open log-file";
# Read lines
-my $line;
-while ($line = <FILE>){
+while ( my $line = <FILE>){
chomp($line);
- my $line2print;
- if (defined $session && (not defined $incoming)) {
- $line2print = &check_session($line);
-
- } elsif (defined $incoming && (not defined $session)) {
- $line2print = &check_incoming($line);
-
- } elsif ((defined $incoming) && (defined $session)) {
- my $line1 = &check_session($line);
- my $line2 = &check_incoming($line);
- if ((defined $line1) && (defined $line2)) {
- $line2print = $line;
- }
- }
+
+ # start of a new message, plot saved log lines
+ if ($line =~ /$pattern/ ) {
+ print "$line\n";
+ }
- # printing
- if (defined $line2print) {
- print "$line\n";
- }
-
}
-
-
+close FILE;