You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by jm...@apache.org on 2007/08/22 13:29:11 UTC

svn commit: r568562 - /spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm

Author: jm
Date: Wed Aug 22 04:29:10 2007
New Revision: 568562

URL: http://svn.apache.org/viewvc?rev=568562&view=rev
Log:
some optimization of _log(); avoid a needless string subst

Modified:
    spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm?rev=568562&r1=568561&r2=568562&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm Wed Aug 22 04:29:10 2007
@@ -176,7 +176,7 @@
 
 sub dbg {
   return unless $LOG_SA{level} >= DBG;
-  _log("dbg", @_);
+  _log(DBG, @_);
 }
 
 =item info("facility: message")
@@ -189,32 +189,38 @@
 
 sub info {
   return unless $LOG_SA{level} >= INFO;
-  _log("info", @_);
+  _log(INFO, @_);
 }
 
 # remember to avoid deep recursion, my friend
 sub _log {
-  my ($level, $message, @args) = @_;
-  my $facility = "generic";
-  local ($1,$2);
-  if ($message =~ /^(\S+?): (.*)/s) {
+  my $facility;
+  local ($1);
+
+  # it's faster to access this as the $_[1] alias, and not to perform
+  # string mods until we're sure we actually want to log anything
+  if ($_[1] =~ /^([^:]+?): /) {
     $facility = $1;
-    $message = $2;
+  } else {
+    $facility = "generic";
   }
 
-  # only debug specific facilities
-  # log all info, warn, and error messages
-  if ($level eq "dbg") {
+  # log all info, warn, and error messages;
+  # only debug if asked to
+  if ($_[0] == DBG) {
     return unless ($LOG_SA{facility}->{all} ||
 		   $LOG_SA{facility}->{$facility});
   }
 
+  my ($level, $message, @args) = @_;
+  $message =~ s/^([^:]+?): //;
+
   if (@args && index($message,'%') >= 0) { $message = sprintf($message,@args) }
   $message =~ s/\n+$//s;
   $message =~ s/^/${facility}: /mg;
 
   # no reason to go through warn()
-  log_message($level, $message);
+  log_message(($level == INFO ? "info" : "dbg"), $message);
 }
 
 =item add(method => 'syslog', socket => $socket, facility => $facility)