From 174c3dc6b7d571e33b384a976e23c838cf2bfa80 Mon Sep 17 00:00:00 2001 From: Nick Mathewson <nickm@torproject.org> Date: Fri, 29 Sep 2006 22:33:28 +0000 Subject: [PATCH] r9021@Kushana: nickm | 2006-09-29 16:58:41 -0400 Add a perl script and a make target to find and check for duplicate log messages at level notice or higher. svn:r8539 --- Makefile.am | 3 +++ contrib/checkLogs.pl | 45 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 contrib/checkLogs.pl diff --git a/Makefile.am b/Makefile.am index e6c491e424..ace32946d9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -63,3 +63,6 @@ check-spaces: src/common/[^as]*.c \ src/or/[^et]*.[ch] src/or/t*.c src/or/eventdns_tor.h +check-logs: + ./contrib/checkLogs.pl \ + src/*/*.[ch] | sort -n diff --git a/contrib/checkLogs.pl b/contrib/checkLogs.pl new file mode 100644 index 0000000000..9a5e287f52 --- /dev/null +++ b/contrib/checkLogs.pl @@ -0,0 +1,45 @@ +#!/usr/bin/perl -w + +use strict; + +my %count = (); +my $more = 0; +my $last = ""; + +while (<>) { + if ($more) { + if (/\s*(?:LD_[A-Z]*,)?\"((?:[^\"\\]+|\\.*)+)\"(.*)/) { + $last .= $1; + if ($2 !~ /[,\)]/) { + $more = 1; + } else { + $count{$last}++; + $more = 0; + } + } elsif (/[,\)]/) { + $count{$last}++; + $more = 0; + } elsif ($more == 2) { + print "SKIPPED more\n"; + } + } elsif (/log_(?:warn|err|notice)\([^\"]*\"((?:[^\"\\]+|\\.)*)\"(.*)/) { + my $s = $1; + if ($2 =~ /[,\)]/ ) { + $count{$s}++; + } else { + $more = 1; + $last = $s; + } + } elsif (/log_(?:warn|err|notice)\((?:LD_[A-Z]*,)?(.*)/) { + my $extra = $1; + chomp $extra; + $last = ""; + $more = 2 if ($extra eq ''); + } +} + +while ((my $phrase, my $count) = each %count) { + if ($count > 1) { + print "$count\t$phrase\n"; + } +} -- GitLab