From: Alexander Zielke Date: Tue, 17 Apr 2018 14:25:56 +0000 (+0200) Subject: Parse RFC5424 style timestamps X-Git-Tag: 1.7.6~94^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c399a5b76cc8969a2bf12556110462092117194a;p=thirdparty%2Frspamd.git Parse RFC5424 style timestamps --- diff --git a/utils/rspamd_stats.pl b/utils/rspamd_stats.pl index 3a8affce15..98d80af4a1 100755 --- a/utils/rspamd_stats.pl +++ b/utils/rspamd_stats.pl @@ -411,7 +411,6 @@ sub ProcessRelated { sub ProcessLog { my ( $ts_format, @line ) = &log_time_format($rspamd_log); - my $is_syslog = defined $ts_format && $ts_format eq 'syslog'; while() { last if eof $rspamd_log; @@ -425,10 +424,15 @@ sub ProcessLog { if (/^.*rspamd_task_write_log.*$/) { &spinner; - my $ts = - ($is_syslog) - ? syslog2iso( join ' ', ( split /\s+/ )[ 0 .. 2 ] ) - : join ' ', ( split /\s+/ )[ 0 .. 1 ]; + my $ts; + if ( $ts_format eq 'syslog' ) { + $ts = syslog2iso( join ' ', ( split /\s+/ )[ 0 .. 2 ] ); + } elsif ( $ts_format eq 'syslog5424' ) { + /^([0-9-]+)T([0-9:]+)/; + $ts = "$1 $2"; + } else { + $ts = join ' ', ( split /\s+/ )[ 0 .. 1 ]; + } next if ( $ts lt $startTime ); next if ( defined $endTime && $ts gt $endTime ); @@ -663,6 +667,12 @@ sub log_time_format { last; } + # 2018-04-16T06:25:46.012590+02:00 rspamd rspamd[12968] + elsif(/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,6})?(Z|[-+]\d{2}:\d{2}) \S+ rspamd\[\d+\]/) { + $format = 'syslog5424'; + last; + } + # Skip newsyslog messages # Aug 8 00:00:00 hostname newsyslog[63284]: logfile turned over elsif ( /^\w{3} (?:\s?\d|\d\d) \d\d:\d\d:\d\d\ \S+ newsyslog\[\d+\]: logfile turned over$/ ) {