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;