You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by qu...@apache.org on 2005/04/21 02:05:11 UTC

svn commit: r162095 [1/2] - in /spamassassin/trunk: ./ lib/Mail/ lib/Mail/SpamAssassin/ lib/Mail/SpamAssassin/BayesStore/ lib/Mail/SpamAssassin/Conf/ lib/Mail/SpamAssassin/Locker/ lib/Mail/SpamAssassin/Logger/ lib/Mail/SpamAssassin/Message/ lib/Mail/SpamAssassin/Plugin/ masses/ spamd/

Author: quinlan
Date: Wed Apr 20 17:05:10 2005
New Revision: 162095

URL: http://svn.apache.org/viewcvs?rev=162095&view=rev
Log:
new logging code

Added:
    spamassassin/trunk/lib/Mail/SpamAssassin/Logger/
    spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Logger/File.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Logger/Stderr.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Logger/Syslog.pm
Modified:
    spamassassin/trunk/lib/Mail/SpamAssassin.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/DBM.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/MySQL.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/PgSQL.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/SDBM.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/SQL.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Conf/LDAP.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Conf/SQL.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/DBBasedAddrList.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Locker/Flock.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Locker/UnixNFSSafe.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Locker/Win32.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Message.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Message/Metadata.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Message/Node.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/NetSet.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgLearner.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AWL.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AutoLearnThreshold.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DCC.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DomainKeys.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Hashcash.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEHeader.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/NetCache.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Pyzor.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Razor2.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayCountry.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/ReplaceTags.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SpamCop.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TextCat.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/PluginHandler.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Reporter.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/SQLBasedAddrList.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/SpamdForkScaling.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm
    spamassassin/trunk/masses/mass-check
    spamassassin/trunk/spamassassin.raw
    spamassassin/trunk/spamd/spamd.raw

Modified: spamassassin/trunk/lib/Mail/SpamAssassin.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin.pm Wed Apr 20 17:05:10 2005
@@ -63,6 +63,7 @@
 
 require 5.006_001;
 
+use Mail::SpamAssassin::Logger;
 use Mail::SpamAssassin::Constants;
 use Mail::SpamAssassin::Conf;
 use Mail::SpamAssassin::Conf::SQL;
@@ -86,10 +87,8 @@
   Time::HiRes->import( qw(time) ) unless $@;
 }
 
-
 use vars qw{
   @ISA $VERSION $SUB_VERSION @EXTRA_VERSION $IS_DEVEL_BUILD $HOME_URL
-  $DEBUG $INFO %facilities
   @default_rules_path @default_prefs_path
   @default_userprefs_path @default_userstate_dir
   @site_rules_path
@@ -259,10 +258,10 @@
   bless ($self, $class);
 
   # enable or disable debugging
-  Mail::SpamAssassin::_init_debugger($self->{debug});
+  Mail::SpamAssassin::Logger::add_facilities($self->{debug});
 
   # first debugging information possibly printed should be the version
-  info("generic: SpamAssassin version ".Version());
+  info("generic: SpamAssassin version " . Version());
 
   # if the libs are installed in an alternate location, and the caller
   # didn't set PREFIX, we should have an estimated guess ready ...
@@ -297,44 +296,6 @@
   $self;
 }
 
-# Do not use this routine in any 3rd-party scripts, it's not part of the
-# official public API!  spamd needs it though.
-#
-# Enables or disables debugging based on the facilities given.  This will
-# affect ALL SpamAssassin objects!
-sub _init_debugger {
-  # define debugging facilities first
-  $Mail::SpamAssassin::INFO = 0;
-  $Mail::SpamAssassin::DEBUG = 0;
-
-  my $facilities = $_[0];
-  my @facilities = ();
-  if (ref ($facilities) eq '') {
-    return if not defined $facilities or $facilities eq '0';
-    @facilities = split(/,/, $facilities);
-  }
-  elsif (ref ($facilities) eq 'ARRAY') {
-    @facilities = @{ $facilities };
-  }
-  elsif (ref ($facilities) eq 'HASH') {
-    @facilities = grep { $facilities{$_} } keys %{ $facilities };
-  }
-  else {
-    return;
-  }
-  @facilities = grep(/^\S+$/, @facilities);
-  
-  if (@facilities) {
-    $Mail::SpamAssassin::facilities{$_} = 1 for @facilities;
-    # turn on informational notices
-    $Mail::SpamAssassin::INFO = 1;
-    # turn on debugging if facilities other than "info" are enabled
-    $Mail::SpamAssassin::DEBUG = keys %Mail::SpamAssassin::facilities > 1
-                              || !$Mail::SpamAssassin::facilities{info};
-  }
-}
-
-
 sub create_locker {
   my ($self) = @_;
 
@@ -1674,81 +1635,6 @@
 }
 
 ###########################################################################
-
-sub _dbg_info_helper {
-  my ($facility, $prefix, $message) = ("generic", @_);
-
-  if ($message =~ /^(\S+?):\s*(.*)/s) {
-    $facility = $1;
-    $message = $2;
-  }
-
-  if ($facilities{all} || $facilities{$prefix} || $facilities{$facility}) {
-    $message =~ s/\n+$//s;
-    $message =~ s/^/${prefix}: ${facility}: /mg;
-    warn "$message\n";
-  }
-}
-
-# usage: dbg("facility: message")
-# This is used for all low priority debugging messages.
-sub dbg {
-  return unless $Mail::SpamAssassin::DEBUG;
-  _dbg_info_helper("debug", @_);
-}
-
-# returns whether or not debugging is enabled in general or (if specified) for
-# a certain facility
-sub dbg_check {
-  my $facility = shift;
-  my $useall = 1;
-
-  if (defined $facility) {
-    if ($facility =~ /^(\+)(.+)$/) {
-      $facility = $2;
-      $useall = 0;
-    }
-    return($Mail::SpamAssassin::DEBUG && (
-      ($useall && $Mail::SpamAssassin::facilities{all}) ||
-      $Mail::SpamAssassin::facilities{$facility}
-      ));
-  }
-
-  return($Mail::SpamAssassin::DEBUG && $Mail::SpamAssassin::facilities{all});
-}
-
-# usage: info("facility: message")
-# This is used for informational messages indicating a normal, but
-# significant, condition.  This should be very infrequently called.
-sub info {
-  return unless $Mail::SpamAssassin::INFO;
-  _dbg_info_helper("info", @_);
-}
-
-# returns whether or not info output is enabled in general or (if specified) for
-# a certain facility
-sub info_check {
-  my $facility = shift;
-  my $useall = 1;
-
-  if (defined $facility) {
-    if ($facility =~ /^(\+)(.+)$/) {
-      $facility = $2;
-      $useall = 0;
-    }
-    return($Mail::SpamAssassin::INFO && (
-      ($useall &&
-       ($Mail::SpamAssassin::facilities{all} ||
-        $Mail::SpamAssassin::facilities{info})) ||
-      $Mail::SpamAssassin::facilities{$facility}
-      ));
-  }
-
-  return($Mail::SpamAssassin::INFO && (
-    $Mail::SpamAssassin::facilities{all} ||
-    $Mail::SpamAssassin::facilities{info}
-  ));
-}
 
 # sa_die -- used to die with a useful exit code.
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm Wed Apr 20 17:05:10 2005
@@ -40,14 +40,12 @@
 
 package Mail::SpamAssassin::AutoWhitelist;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
 
 use Mail::SpamAssassin;
+use Mail::SpamAssassin::Logger;
 
 use vars	qw{
   	@ISA

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm Wed Apr 20 17:05:10 2005
@@ -47,15 +47,13 @@
 
 package Mail::SpamAssassin::Bayes;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
 
 use Mail::SpamAssassin;
 use Mail::SpamAssassin::PerMsgStatus;
+use Mail::SpamAssassin::Logger;
 
 # pick ONLY ONE of these combining implementations.
 use Mail::SpamAssassin::Bayes::CombineChi;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore.pm Wed Apr 20 17:05:10 2005
@@ -29,12 +29,10 @@
 
 package Mail::SpamAssassin::BayesStore;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
+use Mail::SpamAssassin::Logger;
 
 =head1 METHODS
 
@@ -322,7 +320,7 @@
     return 0 unless (%delta);
 
     # This will skip the for loop if debugging isn't enabled ...
-    if (Mail::SpamAssassin::dbg_check('bayes')) {
+    if (would_log('dbg', 'bayes')) {
       dbg("bayes: atime\ttoken reduction");
       dbg("bayes: ========\t===============");
       for(my $i = 1; $i<=$max_expire_mult; $i <<= 1) {

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/DBM.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/DBM.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/DBM.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/DBM.pm Wed Apr 20 17:05:10 2005
@@ -16,9 +16,6 @@
 
 package Mail::SpamAssassin::BayesStore::DBM;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
@@ -27,6 +24,7 @@
 use Mail::SpamAssassin;
 use Mail::SpamAssassin::Util;
 use Mail::SpamAssassin::BayesStore;
+use Mail::SpamAssassin::Logger;
 use Digest::SHA1 qw(sha1);
 use File::Basename;
 use File::Spec;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/MySQL.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/MySQL.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/MySQL.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/MySQL.pm Wed Apr 20 17:05:10 2005
@@ -35,14 +35,12 @@
 
 package Mail::SpamAssassin::BayesStore::MySQL;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
 
 use Mail::SpamAssassin::BayesStore::SQL;
+use Mail::SpamAssassin::Logger;
 
 use vars qw( @ISA );
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/PgSQL.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/PgSQL.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/PgSQL.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/PgSQL.pm Wed Apr 20 17:05:10 2005
@@ -33,14 +33,12 @@
 
 package Mail::SpamAssassin::BayesStore::PgSQL;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
 
 use Mail::SpamAssassin::BayesStore::SQL;
+use Mail::SpamAssassin::Logger;
 
 use vars qw( @ISA );
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/SDBM.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/SDBM.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/SDBM.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/SDBM.pm Wed Apr 20 17:05:10 2005
@@ -16,15 +16,13 @@
 
 package Mail::SpamAssassin::BayesStore::SDBM;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
 use Fcntl;
 
 use Mail::SpamAssassin::BayesStore::DBM;
+use Mail::SpamAssassin::Logger;
 
 use vars qw{ @ISA @DBNAMES };
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/SQL.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/SQL.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/SQL.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/SQL.pm Wed Apr 20 17:05:10 2005
@@ -28,14 +28,12 @@
 
 package Mail::SpamAssassin::BayesStore::SQL;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
 
 use Mail::SpamAssassin::BayesStore;
+use Mail::SpamAssassin::Logger;
 use Digest::SHA1 qw(sha1);
 
 use vars qw( @ISA );

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm Wed Apr 20 17:05:10 2005
@@ -72,11 +72,8 @@
 use Mail::SpamAssassin::NetSet;
 use Mail::SpamAssassin::Constants qw(:sa);
 use Mail::SpamAssassin::Conf::Parser;
+use Mail::SpamAssassin::Logger;
 use File::Spec;
-
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-*info=\&Mail::SpamAssassin::info;
 
 use strict;
 use warnings;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf/LDAP.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Conf/LDAP.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf/LDAP.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf/LDAP.pm Wed Apr 20 17:05:10 2005
@@ -40,8 +40,7 @@
 
 package Mail::SpamAssassin::Conf::LDAP;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
+use Mail::SpamAssassin::Logger;
 
 use strict;
 use warnings;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm Wed Apr 20 17:05:10 2005
@@ -120,12 +120,9 @@
 
 package Mail::SpamAssassin::Conf::Parser;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-*info=\&Mail::SpamAssassin::info;
-
 use Mail::SpamAssassin::Conf;
 use Mail::SpamAssassin::Constants qw(:sa);
+use Mail::SpamAssassin::Logger;
 
 use strict;
 use warnings;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf/SQL.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Conf/SQL.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf/SQL.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf/SQL.pm Wed Apr 20 17:05:10 2005
@@ -40,8 +40,7 @@
 
 package Mail::SpamAssassin::Conf::SQL;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
+use Mail::SpamAssassin::Logger;
 
 use strict;
 use warnings;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/DBBasedAddrList.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/DBBasedAddrList.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/DBBasedAddrList.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/DBBasedAddrList.pm Wed Apr 20 17:05:10 2005
@@ -16,9 +16,6 @@
 
 package Mail::SpamAssassin::DBBasedAddrList;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
@@ -26,6 +23,7 @@
 
 use Mail::SpamAssassin::PersistentAddrList;
 use Mail::SpamAssassin::Util;
+use Mail::SpamAssassin::Logger;
 
 use vars qw{
   @ISA

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm Wed Apr 20 17:05:10 2005
@@ -24,7 +24,10 @@
 use bytes;
 
 package Mail::SpamAssassin::HTML;
+
 use HTML::Parser 3.24 ();
+use Mail::SpamAssassin::Logger;
+
 use vars qw($re_loose $re_strict $re_other @ISA @EXPORT @EXPORT_OK);
 
 require Exporter;
@@ -32,9 +35,6 @@
 @EXPORT = qw(get_results name_to_rgb);
 @EXPORT_OK = qw();
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 # elements defined by the HTML 4.01 and XHTML 1.0 DTDs (do not change them!)
 # does not include XML
 my %elements = map {; $_ => 1 }
@@ -140,7 +140,7 @@
       my @tmp = Mail::SpamAssassin::Util::uri_list_canonify($uri);
       $info->{cleaned} = \@tmp;
       # list out the URLs for debugging ...
-      if (Mail::SpamAssassin::dbg_check('uri')) {
+      if (would_log('dbg', 'uri')) {
         dbg("uri: html uri found, $uri");
         foreach my $nuri (@tmp) {
           dbg("uri: cleaned html uri, $nuri");

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Locker/Flock.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Locker/Flock.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Locker/Flock.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Locker/Flock.pm Wed Apr 20 17:05:10 2005
@@ -16,9 +16,6 @@
 
 package Mail::SpamAssassin::Locker::Flock;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
@@ -26,6 +23,7 @@
 use Mail::SpamAssassin;
 use Mail::SpamAssassin::Locker;
 use Mail::SpamAssassin::Util;
+use Mail::SpamAssassin::Logger;
 use File::Spec;
 use IO::File;
 use Fcntl qw(:DEFAULT :flock);

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Locker/UnixNFSSafe.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Locker/UnixNFSSafe.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Locker/UnixNFSSafe.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Locker/UnixNFSSafe.pm Wed Apr 20 17:05:10 2005
@@ -16,9 +16,6 @@
 
 package Mail::SpamAssassin::Locker::UnixNFSSafe;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
@@ -26,6 +23,7 @@
 use Mail::SpamAssassin;
 use Mail::SpamAssassin::Locker;
 use Mail::SpamAssassin::Util;
+use Mail::SpamAssassin::Logger;
 use File::Spec;
 use Time::Local;
 use Fcntl qw(:DEFAULT :flock);

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Locker/Win32.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Locker/Win32.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Locker/Win32.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Locker/Win32.pm Wed Apr 20 17:05:10 2005
@@ -16,9 +16,6 @@
 
 package Mail::SpamAssassin::Locker::Win32;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
@@ -27,6 +24,7 @@
 use Mail::SpamAssassin;
 use Mail::SpamAssassin::Locker;
 use Mail::SpamAssassin::Util;
+use Mail::SpamAssassin::Logger;
 use File::Spec;
 use Time::Local;
 

Added: spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm?rev=162095&view=auto
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm (added)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm Wed Apr 20 17:05:10 2005
@@ -0,0 +1,202 @@
+# <@LICENSE>
+# Copyright 2004 Apache Software Foundation
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# </...@LICENSE>
+
+=head1 NAME
+
+Mail::SpamAssassin::Logger - SpamAssassin logging module
+
+=head1 SYNOPSIS
+
+  use Mail::SpamAssassin::Logger;
+
+  $SIG{__WARN__} = sub {
+    log_message("warn", $_[0]);
+  };
+
+  $SIG{__DIE__} = sub {
+    log_message("error", $_[0]) if $_[0] !~ /\bin eval\b/;
+  };
+
+=cut
+
+package Mail::SpamAssassin::Logger;
+
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+require Exporter;
+
+use strict;
+use warnings;
+use bytes;
+
+@ISA = qw(Exporter);
+@EXPORT = qw(dbg info would_log);
+@EXPORT_OK = qw(log_message);
+
+use constant ERROR => 0;
+use constant WARNING => 1;
+use constant INFO => 2;
+use constant DBG => 3;
+
+our %LOG_SA;
+
+# defaults
+$LOG_SA{level} = WARNING;	# log warnings and errors
+$LOG_SA{facility} = {};		# no dbg facilities turned on
+
+# always log to stderr initially
+use Mail::SpamAssassin::Logger::Stderr;
+$LOG_SA{method}->{stderr} = Mail::SpamAssassin::Logger::Stderr->new();
+
+END {
+  while (my ($name, $object) = each %{ $LOG_SA{method} }) {
+    $object->close();
+  }
+}
+
+sub add_facilities {
+  my ($facilities) = @_;
+
+  my @facilities = ();
+  if (ref ($facilities) eq '') {
+    if (defined $facilities && $facilities ne '0') {
+      @facilities = split(/,/, $facilities);
+    }
+  }
+  elsif (ref ($facilities) eq 'ARRAY') {
+    @facilities = @{ $facilities };
+  }
+  elsif (ref ($facilities) eq 'HASH') {
+    @facilities = keys %{ $facilities };
+  }
+  @facilities = grep(/^\S+$/, @facilities);
+  if (@facilities) {
+    $LOG_SA{facility}->{$_} = 1 for @facilities;
+    # turn on debugging if facilities other than "info" are enabled
+    if (keys %{ $LOG_SA{facility} } > 1 || !$LOG_SA{facility}->{info}) {
+      $LOG_SA{level} = DBG if $LOG_SA{level} < DBG;
+    }
+    else {
+      $LOG_SA{level} = INFO if $LOG_SA{level} < INFO;
+    }
+  }
+}
+
+sub log_message {
+  my ($level, @message) = @_;
+  my $message = join(" ", @message);
+  $message =~ s/[\r\n]+$//;		# remove any trailing newlines
+  $message =~ s/[\x00-\x1f]/_/g;	# replace control characters with "_"
+  while (my ($name, $object) = each %{ $LOG_SA{method} }) {
+    $object->log_message($level, $message);
+  }
+}
+
+# usage: dbg("facility: message")
+# This is used for all low priority debugging messages.
+sub dbg {
+  return unless $LOG_SA{level} >= DBG;
+  _log("dbg", @_);
+}
+
+# usage: info("facility: message")
+# This is used for informational messages indicating a normal, but
+# significant, condition.  This should be infrequently called.
+sub info {
+  return unless $LOG_SA{level} >= INFO;
+  _log("info", @_);
+}
+
+sub _log {
+  my ($level, $message) = @_;
+
+  my $facility = "generic";
+  if ($message =~ /^(\S+?):\s*(.*)/s) {
+    $facility = $1;
+    $message = $2;
+  }
+
+  # only debug specific facilities
+  # log all info, warn, and error messages
+  if ($level eq "dbg") {
+    return unless ($LOG_SA{facility}->{all} ||
+		   $LOG_SA{facility}->{$facility});
+  }
+
+  $message =~ s/\n+$//s;
+  $message =~ s/^/${facility}: /mg;
+
+  # no reason to go through warn()
+  log_message($level, $message);
+}
+
+sub add {
+  my %params = @_;
+
+  my $name = lc($params{method});
+  my $class = ucfirst($name);
+
+  eval 'use Mail::SpamAssassin::Logger::'.$class.';';
+  ($@) and die "logger: add $class failed: $@";
+
+  if (!exists $LOG_SA{method}->{$name}) {
+    my $object = eval 'Mail::SpamAssassin::Logger::'.$class.'->new(%params);';
+    if (!$@ && $object) {
+      $LOG_SA{method}->{$name} = $object;
+      dbg("logger: successfully added $name method\n");
+      return 1;
+    }
+    warn("logger: failed to add $name method\n");
+    return 0;
+  }
+
+  warn("logger: $name method already added\n");
+  return 1;
+}
+
+sub remove {
+  my ($method) = @_;
+
+  my $name = lc($method);
+  for (keys %{ $LOG_SA{method} }) {
+    print STDERR "a: $_\n";
+  }
+  if (exists $LOG_SA{method}->{$name}) {
+    delete $LOG_SA{method}->{$name};
+    return 1;
+  }
+  # should warn here
+  return 1;
+}
+
+sub would_log {
+  my ($level, $facility) = @_;
+
+  if ($level eq "info") {
+    return $LOG_SA{level} >= INFO;
+  }
+  if ($level eq "dbg") {
+    return 0 if $LOG_SA{level} < DBG;
+    return 1 if !$facility;
+    return 2 if $LOG_SA{facility}->{$facility};
+    return 1 if $LOG_SA{facility}->{all};
+    return 0;
+  }
+  warn "logger: would_log called with unknown level: $level\n";
+  return 0;
+}
+
+1;

Added: spamassassin/trunk/lib/Mail/SpamAssassin/Logger/File.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Logger/File.pm?rev=162095&view=auto
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Logger/File.pm (added)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Logger/File.pm Wed Apr 20 17:05:10 2005
@@ -0,0 +1,87 @@
+# <@LICENSE>
+# Copyright 2004 Apache Software Foundation
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# </...@LICENSE>
+
+=head1 NAME
+
+Mail::SpamAssassin::Logger::File - log to file
+
+=head1 SYNOPSIS
+
+  loadplugin     Mail::SpamAssassin::Logger::File
+
+=head1 DESCRIPTION
+
+=cut
+
+package Mail::SpamAssassin::Logger::File;
+
+use strict;
+use warnings;
+use bytes;
+use Mail::SpamAssassin::Logger;
+
+use vars qw(@ISA);
+@ISA = ();
+
+sub new {
+  my $class = shift;
+
+  $class = ref($class) || $class;
+  my $self = { };
+  bless ($self, $class);
+
+  # parameters
+  my %params = @_;
+  $self->{filename} = $params{filename} || 'spamassassin.log';
+
+  if (! $self->init()) {
+    die "logger: file initialization failed\n";
+  }
+
+  return($self);
+}
+
+# logging via file is requested
+sub init {
+  my ($self) = @_;
+
+  if (open(STDLOG, ">> $self->{filename}")) {
+    dbg("logger: successfully opened file $self->{filename}");
+    return 1;
+  }
+  else {
+    warn "logger: failed to open file $self->{filename}: $!\n";
+    return 0;
+  }
+}
+
+sub log_message {
+  my ($self, $level, $msg) = @_;
+
+  my @date = reverse((gmtime(time))[0..5]);
+  $date[0] += 1900;
+  $date[1] += 1;
+  syswrite(STDLOG, sprintf("%04d-%02d-%02d %02d:%02d:%02d [%s] %s: %s\n",
+			   @date, $$, $level, $msg));
+}
+
+sub close {
+  my ($self) = @_;
+
+  close(STDLOG) if defined $self->{filename};
+}
+
+1;

Added: spamassassin/trunk/lib/Mail/SpamAssassin/Logger/Stderr.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Logger/Stderr.pm?rev=162095&view=auto
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Logger/Stderr.pm (added)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Logger/Stderr.pm Wed Apr 20 17:05:10 2005
@@ -0,0 +1,58 @@
+# <@LICENSE>
+# Copyright 2004 Apache Software Foundation
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# </...@LICENSE>
+
+=head1 NAME
+
+Mail::SpamAssassin::Logger::Stderr - log to standard error
+
+=head1 SYNOPSIS
+
+  loadplugin     Mail::SpamAssassin::Logger::Stderr
+
+=head1 DESCRIPTION
+
+=cut
+
+package Mail::SpamAssassin::Logger::Stderr;
+
+use strict;
+use warnings;
+use bytes;
+
+use vars qw(@ISA);
+@ISA = ();
+
+sub new {
+  my $class = shift;
+
+  $class = ref($class) || $class;
+  my $self = { };
+  bless ($self, $class);
+
+  return($self);
+}
+
+sub log_message {
+  my ($self, $level, $msg) = @_;
+
+  print STDERR "$level: $msg\n";
+}
+
+sub close {
+  my ($self) = @_;
+}
+
+1;

Added: spamassassin/trunk/lib/Mail/SpamAssassin/Logger/Syslog.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Logger/Syslog.pm?rev=162095&view=auto
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Logger/Syslog.pm (added)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Logger/Syslog.pm Wed Apr 20 17:05:10 2005
@@ -0,0 +1,211 @@
+# <@LICENSE>
+# Copyright 2004 Apache Software Foundation
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# </...@LICENSE>
+
+=head1 NAME
+
+Mail::SpamAssassin::Logger::Syslog - log to syslog
+
+=head1 SYNOPSIS
+
+  loadplugin     Mail::SpamAssassin::Logger::Syslog
+
+=head1 DESCRIPTION
+
+=cut
+
+package Mail::SpamAssassin::Logger::Syslog;
+
+use strict;
+use warnings;
+use bytes;
+use Mail::SpamAssassin::Logger;
+use Sys::Syslog qw(:DEFAULT setlogsock);
+use POSIX qw(:sys_wait_h);
+use POSIX qw(setsid sigprocmask);
+
+use vars qw(@ISA);
+@ISA = ();
+
+sub new {
+  my $class = shift;
+
+  $class = ref($class) || $class;
+  my $self = { };
+  bless ($self, $class);
+
+  # initialization
+  $self->{already_done_failure_warning} = 0;
+  $self->{disabled} = 0;
+  $self->{consecutive_failures} = 0;
+  $self->{failure_threshold} = 10;
+
+  # parameters
+  my %params = @_;
+  $self->{ident} = $params{ident} || 'spamassassin';
+  $self->{log_socket} = $params{socket};
+  $self->{log_facility} = $params{facility};
+
+  if (! $self->init()) {
+    die "logger: syslog initialization failed\n";
+  }
+
+  return($self);
+}
+
+# logging via syslog is requested
+sub init {
+  my ($self) = @_;
+
+  my $log_socket = $self->{log_socket};
+
+  dbg("logger: trying to connect to syslog/${log_socket}...\n");
+  eval {
+    defined(setlogsock($log_socket)) || die "logger: $!";
+    dbg("logger: opening syslog with $log_socket socket");
+    # the next call is required to actually open the socket
+    openlog($self->{ident}, 'cons,pid,ndelay', $self->{log_facility});
+  };
+  my $err = $@;
+  chomp($err);
+
+  # Solaris sometimes doesn't support UNIX-domain syslog sockets apparently;
+  # the same is true for perl 5.6.0 build on an early version of Red Hat 7!
+  # In these cases we try it with INET instead.
+  if ($err and $log_socket ne 'inet') {
+    dbg("logger: connection to syslog/${log_socket} failed: $err\n"
+	. "trying to connect to syslog/inet...");
+    eval {
+      defined(setlogsock('inet')) || die "logger: $!";
+      dbg("logger: failed to setlogsock(${log_socket}): $err");
+      dbg("logger: opening syslog using inet socket");
+      openlog($self->{ident}, 'cons,pid,ndelay', $self->{log_facility});
+    };
+  }
+
+  # we failed!
+  if ($@) {
+    return 0;
+  }
+  else {
+    dbg("logger: successfully connected to syslog/${log_socket}");
+    return 1;
+  }
+}
+
+sub log_message {
+  my ($self, $level, $msg) = @_;
+
+  return if $self->{disabled};
+
+  # map level names
+  # info is already info
+  $level = 'debug' if $level eq 'dbg';
+  $level = 'warning' if $level eq 'warn';
+  $level = 'err' if $level eq 'error';
+
+  # install a new handler for SIGPIPE -- this signal has been
+  # found to occur with syslog-ng after syslog-ng restarts.
+  local $SIG{'PIPE'} = sub {
+    $self->{SIGPIPE_RECEIVED}++;
+    # force a log-close.   trap possible die() calls
+    eval { closelog(); };
+  };
+
+  # important: do not call syslog() from the SIGCHLD handler
+  # child_handler().   otherwise we can get into a loop if syslog()
+  # forks a process -- as it does in syslog-ng apparently! (bug 3625)
+  $Mail::SpamAssassin::Logger::LOG_SA{INHIBIT_LOGGING_IN_SIGCHLD_HANDLER} = 1;
+  eval { syslog($level, "%s", $msg); };
+  $Mail::SpamAssassin::Logger::LOG_SA{INHIBIT_LOGGING_IN_SIGCHLD_HANDLER} = 0;
+
+  if ($@) {
+    if ($self->check_syslog_sigpipe($msg)) {
+      # dealt with
+    }
+    else {
+      warn "logger: syslog failed: $@"; # includes a \n
+
+      # only write this warning once, it gets annoying fast
+      if (!$self->{already_done_failure_warning}) {
+        warn "logger: try using --syslog-socket={unix,inet} or --syslog=file\n";
+        $self->{already_done_failure_warning} = 1;
+      }
+    }
+    $self->syslog_incr_failure_counter();
+  }
+  else {
+    $self->{consecutive_failures} = 0;
+    $self->check_syslog_sigpipe($msg); # check for SIGPIPE anyway (bug 3625)
+  }
+
+  $SIG{PIPE} = 'IGNORE';	# this may have been reset (bug 4026)
+}
+
+sub check_syslog_sigpipe {
+  my ($self, $msg) = @_;
+
+  if (!$self->{SIGPIPE_RECEIVED}) {
+    return 0;     # didn't have a SIGPIPE
+  }
+
+  eval {
+    # SIGPIPE received when writing to syslog -- close and reopen
+    # the log handle, then try again.
+    closelog();
+    openlog($self->{ident}, 'cons,pid,ndelay', $self->{log_facility});
+    syslog('debug', "%s", "syslog reopened");
+    syslog('info', "%s", $msg);
+
+    # now report what happend
+    $msg = "SIGPIPE received, reopening log socket";
+    dbg("log: $msg");
+    syslog('info', "%s", $msg);
+
+    # if we've received multiple sigpipes, logging is probably still broken.
+    if ($self->{SIGPIPE_RECEIVED} > 1) {
+      warn "logger: syslog failure: multiple SIGPIPEs received\n";
+      $self->{disabled} = 1;
+    }
+
+    $self->{SIGPIPE_RECEIVED} = 0;
+    return 1;
+  };
+
+  if ($@) {     # something died?  that's not good.
+    $self->syslog_incr_failure_counter();
+  }
+}
+
+sub syslog_incr_failure_counter {
+  my ($self) = @_;
+
+  $self->{consecutive_failures}++;
+  if ($self->{consecutive_failures}++ > $self->{failure_threshold}) {
+    warn("syslog() failed " . $self->{consecutive_failures} .
+	 " times in a row, disabled\n");
+    $self->{disabled} = 1;
+    return 1;
+  }
+  return 0;
+}
+
+sub close {
+  my ($self) = @_;
+
+  closelog();
+}
+
+1;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Message.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Message.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Message.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Message.pm Wed Apr 20 17:05:10 2005
@@ -43,9 +43,6 @@
 
 package Mail::SpamAssassin::Message;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
@@ -54,6 +51,7 @@
 use Mail::SpamAssassin::Message::Node;
 use Mail::SpamAssassin::Message::Metadata;
 use Mail::SpamAssassin::Constants qw(:sa);
+use Mail::SpamAssassin::Logger;
 
 use vars qw(@ISA);
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Message/Metadata.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Message/Metadata.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Message/Metadata.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Message/Metadata.pm Wed Apr 20 17:05:10 2005
@@ -49,9 +49,6 @@
 
 package Mail::SpamAssassin::Message::Metadata;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
@@ -59,6 +56,7 @@
 use Mail::SpamAssassin;
 use Mail::SpamAssassin::Constants qw(:sa);
 use Mail::SpamAssassin::Message::Metadata::Received;
+use Mail::SpamAssassin::Logger;
 
 =item new()
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Message/Node.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Message/Node.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Message/Node.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Message/Node.pm Wed Apr 20 17:05:10 2005
@@ -35,9 +35,6 @@
 
 package Mail::SpamAssassin::Message::Node;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
@@ -45,6 +42,7 @@
 use Mail::SpamAssassin;
 use Mail::SpamAssassin::Constants qw(:sa);
 use Mail::SpamAssassin::HTML;
+use Mail::SpamAssassin::Logger;
 
 =item new()
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/NetSet.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/NetSet.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/NetSet.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/NetSet.pm Wed Apr 20 17:05:10 2005
@@ -17,14 +17,12 @@
 
 package Mail::SpamAssassin::NetSet;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
 
 use Mail::SpamAssassin::Util;
+use Mail::SpamAssassin::Logger;
 
 use vars qw{
   @ISA $TESTCODE $NUMTESTS

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgLearner.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgLearner.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgLearner.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgLearner.pm Wed Apr 20 17:05:10 2005
@@ -45,9 +45,6 @@
 
 package Mail::SpamAssassin::PerMsgLearner;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
@@ -55,6 +52,7 @@
 use Mail::SpamAssassin;
 use Mail::SpamAssassin::PerMsgStatus;
 use Mail::SpamAssassin::Bayes;
+use Mail::SpamAssassin::Logger;
 
 use vars qw{
   @ISA

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm Wed Apr 20 17:05:10 2005
@@ -46,9 +46,6 @@
 
 package Mail::SpamAssassin::PerMsgStatus;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
@@ -58,6 +55,7 @@
 use Mail::SpamAssassin::EvalTests;
 use Mail::SpamAssassin::Conf;
 use Mail::SpamAssassin::Util;
+use Mail::SpamAssassin::Logger;
 
 use vars qw{
   @ISA
@@ -98,7 +96,7 @@
   }
 
   delete $self->{should_log_rule_hits};
-  my $dbgcache = Mail::SpamAssassin::dbg_check('rules');
+  my $dbgcache = would_log('dbg', 'rules');
   if ($dbgcache || $self->{save_pattern_hits}) {
     $self->{should_log_rule_hits} = 1;
   }
@@ -1942,7 +1940,7 @@
     $self->{parsed_uri_list} = \@uris;
 
     # list out the URLs for debugging ...
-    if (Mail::SpamAssassin::dbg_check('uri')) {
+    if (would_log('dbg', 'uri')) {
       foreach my $nuri (@uris) {
         dbg("uri: parsed uri found: $nuri");
       }
@@ -2366,7 +2364,7 @@
   my ($self, $evalhash, $prepend2desc, @extraevalargs) = @_;
   local ($_);
   
-  my $debugenabled = Mail::SpamAssassin::dbg_check();
+  my $debugenabled = would_log('dbg');
 
   my $scoreset = $self->{conf}->get_score_set();
   while (my ($rulename, $test) = each %{$evalhash}) {

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin.pm Wed Apr 20 17:05:10 2005
@@ -94,11 +94,8 @@
 
 package Mail::SpamAssassin::Plugin;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-*info=\&Mail::SpamAssassin::info;
-
 use Mail::SpamAssassin;
+use Mail::SpamAssassin::Logger;
 
 use strict;
 use warnings;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AWL.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AWL.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AWL.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AWL.pm Wed Apr 20 17:05:10 2005
@@ -57,14 +57,12 @@
 
 package Mail::SpamAssassin::Plugin::AWL;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::Plugin::dbg;
-
 use strict;
 use warnings;
 use bytes;
 use Mail::SpamAssassin::Plugin;
 use Mail::SpamAssassin::AutoWhitelist;
+use Mail::SpamAssassin::Logger;
 
 use vars qw(@ISA);
 @ISA = qw(Mail::SpamAssassin::Plugin);

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AutoLearnThreshold.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AutoLearnThreshold.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AutoLearnThreshold.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AutoLearnThreshold.pm Wed Apr 20 17:05:10 2005
@@ -50,10 +50,8 @@
 
 package Mail::SpamAssassin::Plugin::AutoLearnThreshold;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::Plugin::dbg;
-
 use Mail::SpamAssassin::Plugin;
+use Mail::SpamAssassin::Logger;
 use strict;
 use warnings;
 use bytes;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DCC.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DCC.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DCC.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DCC.pm Wed Apr 20 17:05:10 2005
@@ -44,11 +44,8 @@
 
 package Mail::SpamAssassin::Plugin::DCC;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::Plugin::dbg;
-*info=\&Mail::SpamAssassin::Plugin::info;
-
 use Mail::SpamAssassin::Plugin;
+use Mail::SpamAssassin::Logger;
 use IO::Socket;
 use strict;
 use warnings;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DomainKeys.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DomainKeys.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DomainKeys.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DomainKeys.pm Wed Apr 20 17:05:10 2005
@@ -33,15 +33,13 @@
 package Mail::SpamAssassin::Plugin::DomainKeys;
 
 use Mail::SpamAssassin::Plugin;
+use Mail::SpamAssassin::Logger;
 use strict;
 use warnings;
 use bytes;
 
 # Have to do this so that RPM doesn't find these as required perl modules
 BEGIN { require Mail::DomainKeys::Message; require Mail::DomainKeys::Policy; }
-
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::Plugin::dbg;
 
 use vars qw(@ISA);
 @ISA = qw(Mail::SpamAssassin::Plugin);

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Hashcash.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Hashcash.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Hashcash.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Hashcash.pm Wed Apr 20 17:05:10 2005
@@ -80,10 +80,8 @@
 
 package Mail::SpamAssassin::Plugin::Hashcash;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::Plugin::dbg;
-
 use Mail::SpamAssassin::Plugin;
+use Mail::SpamAssassin::Logger;
 use Digest::SHA1 qw(sha1);
 use Fcntl;
 use File::Path;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEHeader.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEHeader.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEHeader.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEHeader.pm Wed Apr 20 17:05:10 2005
@@ -54,11 +54,9 @@
 
 package Mail::SpamAssassin::Plugin::MIMEHeader;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::Plugin::dbg;
-
 use Mail::SpamAssassin::Plugin;
 use Mail::SpamAssassin::Conf;
+use Mail::SpamAssassin::Logger;
 use strict;
 use warnings;
 use bytes;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/NetCache.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/NetCache.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/NetCache.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/NetCache.pm Wed Apr 20 17:05:10 2005
@@ -41,11 +41,9 @@
 
 package Mail::SpamAssassin::Plugin::NetCache;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::Plugin::dbg;
-
 use Mail::SpamAssassin::Plugin;
 use Mail::SpamAssassin::Util;
+use Mail::SpamAssassin::Logger;
 use strict;
 use warnings;
 use bytes;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Pyzor.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Pyzor.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Pyzor.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Pyzor.pm Wed Apr 20 17:05:10 2005
@@ -35,11 +35,8 @@
 
 package Mail::SpamAssassin::Plugin::Pyzor;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::Plugin::dbg;
-*info=\&Mail::SpamAssassin::Plugin::info;
-
 use Mail::SpamAssassin::Plugin;
+use Mail::SpamAssassin::Logger;
 use strict;
 use warnings;
 use bytes;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Razor2.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Razor2.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Razor2.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Razor2.pm Wed Apr 20 17:05:10 2005
@@ -42,11 +42,8 @@
 
 package Mail::SpamAssassin::Plugin::Razor2;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::Plugin::dbg;
-*info=\&Mail::SpamAssassin::Plugin::info;
-
 use Mail::SpamAssassin::Plugin;
+use Mail::SpamAssassin::Logger;
 use strict;
 use warnings;
 use bytes;
@@ -138,7 +135,7 @@
   my $debug = $type eq 'check' ? 'razor2' : 'reporter';
 
   # razor also debugs to stdout. argh. fix it to stderr...
-  if (Mail::SpamAssassin::dbg_check($debug)) {
+  if (would_log('dbg', $debug)) {
     open(OLDOUT, ">&STDOUT");
     open(STDOUT, ">&STDERR");
   }
@@ -157,7 +154,7 @@
 
     if ($rc) {
       $rc->{opt} = {
-	debug => Mail::SpamAssassin::dbg_check('+razor2'),
+	debug => (would_log('dbg', $debug) > 1),
 	foreground => 1,
 	config => $self->{main}->{conf}->{razor_config}
       };
@@ -327,7 +324,7 @@
   Mail::SpamAssassin::PerMsgStatus::leave_helper_run_mode($self);
 
   # razor also debugs to stdout. argh. fix it to stderr...
-  if (Mail::SpamAssassin::dbg_check($debug)) {
+  if (would_log('dbg', $debug)) {
     open(STDOUT, ">&OLDOUT");
     close OLDOUT;
   }

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayCountry.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayCountry.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayCountry.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayCountry.pm Wed Apr 20 17:05:10 2005
@@ -36,10 +36,8 @@
 
 package Mail::SpamAssassin::Plugin::RelayCountry;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::Plugin::dbg;
-
 use Mail::SpamAssassin::Plugin;
+use Mail::SpamAssassin::Logger;
 use strict;
 use warnings;
 use bytes;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/ReplaceTags.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/ReplaceTags.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/ReplaceTags.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/ReplaceTags.pm Wed Apr 20 17:05:10 2005
@@ -48,12 +48,9 @@
 
 package Mail::SpamAssassin::Plugin::ReplaceTags;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::Plugin::dbg;
-*info=\&Mail::SpamAssassin::Plugin::info;
-
 use Mail::SpamAssassin;
 use Mail::SpamAssassin::Plugin;
+use Mail::SpamAssassin::Logger;
 
 use strict;
 use warnings;
@@ -90,7 +87,7 @@
 	# skip if not listed by replace_rules
 	next unless $opts->{conf}->{rules_to_replace}{$rule};
 
-	if (Mail::SpamAssassin::dbg_check('+replacetags')) {
+	if (would_log('dbg', 'replacetags') > 1) {
 	  dbg("replacetags: replacing $rule: $re");
 	}
 
@@ -136,7 +133,7 @@
 	# do the actual replacement
 	$opts->{conf}->{$type}->{$priority}->{$rule} = $re;
 
-	if (Mail::SpamAssassin::dbg_check('+replacetags')) {
+	if (would_log('dbg', 'replacetags') > 1) {
 	  dbg("replacetags: replaced $rule: $re");
 	}
       }

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm Wed Apr 20 17:05:10 2005
@@ -32,10 +32,8 @@
 
 package Mail::SpamAssassin::Plugin::SPF;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::Plugin::dbg;
-
 use Mail::SpamAssassin::Plugin;
+use Mail::SpamAssassin::Logger;
 use strict;
 use warnings;
 use bytes;
@@ -281,7 +279,7 @@
     $query = Mail::SPF::Query->new (ip => $ip,
 				    sender => $scanner->{sender},
 				    helo => $helo,
-				    debug => Mail::SpamAssassin::dbg_check('+rbl'),
+				    debug => 0,
 				    trusted => 0);
   };
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SpamCop.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SpamCop.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SpamCop.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SpamCop.pm Wed Apr 20 17:05:10 2005
@@ -42,11 +42,8 @@
 
 package Mail::SpamAssassin::Plugin::SpamCop;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::Plugin::dbg;
-*info=\&Mail::SpamAssassin::Plugin::info;
-
 use Mail::SpamAssassin::Plugin;
+use Mail::SpamAssassin::Logger;
 use IO::Socket;
 use strict;
 use warnings;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TextCat.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TextCat.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TextCat.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TextCat.pm Wed Apr 20 17:05:10 2005
@@ -43,11 +43,8 @@
 
 package Mail::SpamAssassin::Plugin::TextCat;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::Plugin::dbg;
-*info=\&Mail::SpamAssassin::Plugin::info;
-
 use Mail::SpamAssassin::Plugin;
+use Mail::SpamAssassin::Logger;
 use strict;
 use warnings;
 use bytes;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm Wed Apr 20 17:05:10 2005
@@ -110,12 +110,10 @@
 
 package Mail::SpamAssassin::Plugin::URIDNSBL;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::Plugin::dbg;
-
 use Mail::SpamAssassin::Plugin;
 use Mail::SpamAssassin::Constants qw(:ip);
 use Mail::SpamAssassin::Util;
+use Mail::SpamAssassin::Logger;
 use strict;
 use warnings;
 use bytes;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/PluginHandler.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/PluginHandler.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/PluginHandler.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/PluginHandler.pm Wed Apr 20 17:05:10 2005
@@ -22,12 +22,10 @@
 
 package Mail::SpamAssassin::PluginHandler;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use Mail::SpamAssassin;
 use Mail::SpamAssassin::Plugin;
 use Mail::SpamAssassin::Util;
+use Mail::SpamAssassin::Logger;
 
 use strict;
 use warnings;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Reporter.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Reporter.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Reporter.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Reporter.pm Wed Apr 20 17:05:10 2005
@@ -18,14 +18,12 @@
 
 package Mail::SpamAssassin::Reporter;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
 use Carp;
 use POSIX ":sys_wait_h";
+use Mail::SpamAssassin::Logger;
 
 use vars qw{
   @ISA $VERSION

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/SQLBasedAddrList.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/SQLBasedAddrList.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/SQLBasedAddrList.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/SQLBasedAddrList.pm Wed Apr 20 17:05:10 2005
@@ -71,9 +71,6 @@
 
 package Mail::SpamAssassin::SQLBasedAddrList;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
@@ -82,6 +79,7 @@
 BEGIN { require DBI;  import DBI; }
 
 use Mail::SpamAssassin::PersistentAddrList;
+use Mail::SpamAssassin::Logger;
 
 use vars qw(@ISA);
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/SpamdForkScaling.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/SpamdForkScaling.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/SpamdForkScaling.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/SpamdForkScaling.pm Wed Apr 20 17:05:10 2005
@@ -18,13 +18,12 @@
 
 package Mail::SpamAssassin::SpamdForkScaling;
 
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
 
 use Mail::SpamAssassin::Util;
+use Mail::SpamAssassin::Logger;
 
 use vars qw {
   @PFSTATE_VARS %EXPORT_TAGS @EXPORT_OK

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm Wed Apr 20 17:05:10 2005
@@ -20,12 +20,11 @@
 
 package Mail::SpamAssassin::Util;
 
-# Make the main dbg() accessible in our package w/o an extra function
-*dbg=\&Mail::SpamAssassin::dbg;
-
 use strict;
 use warnings;
 use bytes;
+
+use Mail::SpamAssassin::Logger;
 
 use vars qw (
   @ISA @EXPORT

Modified: spamassassin/trunk/masses/mass-check
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/masses/mass-check?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/masses/mass-check (original)
+++ spamassassin/trunk/masses/mass-check Wed Apr 20 17:05:10 2005
@@ -98,6 +98,7 @@
 eval "use bytes";
 use Mail::SpamAssassin::ArchiveIterator;
 use Mail::SpamAssassin;
+use Mail::SpamAssassin::Logger;
 use File::Copy;
 use Getopt::Long;
 use POSIX qw(strftime);
@@ -141,6 +142,11 @@
 usage(1) if !@targets;
 
 $opt_debug ||= 'all' if defined $opt_debug;
+
+Mail::SpamAssassin::Logger::add(method => 'syslog',
+				ident => 'mass-check',
+				socket => 'unix',
+				facility => 'mail');
 
 my $user_prefs = "$opt_p/user_prefs";
 # generated user_prefs

Modified: spamassassin/trunk/spamassassin.raw
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/spamassassin.raw?rev=162095&r1=162094&r2=162095&view=diff
==============================================================================
--- spamassassin/trunk/spamassassin.raw (original)
+++ spamassassin/trunk/spamassassin.raw Wed Apr 20 17:05:10 2005
@@ -28,7 +28,10 @@
 use lib '@@INSTALLSITELIB@@';                   # substituted at 'make' time
 
 BEGIN {
-
+  # redirect __WARN__ and __DIE__
+  $SIG{__WARN__} = sub {
+    log_message("warn", $_[0]);
+  };
   # Locate locally installed SA libraries *without* using FindBin, which
   # generates warnings and causes more trouble than its worth.  We don't
   # need to be too smart about this BTW.
@@ -341,13 +344,6 @@
 
 # Ok, exit!
 exit( $exitvalue || 0 );
-
-###########################################################################
-
-# this is never called, it's just used to shut up the warnings
-sub NEVERCALLED {
-  $Mail::SpamAssassin::DEBUG = 0;
-}
 
 ###########################################################################