]> granicus.if.org Git - pgbadger/commitdiff
Change regex on log parser to allow missing ending space in log_line_prefix. This...
authorDarold Gilles <gilles@darold.net>
Tue, 24 Jul 2012 09:22:31 +0000 (11:22 +0200)
committerDarold Gilles <gilles@darold.net>
Tue, 24 Jul 2012 09:22:31 +0000 (11:22 +0200)
pgbadger

index 961d77768bb52b175bce1b79af4aaa56a8071f9a..26cf60f061ab66d491c319595a9dffe55281ad82 100755 (executable)
--- a/pgbadger
+++ b/pgbadger
@@ -419,7 +419,7 @@ foreach $logfile (@log_files) {
                if ($format eq 'syslog') {
 
                        if ($line =~
-                               /^(...)\s+(\d+)\s(\d+):(\d+):(\d+)\s([^\s]+)\s([^\[]+)\[(\d+)\]:\s\[([0-9\-]+)\]\s*([^:]*)\s+([A-Z]+):\s+(.*)/)
+                               /^(...)\s+(\d+)\s(\d+):(\d+):(\d+)\s([^\s]+)\s([^\[]+)\[(\d+)\]:\s\[([0-9\-]+)\]\s*([^:]*?)\s*([A-Z]+?):\s+(.*)/)
                        {
 
                                # skip non postgresql lines
@@ -443,7 +443,7 @@ foreach $logfile (@log_files) {
                                # Process the log line
                                &parse_query($tmp_year, $month_abbr{$1}, $day, $3, $4, $5, $6, $8, $9, $10, $11, $12);
 
-                       } elsif ($line =~ /^(...)\s+(\d+)\s(\d+):(\d+):(\d+)\s([^\s]+)\s([^\[]+)\[(\d+)\]:\s\[([0-9\-]+)\]\s+(.*)/) {
+                       } elsif ($line =~ /^(...)\s+(\d+)\s(\d+):(\d+):(\d+)\s([^\s]+)\s([^\[]+)\[(\d+)\]:\s\[([0-9\-]+)\]\s*(.*)/) {
 
                                $cur_pid = $8;
                                my $t_query = $10;
@@ -478,7 +478,7 @@ foreach $logfile (@log_files) {
                } elsif ($format eq 'stderr') {
 
                        # Parse stderr lines
-                       if ($line =~ /(\d+)-(\d+)-(\d+)\s(\d+):(\d+):(\d+)\s([^\s]+)\s\[(\d+)\]:\s\[([0-9\-]+)\]\s*(.*?)\s+([A-Z]+):\s+(.*)/) {
+                       if ($line =~ /(\d+)-(\d+)-(\d+)\s(\d+):(\d+):(\d+)\s([^\s]+)\s\[(\d+)\]:\s\[([0-9\-]+)\]\s*([^:]*?)\s*([A-Z]+?):\s+(.*)/) {
 
                                # Skip unwanted lines
                                my $cur_date = "$1$2$3$4$5$6";
@@ -3361,13 +3361,13 @@ sub autodetect_format
                $nline++;
 
                # Is syslog lines ?
-               if ($line =~ /^...\s+\d+\s\d+:\d+:\d+\s[^\s]+\s([^\[]+)\[\d+\]:\s\[[0-9\-]+\]\s.*:\s+$duration/) {
+               if ($line =~ /^...\s+\d+\s\d+:\d+:\d+\s[^\s]+\s([^\[]+)\[\d+\]:\s\[[0-9\-]+\][^:]+:\s+$duration/) {
                        $fmt = 'syslog';
                        $nfound++;
                        $ident_name{$1}++;
 
                        # Is stderr lines
-               } elsif ($line =~ /\d+-\d+-\d+\s\d+:\d+:\d+\s[^\s]+\s\[\d+\]:\s\[[0-9\-]+\]\s.*:\s+$duration/) {
+               } elsif ($line =~ /\d+-\d+-\d+\s\d+:\d+:\d+\s[^\s]+\s\[\d+\]:\s\[[0-9\-]+\][^:]+:\s+$duration/) {
                        $fmt = 'stderr';
                        $nfound++;
                } elsif ($line =~ tr/,/,/ >= 12) {