aboutsummaryrefslogtreecommitdiffstats
path: root/utils/rspamd_stats.pl
diff options
context:
space:
mode:
authorAlexander Zielke <vulture@clutterbox.de>2018-04-17 16:25:56 +0200
committerAlexander Zielke <vulture@clutterbox.de>2018-04-17 16:25:56 +0200
commitc399a5b76cc8969a2bf12556110462092117194a (patch)
tree96bd12fbf57f9dfced00a8727366439b1cd35abb /utils/rspamd_stats.pl
parentd4216edbf2af2d8347e5669dc73dd019a6ca95d0 (diff)
downloadrspamd-c399a5b76cc8969a2bf12556110462092117194a.tar.gz
rspamd-c399a5b76cc8969a2bf12556110462092117194a.zip
Parse RFC5424 style timestamps
Diffstat (limited to 'utils/rspamd_stats.pl')
-rwxr-xr-xutils/rspamd_stats.pl20
1 files changed, 15 insertions, 5 deletions
diff --git a/utils/rspamd_stats.pl b/utils/rspamd_stats.pl
index 3a8affce1..98d80af4a 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$/ ) {