You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by sr...@apache.org on 2008/05/14 02:31:25 UTC

svn commit: r656061 - in /lucene/mahout/trunk/core: ./ lib/ src/main/java/org/apache/mahout/cf/taste/impl/common/ src/main/java/org/apache/mahout/cf/taste/impl/correlation/ src/main/java/org/apache/mahout/cf/taste/impl/eval/ src/main/java/org/apache/ma...

Author: srowen
Date: Tue May 13 17:31:24 2008
New Revision: 656061

URL: http://svn.apache.org/viewvc?rev=656061&view=rev
Log:
Add SL4J 1.5.0 plus static binding to Commons Logging (for best chance of Hadoop interoperability); update Taste code to use it first.

Added:
    lucene/mahout/trunk/core/lib/slf4j-LICENSE.txt
    lucene/mahout/trunk/core/lib/slf4j-api-1.5.0.jar   (with props)
    lucene/mahout/trunk/core/lib/slf4j-jcl-1.5.0.jar   (with props)
Modified:
    lucene/mahout/trunk/core/pom.xml
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/IOUtils.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/correlation/PearsonCorrelation.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/AbstractDifferenceRecommenderEvaluator.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/AverageAbsoluteDifferenceRecommenderEvaluator.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/RMSRecommenderEvaluator.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/model/file/FileDataModel.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/model/jdbc/AbstractJDBCDataModel.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/model/jdbc/ConnectionPoolDataSource.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/neighborhood/NearestNUserNeighborhood.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/neighborhood/ThresholdUserNeighborhood.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/AbstractRecommender.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/CachingRecommender.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericItemBasedRecommender.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericUserBasedRecommender.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemAverageRecommender.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemUserAverageRecommender.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender2.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorage.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/SlopeOneRecommender.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/jdbc/AbstractJDBCDiffStorage.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/transforms/InverseUserFrequency.java
    lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/LoadTest.java
    lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/TasteTestCase.java

Added: lucene/mahout/trunk/core/lib/slf4j-LICENSE.txt
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/lib/slf4j-LICENSE.txt?rev=656061&view=auto
==============================================================================
--- lucene/mahout/trunk/core/lib/slf4j-LICENSE.txt (added)
+++ lucene/mahout/trunk/core/lib/slf4j-LICENSE.txt Tue May 13 17:31:24 2008
@@ -0,0 +1,24 @@
+Copyright (c) 2004-2008 QOS.ch
+All rights reserved.
+
+Permission is hereby granted, free  of charge, to any person obtaining
+a  copy  of this  software  and  associated  documentation files  (the
+"Software"), to  deal in  the Software without  restriction, including
+without limitation  the rights to  use, copy, modify,  merge, publish,
+distribute,  sublicense, and/or sell  copies of  the Software,  and to
+permit persons to whom the Software  is furnished to do so, subject to
+the following conditions:
+
+The  above  copyright  notice  and  this permission  notice  shall  be
+included in all copies or substantial portions of the Software.
+
+THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
+EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
+MERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+

Added: lucene/mahout/trunk/core/lib/slf4j-api-1.5.0.jar
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/lib/slf4j-api-1.5.0.jar?rev=656061&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/mahout/trunk/core/lib/slf4j-api-1.5.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: lucene/mahout/trunk/core/lib/slf4j-jcl-1.5.0.jar
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/lib/slf4j-jcl-1.5.0.jar?rev=656061&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/mahout/trunk/core/lib/slf4j-jcl-1.5.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: lucene/mahout/trunk/core/pom.xml
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/pom.xml?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/pom.xml (original)
+++ lucene/mahout/trunk/core/pom.xml Tue May 13 17:31:24 2008
@@ -177,6 +177,18 @@
     </dependency>
 
     <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>1.5.0</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-jcl</artifactId>
+      <version>1.5.0</version>
+    </dependency>
+
+    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>3.8.2</version>

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/IOUtils.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/IOUtils.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/IOUtils.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/IOUtils.java Tue May 13 17:31:24 2008
@@ -17,21 +17,22 @@
 
 package org.apache.mahout.cf.taste.impl.common;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import java.io.Closeable;
 import java.io.IOException;
 import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>I/O-related utility methods that don't have a better home.</p>
  */
 public final class IOUtils {
 
-  private static final Logger log = Logger.getLogger(IOUtils.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(IOUtils.class);
 
   private IOUtils() {
   }
@@ -41,7 +42,7 @@
       try {
         closeable.close();
       } catch (IOException ioe) {
-        log.log(Level.WARNING, "Unexpected exception while closing " + closeable + "; continuing", ioe);
+        log.warn("Unexpected exception while closing " + closeable + "; continuing", ioe);
       }
     }
   }
@@ -53,7 +54,7 @@
       try {
         closeable.close();
       } catch (SQLException sqle) {
-        log.log(Level.WARNING, "Unexpected exception while closing " + closeable + "; continuing", sqle);
+        log.warn("Unexpected exception while closing " + closeable + "; continuing", sqle);
       }
     }
   }
@@ -63,7 +64,7 @@
       try {
         closeable.close();
       } catch (SQLException sqle) {
-        log.log(Level.WARNING, "Unexpected exception while closing " + closeable + "; continuing", sqle);
+        log.warn("Unexpected exception while closing " + closeable + "; continuing", sqle);
       }
     }
   }
@@ -73,7 +74,7 @@
       try {
         closeable.close();
       } catch (SQLException sqle) {
-        log.log(Level.WARNING, "Unexpected exception while closing " + closeable + "; continuing", sqle);
+        log.warn("Unexpected exception while closing " + closeable + "; continuing", sqle);
       }
     }
   }

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/correlation/PearsonCorrelation.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/correlation/PearsonCorrelation.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/correlation/PearsonCorrelation.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/correlation/PearsonCorrelation.java Tue May 13 17:31:24 2008
@@ -27,9 +27,8 @@
 import org.apache.mahout.cf.taste.model.User;
 import org.apache.mahout.cf.taste.transforms.CorrelationTransform;
 import org.apache.mahout.cf.taste.transforms.PreferenceTransform2;
-
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>An implementation of the Pearson correlation. For {@link User}s X and Y, the following values
@@ -57,7 +56,7 @@
  */
 public final class PearsonCorrelation implements UserCorrelation, ItemCorrelation {
 
-  private static final Logger log = Logger.getLogger(PearsonCorrelation.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(PearsonCorrelation.class);
 
   private final DataModel dataModel;
   private PreferenceInferrer inferrer;
@@ -263,8 +262,8 @@
       result = normalizeWeightResult(result, count, dataModel.getNumItems());
     }
 
-    if (log.isLoggable(Level.FINER)) {
-      log.finer("UserCorrelation between " + user1 + " and " + user2 + " is " + result);
+    if (log.isTraceEnabled()) {
+      log.trace("UserCorrelation between " + user1 + " and " + user2 + " is " + result);
     }
     return result;
   }
@@ -345,8 +344,8 @@
       result = normalizeWeightResult(result, count, dataModel.getNumUsers());
     }
 
-    if (log.isLoggable(Level.FINER)) {
-      log.finer("UserCorrelation between " + item1 + " and " + item2 + " is " + result);
+    if (log.isTraceEnabled()) {
+      log.trace("UserCorrelation between " + item1 + " and " + item2 + " is " + result);
     }
     return result;
   }

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/AbstractDifferenceRecommenderEvaluator.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/AbstractDifferenceRecommenderEvaluator.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/AbstractDifferenceRecommenderEvaluator.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/AbstractDifferenceRecommenderEvaluator.java Tue May 13 17:31:24 2008
@@ -30,21 +30,21 @@
 import org.apache.mahout.cf.taste.model.Preference;
 import org.apache.mahout.cf.taste.model.User;
 import org.apache.mahout.cf.taste.recommender.Recommender;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Random;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>Abstract superclass of a couple implementations, providing shared functionality.</p>
  */
 abstract class AbstractDifferenceRecommenderEvaluator implements RecommenderEvaluator {
 
-  private static final Logger log = Logger.getLogger(AbstractDifferenceRecommenderEvaluator.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(AbstractDifferenceRecommenderEvaluator.class);
 
   private final Random random;
 
@@ -92,10 +92,8 @@
             testPrefs.add(newPref);
           }
         }
-        if (log.isLoggable(Level.FINE)) {
-          log.fine("Training against " + trainingPrefs.size() + " preferences");
-          log.fine("Evaluating accuracy of " + testPrefs.size() + " preferences");
-        }
+        log.debug("Training against {} preferences", trainingPrefs.size());
+        log.debug("Evaluating accuracy of {} preferences", testPrefs.size());
         if (!trainingPrefs.isEmpty()) {
           User trainingUser = new GenericUser<String>(user.getID().toString(), trainingPrefs);
           trainingUsers.add(trainingUser);

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/AverageAbsoluteDifferenceRecommenderEvaluator.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/AverageAbsoluteDifferenceRecommenderEvaluator.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/AverageAbsoluteDifferenceRecommenderEvaluator.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/AverageAbsoluteDifferenceRecommenderEvaluator.java Tue May 13 17:31:24 2008
@@ -23,12 +23,12 @@
 import org.apache.mahout.cf.taste.model.Preference;
 import org.apache.mahout.cf.taste.model.User;
 import org.apache.mahout.cf.taste.recommender.Recommender;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.Collection;
 import java.util.Map;
 import java.util.NoSuchElementException;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>A {@link org.apache.mahout.cf.taste.eval.RecommenderEvaluator} which computes the average absolute difference
@@ -38,7 +38,7 @@
  */
 public final class AverageAbsoluteDifferenceRecommenderEvaluator extends AbstractDifferenceRecommenderEvaluator {
 
-  private static final Logger log = Logger.getLogger(AverageAbsoluteDifferenceRecommenderEvaluator.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(AverageAbsoluteDifferenceRecommenderEvaluator.class);
 
   @Override
   double getEvaluation(Map<User, Collection<Preference>> testUserPrefs,
@@ -57,7 +57,7 @@
         } catch (NoSuchElementException nsee) {
           // It's possible that an item exists in the test data but not training data in which case
           // NSEE will be thrown. Just ignore it and move on.
-          log.log(Level.INFO, "Element exists in test data but not training data: " + testUser.getID(), nsee);
+          log.info("Element exists in test data but not training data: {}", testUser.getID(), nsee);
         }
       }
     }

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/RMSRecommenderEvaluator.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/RMSRecommenderEvaluator.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/RMSRecommenderEvaluator.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/RMSRecommenderEvaluator.java Tue May 13 17:31:24 2008
@@ -23,12 +23,12 @@
 import org.apache.mahout.cf.taste.model.Preference;
 import org.apache.mahout.cf.taste.model.User;
 import org.apache.mahout.cf.taste.recommender.Recommender;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.Collection;
 import java.util.Map;
 import java.util.NoSuchElementException;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>A {@link org.apache.mahout.cf.taste.eval.RecommenderEvaluator} which computes the "root mean squared" difference
@@ -37,7 +37,7 @@
  */
 public final class RMSRecommenderEvaluator extends AbstractDifferenceRecommenderEvaluator {
 
-  private static final Logger log = Logger.getLogger(RMSRecommenderEvaluator.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(RMSRecommenderEvaluator.class);
 
   @Override
   double getEvaluation(Map<User, Collection<Preference>> testUserPrefs,
@@ -57,7 +57,7 @@
         } catch (NoSuchElementException nsee) {
           // It's possible that an item exists in the test data but not training data in which case
           // NSEE will be thrown. Just ignore it and move on.
-          log.log(Level.INFO, "Element exists in test data but not training data: " + testUser.getID(), nsee);
+          log.info("Element exists in test data but not training data: {}", testUser.getID(), nsee);
         }
       }
     }

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/model/file/FileDataModel.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/model/file/FileDataModel.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/model/file/FileDataModel.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/model/file/FileDataModel.java Tue May 13 17:31:24 2008
@@ -27,6 +27,8 @@
 import org.apache.mahout.cf.taste.model.Item;
 import org.apache.mahout.cf.taste.model.Preference;
 import org.apache.mahout.cf.taste.model.User;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -41,8 +43,6 @@
 import java.util.Timer;
 import java.util.TimerTask;
 import java.util.concurrent.locks.ReentrantLock;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>A {@link DataModel} backed by a comma-delimited file. This class assumes that each line of the
@@ -57,7 +57,7 @@
  */
 public class FileDataModel implements DataModel {
 
-  private static final Logger log = Logger.getLogger(FileDataModel.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(FileDataModel.class);
 
   private static final Timer timer = new Timer(true);
   private static final long RELOAD_CHECK_INTERVAL_MS = 60L * 1000L;
@@ -121,9 +121,7 @@
       while (notDone) {
         String line = reader.readLine();
         if (line != null && line.length() > 0) {
-          if (log.isLoggable(Level.FINE)) {
-            log.fine("Read line: " + line);
-          }
+          log.debug("Read line: {}", line);
           processLine(line, data);
         } else {
           notDone = false;
@@ -149,9 +147,7 @@
       data.put(userID, prefs);
     }
     Item item = buildItem(itemID);
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Read item " + item + " for user ID " + userID);
-    }
+      log.debug("Read item '{}' for user ID '{}'", item, userID);
     prefs.add(buildPreference(null, item, preferenceValue));
   }
 
@@ -231,7 +227,7 @@
       try {
         reload();
       } catch (IOException ioe) {
-        log.log(Level.WARNING, "Unexpected exception while refreshing", ioe);
+        log.warn("Unexpected exception while refreshing", ioe);
       }
     } finally {
       refreshLock.unlock();
@@ -284,12 +280,12 @@
       if (loaded) {
         long newModified = dataFile.lastModified();
         if (newModified > lastModified) {
-          log.fine("File has changed; reloading...");
+          log.debug("File has changed; reloading...");
           lastModified = newModified;
           try {
             reload();
           } catch (IOException ioe) {
-            log.log(Level.WARNING, "Error while reloading file", ioe);
+            log.warn("Error while reloading file", ioe);
           }
         }
       }

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/model/jdbc/AbstractJDBCDataModel.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/model/jdbc/AbstractJDBCDataModel.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/model/jdbc/AbstractJDBCDataModel.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/model/jdbc/AbstractJDBCDataModel.java Tue May 13 17:31:24 2008
@@ -28,6 +28,8 @@
 import org.apache.mahout.cf.taste.model.JDBCDataModel;
 import org.apache.mahout.cf.taste.model.Preference;
 import org.apache.mahout.cf.taste.model.User;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.naming.Context;
 import javax.naming.InitialContext;
@@ -43,8 +45,6 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.NoSuchElementException;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>An abstract superclass for JDBC-related {@link DataModel} implementations, providing most of the common
@@ -69,7 +69,7 @@
  */
 public abstract class AbstractJDBCDataModel implements JDBCDataModel {
 
-  private static final Logger log = Logger.getLogger(AbstractJDBCDataModel.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(AbstractJDBCDataModel.class);
 
   public static final String DEFAULT_DATASOURCE_NAME = "jdbc/taste";
   public static final String DEFAULT_PREFERENCE_TABLE = "taste_preferences";
@@ -100,7 +100,7 @@
                                   String getPrefsForItemSQL,
                                   String getUsersPreferringItemSQL) {
 
-    log.fine("Creating AbstractJDBCModel...");
+    log.debug("Creating AbstractJDBCModel...");
     checkNotNullAndLog("dataSource", dataSource);
     checkNotNullAndLog("getUserSQL", getUserSQL);
     checkNotNullAndLog("getNumItemsSQL", getNumItemsSQL);
@@ -114,8 +114,8 @@
     checkNotNullAndLog("getUsersPreferringItemSQL", getUsersPreferringItemSQL);
 
     if (!(dataSource instanceof ConnectionPoolDataSource)) {
-      log.warning("You are not using ConnectionPoolDataSource. Make sure your DataSource pools connections " +
-                  "to the database itself, or database performance will be severely reduced.");
+      log.warn("You are not using ConnectionPoolDataSource. Make sure your DataSource pools connections " +
+               "to the database itself, or database performance will be severely reduced.");
     }
 
     this.dataSource = dataSource;
@@ -134,9 +134,7 @@
     if (value == null || value.toString().length() == 0) {
       throw new IllegalArgumentException(argName + " is null or empty");
     }
-    if (log.isLoggable(Level.FINE)) {
-      log.fine(argName + ": " + value);
-    }
+    log.debug("{}: {}", argName, value);
   }
 
   /**
@@ -159,7 +157,7 @@
         try {
           context.close();
         } catch (NamingException ne) {
-          log.log(Level.WARNING, "Error while closing Context; continuing...", ne);
+          log.warn("Error while closing Context; continuing...", ne);
         }
       }
     }
@@ -173,7 +171,7 @@
   }
 
   public final Iterable<? extends User> getUsers() throws TasteException {
-    log.fine("Retrieving all users...");
+    log.debug("Retrieving all users...");
     return new IteratorIterable<User>(new ResultSetUserIterator(dataSource, getUsersSQL));
   }
 
@@ -182,9 +180,7 @@
    */
   public final User getUser(Object id) throws TasteException {
 
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Retrieving user ID '" + id + "'...");
-    }
+    log.debug("Retrieving user ID '{}'", id);
 
     Connection conn = null;
     PreparedStatement stmt = null;
@@ -197,9 +193,7 @@
       stmt = conn.prepareStatement(getUserSQL);
       stmt.setObject(1, id);
 
-      if (log.isLoggable(Level.FINE)) {
-        log.fine("Executing SQL query: " + getUserSQL);
-      }
+      log.debug("Executing SQL query: {}", getUserSQL);
       rs = stmt.executeQuery();
 
       List<Preference> prefs = new ArrayList<Preference>();
@@ -214,7 +208,7 @@
       return buildUser(idString, prefs);
 
     } catch (SQLException sqle) {
-      log.log(Level.WARNING, "Exception while retrieving user", sqle);
+      log.warn("Exception while retrieving user", sqle);
       throw new TasteException(sqle);
     } finally {
       IOUtils.safeClose(rs, stmt, conn);
@@ -223,7 +217,7 @@
   }
 
   public final Iterable<? extends Item> getItems() throws TasteException {
-    log.fine("Retrieving all items...");
+    log.debug("Retrieving all items...");
     return new IteratorIterable<Item>(new ResultSetItemIterator(dataSource, getItemsSQL));
   }
 
@@ -237,9 +231,7 @@
       return buildItem((String) id);
     }
 
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Retrieving item ID '" + id + "'...");
-    }
+    log.debug("Retrieving item ID '{}'", id);
 
     Connection conn = null;
     PreparedStatement stmt = null;
@@ -250,9 +242,7 @@
       stmt = conn.prepareStatement(getItemSQL);
       stmt.setObject(1, id);
 
-      if (log.isLoggable(Level.FINE)) {
-        log.fine("Executing SQL query: " + getItemSQL);
-      }
+      log.debug("Executing SQL query: {}", getItemSQL);
       rs = stmt.executeQuery();
       if (rs.next()) {
         return buildItem((String) id);
@@ -260,7 +250,7 @@
         throw new NoSuchElementException();
       }
     } catch (SQLException sqle) {
-      log.log(Level.WARNING, "Exception while retrieving item", sqle);
+      log.warn("Exception while retrieving item", sqle);
       throw new TasteException(sqle);
     } finally {
       IOUtils.safeClose(rs, stmt, conn);
@@ -277,9 +267,7 @@
   }
 
   private List<? extends Preference> doGetPreferencesForItem(Object itemID) throws TasteException {
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Retrieving preferences for item ID '" + itemID + "'...");
-    }
+    log.debug("Retrieving preferences for item ID '{}'", itemID);
     Item item = getItem(itemID);
     Connection conn = null;
     PreparedStatement stmt = null;
@@ -289,9 +277,7 @@
       stmt = conn.prepareStatement(getPrefsForItemSQL);
       stmt.setObject(1, itemID);
 
-      if (log.isLoggable(Level.FINE)) {
-        log.fine("Executing SQL query: " + getPrefsForItemSQL);
-      }
+      log.debug("Executing SQL query: {}", getPrefsForItemSQL);
       rs = stmt.executeQuery();
       List<Preference> prefs = new ArrayList<Preference>();
       while (rs.next()) {
@@ -302,7 +288,7 @@
       }
       return prefs;
     } catch (SQLException sqle) {
-      log.log(Level.WARNING, "Exception while retrieving prefs for item", sqle);
+      log.warn("Exception while retrieving prefs for item", sqle);
       throw new TasteException(sqle);
     } finally {
       IOUtils.safeClose(rs, stmt, conn);
@@ -318,21 +304,19 @@
   }
 
   private int getNumThings(String name, String sql) throws TasteException {
-    log.fine("Retrieving number of " + name + " in model...");
+    log.debug("Retrieving number of {} in model", name);
     Connection conn = null;
     Statement stmt = null;
     ResultSet rs = null;
     try {
       conn = dataSource.getConnection();
       stmt = conn.createStatement();
-      if (log.isLoggable(Level.FINE)) {
-        log.fine("Executing SQL query: " + sql);
-      }
+      log.debug("Executing SQL query: {}", sql);
       rs = stmt.executeQuery(sql);
       rs.next();
       return rs.getInt(1);
     } catch (SQLException sqle) {
-      log.log(Level.WARNING, "Exception while retrieving number of " + name, sqle);
+      log.warn("Exception while retrieving number of " + name, sqle);
       throw new TasteException(sqle);
     } finally {
       IOUtils.safeClose(rs, stmt, conn);
@@ -348,8 +332,8 @@
       throw new IllegalArgumentException("Invalid value: " + value);
     }
 
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Setting preference for user '" + userID + "', item '" + itemID + "', value " + value);
+    if (log.isDebugEnabled()) {
+      log.debug("Setting preference for user '" + userID + "', item '" + itemID + "', value " + value);
     }
 
     Connection conn = null;
@@ -364,13 +348,11 @@
       stmt.setDouble(3, value);
       stmt.setDouble(4, value);
 
-      if (log.isLoggable(Level.FINE)) {
-        log.fine("Executing SQL update: " + setPreferenceSQL);
-      }
+      log.debug("Executing SQL update: {}", setPreferenceSQL);
       stmt.executeUpdate();
 
     } catch (SQLException sqle) {
-      log.log(Level.WARNING, "Exception while setting preference", sqle);
+      log.warn("Exception while setting preference", sqle);
       throw new TasteException(sqle);
     } finally {
       IOUtils.safeClose(null, stmt, conn);
@@ -383,9 +365,7 @@
       throw new IllegalArgumentException("userID or itemID is null");
     }
 
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Removing preference for user '" + userID + "', item '" + itemID + '\'');
-    }
+    log.debug("Removing preference for user '{}', item '{}'", userID, itemID);
 
     Connection conn = null;
     PreparedStatement stmt = null;
@@ -397,13 +377,11 @@
       stmt.setObject(1, userID);
       stmt.setObject(2, itemID);
 
-      if (log.isLoggable(Level.FINE)) {
-        log.fine("Executing SQL update: " + removePreferenceSQL);
-      }
+      log.debug("Executing SQL update: {}", removePreferenceSQL);
       stmt.executeUpdate();
 
     } catch (SQLException sqle) {
-      log.log(Level.WARNING, "Exception while removing preference", sqle);
+      log.warn("Exception while removing preference", sqle);
       throw new TasteException(sqle);
     } finally {
       IOUtils.safeClose(null, stmt, conn);
@@ -476,9 +454,7 @@
         connection = dataSource.getConnection();
         statement = connection.createStatement();
         statement.setFetchDirection(ResultSet.FETCH_UNKNOWN);
-        if (log.isLoggable(Level.FINE)) {
-          log.fine("Executing SQL query: " + getUsersSQL);
-        }
+        log.debug("Executing SQL query: {}", getUsersSQL);
         resultSet = statement.executeQuery(getUsersSQL);
       } catch (SQLException sqle) {
         close();
@@ -498,7 +474,7 @@
             nextExists = true;
           }
         } catch (SQLException sqle) {
-          log.log(Level.WARNING, "Unexpected exception while accessing ResultSet; continuing...", sqle);
+          log.warn("Unexpected exception while accessing ResultSet; continuing...", sqle);
           close();
         }
       }
@@ -532,7 +508,7 @@
         }
       } catch (SQLException sqle) {
         // No good way to handle this since we can't throw an exception
-        log.log(Level.WARNING, "Exception while iterating over users", sqle);
+        log.warn("Exception while iterating over users", sqle);
         close();
         throw new NoSuchElementException("Can't retrieve more due to exception: " + sqle);
       }
@@ -579,9 +555,7 @@
         connection = dataSource.getConnection();
         statement = connection.createStatement();
         statement.setFetchDirection(ResultSet.FETCH_FORWARD);
-        if (log.isLoggable(Level.FINE)) {
-          log.fine("Executing SQL query: " + getItemsSQL);
-        }
+        log.debug("Executing SQL query: {}", getItemsSQL);
         resultSet = statement.executeQuery(getItemsSQL);
       } catch (SQLException sqle) {
         close();
@@ -601,7 +575,7 @@
             nextExists = true;
           }
         } catch (SQLException sqle) {
-          log.log(Level.WARNING, "Unexpected exception while accessing ResultSet; continuing...", sqle);
+          log.warn("Unexpected exception while accessing ResultSet; continuing...", sqle);
           close();
         }
       }
@@ -622,7 +596,7 @@
         }
       } catch (SQLException sqle) {
         // No good way to handle this since we can't throw an exception
-        log.log(Level.WARNING, "Exception while iterating over items", sqle);
+        log.warn("Exception while iterating over items", sqle);
         close();
         throw new NoSuchElementException("Can't retrieve more due to exception: " + sqle);
       }

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/model/jdbc/ConnectionPoolDataSource.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/model/jdbc/ConnectionPoolDataSource.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/model/jdbc/ConnectionPoolDataSource.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/model/jdbc/ConnectionPoolDataSource.java Tue May 13 17:31:24 2008
@@ -21,19 +21,20 @@
 import org.apache.commons.pool.ObjectPool;
 import org.apache.commons.pool.PoolableObjectFactory;
 import org.apache.commons.pool.impl.StackObjectPool;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.sql.DataSource;
 import java.io.PrintWriter;
 import java.sql.Connection;
 import java.sql.SQLException;
-import java.util.logging.Logger;
 
 /**
  * <p>A wrapper {@link DataSource} which pools connections. Why can't Jakarta Commons DBCP provide this directly?</p>
  */
 public final class ConnectionPoolDataSource implements DataSource {
 
-  private static final Logger log = Logger.getLogger(ConnectionPoolDataSource.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(ConnectionPoolDataSource.class);
 
   private final DataSource delegate;
 
@@ -97,12 +98,12 @@
     }
 
     public Object makeObject() throws SQLException {
-      log.fine("Obtaining pooled connection");
+      log.debug("Obtaining pooled connection");
       return dataSource.getConnection();
     }
 
     public void destroyObject(Object o) throws SQLException {
-      log.fine("Closing pooled connection");
+      log.debug("Closing pooled connection");
       ((Connection) o).close();
     }
 

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/neighborhood/NearestNUserNeighborhood.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/neighborhood/NearestNUserNeighborhood.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/neighborhood/NearestNUserNeighborhood.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/neighborhood/NearestNUserNeighborhood.java Tue May 13 17:31:24 2008
@@ -22,6 +22,8 @@
 import org.apache.mahout.cf.taste.impl.common.SoftCache;
 import org.apache.mahout.cf.taste.model.DataModel;
 import org.apache.mahout.cf.taste.model.User;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -29,8 +31,6 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.ListIterator;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>Computes a neigbhorhood consisting of the nearest n {@link User}s to a given {@link User}.
@@ -38,7 +38,7 @@
  */
 public final class NearestNUserNeighborhood extends AbstractUserNeighborhood {
 
-  private static final Logger log = Logger.getLogger(NearestNUserNeighborhood.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(NearestNUserNeighborhood.class);
 
   private final SoftCache<Object, Collection<User>> cache;
 
@@ -93,9 +93,7 @@
     }
 
     public Collection<User> getValue(Object key) throws TasteException {
-      if (log.isLoggable(Level.FINER)) {
-        log.fine("Computing neighborhood around user ID '" + key + '\'');
-      }
+      log.trace("Computing neighborhood around user ID '{}'", key);
 
       DataModel dataModel = getDataModel();
       User theUser = dataModel.getUser(key);
@@ -130,9 +128,7 @@
         neighborhood.add(pair.user);
       }
 
-      if (log.isLoggable(Level.FINER)) {
-        log.fine("UserNeighborhood around user ID '" + key + "' is: " + neighborhood);
-      }
+      log.trace("UserNeighborhood around user ID '{}' is: {}", key, neighborhood);
 
       return Collections.unmodifiableList(neighborhood);
     }

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/neighborhood/ThresholdUserNeighborhood.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/neighborhood/ThresholdUserNeighborhood.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/neighborhood/ThresholdUserNeighborhood.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/neighborhood/ThresholdUserNeighborhood.java Tue May 13 17:31:24 2008
@@ -22,14 +22,14 @@
 import org.apache.mahout.cf.taste.impl.common.SoftCache;
 import org.apache.mahout.cf.taste.model.DataModel;
 import org.apache.mahout.cf.taste.model.User;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>Computes a neigbhorhood consisting of all {@link User}s whose similarity to the
@@ -38,7 +38,7 @@
  */
 public final class ThresholdUserNeighborhood extends AbstractUserNeighborhood {
 
-  private static final Logger log = Logger.getLogger(ThresholdUserNeighborhood.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(ThresholdUserNeighborhood.class);
 
   private final SoftCache<Object, Collection<User>> cache;
 
@@ -96,9 +96,7 @@
     }
 
     public Collection<User> getValue(Object key) throws TasteException {
-      if (log.isLoggable(Level.FINER)) {
-        log.fine("Computing neighborhood around user ID '" + key + '\'');
-      }
+      log.trace("Computing neighborhood around user ID '{}'", key);
 
       DataModel dataModel = getDataModel();
       User theUser = dataModel.getUser(key);
@@ -116,9 +114,7 @@
         }
       }
 
-      if (log.isLoggable(Level.FINER)) {
-        log.fine("UserNeighborhood around user ID '" + key + "' is: " + neighborhood);
-      }
+      log.trace("UserNeighborhood around user ID '{}' is: {}", key, neighborhood);
 
       return Collections.unmodifiableList(neighborhood);
     }

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/AbstractRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/AbstractRecommender.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/AbstractRecommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/AbstractRecommender.java Tue May 13 17:31:24 2008
@@ -23,17 +23,17 @@
 import org.apache.mahout.cf.taste.model.User;
 import org.apache.mahout.cf.taste.recommender.RecommendedItem;
 import org.apache.mahout.cf.taste.recommender.Recommender;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.locks.ReentrantLock;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 public abstract class AbstractRecommender implements Recommender {
 
-  private static final Logger log = Logger.getLogger(AbstractRecommender.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(AbstractRecommender.class);
 
   private final DataModel dataModel;
   private final ReentrantLock refreshLock;
@@ -68,8 +68,8 @@
     if (Double.isNaN(value)) {
       throw new IllegalArgumentException("Invalid value: " + value);
     }
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Setting preference for user '" + userID + "', item '" + itemID + "', value " + value);
+    if (log.isDebugEnabled()) {
+      log.debug("Setting preference for user '" + userID + "', item '" + itemID + "', value " + value);
     }
     dataModel.setPreference(userID, itemID, value);
   }
@@ -84,9 +84,7 @@
     if (userID == null || itemID == null) {
       throw new IllegalArgumentException("userID or itemID is null");
     }
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Remove preference for user '" + userID + "', item '" + itemID + '\'');
-    }
+    log.debug("Remove preference for user '{}', item '{}'", userID, itemID);
     dataModel.removePreference(userID, itemID);
   }
 

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/CachingRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/CachingRecommender.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/CachingRecommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/CachingRecommender.java Tue May 13 17:31:24 2008
@@ -25,14 +25,14 @@
 import org.apache.mahout.cf.taste.recommender.RecommendedItem;
 import org.apache.mahout.cf.taste.recommender.Recommender;
 import org.apache.mahout.cf.taste.recommender.Rescorer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.lang.ref.SoftReference;
 import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.locks.ReentrantLock;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>A {@link Recommender} which caches the results from another {@link Recommender} in memory.
@@ -41,7 +41,7 @@
  */
 public final class CachingRecommender implements Recommender {
 
-  private static final Logger log = Logger.getLogger(CachingRecommender.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(CachingRecommender.class);
 
   private final Recommender recommender;
   private final AtomicInteger maxHowMany;
@@ -137,9 +137,7 @@
    * @param userID clear cached data associated with this user ID
    */
   public void clear(Object userID) {
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Clearing recommendations for user ID '" + userID + "'...");
-    }
+    log.debug("Clearing recommendations for user ID '{}'", userID);
     recommendationCache.remove(userID);
   }
 
@@ -147,7 +145,7 @@
    * <p>Clears all cached recommendations.</p>
    */
   public void clear() {
-    log.fine("Clearing all recommendations...");
+    log.debug("Clearing all recommendations...");
     recommendationCache.clear();
   }
 
@@ -167,9 +165,7 @@
     }
 
     public Recommendations getValue(Object key) throws TasteException {
-      if (log.isLoggable(Level.FINE)) {
-        log.fine("Retrieving new recommendations for user ID '" + key + '\'');
-      }
+      log.debug("Retrieving new recommendations for user ID '{}'", key);
       return new Recommendations(Collections.unmodifiableList(recommender.recommend(key, maxHowMany.get())));
     }
   }
@@ -185,10 +181,7 @@
     public Double getValue(Pair<?, ?> key) throws TasteException {
       Object userID = key.getFirst();
       Object itemID = key.getSecond();
-      if (log.isLoggable(Level.FINE)) {
-        log.fine("Retrieving estimated preference for user ID '" + userID + "\' and item ID \'" +
-                 itemID + '\'');
-      }
+      log.debug("Retrieving estimated preference for user ID '{}' and item ID '{}'", userID, itemID);
       return recommender.estimatePreference(userID, itemID);
     }
   }

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericItemBasedRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericItemBasedRecommender.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericItemBasedRecommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericItemBasedRecommender.java Tue May 13 17:31:24 2008
@@ -29,6 +29,8 @@
 import org.apache.mahout.cf.taste.recommender.ItemBasedRecommender;
 import org.apache.mahout.cf.taste.recommender.RecommendedItem;
 import org.apache.mahout.cf.taste.recommender.Rescorer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -37,8 +39,6 @@
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.locks.ReentrantLock;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>A simple {@link org.apache.mahout.cf.taste.recommender.Recommender} which uses a given
@@ -57,7 +57,7 @@
  */
 public final class GenericItemBasedRecommender extends AbstractRecommender implements ItemBasedRecommender {
 
-  private static final Logger log = Logger.getLogger(GenericItemBasedRecommender.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(GenericItemBasedRecommender.class);
 
   private final ItemCorrelation correlation;
   private final ReentrantLock refreshLock;
@@ -84,9 +84,7 @@
       throw new IllegalArgumentException("rescorer is null");
     }
 
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Recommending items for user ID '" + userID + '\'');
-    }
+    log.debug("Recommending items for user ID '{}'", userID);
 
     User theUser = getDataModel().getUser(userID);
     if (getNumPreferences(theUser) == 0) {
@@ -99,9 +97,7 @@
 
     List<RecommendedItem> topItems = TopItems.getTopItems(howMany, allItems, rescorer, estimator);
 
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Recommendations are: " + topItems);
-    }
+    log.debug("Recommendations are: {}", topItems);
     return topItems;
   }
 

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericUserBasedRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericUserBasedRecommender.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericUserBasedRecommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericUserBasedRecommender.java Tue May 13 17:31:24 2008
@@ -29,6 +29,8 @@
 import org.apache.mahout.cf.taste.recommender.Recommender;
 import org.apache.mahout.cf.taste.recommender.Rescorer;
 import org.apache.mahout.cf.taste.recommender.UserBasedRecommender;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.Collection;
 import java.util.Collections;
@@ -36,8 +38,6 @@
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.locks.ReentrantLock;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>A simple {@link Recommender} which uses a given {@link DataModel} and {@link UserNeighborhood}
@@ -45,7 +45,7 @@
  */
 public final class GenericUserBasedRecommender extends AbstractRecommender implements UserBasedRecommender {
 
-  private static final Logger log = Logger.getLogger(GenericUserBasedRecommender.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(GenericUserBasedRecommender.class);
 
   private final UserNeighborhood neighborhood;
   private final UserCorrelation correlation;
@@ -75,32 +75,24 @@
       throw new IllegalArgumentException("rescorer is null");
     }
 
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Recommending items for user ID '" + userID + '\'');
-    }
+    log.debug("Recommending items for user ID '{}'", userID);
 
     User theUser = getDataModel().getUser(userID);
     Collection<User> theNeighborhood = neighborhood.getUserNeighborhood(userID);
-    if (log.isLoggable(Level.FINER)) {
-      log.finer("UserNeighborhood is: " + neighborhood);
-    }
+    log.trace("UserNeighborhood is: {}", neighborhood);
 
     if (theNeighborhood.isEmpty()) {
       return Collections.emptyList();
     }
 
     Set<Item> allItems = getAllOtherItems(theNeighborhood, theUser);
-    if (log.isLoggable(Level.FINER)) {
-      log.finer("Items in neighborhood which user doesn't prefer already are: " + allItems);
-    }
+    log.trace("Items in neighborhood which user doesn't prefer already are: {}", allItems);
 
     TopItems.Estimator<Item> estimator = new Estimator(theUser, theNeighborhood);
 
     List<RecommendedItem> topItems = TopItems.getTopItems(howMany, allItems, rescorer, estimator);
 
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Recommendations are: " + topItems);
-    }
+    log.debug("Recommendations are: {}", topItems);
     return topItems;
   }
 

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemAverageRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemAverageRecommender.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemAverageRecommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemAverageRecommender.java Tue May 13 17:31:24 2008
@@ -26,6 +26,8 @@
 import org.apache.mahout.cf.taste.model.User;
 import org.apache.mahout.cf.taste.recommender.RecommendedItem;
 import org.apache.mahout.cf.taste.recommender.Rescorer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.HashMap;
 import java.util.List;
@@ -35,8 +37,6 @@
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>A simple recommender that always estimates preference for an {@link Item} to be the average of
@@ -46,7 +46,7 @@
  */
 public final class ItemAverageRecommender extends AbstractRecommender {
 
-  private static final Logger log = Logger.getLogger(ItemAverageRecommender.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(ItemAverageRecommender.class);
 
   private final Map<Object, RunningAverage> itemAverages;
   private boolean averagesBuilt;
@@ -71,9 +71,7 @@
     if (rescorer == null) {
       throw new IllegalArgumentException("rescorer is null");
     }
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Recommending items for user ID '" + userID + '\'');
-    }
+    log.debug("Recommending items for user ID '{}'", userID);
     checkAverageDiffsBuilt();
 
     User theUser = getDataModel().getUser(userID);
@@ -83,9 +81,7 @@
 
     List<RecommendedItem> topItems = TopItems.getTopItems(howMany, allItems, rescorer, estimator);
 
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Recommendations are: " + topItems);
-    }
+    log.debug("Recommendations are: {}", topItems);
     return topItems;
   }
 
@@ -198,7 +194,7 @@
       try {
         buildAverageDiffs();
       } catch (TasteException te) {
-        log.log(Level.WARNING, "Unexpected excpetion while refreshing", te);
+        log.warn("Unexpected excpetion while refreshing", te);
       }
     } finally {
       refreshLock.unlock();

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemUserAverageRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemUserAverageRecommender.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemUserAverageRecommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemUserAverageRecommender.java Tue May 13 17:31:24 2008
@@ -26,6 +26,8 @@
 import org.apache.mahout.cf.taste.model.User;
 import org.apache.mahout.cf.taste.recommender.RecommendedItem;
 import org.apache.mahout.cf.taste.recommender.Rescorer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.HashMap;
 import java.util.List;
@@ -35,8 +37,6 @@
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>Like {@link ItemAverageRecommender}, except that estimated preferences are adjusted for the
@@ -47,7 +47,7 @@
  */
 public final class ItemUserAverageRecommender extends AbstractRecommender {
 
-  private static final Logger log = Logger.getLogger(ItemUserAverageRecommender.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(ItemUserAverageRecommender.class);
 
   private final Map<Object, RunningAverage> itemAverages;
   private final Map<Object, RunningAverage> userAverages;
@@ -76,9 +76,7 @@
     if (rescorer == null) {
       throw new IllegalArgumentException("rescorer is null");
     }
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Recommending items for user ID '" + userID + '\'');
-    }
+    log.debug("Recommending items for user ID '{}'", userID);
     checkAverageDiffsBuilt();
 
     User theUser = getDataModel().getUser(userID);
@@ -88,9 +86,7 @@
 
     List<RecommendedItem> topItems = TopItems.getTopItems(howMany, allItems, rescorer, estimator);
 
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Recommendations are: " + topItems);
-    }
+    log.debug("Recommendations are: {}", topItems);
     return topItems;
   }
 
@@ -236,7 +232,7 @@
       try {
         buildAverageDiffs();
       } catch (TasteException te) {
-        log.log(Level.WARNING, "Unexpected excpetion while refreshing", te);
+        log.warn("Unexpected excpetion while refreshing", te);
       }
     } finally {
       refreshLock.unlock();

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender.java Tue May 13 17:31:24 2008
@@ -29,6 +29,8 @@
 import org.apache.mahout.cf.taste.recommender.ClusteringRecommender;
 import org.apache.mahout.cf.taste.recommender.RecommendedItem;
 import org.apache.mahout.cf.taste.recommender.Rescorer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -39,8 +41,6 @@
 import java.util.Map;
 import java.util.Random;
 import java.util.concurrent.locks.ReentrantLock;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>A {@link org.apache.mahout.cf.taste.recommender.Recommender} that clusters {@link User}s, then determines
@@ -57,7 +57,7 @@
  */
 public final class TreeClusteringRecommender extends AbstractRecommender implements ClusteringRecommender {
 
-  private static final Logger log = Logger.getLogger(TreeClusteringRecommender.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(TreeClusteringRecommender.class);
 
   private final ClusterSimilarity clusterSimilarity;
   private final int numClusters;
@@ -175,9 +175,7 @@
     }
     checkClustersBuilt();
 
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Recommending items for user ID '" + userID + '\'');
-    }
+    log.debug("Recommending items for user ID '{}'", userID);
 
     List<RecommendedItem> recommended = topRecsByUserID.get(userID);
     if (recommended == null) {
@@ -369,9 +367,7 @@
     List<RecommendedItem> topItems =
             TopItems.getTopItems(Integer.MAX_VALUE, allItems, NullRescorer.getItemInstance(), estimator);
 
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Recommendations are: " + topItems);
-    }
+    log.debug("Recommendations are: {}", topItems);
     return Collections.unmodifiableList(topItems);
   }
 
@@ -397,7 +393,7 @@
       try {
         buildClusters();
       } catch (TasteException te) {
-        log.log(Level.WARNING, "Unexpected excpetion while refreshing", te);
+        log.warn("Unexpected excpetion while refreshing", te);
       }
     } finally {
       refreshLock.unlock();

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender2.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender2.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender2.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender2.java Tue May 13 17:31:24 2008
@@ -27,6 +27,8 @@
 import org.apache.mahout.cf.taste.recommender.ClusteringRecommender;
 import org.apache.mahout.cf.taste.recommender.RecommendedItem;
 import org.apache.mahout.cf.taste.recommender.Rescorer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -39,8 +41,6 @@
 import java.util.ListIterator;
 import java.util.Map;
 import java.util.concurrent.locks.ReentrantLock;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>A {@link org.apache.mahout.cf.taste.recommender.Recommender} that clusters
@@ -64,7 +64,7 @@
  */
 public final class TreeClusteringRecommender2 extends AbstractRecommender implements ClusteringRecommender {
 
-  private static final Logger log = Logger.getLogger(TreeClusteringRecommender2.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(TreeClusteringRecommender2.class);
 
   private final ClusterSimilarity clusterSimilarity;
   private final int numClusters;
@@ -140,9 +140,7 @@
     }
     checkClustersBuilt();
 
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Recommending items for user ID '" + userID + '\'');
-    }
+    log.debug("Recommending items for user ID '{}'", userID);
 
     List<RecommendedItem> recommended = topRecsByUserID.get(userID);
     if (recommended == null) {
@@ -445,9 +443,7 @@
     List<RecommendedItem> topItems =
             TopItems.getTopItems(Integer.MAX_VALUE, allItems, NullRescorer.getItemInstance(), estimator);
 
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Recommendations are: " + topItems);
-    }
+    log.debug("Recommendations are: {}", topItems);
     return Collections.unmodifiableList(topItems);
   }
 
@@ -473,7 +469,7 @@
       try {
         buildClusters();
       } catch (TasteException te) {
-        log.log(Level.WARNING, "Unexpected excpetion while refreshing", te);
+        log.warn("Unexpected excpetion while refreshing", te);
       }
     } finally {
       refreshLock.unlock();

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorage.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorage.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorage.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorage.java Tue May 13 17:31:24 2008
@@ -30,6 +30,8 @@
 import org.apache.mahout.cf.taste.model.Preference;
 import org.apache.mahout.cf.taste.model.User;
 import org.apache.mahout.cf.taste.recommender.slopeone.DiffStorage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.HashMap;
 import java.util.HashSet;
@@ -39,8 +41,6 @@
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>An implementation of {@link DiffStorage} that merely stores item-item diffs in memory.
@@ -48,7 +48,7 @@
  */
 public final class MemoryDiffStorage implements DiffStorage {
 
-  private static final Logger log = Logger.getLogger(MemoryDiffStorage.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(MemoryDiffStorage.class);
 
   private final DataModel dataModel;
   private final boolean stdDevWeighted;
@@ -203,9 +203,7 @@
       buildAverageDiffsLock.writeLock().lock();
       long averageCount = 0L;
       for (User user : dataModel.getUsers()) {
-        if (log.isLoggable(Level.FINE)) {
-          log.fine("Processing prefs for user " + user + "...");
-        }
+        log.debug("Processing prefs for user {}", user);
         // Save off prefs for the life of this loop iteration
         Preference[] userPreferences = user.getPreferencesAsArray();
         int length = userPreferences.length;
@@ -282,7 +280,7 @@
       try {
         buildAverageDiffs();
       } catch (TasteException te) {
-        log.log(Level.WARNING, "Unexpected exception while refreshing", te);
+        log.warn("Unexpected exception while refreshing", te);
       }
     } finally {
       refreshLock.unlock();

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/SlopeOneRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/SlopeOneRecommender.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/SlopeOneRecommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/SlopeOneRecommender.java Tue May 13 17:31:24 2008
@@ -29,12 +29,12 @@
 import org.apache.mahout.cf.taste.recommender.RecommendedItem;
 import org.apache.mahout.cf.taste.recommender.Rescorer;
 import org.apache.mahout.cf.taste.recommender.slopeone.DiffStorage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.List;
 import java.util.NoSuchElementException;
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>A basic "slope one" recommender. (See an <a href="http://www.daniel-lemire.com/fr/abstracts/SDM2005.html">
@@ -46,7 +46,7 @@
  */
 public final class SlopeOneRecommender extends AbstractRecommender {
 
-  private static final Logger log = Logger.getLogger(SlopeOneRecommender.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(SlopeOneRecommender.class);
 
   private final boolean weighted;
   private final boolean stdDevWeighted;
@@ -102,9 +102,7 @@
     if (rescorer == null) {
       throw new IllegalArgumentException("rescorer is null");
     }
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Recommending items for user ID '" + userID + '\'');
-    }
+    log.debug("Recommending items for user ID '{}'", userID);
 
     User theUser = getDataModel().getUser(userID);
     Set<Item> allItems = diffStorage.getRecommendableItems(userID);
@@ -113,9 +111,7 @@
 
     List<RecommendedItem> topItems = TopItems.getTopItems(howMany, allItems, rescorer, estimator);
 
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Recommendations are: " + topItems);
-    }
+    log.debug("Recommendations are: {}", topItems);
     return topItems;
   }
 

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/jdbc/AbstractJDBCDiffStorage.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/jdbc/AbstractJDBCDiffStorage.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/jdbc/AbstractJDBCDiffStorage.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/jdbc/AbstractJDBCDiffStorage.java Tue May 13 17:31:24 2008
@@ -24,6 +24,8 @@
 import org.apache.mahout.cf.taste.model.JDBCDataModel;
 import org.apache.mahout.cf.taste.model.Preference;
 import org.apache.mahout.cf.taste.recommender.slopeone.DiffStorage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.sql.DataSource;
 import java.sql.Connection;
@@ -33,8 +35,6 @@
 import java.util.HashSet;
 import java.util.Set;
 import java.util.concurrent.locks.ReentrantLock;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>A  {@link DiffStorage} which stores diffs in a database. Database-specific implementations subclass
@@ -44,7 +44,7 @@
  */
 public abstract class AbstractJDBCDiffStorage implements DiffStorage {
 
-  private static final Logger log = Logger.getLogger(AbstractJDBCDiffStorage.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(AbstractJDBCDiffStorage.class);
 
   public static final String DEFAULT_DIFF_TABLE = "taste_slopeone_diffs";
   public static final String DEFAULT_ITEM_A_COLUMN = "item_id_a";
@@ -115,9 +115,7 @@
       stmt.setObject(2, itemID2);
       stmt.setObject(3, itemID2);
       stmt.setObject(4, itemID1);
-      if (log.isLoggable(Level.FINE)) {
-        log.fine("Executing SQL query: " + getDiffSQL);
-      }
+      log.debug("Executing SQL query: {}", getDiffSQL);
       rs = stmt.executeQuery();
       if (rs.next()) {
         return new FixedRunningAverage(rs.getInt(1), rs.getDouble(2));
@@ -125,7 +123,7 @@
         return null;
       }
     } catch (SQLException sqle) {
-      log.log(Level.WARNING, "Exception while retrieving diff", sqle);
+      log.warn("Exception while retrieving diff", sqle);
       throw new TasteException(sqle);
     } finally {
       IOUtils.safeClose(rs, stmt, conn);
@@ -144,9 +142,7 @@
       stmt = conn.prepareStatement(getDiffsSQL);
       stmt.setObject(1, itemID);
       stmt.setObject(2, userID);
-      if (log.isLoggable(Level.FINE)) {
-        log.fine("Executing SQL query: " + getDiffsSQL);
-      }
+      log.debug("Executing SQL query: {}", getDiffsSQL);
       rs = stmt.executeQuery();
       // We should have up to one result for each Preference in prefs
       // They are both ordered by item. Step through and create a RunningAverage[]
@@ -162,7 +158,7 @@
         i++;
       }
     } catch (SQLException sqle) {
-      log.log(Level.WARNING, "Exception while retrieving diff", sqle);
+      log.warn("Exception while retrieving diff", sqle);
       throw new TasteException(sqle);
     } finally {
       IOUtils.safeClose(rs, stmt, conn);
@@ -178,9 +174,7 @@
       conn = dataSource.getConnection();
       stmt = conn.prepareStatement(getAverageItemPrefSQL);
       stmt.setObject(1, itemID);
-      if (log.isLoggable(Level.FINE)) {
-        log.fine("Executing SQL query: " + getAverageItemPrefSQL);
-      }
+      log.debug("Executing SQL query: {}", getAverageItemPrefSQL);
       rs = stmt.executeQuery();
       if (rs.next()) {
         int count = rs.getInt(1);
@@ -190,7 +184,7 @@
       }
       return null;
     } catch (SQLException sqle) {
-      log.log(Level.WARNING, "Exception while retrieving average item pref", sqle);
+      log.warn("Exception while retrieving average item pref", sqle);
       throw new TasteException(sqle);
     } finally {
       IOUtils.safeClose(rs, stmt, conn);
@@ -211,7 +205,7 @@
         stmt = doPartialUpdate(updateDiffSQLs[1], itemID, prefDelta, conn);
       }
     } catch (SQLException sqle) {
-      log.log(Level.WARNING, "Exception while updating item diff", sqle);
+      log.warn("Exception while updating item diff", sqle);
       throw new TasteException(sqle);
     } finally {
       IOUtils.safeClose(null, stmt, conn);
@@ -225,9 +219,7 @@
     PreparedStatement stmt = conn.prepareStatement(sql);
     stmt.setDouble(1, prefDelta);
     stmt.setObject(2, itemID);
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Executing SQL update: " + sql);
-    }
+    log.debug("Executing SQL update: {}", sql);
     stmt.executeUpdate();
     return stmt;
   }
@@ -242,9 +234,7 @@
       stmt.setObject(1, userID);
       stmt.setObject(2, userID);
       stmt.setObject(3, userID);
-      if (log.isLoggable(Level.FINE)) {
-        log.fine("Executing SQL query: " + getRecommendableItemsSQL);
-      }
+      log.debug("Executing SQL query: {}", getRecommendableItemsSQL);
       rs = stmt.executeQuery();
       Set<Item> items = new HashSet<Item>();
       while (rs.next()) {
@@ -252,7 +242,7 @@
       }
       return items;
     } catch (SQLException sqle) {
-      log.log(Level.WARNING, "Exception while retrieving recommendable items", sqle);
+      log.warn("Exception while retrieving recommendable items", sqle);
       throw new TasteException(sqle);
     } finally {
       IOUtils.safeClose(rs, stmt, conn);
@@ -265,12 +255,10 @@
     try {
       conn = dataSource.getConnection();
       stmt = conn.prepareStatement(deleteDiffsSQL);
-      if (log.isLoggable(Level.FINE)) {
-        log.fine("Executing SQL update: " + deleteDiffsSQL);
-      }
+      log.debug("Executing SQL update: {}", deleteDiffsSQL);
       stmt.executeUpdate();
     } catch (SQLException sqle) {
-      log.log(Level.WARNING, "Exception while deleting diffs", sqle);
+      log.warn("Exception while deleting diffs", sqle);
       throw new TasteException(sqle);
     } finally {
       IOUtils.safeClose(null, stmt, conn);
@@ -279,12 +267,10 @@
       conn = dataSource.getConnection();
       stmt = conn.prepareStatement(createDiffsSQL);
       stmt.setInt(1, minDiffCount);
-      if (log.isLoggable(Level.FINE)) {
-        log.fine("Executing SQL update: " + createDiffsSQL);
-      }
+      log.debug("Executing SQL update: {}", createDiffsSQL);
       stmt.executeUpdate();
     } catch (SQLException sqle) {
-      log.log(Level.WARNING, "Exception while creating diffs", sqle);
+      log.warn("Exception while creating diffs", sqle);
       throw new TasteException(sqle);
     } finally {
       IOUtils.safeClose(null, stmt, conn);
@@ -298,14 +284,12 @@
     try {
       conn = dataSource.getConnection();
       stmt = conn.prepareStatement(diffsExistSQL);
-      if (log.isLoggable(Level.FINE)) {
-        log.fine("Executing SQL query: " + diffsExistSQL);
-      }
+      log.debug("Executing SQL query: {}", diffsExistSQL);
       rs = stmt.executeQuery();
       rs.next();
       return rs.getInt(1) > 0;
     } catch (SQLException sqle) {
-      log.log(Level.WARNING, "Exception while deleting diffs", sqle);
+      log.warn("Exception while deleting diffs", sqle);
       throw new TasteException(sqle);
     } finally {
       IOUtils.safeClose(rs, stmt, conn);
@@ -322,7 +306,7 @@
       try {
         buildAverageDiffs();
       } catch (TasteException te) {
-        log.log(Level.WARNING, "Unexpected exception while refreshing", te);
+        log.warn("Unexpected exception while refreshing", te);
       }
     } finally {
       refreshLock.unlock();

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/transforms/InverseUserFrequency.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/transforms/InverseUserFrequency.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/transforms/InverseUserFrequency.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/transforms/InverseUserFrequency.java Tue May 13 17:31:24 2008
@@ -23,13 +23,13 @@
 import org.apache.mahout.cf.taste.model.Preference;
 import org.apache.mahout.cf.taste.model.User;
 import org.apache.mahout.cf.taste.transforms.PreferenceTransform2;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicReference;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>Implements an "inverse user frequency" transformation, which boosts preference values for items for which few
@@ -47,7 +47,7 @@
  */
 public final class InverseUserFrequency implements PreferenceTransform2 {
 
-  private static final Logger log = Logger.getLogger(InverseUserFrequency.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(InverseUserFrequency.class);
 
   private final DataModel dataModel;
   private final double logBase;
@@ -110,7 +110,7 @@
         iufFactors.set(Collections.unmodifiableMap(newIufFactors));
       }
     } catch (TasteException dme) {
-      log.log(Level.WARNING, "Unable to refresh", dme);
+      log.warn("Unable to refresh", dme);
     }
   }
 

Modified: lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/LoadTest.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/LoadTest.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/LoadTest.java (original)
+++ lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/LoadTest.java Tue May 13 17:31:24 2008
@@ -38,6 +38,8 @@
 import org.apache.mahout.cf.taste.model.User;
 import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood;
 import org.apache.mahout.cf.taste.recommender.Recommender;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -48,15 +50,13 @@
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * <p>Generates load on the whole implementation, for profiling purposes mostly.</p>
  */
 public final class LoadTest extends TasteTestCase {
 
-  private static final Logger log = Logger.getLogger(LoadTest.class.getName());
+  private static final Logger log = LoggerFactory.getLogger(LoadTest.class);
 
   private static final int NUM_USERS = 1600;
   private static final int NUM_ITEMS = 800;
@@ -68,7 +68,6 @@
   @Override
   public void setUp() throws Exception {
     super.setUp();
-    setLogLevel(Level.INFO);
   }
 
   public void testSlopeOneLoad() throws Exception {
@@ -130,7 +129,7 @@
     }
     long end = System.currentTimeMillis();
     long timeMS = end - start;
-    log.info("Load test completed in " + timeMS + "ms");
+    log.info("Load test completed in {}ms", timeMS);
     assertTrue(timeMS < 1000L * (long) allowedTimeSec);
   }
 

Modified: lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/TasteTestCase.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/TasteTestCase.java?rev=656061&r1=656060&r2=656061&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/TasteTestCase.java (original)
+++ lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/TasteTestCase.java Tue May 13 17:31:24 2008
@@ -30,9 +30,6 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.logging.Handler;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 public abstract class TasteTestCase extends TestCase {
 
@@ -44,19 +41,9 @@
   @Override
   public void setUp() throws Exception {
     super.setUp();
-    // make sure we always show all log output during tests
-    setLogLevel(Level.FINEST);
     RandomUtils.useTestSeed();
   }
 
-  protected static void setLogLevel(Level level) {
-    Logger log = Logger.getLogger("org.apache.mahout.cf.taste.impl");
-    log.setLevel(level);
-    for (Handler handler : log.getHandlers()) {
-      handler.setLevel(level);
-    }
-  }
-
   public static User getUser(String userID, double... values) {
     List<Preference> prefs = new ArrayList<Preference>(values.length);
     int i = 0;