summaryrefslogtreecommitdiffstats
path: root/src/com/iciql/util
diff options
context:
space:
mode:
authorJames Moger <james.moger@gmail.com>2011-08-17 13:30:40 -0400
committerJames Moger <james.moger@gmail.com>2011-08-17 13:30:40 -0400
commit05429c2cdf393730f17fb8fa51ee4b9e58e0a88f (patch)
tree1c6e98a2913b4f0912318e49f72f930b985eb345 /src/com/iciql/util
parent1734dc44d70391aeef26cacdf4d9f07c289e476e (diff)
downloadiciql-05429c2cdf393730f17fb8fa51ee4b9e58e0a88f.tar.gz
iciql-05429c2cdf393730f17fb8fa51ee4b9e58e0a88f.zip
Renamed logger. Improved test suite. Added Apache Commons and DBCP.v0.7.0
Diffstat (limited to 'src/com/iciql/util')
-rw-r--r--src/com/iciql/util/IciqlLogger.java (renamed from src/com/iciql/util/StatementLogger.java)41
-rw-r--r--src/com/iciql/util/Slf4jIciqlListener.java (renamed from src/com/iciql/util/Slf4jStatementListener.java)16
2 files changed, 34 insertions, 23 deletions
diff --git a/src/com/iciql/util/StatementLogger.java b/src/com/iciql/util/IciqlLogger.java
index b11a5f9..d8005bb 100644
--- a/src/com/iciql/util/StatementLogger.java
+++ b/src/com/iciql/util/IciqlLogger.java
@@ -17,6 +17,7 @@
package com.iciql.util;
import java.text.DecimalFormat;
+import java.text.MessageFormat;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -25,34 +26,34 @@ import java.util.concurrent.atomic.AtomicLong;
import com.iciql.IciqlException;
/**
- * Utility class to optionally log generated statements to StatementListeners.<br>
+ * Utility class to optionally log generated statements to IciqlListeners.<br>
* Statement logging is disabled by default.
* <p>
* This class also tracks the counts for generated statements by major type.
*
*/
-public class StatementLogger {
+public class IciqlLogger {
/**
* Enumeration of the different statement types that are logged.
*/
public enum StatementType {
- STAT, TOTAL, CREATE, INSERT, UPDATE, MERGE, DELETE, SELECT, DROP;
+ STAT, TOTAL, CREATE, INSERT, UPDATE, MERGE, DELETE, SELECT, DROP, WARN;
}
/**
- * Interface that defines a statement listener.
+ * Interface that defines an iciql listener.
*/
- public interface StatementListener {
- void logStatement(StatementType type, String statement);
+ public interface IciqlListener {
+ void logIciql(StatementType type, String statement);
}
private static final ExecutorService EXEC = Executors.newSingleThreadExecutor();
- private static final Set<StatementListener> LISTENERS = Utils.newHashSet();
- private static final StatementListener CONSOLE = new StatementListener() {
+ private static final Set<IciqlListener> LISTENERS = Utils.newHashSet();
+ private static final IciqlListener CONSOLE = new IciqlListener() {
@Override
- public void logStatement(StatementType type, String message) {
+ public void logIciql(StatementType type, String message) {
System.out.println(message);
}
};
@@ -64,6 +65,7 @@ public class StatementLogger {
private static final AtomicLong MERGE_COUNT = new AtomicLong();
private static final AtomicLong DELETE_COUNT = new AtomicLong();
private static final AtomicLong DROP_COUNT = new AtomicLong();
+ private static final AtomicLong WARN_COUNT = new AtomicLong();
/**
* Activates the Console Logger.
@@ -84,7 +86,7 @@ public class StatementLogger {
*
* @param listener
*/
- public static void registerListener(StatementListener listener) {
+ public static void registerListener(IciqlListener listener) {
LISTENERS.add(listener);
}
@@ -93,9 +95,9 @@ public class StatementLogger {
*
* @param listener
*/
- public static void unregisterListener(StatementListener listener) {
+ public static void unregisterListener(IciqlListener listener) {
if (!LISTENERS.remove(listener)) {
- throw new IciqlException("Failed to remove statement listener {0}", listener);
+ throw new IciqlException("Failed to remove iciql listener {0}", listener);
}
}
@@ -134,11 +136,16 @@ public class StatementLogger {
logStatement(StatementType.DROP, statement);
}
+ public static void warn(String message, Object... args) {
+ WARN_COUNT.incrementAndGet();
+ logStatement(StatementType.WARN, args.length > 0 ? MessageFormat.format(message, args) : message);
+ }
+
private static void logStatement(final StatementType type, final String statement) {
- for (final StatementListener listener : LISTENERS) {
+ for (final IciqlListener listener : LISTENERS) {
EXEC.execute(new Runnable() {
public void run() {
- listener.logStatement(type, statement);
+ listener.logIciql(type, statement);
}
});
}
@@ -172,6 +179,10 @@ public class StatementLogger {
return DROP_COUNT.longValue();
}
+ public static long getWarnCount() {
+ return WARN_COUNT.longValue();
+ }
+
public static long getTotalCount() {
return getCreateCount() + getInsertCount() + getUpdateCount() + getDeleteCount() + getMergeCount()
+ getSelectCount() + getDropCount();
@@ -180,6 +191,8 @@ public class StatementLogger {
public static void logStats() {
logStatement(StatementType.STAT, "iciql Runtime Statistics");
logStatement(StatementType.STAT, "========================");
+ logStat(StatementType.WARN, getWarnCount());
+ logStatement(StatementType.STAT, "========================");
logStat(StatementType.CREATE, getCreateCount());
logStat(StatementType.INSERT, getInsertCount());
logStat(StatementType.UPDATE, getUpdateCount());
diff --git a/src/com/iciql/util/Slf4jStatementListener.java b/src/com/iciql/util/Slf4jIciqlListener.java
index f46099c..ded393f 100644
--- a/src/com/iciql/util/Slf4jStatementListener.java
+++ b/src/com/iciql/util/Slf4jIciqlListener.java
@@ -23,15 +23,13 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.iciql.Iciql;
-import com.iciql.util.StatementLogger.StatementListener;
-import com.iciql.util.StatementLogger.StatementType;
+import com.iciql.util.IciqlLogger.IciqlListener;
+import com.iciql.util.IciqlLogger.StatementType;
/**
- * Slf4jStatementListener interfaces the iciql statement logger to the SLF4J
- * logging architecture.
- *
+ * Slf4jIciqlListener interfaces the IciqlLogger to the SLF4J logging framework.
*/
-public class Slf4jStatementListener implements StatementListener {
+public class Slf4jIciqlListener implements IciqlListener {
private Logger logger = LoggerFactory.getLogger(Iciql.class);
@@ -46,11 +44,11 @@ public class Slf4jStatementListener implements StatementListener {
private final Map<StatementType, Level> levels;
- public Slf4jStatementListener() {
+ public Slf4jIciqlListener() {
this(Level.TRACE);
}
- public Slf4jStatementListener(Level defaultLevel) {
+ public Slf4jIciqlListener(Level defaultLevel) {
this.defaultLevel = defaultLevel;
levels = new HashMap<StatementType, Level>();
for (StatementType type : StatementType.values()) {
@@ -69,7 +67,7 @@ public class Slf4jStatementListener implements StatementListener {
}
@Override
- public void logStatement(StatementType type, String statement) {
+ public void logIciql(StatementType type, String statement) {
Level level = levels.get(type);
switch (level) {
case ERROR: