logback-dev
Threads by month
- ----- 2025 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
March 2010
- 11 participants
- 188 discussions
Evaluable properties
--------------------
Key: LBCLASSIC-182
URL: http://jira.qos.ch/browse/LBCLASSIC-182
Project: logback-classic
Issue Type: New Feature
Components: Other
Affects Versions: 0.9.18
Reporter: Aleksey Didik
Assignee: Logback dev list
Priority: Minor
Necessary to have properties which could be evaluated dynamically in time of configuration file read.
Currently we have statical defined property values (by property tag or files) or we could get properties from System properties.
In version 0.9.17 was made possibility to save formatted timestamp in property.
May be possible to create property evaluator tag, to define some properties value dynamically?
Something like this:
<property name="hostName" evaluator="a.b.c.HostPropertyEvaluator">
<parameter name="host_type">ip</parameter>
</property>
Evaluator will be called on property initialization with listed parameters.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.qos.ch/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
2
16

[GIT] Logback: the generic, reliable, fast and flexible logging framework. branch, lbclassic182, deleted. release_0.9.19-10-g0348b40
by git-noreply@pixie.qos.ch 31 Mar '10
by git-noreply@pixie.qos.ch 31 Mar '10
31 Mar '10
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Logback: the generic, reliable, fast and flexible logging framework.".
The branch, lbclassic182 has been deleted
was 0348b40b4ea9e290ca147928a45bb20194f54dd4
-----------------------------------------------------------------------
0348b40b4ea9e290ca147928a45bb20194f54dd4 Applied Aleksey Didik's patch for LBCLASSIC-182
-----------------------------------------------------------------------
hooks/post-receive
--
Logback: the generic, reliable, fast and flexible logging framework.
1
0

[GIT] Logback: the generic, reliable, fast and flexible logging framework. branch, encoder, deleted. v0.9.18-51-g90e50c2
by git-noreply@pixie.qos.ch 31 Mar '10
by git-noreply@pixie.qos.ch 31 Mar '10
31 Mar '10
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Logback: the generic, reliable, fast and flexible logging framework.".
The branch, encoder has been deleted
was 90e50c2f25dcacd6455af8baac5d8cfe6cf10f94
-----------------------------------------------------------------------
90e50c2f25dcacd6455af8baac5d8cfe6cf10f94 - working on smoother transition from layout to encoder in FileAppender - added JNDIBasedContextDiscriminator which should work much better than ContextBasedtiscriminator.
-----------------------------------------------------------------------
hooks/post-receive
--
Logback: the generic, reliable, fast and flexible logging framework.
1
0

[GIT] Logback: the generic, reliable, fast and flexible logging framework. branch, dbname, deleted. v0.9.18-100-g13148e6
by git-noreply@pixie.qos.ch 31 Mar '10
by git-noreply@pixie.qos.ch 31 Mar '10
31 Mar '10
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Logback: the generic, reliable, fast and flexible logging framework.".
The branch, dbname has been deleted
was 13148e6ffc936dfafa2888c1bdb20f097494357e
-----------------------------------------------------------------------
13148e6ffc936dfafa2888c1bdb20f097494357e - Merge branch 'master' of http://github.com/nurkiewicz/logback into dbname - plus ceki's simplifications
-----------------------------------------------------------------------
hooks/post-receive
--
Logback: the generic, reliable, fast and flexible logging framework.
1
0

[GIT] Logback: the generic, reliable, fast and flexible logging framework. branch, eventAlteringTurboFilters, created. release_0.9.19-33-gc08e014
by git-noreply@pixie.qos.ch 31 Mar '10
by git-noreply@pixie.qos.ch 31 Mar '10
31 Mar '10
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Logback: the generic, reliable, fast and flexible logging framework.".
The branch, eventAlteringTurboFilters has been created
at c08e014747419bacec338a5104184535de8fcdce (commit)
- Log -----------------------------------------------------------------
http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=c08e014747419bacec338a51…
http://github.com/ceki/logback/commit/c08e014747419bacec338a5104184535de8fc…
commit c08e014747419bacec338a5104184535de8fcdce
Author: Ceki Gulcu <ceki(a)qos.ch>
Date: Wed Mar 31 22:38:54 2010 +0200
- started work on http://jira.qos.ch/browse/LBCLASSIC-195
The decide() method in TurboFilter now admits a LoggingEvent as an
argument instead of LoggingEvent constituents parts
The performance of logging when no turbo filters are installed remains
unchanged. However, an extra 30 nanoseconds (on a fast machine) are
added when there are one or more registered turbo filters which
corresponds to the cost of creating a LoggingEvent and garbage
collecting it even if the event is not used.
The extra cost is deemed acceptable given the flexibility it provides.
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/Logger.java b/logback-classic/src/main/java/ch/qos/logback/classic/Logger.java
index 0d2957f..f2cdcbc 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/Logger.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/Logger.java
@@ -80,12 +80,18 @@ public final class Logger implements org.slf4j.Logger, LocationAwareLogger,
* synchronized on 'this' (Logger) protecting against simultaneous
* re-configuration of this logger (a very unlikely scenario).
*
- * <p> It is further assumed that the AppenderAttachableImpl is responsible
- * for its internal synchronization and thread safety. Thus, we can get away
- * with *not* synchronizing on the 'aai' (check null/ read) because <p> 1) the
- * 'aai' variable is immutable once set to non-null <p> 2) 'aai' is getAndSet
- * only within addAppender which is synchronized <p> 3) all the other methods
- * check whether 'aai' is null <p> 4) AppenderAttachableImpl is thread safe
+ * <p>
+ * It is further assumed that the AppenderAttachableImpl is responsible for
+ * its internal synchronization and thread safety. Thus, we can get away with
+ * *not* synchronizing on the 'aai' (check null/ read) because
+ * <p>
+ * 1) the 'aai' variable is immutable once set to non-null
+ * <p>
+ * 2) 'aai' is getAndSet only within addAppender which is synchronized
+ * <p>
+ * 3) all the other methods check whether 'aai' is null
+ * <p>
+ * 4) AppenderAttachableImpl is thread safe
*/
private transient AppenderAttachableImpl<ILoggingEvent> aai;
/**
@@ -158,17 +164,18 @@ public final class Logger implements org.slf4j.Logger, LocationAwareLogger,
// nothing to do;
return;
}
- if(newLevel == null && isRootLogger()) {
- throw new IllegalArgumentException("The level of the root logger cannot be set to null");
+ if (newLevel == null && isRootLogger()) {
+ throw new IllegalArgumentException(
+ "The level of the root logger cannot be set to null");
}
-
+
level = newLevel;
if (newLevel == null) {
effectiveLevelInt = parent.effectiveLevelInt;
} else {
effectiveLevelInt = newLevel.levelInt;
}
-
+
if (childrenList != null) {
int len = childrenList.size();
for (int i = 0; i < len; i++) {
@@ -203,8 +210,9 @@ public final class Logger implements org.slf4j.Logger, LocationAwareLogger,
}
/**
- * Remove all previously added appenders from this logger instance. <p/> This
- * is useful when re-reading configuration information.
+ * Remove all previously added appenders from this logger instance.
+ * <p/>
+ * This is useful when re-reading configuration information.
*/
public void detachAndStopAllAppenders() {
if (aai != null) {
@@ -254,7 +262,7 @@ public final class Logger implements org.slf4j.Logger, LocationAwareLogger,
* Invoke all the appenders of this logger.
*
* @param event
- * The event to log
+ * The event to log
*/
public void callAppenders(ILoggingEvent event) {
int writes = 0;
@@ -291,7 +299,7 @@ public final class Logger implements org.slf4j.Logger, LocationAwareLogger,
static int getSeparatorIndexOf(String name) {
return getSeparatorIndexOf(name, 0);
}
-
+
/**
* Get the position of the separator character, if any, starting at position
* 'fromIndex'.
@@ -300,35 +308,35 @@ public final class Logger implements org.slf4j.Logger, LocationAwareLogger,
* @param fromIndex
* @return
*/
- static int getSeparatorIndexOf(String name, int fromIndex) {
+ static int getSeparatorIndexOf(String name, int fromIndex) {
int i = name.indexOf(CoreConstants.DOT, fromIndex);
- if(i != -1) {
+ if (i != -1) {
return i;
} else {
return name.indexOf(CoreConstants.DOLLAR, fromIndex);
}
}
-
+
/**
* Create a child of this logger by suffix, that is, the part of the name
* extending this logger. For example, if this logger is named "x.y" and the
* lastPart is "z", then the created child logger will be named "x.y.z".
*
- * <p> IMPORTANT: Calls to this method must be within a synchronized block on
- * this logger.
+ * <p>
+ * IMPORTANT: Calls to this method must be within a synchronized block on this
+ * logger.
*
* @param lastPart
- * the suffix (i.e. last part) of the child logger name. This
- * parameter may not include dots, i.e. the logger separator
- * character.
+ * the suffix (i.e. last part) of the child logger name. This
+ * parameter may not include dots, i.e. the logger separator
+ * character.
* @return
*/
Logger createChildByLastNamePart(final String lastPart) {
int i_index = getSeparatorIndexOf(lastPart);
if (i_index != -1) {
throw new IllegalArgumentException("Child name [" + lastPart
- + " passed as parameter, may not include ["
- + CoreConstants.DOT + "]");
+ + " passed as parameter, may not include [" + CoreConstants.DOT + "]");
}
if (childrenList == null) {
@@ -338,8 +346,7 @@ public final class Logger implements org.slf4j.Logger, LocationAwareLogger,
if (this.isRootLogger()) {
childLogger = new Logger(lastPart, this, this.loggerContext);
} else {
- childLogger = new Logger(
- name + CoreConstants.DOT + lastPart, this,
+ childLogger = new Logger(name + CoreConstants.DOT + lastPart, this,
this.loggerContext);
}
childrenList.add(childLogger);
@@ -349,13 +356,13 @@ public final class Logger implements org.slf4j.Logger, LocationAwareLogger,
private void localLevelReset() {
effectiveLevelInt = Level.DEBUG_INT;
- if(isRootLogger()) {
+ if (isRootLogger()) {
level = Level.DEBUG;
} else {
level = null;
}
}
-
+
void recursiveReset() {
detachAndStopAllAppenders();
localLevelReset();
@@ -375,8 +382,7 @@ public final class Logger implements org.slf4j.Logger, LocationAwareLogger,
static private final int DEFAULT_CHILD_ARRAY_SIZE = 5;
Logger createChildByName(final String childName) {
- int i_index = getSeparatorIndexOf(childName, this.name
- .length() + 1);
+ int i_index = getSeparatorIndexOf(childName, this.name.length() + 1);
if (i_index != -1) {
throw new IllegalArgumentException("For logger [" + this.name
+ "] child name [" + childName
@@ -404,65 +410,95 @@ public final class Logger implements org.slf4j.Logger, LocationAwareLogger,
final Marker marker, final Level level, final String msg,
final Object[] params, final Throwable t) {
- final FilterReply decision = loggerContext
- .getTurboFilterChainDecision_0_3OrMore(marker, this, level, msg,
- params, t);
-
- if (decision == FilterReply.NEUTRAL) {
+ LoggingEvent event = null;
+ if (loggerContext.turboFilterList.size() == 0) {
+
if (effectiveLevelInt > level.levelInt) {
return;
}
- } else if (decision == FilterReply.DENY) {
- return;
+ event = buildLoggingEvent(localFQCN, marker, level, msg, params, t);
+ } else {
+ event = buildLoggingEvent(localFQCN, marker, level, msg, params, t);
+ final FilterReply decision = loggerContext.turboFilterList
+ .getTurboFilterChainDecision(event);
+ if (decision == FilterReply.NEUTRAL) {
+ if (effectiveLevelInt > level.levelInt) {
+ return;
+ }
+ } else if (decision == FilterReply.DENY) {
+ return;
+ }
}
-
- buildLoggingEventAndAppend(localFQCN, marker, level, msg, params, t);
+ buildLoggingEventAndAppend(event);
}
private final void filterAndLog_1(final String localFQCN,
final Marker marker, final Level level, final String msg,
final Object param, final Throwable t) {
- final FilterReply decision = loggerContext.getTurboFilterChainDecision_1(
- marker, this, level, msg, param, t);
-
- if (decision == FilterReply.NEUTRAL) {
+ LoggingEvent event = null;
+ if (loggerContext.turboFilterList.size() == 0) {
if (effectiveLevelInt > level.levelInt) {
return;
}
- } else if (decision == FilterReply.DENY) {
- return;
+ event = buildLoggingEvent(localFQCN, marker, level, msg,
+ new Object[] { param }, t);
+ } else {
+ event = buildLoggingEvent(localFQCN, marker, level, msg,
+ new Object[] { param }, t);
+
+ final FilterReply decision = loggerContext.turboFilterList
+ .getTurboFilterChainDecision(event);
+ if (decision == FilterReply.NEUTRAL) {
+ if (effectiveLevelInt > level.levelInt) {
+ return;
+ }
+ } else if (decision == FilterReply.DENY) {
+ return;
+ }
}
-
- buildLoggingEventAndAppend(localFQCN, marker, level, msg,
- new Object[] { param }, t);
+ buildLoggingEventAndAppend(event);
}
private final void filterAndLog_2(final String localFQCN,
final Marker marker, final Level level, final String msg,
final Object param1, final Object param2, final Throwable t) {
- final FilterReply decision = loggerContext.getTurboFilterChainDecision_2(
- marker, this, level, msg, param1, param2, t);
-
- if (decision == FilterReply.NEUTRAL) {
+ LoggingEvent event = null;
+ if (loggerContext.turboFilterList.size() == 0) {
if (effectiveLevelInt > level.levelInt) {
return;
}
- } else if (decision == FilterReply.DENY) {
- return;
+ event = buildLoggingEvent(localFQCN, marker, level, msg, new Object[] {
+ param1, param2 }, t);
+ } else {
+ event = buildLoggingEvent(localFQCN, marker, level, msg, new Object[] {
+ param1, param2 }, t);
+
+ final FilterReply decision = loggerContext.turboFilterList
+ .getTurboFilterChainDecision(event);
+ if (decision == FilterReply.NEUTRAL) {
+ if (effectiveLevelInt > level.levelInt) {
+ return;
+ }
+ } else if (decision == FilterReply.DENY) {
+ return;
+ }
}
-
- buildLoggingEventAndAppend(localFQCN, marker, level, msg, new Object[] {
- param1, param2 }, t);
+ buildLoggingEventAndAppend(event);
}
- private void buildLoggingEventAndAppend(final String localFQCN,
+ private final LoggingEvent buildLoggingEvent(final String localFQCN,
final Marker marker, final Level level, final String msg,
final Object[] params, final Throwable t) {
LoggingEvent le = new LoggingEvent(localFQCN, this, level, msg, t, params);
le.setMarker(marker);
- callAppenders(le);
+ return le;
+ }
+
+ private void buildLoggingEventAndAppend(LoggingEvent event) {
+ event.secondaryInit();
+ callAppenders(event);
}
public void trace(String msg) {
@@ -792,8 +828,13 @@ public final class Logger implements org.slf4j.Logger, LocationAwareLogger,
* @return the reply given by the TurboFilters
*/
private FilterReply callTurboFilters(Marker marker, Level level) {
- return loggerContext.getTurboFilterChainDecision_0_3OrMore(marker, this,
- level, null, null, null);
+ if (loggerContext.turboFilterList.size() == 0) {
+ return FilterReply.NEUTRAL;
+ } else {
+ LoggingEvent event = buildLoggingEvent(null, marker, level, null,
+ null, null);
+ return loggerContext.turboFilterList.getTurboFilterChainDecision(event);
+ }
}
/**
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/LoggerContext.java b/logback-classic/src/main/java/ch/qos/logback/classic/LoggerContext.java
index b81c581..2defa6b 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/LoggerContext.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/LoggerContext.java
@@ -21,7 +21,6 @@ import java.util.Hashtable;
import java.util.List;
import org.slf4j.ILoggerFactory;
-import org.slf4j.Marker;
import ch.qos.logback.classic.spi.LoggerComparator;
import ch.qos.logback.classic.spi.LoggerContextListener;
@@ -30,7 +29,6 @@ import ch.qos.logback.classic.spi.TurboFilterList;
import ch.qos.logback.classic.turbo.TurboFilter;
import ch.qos.logback.core.ContextBase;
import ch.qos.logback.core.CoreConstants;
-import ch.qos.logback.core.spi.FilterReply;
import ch.qos.logback.core.spi.LifeCycle;
import ch.qos.logback.core.status.StatusListener;
import ch.qos.logback.core.status.StatusManager;
@@ -60,7 +58,9 @@ public class LoggerContext extends ContextBase implements ILoggerFactory,
private Hashtable<String, Logger> loggerCache;
private LoggerContextVO loggerContextRemoteView;
- private final TurboFilterList turboFilterList = new TurboFilterList();
+
+ // allow the Logger class access to this list
+ final TurboFilterList turboFilterList = new TurboFilterList();
private boolean packagingDataEnabled = true;
private int maxCallerDataDepth = ClassicConstants.DEFAULT_MAX_CALLEDER_DATA_DEPTH;
@@ -250,36 +250,6 @@ public class LoggerContext extends ContextBase implements ILoggerFactory,
turboFilterList.clear();
}
- final FilterReply getTurboFilterChainDecision_0_3OrMore(final Marker marker,
- final Logger logger, final Level level, final String format,
- final Object[] params, final Throwable t) {
- if (turboFilterList.size() == 0) {
- return FilterReply.NEUTRAL;
- }
- return turboFilterList.getTurboFilterChainDecision(marker, logger, level,
- format, params, t);
- }
-
- final FilterReply getTurboFilterChainDecision_1(final Marker marker,
- final Logger logger, final Level level, final String format,
- final Object param, final Throwable t) {
- if (turboFilterList.size() == 0) {
- return FilterReply.NEUTRAL;
- }
- return turboFilterList.getTurboFilterChainDecision(marker, logger, level,
- format, new Object[] { param }, t);
- }
-
- final FilterReply getTurboFilterChainDecision_2(final Marker marker,
- final Logger logger, final Level level, final String format,
- final Object param1, final Object param2, final Throwable t) {
- if (turboFilterList.size() == 0) {
- return FilterReply.NEUTRAL;
- }
- return turboFilterList.getTurboFilterChainDecision(marker, logger, level,
- format, new Object[] { param1, param2 }, t);
- }
-
// === start listeners ==============================================
public void addListener(LoggerContextListener listener) {
loggerContextListenerList.add(listener);
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/spi/LoggingEvent.java b/logback-classic/src/main/java/ch/qos/logback/classic/spi/LoggingEvent.java
index 867c9d2..d32d3bf 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/spi/LoggingEvent.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/spi/LoggingEvent.java
@@ -95,6 +95,7 @@ public class LoggingEvent implements ILoggingEvent {
public LoggingEvent(String fqcn, Logger logger, Level level, String message,
Throwable throwable, Object[] argArray) {
+
this.fqnOfLoggerClass = fqcn;
this.loggerName = logger.getName();
this.loggerContext = logger.getLoggerContext();
@@ -113,7 +114,9 @@ public class LoggingEvent implements ILoggingEvent {
// bug 85 (we previously failed to set this.argumentArray)
this.argumentArray = argArray;
+ }
+ public void secondaryInit() {
timeStamp = System.currentTimeMillis();
// the case is ugly but under the circumstances acceptable
@@ -121,7 +124,7 @@ public class LoggingEvent implements ILoggingEvent {
.getMDCAdapter();
mdcPropertyMap = logbackMDCAdapter.getPropertyMap();
}
-
+
public void setArgumentArray(Object[] argArray) {
if (this.argumentArray != null) {
throw new IllegalStateException("argArray has been already set");
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/spi/TurboFilterList.java b/logback-classic/src/main/java/ch/qos/logback/classic/spi/TurboFilterList.java
index d104ff4..1cefdab 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/spi/TurboFilterList.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/spi/TurboFilterList.java
@@ -15,10 +15,6 @@ package ch.qos.logback.classic.spi;
import java.util.concurrent.CopyOnWriteArrayList;
-import org.slf4j.Marker;
-
-import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.turbo.TurboFilter;
import ch.qos.logback.core.spi.FilterReply;
@@ -36,47 +32,16 @@ final public class TurboFilterList extends CopyOnWriteArrayList<TurboFilter> {
* ACCEPT or DENY, then that value is returned. If all of the filters return
* NEUTRAL, then NEUTRAL is returned.
*/
- public final FilterReply getTurboFilterChainDecision(final Marker marker,
- final Logger logger, final Level level, final String format,
- final Object[] params, final Throwable t) {
-
-
- final int size = size();
-// if (size == 0) {
-// return FilterReply.NEUTRAL;
-// }
- if (size == 1) {
- try {
- TurboFilter tf = get(0);
- return tf.decide(marker, logger, level, format, params, t);
- } catch (IndexOutOfBoundsException iobe) {
- return FilterReply.NEUTRAL;
- }
- }
-
+ public final FilterReply getTurboFilterChainDecision(final LoggingEvent event) {
Object[] tfa = toArray();
final int len = tfa.length;
for (int i = 0; i < len; i++) {
- //for (TurboFilter tf : this) {
final TurboFilter tf = (TurboFilter) tfa[i];
- final FilterReply r = tf.decide(marker, logger, level, format, params, t);
+ final FilterReply r = tf.decide(event);
if (r == FilterReply.DENY || r == FilterReply.ACCEPT) {
return r;
}
}
return FilterReply.NEUTRAL;
}
-
- // public boolean remove(TurboFilter turboFilter) {
- // return tfList.remove(turboFilter);
- // }
- //
- // public TurboFilter remove(int index) {
- // return tfList.remove(index);
- // }
- //
- // final public int size() {
- // return tfList.size();
- // }
-
}
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/turbo/DuplicateMessageFilter.java b/logback-classic/src/main/java/ch/qos/logback/classic/turbo/DuplicateMessageFilter.java
index 939a7d3..21ee701 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/turbo/DuplicateMessageFilter.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/turbo/DuplicateMessageFilter.java
@@ -13,10 +13,7 @@
*/
package ch.qos.logback.classic.turbo;
-import org.slf4j.Marker;
-
-import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.core.spi.FilterReply;
/**
@@ -57,9 +54,8 @@ public class DuplicateMessageFilter extends TurboFilter {
}
@Override
- public FilterReply decide(Marker marker, Logger logger, Level level,
- String format, Object[] params, Throwable t) {
- int count = msgCache.getMessageCountAndThenIncrement(format);
+ public FilterReply decide(LoggingEvent event) {
+ int count = msgCache.getMessageCountAndThenIncrement(event.getMessage());
if (count <= allowedRepetitions) {
return FilterReply.NEUTRAL;
} else {
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/turbo/DynamicThresholdFilter.java b/logback-classic/src/main/java/ch/qos/logback/classic/turbo/DynamicThresholdFilter.java
index eb61702..bf4a845 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/turbo/DynamicThresholdFilter.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/turbo/DynamicThresholdFilter.java
@@ -13,40 +13,45 @@
*/
package ch.qos.logback.classic.turbo;
-import ch.qos.logback.classic.Logger;
-import ch.qos.logback.classic.Level;
-import ch.qos.logback.core.spi.FilterReply;
-import org.slf4j.Marker;
+import java.util.HashMap;
+import java.util.Map;
+
import org.slf4j.MDC;
+import org.slf4j.Marker;
-import java.util.Map;
-import java.util.HashMap;
+import ch.qos.logback.classic.Level;
+import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.spi.LoggingEvent;
+import ch.qos.logback.core.spi.FilterReply;
/**
* This filter allows for efficient course grained filtering based on criteria
* such as product name or company name that would be associated with requests
* as they are processed.
*
- * <p> This filter will allow you to associate threshold levels to a key put in
- * the MDC. This key can be any value specified by the user. Furthermore, you
- * can pass MDC value and level threshold associations, which are then looked up
- * to find the level threshold to apply to the current logging request. If no
- * level threshold could be found, then a 'default' value specified by the user
- * is applied. We call this value 'levelAssociatedWithMDCValue'.
+ * <p>
+ * This filter will allow you to associate threshold levels to a key put in the
+ * MDC. This key can be any value specified by the user. Furthermore, you can
+ * pass MDC value and level threshold associations, which are then looked up to
+ * find the level threshold to apply to the current logging request. If no level
+ * threshold could be found, then a 'default' value specified by the user is
+ * applied. We call this value 'levelAssociatedWithMDCValue'.
*
- * <p> If 'levelAssociatedWithMDCValue' is higher or equal to the level of the
+ * <p>
+ * If 'levelAssociatedWithMDCValue' is higher or equal to the level of the
* current logger request, the
* {@link #decide(Marker, Logger, Level, String, Object[], Throwable) decide()}
- * method returns the value of {@link #getOnHigherOrEqual() onHigherOrEqual},
- * if it is lower then the value of {@link #getOnLower() onLower} is returned.
- * Both 'onHigherOrEqual' and 'onLower' can be set by the user. By default,
+ * method returns the value of {@link #getOnHigherOrEqual() onHigherOrEqual}, if
+ * it is lower then the value of {@link #getOnLower() onLower} is returned. Both
+ * 'onHigherOrEqual' and 'onLower' can be set by the user. By default,
* 'onHigherOrEqual' is set to NEUTRAL and 'onLower' is set to DENY. Thus, if
* the current logger request's level is lower than
* 'levelAssociatedWithMDCValue', then the request is denied, and if it is
* higher or equal, then this filter decides NEUTRAL letting subsequent filters
* to make the decision on the fate of the logging request.
*
- * <p> The example below illustrates how logging could be enabled for only
+ * <p>
+ * The example below illustrates how logging could be enabled for only
* individual users. In this example all events for logger names matching
* "com.mycompany" will be logged if they are for 'user1' and at a level higher
* than equals to DEBUG, and for 'user2' if they are at a level higher than or
@@ -220,21 +225,15 @@ public class DynamicThresholdFilter extends TurboFilter {
*
* @{link #defaultThreshold} value.
*
- * If no such value exists, then
+ * If no such value exists, then
*
*
- * @param marker
- * @param logger
- * @param level
- * @param s
- * @param objects
- * @param throwable
+ * @param event
*
* @return FilterReply - this filter's decision
*/
@Override
- public FilterReply decide(Marker marker, Logger logger, Level level,
- String s, Object[] objects, Throwable throwable) {
+ public FilterReply decide(LoggingEvent event) {
String mdcValue = MDC.get(this.key);
if (!isStarted()) {
@@ -248,7 +247,7 @@ public class DynamicThresholdFilter extends TurboFilter {
if (levelAssociatedWithMDCValue == null) {
levelAssociatedWithMDCValue = defaultThreshold;
}
- if (level.isGreaterOrEqual(levelAssociatedWithMDCValue)) {
+ if (event.getLevel().isGreaterOrEqual(levelAssociatedWithMDCValue)) {
return onHigherOrEqual;
} else {
return onLower;
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MDCFilter.java b/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MDCFilter.java
index 111db11..aafe4b3 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MDCFilter.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MDCFilter.java
@@ -14,10 +14,8 @@
package ch.qos.logback.classic.turbo;
import org.slf4j.MDC;
-import org.slf4j.Marker;
-import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.core.spi.FilterReply;
/**
@@ -49,7 +47,7 @@ public class MDCFilter extends MatchingFilter {
String value;
@Override
- public FilterReply decide(Marker marker, Logger logger, Level level, String format, Object[] params, Throwable t) {
+ public FilterReply decide(LoggingEvent event) {
if (MDCKey == null) {
return FilterReply.NEUTRAL;
}
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MarkerFilter.java b/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MarkerFilter.java
index 8e133cb..747ab10 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MarkerFilter.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MarkerFilter.java
@@ -16,8 +16,7 @@ package ch.qos.logback.classic.turbo;
import org.slf4j.Marker;
import org.slf4j.MarkerFactory;
-import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.core.spi.FilterReply;
/**
@@ -38,11 +37,12 @@ public class MarkerFilter extends MatchingFilter {
}
@Override
- public FilterReply decide(Marker marker, Logger logger, Level level, String format, Object[] params, Throwable t) {
+ public FilterReply decide(LoggingEvent event) {
if(!isStarted()) {
return FilterReply.NEUTRAL;
}
+ Marker marker = event.getMarker();
if(marker == null) {
return onMismatch;
}
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeFilter.java b/logback-classic/src/main/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeFilter.java
index cd04f93..82ea352 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeFilter.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeFilter.java
@@ -17,12 +17,9 @@ import java.io.File;
import java.net.URL;
import java.net.URLDecoder;
-import org.slf4j.Marker;
-
-import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.joran.JoranConfigurator;
+import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.core.CoreConstants;
import ch.qos.logback.core.joran.spi.JoranException;
import ch.qos.logback.core.spi.FilterReply;
@@ -94,8 +91,7 @@ public class ReconfigureOnChangeFilter extends TurboFilter {
private int invocationCounter = 0;
@Override
- public FilterReply decide(Marker marker, Logger logger, Level level,
- String format, Object[] params, Throwable t) {
+ public FilterReply decide(LoggingEvent event) {
if (!isStarted()) {
return FilterReply.NEUTRAL;
}
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/turbo/TurboFilter.java b/logback-classic/src/main/java/ch/qos/logback/classic/turbo/TurboFilter.java
index 4e6757c..2d6258c 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/turbo/TurboFilter.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/turbo/TurboFilter.java
@@ -13,10 +13,7 @@
*/
package ch.qos.logback.classic.turbo;
-import org.slf4j.Marker;
-
-import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.core.spi.ContextAwareBase;
import ch.qos.logback.core.spi.FilterReply;
import ch.qos.logback.core.spi.LifeCycle;
@@ -50,8 +47,7 @@ public abstract class TurboFilter extends ContextAwareBase implements LifeCycle
* @param t
* @return
*/
- public abstract FilterReply decide(Marker marker, Logger logger,
- Level level, String format, Object[] params, Throwable t);
+ public abstract FilterReply decide(LoggingEvent event);
public void start() {
this.start = true;
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/LoggerPerfTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/LoggerPerfTest.java
index c6723de..82d0b4e 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/LoggerPerfTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/LoggerPerfTest.java
@@ -32,8 +32,8 @@ public class LoggerPerfTest {
static long NORMAL_RUN_LENGTH = 1 * 1000 * 1000;
static long SHORTENED_RUN_LENGTH = 500 * 1000;
- LoggerContext lc = new LoggerContext();
- Logger lbLogger = lc.getLogger(this.getClass());
+ LoggerContext context = new LoggerContext();
+ Logger lbLogger = context.getLogger(this.getClass());
org.slf4j.Logger logger = lbLogger;
@Before
@@ -46,15 +46,15 @@ public class LoggerPerfTest {
double avg = computeDurationOfDisabledLogsWith_1_NOPFilter(1,
NORMAL_RUN_LENGTH);
System.out.println("durationOfDisabledLogsWith_1_NOPFilter=" + avg);
- long referencePerf = 60;
-
+
+ long referencePerf = 60+150; // 150 for LoggingEvent creation and gc
BogoPerf.assertDuration(avg, referencePerf, CoreConstants.REFERENCE_BIPS);
}
double computeDurationOfDisabledLogsWith_1_NOPFilter(int numOfFilters,
long len) {
for (int i = 0; i < numOfFilters; i++) {
- lc.addTurboFilter(new NOPTurboFilter());
+ context.addTurboFilter(new NOPTurboFilter());
}
lbLogger.setLevel(Level.OFF);
for (long i = 0; i < len; i++)
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/TurboFilteringInLoggerTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/TurboFilteringInLoggerTest.java
index 1bb51d6..a3e40cc 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/TurboFilteringInLoggerTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/TurboFilteringInLoggerTest.java
@@ -23,6 +23,7 @@ import org.junit.Test;
import org.slf4j.Marker;
import org.slf4j.MarkerFactory;
+import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.classic.turbo.MarkerFilter;
import ch.qos.logback.classic.turbo.TurboFilter;
import ch.qos.logback.core.spi.FilterReply;
@@ -168,16 +169,14 @@ public class TurboFilteringInLoggerTest {
class YesFilter extends TurboFilter {
@Override
- public FilterReply decide(Marker marker, Logger logger, Level level,
- String format, Object[] params, Throwable t) {
+ public FilterReply decide(LoggingEvent event) {
return FilterReply.ACCEPT;
}
}
class NoFilter extends TurboFilter {
@Override
- public FilterReply decide(Marker marker, Logger logger, Level level,
- String format, Object[] params, Throwable t) {
+ public FilterReply decide(LoggingEvent event) {
return FilterReply.DENY;
}
}
\ No newline at end of file
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/boolex/JaninoEventEvaluatorTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/boolex/JaninoEventEvaluatorTest.java
index e9d6a07..ed0fe07 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/boolex/JaninoEventEvaluatorTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/boolex/JaninoEventEvaluatorTest.java
@@ -62,6 +62,7 @@ public class JaninoEventEvaluatorTest {
LoggingEvent e = new LoggingEvent(
ch.qos.logback.core.pattern.FormattingConverter.class.getName(),
logger, Level.INFO, "Some message", ex, null);
+ e.secondaryInit();
return e;
}
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/pattern/ConverterTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/pattern/ConverterTest.java
index 5611786..2a46f8d 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/pattern/ConverterTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/pattern/ConverterTest.java
@@ -48,9 +48,11 @@ public class ConverterTest {
// forces the returned caller information to match the caller stack for this
// this particular test.
LoggingEvent makeLoggingEvent(Exception ex) {
- return new LoggingEvent(
+ LoggingEvent le = new LoggingEvent(
ch.qos.logback.core.pattern.FormattingConverter.class.getName(),
logger, Level.INFO, "Some message", ex, null);
+ le.secondaryInit();
+ return le;
}
Exception getException(String msg, Exception cause) {
@@ -74,7 +76,7 @@ public class ConverterTest {
StringBuffer buf = new StringBuffer();
converter.write(buf, le);
// the number below should be the line number of the previous line
- assertEquals("75", buf.toString());
+ assertEquals("77", buf.toString());
}
}
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/pattern/MDCConverterTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/pattern/MDCConverterTest.java
index 4dcf089..816fa69 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/pattern/MDCConverterTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/pattern/MDCConverterTest.java
@@ -70,9 +70,10 @@ public class MDCConverterTest {
}
private ILoggingEvent createLoggingEvent() {
- ILoggingEvent le = new LoggingEvent(this.getClass().getName(), lc
+ LoggingEvent le = new LoggingEvent(this.getClass().getName(), lc
.getLogger(Logger.ROOT_LOGGER_NAME), Level.DEBUG, "test message", null,
null);
+ le.secondaryInit();
return le;
}
}
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/spi/LoggingEventSerializationTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/spi/LoggingEventSerializationTest.java
index 1caccf8..66977bb 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/spi/LoggingEventSerializationTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/spi/LoggingEventSerializationTest.java
@@ -186,6 +186,7 @@ public class LoggingEventSerializationTest {
private LoggingEvent createLoggingEvent() {
LoggingEvent le = new LoggingEvent(this.getClass().getName(), logger,
Level.DEBUG, "test message", null, null);
+ le.secondaryInit();
return le;
}
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/turbo/DebugUsersTurboFilter.java b/logback-classic/src/test/java/ch/qos/logback/classic/turbo/DebugUsersTurboFilter.java
index f79cdf0..740a8f8 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/turbo/DebugUsersTurboFilter.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/turbo/DebugUsersTurboFilter.java
@@ -17,11 +17,10 @@ import java.util.ArrayList;
import java.util.List;
import org.slf4j.MDC;
-import org.slf4j.Marker;
import ch.qos.logback.classic.ClassicConstants;
import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.core.spi.FilterReply;
/**
@@ -40,8 +39,8 @@ public class DebugUsersTurboFilter extends TurboFilter {
List<String> userList = new ArrayList<String>();
@Override
- public FilterReply decide(Marker marker, Logger logger, Level level, String format, Object[] params, Throwable t) {
- if (!level.equals(Level.DEBUG)) {
+ public FilterReply decide(LoggingEvent event) {
+ if (!event.getLevel().equals(Level.DEBUG)) {
return FilterReply.NEUTRAL;
}
String user = MDC.get(ClassicConstants.USER_MDC_KEY);
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/turbo/DuplicateMessageFilterTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/turbo/DuplicateMessageFilterTest.java
index 5daddf3..627d7bf 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/turbo/DuplicateMessageFilterTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/turbo/DuplicateMessageFilterTest.java
@@ -13,27 +13,31 @@
*/
package ch.qos.logback.classic.turbo;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import org.junit.Test;
+import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.core.spi.FilterReply;
public class DuplicateMessageFilterTest {
+ LoggerContext context = new LoggerContext();
+ Logger logger = context.getLogger(this.getClass());
+
@Test
public void smoke() {
DuplicateMessageFilter dmf = new DuplicateMessageFilter();
dmf.setAllowedRepetitions(0);
dmf.start();
- assertEquals(FilterReply.NEUTRAL, dmf.decide(null, null, null, "x", null,
- null));
- assertEquals(FilterReply.NEUTRAL, dmf.decide(null, null, null, "y", null,
- null));
+ assertEquals(FilterReply.NEUTRAL, dmf.decide(newEvent("x")));
+ assertEquals(FilterReply.NEUTRAL, dmf.decide(newEvent("y")));
assertEquals(FilterReply.DENY, dmf
- .decide(null, null, null, "x", null, null));
+ .decide(newEvent("x")));
assertEquals(FilterReply.DENY, dmf
- .decide(null, null, null, "y", null, null));
+ .decide(newEvent("y")));
}
@Test
@@ -42,12 +46,9 @@ public class DuplicateMessageFilterTest {
dmf.setAllowedRepetitions(1);
dmf.setCacheSize(1);
dmf.start();
- assertEquals(FilterReply.NEUTRAL, dmf.decide(null, null, null, "a", null,
- null));
- assertEquals(FilterReply.NEUTRAL, dmf.decide(null, null, null, "b", null,
- null));
- assertEquals(FilterReply.NEUTRAL, dmf.decide(null, null, null, "a", null,
- null));
+ assertEquals(FilterReply.NEUTRAL, dmf.decide(newEvent("a")));
+ assertEquals(FilterReply.NEUTRAL, dmf.decide(newEvent("b")));
+ assertEquals(FilterReply.NEUTRAL, dmf.decide(newEvent("a")));
}
@Test
@@ -59,16 +60,13 @@ public class DuplicateMessageFilterTest {
dmf.setCacheSize(cacheSize);
dmf.start();
for (int i = 0; i < cacheSize + margin; i++) {
- assertEquals(FilterReply.NEUTRAL, dmf.decide(null, null, null, "a" + i,
- null, null));
+ assertEquals(FilterReply.NEUTRAL, dmf.decide(newEvent("a" + i)));
}
for (int i = cacheSize - 1; i >= margin; i--) {
- assertEquals(FilterReply.DENY, dmf.decide(null, null, null, "a" + i,
- null, null));
+ assertEquals(FilterReply.DENY, dmf.decide(newEvent("a" + i)));
}
for (int i = margin - 1; i >= 0; i--) {
- assertEquals(FilterReply.NEUTRAL, dmf.decide(null, null, null, "a" + i,
- null, null));
+ assertEquals(FilterReply.NEUTRAL, dmf.decide(newEvent("a" + i)));
}
}
@@ -80,10 +78,12 @@ public class DuplicateMessageFilterTest {
dmf.setAllowedRepetitions(0);
dmf.setCacheSize(10);
dmf.start();
- assertEquals(FilterReply.NEUTRAL, dmf.decide(null, null, null, null, null,
- null));
- assertEquals(FilterReply.NEUTRAL, dmf.decide(null, null, null, null, null,
- null));
+ assertEquals(FilterReply.NEUTRAL, dmf.decide(newEvent(null)));
+ assertEquals(FilterReply.NEUTRAL, dmf.decide(newEvent(null)));
+ }
+
+ LoggingEvent newEvent(String m) {
+ return new LoggingEvent(null, logger, null, m, null, null);
}
}
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/turbo/MarkerFilterTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/turbo/MarkerFilterTest.java
index 33805dc..1846d0b 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/turbo/MarkerFilterTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/turbo/MarkerFilterTest.java
@@ -21,6 +21,9 @@ import org.junit.Test;
import org.slf4j.Marker;
import org.slf4j.MarkerFactory;
+import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.core.spi.FilterReply;
public class MarkerFilterTest {
@@ -28,15 +31,16 @@ public class MarkerFilterTest {
static String MARKER_NAME = "toto";
Marker totoMarker = MarkerFactory.getMarker(MARKER_NAME);
-
+ LoggerContext context = new LoggerContext();
+ Logger logger = context.getLogger(this.getClass());
@Test
public void testNoMarker() {
MarkerFilter mkt = new MarkerFilter();
mkt.start();
assertFalse(mkt.isStarted());
- assertEquals(FilterReply.NEUTRAL, mkt.decide(totoMarker, null, null, null, null, null));
- assertEquals(FilterReply.NEUTRAL, mkt.decide(null, null, null, null, null, null));
+ assertEquals(FilterReply.NEUTRAL, mkt.decide(newEvent(totoMarker)));
+ assertEquals(FilterReply.NEUTRAL, mkt.decide(newEvent(null)));
}
@@ -50,8 +54,15 @@ public class MarkerFilterTest {
mkt.start();
assertTrue(mkt.isStarted());
- assertEquals(FilterReply.DENY, mkt.decide(null, null, null, null, null, null));
- assertEquals(FilterReply.ACCEPT, mkt.decide(totoMarker, null, null, null, null, null));
+ assertEquals(FilterReply.DENY, mkt.decide(newEvent(null)));
+ assertEquals(FilterReply.ACCEPT, mkt.decide(newEvent(totoMarker)));
+ }
+
+ LoggingEvent newEvent(Marker marker) {
+ LoggingEvent event = new LoggingEvent(null, logger, null, null, null, null);
+ event.setMarker(marker);
+ return event;
}
+
}
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/turbo/NOPTurboFilter.java b/logback-classic/src/test/java/ch/qos/logback/classic/turbo/NOPTurboFilter.java
index 94528b7..9cf43f4 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/turbo/NOPTurboFilter.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/turbo/NOPTurboFilter.java
@@ -13,18 +13,13 @@
*/
package ch.qos.logback.classic.turbo;
-import org.slf4j.Marker;
-
-import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.core.spi.FilterReply;
public class NOPTurboFilter extends TurboFilter {
@Override
- public FilterReply decide(final Marker marker, final Logger logger, final Level level, final String format,
- final Object[] params, final Throwable t) {
-
+ public FilterReply decide(LoggingEvent event) {
return FilterReply.NEUTRAL;
}
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeTest.java
index ac2d714..4b462e7 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeTest.java
@@ -24,6 +24,7 @@ import java.net.URL;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.slf4j.Marker;
import org.slf4j.helpers.BogoPerf;
import ch.qos.logback.classic.ClassicTestConstants;
@@ -32,6 +33,7 @@ import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.issue.lbclassic135.LoggingRunnable;
import ch.qos.logback.classic.joran.JoranConfigurator;
+import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.core.CoreConstants;
import ch.qos.logback.core.contention.MultiThreadedHarness;
import ch.qos.logback.core.contention.RunnableWithCounterAndDone;
@@ -66,6 +68,12 @@ public class ReconfigureOnChangeTest {
Logger logger = loggerContext.getLogger(this.getClass());
MultiThreadedHarness harness;
+
+ LoggingEvent newEvent(Marker marker) {
+ LoggingEvent event = new LoggingEvent(null, logger, null, null, null, null);
+ event.setMarker(marker);
+ return event;
+ }
@Before
public void setUp() {
System.out.println("======== TEST START");
@@ -192,10 +200,17 @@ public class ReconfigureOnChangeTest {
BogoPerf.assertDuration(avg, referencePerf, CoreConstants.REFERENCE_BIPS);
}
+ LoggingEvent newEvent(Level level, String msg) {
+ LoggingEvent event = new LoggingEvent(null, logger, level, msg, null, null);
+ return event;
+ }
+
public double directLoop(ReconfigureOnChangeFilter rocf) {
+ LoggingEvent event = newEvent(Level.DEBUG, " ");
+
long start = System.nanoTime();
for (int i = 0; i < LOOP_LEN; i++) {
- rocf.decide(null, logger, Level.DEBUG, " ", null, null);
+ rocf.decide(event);
}
long end = System.nanoTime();
return (end - start) / (1.0d * LOOP_LEN);
@@ -219,7 +234,7 @@ public class ReconfigureOnChangeTest {
double avg = indirectLoop();
System.out.println(avg);
// the reference was computed on Orion (Ceki's computer)
- long referencePerf = 68;
+ long referencePerf = 68+150; // extra 150 for LoggingEvent creation and gc
BogoPerf.assertDuration(avg, referencePerf, CoreConstants.REFERENCE_BIPS);
}
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/turbo/ReconfigurePerf.java b/logback-classic/src/test/java/ch/qos/logback/classic/turbo/ReconfigurePerf.java
index 16a36c0..2fdba85 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/turbo/ReconfigurePerf.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/turbo/ReconfigurePerf.java
@@ -26,6 +26,7 @@ import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.issue.lbclassic135.LoggingRunnable;
import ch.qos.logback.classic.joran.JoranConfigurator;
+import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.core.CoreConstants;
import ch.qos.logback.core.contention.MultiThreadedHarness;
import ch.qos.logback.core.contention.RunnableWithCounterAndDone;
@@ -109,11 +110,15 @@ public class ReconfigurePerf {
return rocf;
}
-
+ LoggingEvent newEvent(Level level, String msg) {
+ LoggingEvent event = new LoggingEvent(null, logger, level, msg, null, null);
+ return event;
+ }
+
public double directLoop(ReconfigureOnChangeFilter rocf) {
long start = System.nanoTime();
for (int i = 0; i < LOOP_LEN; i++) {
- rocf.decide(null, logger, Level.DEBUG, " ", null, null);
+ rocf.decide(newEvent(Level.DEBUG, " "));
}
long end = System.nanoTime();
return (end - start) / (1.0d * LOOP_LEN);
diff --git a/logback-examples/src/main/java/chapters/filters/SampleTurboFilter.java b/logback-examples/src/main/java/chapters/filters/SampleTurboFilter.java
index c75ce45..dfc4297 100644
--- a/logback-examples/src/main/java/chapters/filters/SampleTurboFilter.java
+++ b/logback-examples/src/main/java/chapters/filters/SampleTurboFilter.java
@@ -16,8 +16,7 @@ package chapters.filters;
import org.slf4j.Marker;
import org.slf4j.MarkerFactory;
-import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.classic.turbo.TurboFilter;
import ch.qos.logback.core.spi.FilterReply;
@@ -27,8 +26,7 @@ public class SampleTurboFilter extends TurboFilter {
Marker markerToAccept;
@Override
- public FilterReply decide(Marker marker, Logger logger, Level level,
- String format, Object[] params, Throwable t) {
+ public FilterReply decide(LoggingEvent event) {
if (!isStarted()) {
return FilterReply.NEUTRAL;
-----------------------------------------------------------------------
hooks/post-receive
--
Logback: the generic, reliable, fast and flexible logging framework.
1
0

[GIT] Logback: the generic, reliable, fast and flexible logging framework. branch, master, updated. release_0.9.19-32-gd293dc7
by git-noreply@pixie.qos.ch 31 Mar '10
by git-noreply@pixie.qos.ch 31 Mar '10
31 Mar '10
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Logback: the generic, reliable, fast and flexible logging framework.".
The branch, master has been updated
via d293dc7481b8b5a7b5206a12192c8dff2c445227 (commit)
from 85f6de721d775b96e4f29dd39f6554d32ec9741a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=d293dc7481b8b5a7b5206a12…
http://github.com/ceki/logback/commit/d293dc7481b8b5a7b5206a12192c8dff2c445…
commit d293dc7481b8b5a7b5206a12192c8dff2c445227
Author: Ceki Gulcu <ceki(a)qos.ch>
Date: Wed Mar 31 19:07:58 2010 +0200
typo fix
diff --git a/logback-site/src/site/pages/manual/loggingSeparation.html b/logback-site/src/site/pages/manual/loggingSeparation.html
index 04f7054..6b2b67e 100644
--- a/logback-site/src/site/pages/manual/loggingSeparation.html
+++ b/logback-site/src/site/pages/manual/loggingSeparation.html
@@ -428,7 +428,7 @@ DEBUG ch.qos.starwars.shared.Mustafar cn=yoda - in foo()</pre>
<p>Visiting <code>http://localhost:port/kenobi/servlet</code> will
output the following in <em>kenobi.log</em>.</p>
- <pre class="source">DEBUG c.qos.starwars.kenobi.KenobiServlet <b>cn=kenobi</b> - in doGet()
+ <pre class="source">DEBUG ch.qos.starwars.kenobi.KenobiServlet <b>cn=kenobi</b> - in doGet()
DEBUG ch.qos.starwars.shared.Mustafar <b>cn=yoda</b> - in foo()</pre>
<p>Note that even if the
-----------------------------------------------------------------------
Summary of changes:
.../src/site/pages/manual/loggingSeparation.html | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
hooks/post-receive
--
Logback: the generic, reliable, fast and flexible logging framework.
1
0

[GIT] Logback: the generic, reliable, fast and flexible logging framework. branch, master, updated. release_0.9.19-31-g85f6de7
by git-noreply@pixie.qos.ch 31 Mar '10
by git-noreply@pixie.qos.ch 31 Mar '10
31 Mar '10
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Logback: the generic, reliable, fast and flexible logging framework.".
The branch, master has been updated
via 85f6de721d775b96e4f29dd39f6554d32ec9741a (commit)
from a3423c5ec6e11b19562964017bbcd15e34980e09 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=85f6de721d775b96e4f29dd3…
http://github.com/ceki/logback/commit/85f6de721d775b96e4f29dd39f6554d32ec97…
commit 85f6de721d775b96e4f29dd39f6554d32ec9741a
Author: Ceki Gulcu <ceki(a)qos.ch>
Date: Wed Mar 31 18:19:42 2010 +0200
- DBAppenderIntegrationTest and SiftingAppenderTest collided on MDC key userid
the MDC used in DBAppenderIntegrationTest is suffixed with a random int value
to avoid collisions
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/db/DBAppenderIntegrationTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/db/DBAppenderIntegrationTest.java
index dc0a58a..a5ebd40 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/db/DBAppenderIntegrationTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/db/DBAppenderIntegrationTest.java
@@ -92,7 +92,9 @@ public class DBAppenderIntegrationTest {
Logger logger = lc.getLogger(DBAppenderIntegrationTest.class);
- MDC.put("userid", "user" + diff);
+ // the key userid is used in SiftingAppender test
+ // suffix with diff to avoid collision
+ MDC.put("userid"+diff, "user" + diff);
int runLength = 5;
for (int i = 1; i <= runLength; i++) {
logger.debug("This is a debug message. Message number: " + (diff + i));
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/sift/SiftingAppenderTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/sift/SiftingAppenderTest.java
index 4bf89ac..1d05659 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/sift/SiftingAppenderTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/sift/SiftingAppenderTest.java
@@ -46,7 +46,8 @@ public class SiftingAppenderTest {
LoggerContext loggerContext = new LoggerContext();
Logger logger = loggerContext.getLogger(this.getClass().getName());
Logger root = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME);
-
+ StatusChecker sc = new StatusChecker(loggerContext);
+
void configure(String file) throws JoranException {
JoranConfigurator jc = new JoranConfigurator();
jc.setContext(loggerContext);
@@ -92,7 +93,6 @@ public class SiftingAppenderTest {
StatusPrinter.printInCaseOfErrorsOrWarnings(loggerContext);
assertNotNull(nopa);
- StatusChecker sc = new StatusChecker(loggerContext);
assertTrue(sc.containsMatch(ErrorStatus.ERROR, "No nested appenders found"));
assertTrue(sc.containsMatch(ErrorStatus.ERROR,
"Failed to build an appender for discriminating value \\[smoke\\]"));
@@ -113,7 +113,6 @@ public class SiftingAppenderTest {
StatusPrinter.printInCaseOfErrorsOrWarnings(loggerContext);
assertNotNull(listAppender);
- StatusChecker sc = new StatusChecker(loggerContext);
assertTrue(sc.containsMatch(ErrorStatus.ERROR,
"Only and only one appender can be nested"));
}
-----------------------------------------------------------------------
Summary of changes:
.../classic/db/DBAppenderIntegrationTest.java | 4 +++-
.../logback/classic/sift/SiftingAppenderTest.java | 5 ++---
2 files changed, 5 insertions(+), 4 deletions(-)
hooks/post-receive
--
Logback: the generic, reliable, fast and flexible logging framework.
1
0

[JIRA] Created: (LBCLASSIC-188) Make table and column names overridable
by Ceki Gulcu (JIRA) 31 Mar '10
by Ceki Gulcu (JIRA) 31 Mar '10
31 Mar '10
Make table and column names overridable
---------------------------------------
Key: LBCLASSIC-188
URL: http://jira.qos.ch/browse/LBCLASSIC-188
Project: logback-classic
Issue Type: Sub-task
Components: appender
Affects Versions: 0.9.18
Reporter: Ceki Gulcu
Assignee: Logback dev list
To comply with local project rules, it can be helpful if the table and column names used by DBAppender could be overridden. The easiest way to solve this problem is for DBAppender to delegate the resolution of table names and columns to a different class, say DBNameResolver. Here is a possible interface:
interface DBNameResolver {
String getTableName(String standardTableName);
String getColumnName(String standardColumnName);
}
The default implementation of DBNameResolver could be:
class DefaulDBNameResolver implements DBNameResolver {
public String getTableName(String standardTableName) {
if("logging_event".equals(standardTableName) {
return standardTableName;
}
if("logging_event_property".equals(standardTableName) {
return standardTableName;
}
if("logging_event_exception".equals(standardTableName) {
return standardTableName;
}
throw new IllegalArgumentException(standardTableName + " is an unknown table name");
}
String getColumnName(String standardColumnName) {
...
}
}
If a user wanted to use different names she would simply implement DBNameResolver according to her requirements.
Any volunteers to implement this?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.qos.ch/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
5
19

[GIT] Logback: the generic, reliable, fast and flexible logging framework. branch, master, updated. release_0.9.19-30-ga3423c5
by git-noreply@pixie.qos.ch 31 Mar '10
by git-noreply@pixie.qos.ch 31 Mar '10
31 Mar '10
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Logback: the generic, reliable, fast and flexible logging framework.".
The branch, master has been updated
via a3423c5ec6e11b19562964017bbcd15e34980e09 (commit)
via 4abcfc3f85f0d26ae4ba72b6201f2466157997bf (commit)
via a8ab965ec25bd74d99673a1f70748814b61eec02 (commit)
via 99aec4afc70c32ab2c896541fb23587eac133d5c (commit)
via 48b7a18ac1c3aad68d969f7074265524348b7360 (commit)
via 569f138e5747e97715c3cd21a4e60187539f3cd2 (commit)
via 2f15b38b16cef98708af85b4c238e20884fc8f51 (commit)
via dc2438ed69e0a56e9ecb4e87ef29ef142ad5557b (commit)
via 0851bedca5864da9bd729793393dfcb47417292e (commit)
via 80fb8ac10abdf2db8aafb05e8899660879d2ebd4 (commit)
via a9d4721dbca8c77e5b005bca28f15f1757873b74 (commit)
via e804e15654e6b911de4d771f2b3a88a405233d42 (commit)
via 97af7f3deb4f81e0877f5c5076d477010725dfef (commit)
via bf77adca9403f83b2dbaa849ce08000d4a06eaf8 (commit)
from ddd1b6a3c18099ba49d07e83be26a40a64116924 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=a3423c5ec6e11b1956296401…
http://github.com/ceki/logback/commit/a3423c5ec6e11b19562964017bbcd15e34980…
commit a3423c5ec6e11b19562964017bbcd15e34980e09
Author: Ceki Gulcu <ceki(a)qos.ch>
Date: Wed Mar 31 17:46:47 2010 +0200
- Removed bogus System.out statement in DBAppenderBase
- Merged from http://github.com/nurkiewicz/logback with following changes:
* removed CustomDBNameResolver as joran currently does not support
setters with two arguments
* Omitted bogus modifications in FileAppenderResilienceTest and
IncludeActionTest
- fest-assert added as a common test dependency
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/CustomDBNameResolver.java b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/CustomDBNameResolver.java
deleted file mode 100644
index 373f4aa..0000000
--- a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/CustomDBNameResolver.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * Logback: the reliable, generic, fast and flexible logging framework.
- * Copyright (C) 1999-2010, QOS.ch. All rights reserved.
- *
- * This program and the accompanying materials are dual-licensed under either
- * the terms of the Eclipse Public License v1.0 as published by the Eclipse
- * Foundation
- *
- * or (per the licensee's choosing)
- *
- * under the terms of the GNU Lesser General Public License version 2.1 as
- * published by the Free Software Foundation.
- */
-package ch.qos.logback.classic.db.names;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Allows to override any table or column name to arbitrary value.
- *
- * @author Tomasz Nurkiewicz
- * @author Ceki Gulcu
- * @since 0.9.19
- */
-public class CustomDBNameResolver implements DBNameResolver {
-
- private final DBNameResolver defaultDbNameResolver = new DefaultDBNameResolver();
- private final Map<String, String> tableNameOverrides = new HashMap<String, String>();
- private final Map<String, String> columnNameOverrides = new HashMap<String, String>();
-
- public <N extends Enum<?>> String getTableName(N tableName) {
- if (tableNameOverrides.get(tableName.name()) != null)
- return tableNameOverrides.get(tableName.name());
- return defaultDbNameResolver.getTableName(tableName);
- }
-
- public <N extends Enum<?>> String getColumnName(N columnName) {
- if (columnNameOverrides.get(columnName.name()) != null)
- return columnNameOverrides.get(columnName.name());
- return defaultDbNameResolver.getColumnName(columnName);
- }
-
- public void overrideTableName(String reference, String name) {
- tableNameOverrides.put(reference, name);
- }
- public void overrideColumnName(String reference, String name) {
- columnNameOverrides.put(reference, name);
- }
-
- public <N extends Enum<?>> void overrideTableName(N referenceTableName, String name) {
- tableNameOverrides.put(referenceTableName.name(), name);
- }
- public <N extends Enum<?>> void overrideColumnName(N referenceColumnName, String name) {
- columnNameOverrides.put(referenceColumnName.name(), name);
- }
-
-}
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/db/PackageTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/db/PackageTest.java
index 5c90451..f2af6d6 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/db/PackageTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/db/PackageTest.java
@@ -19,6 +19,7 @@ import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses( { DBAppenderHSQLTest.class, DBAppenderH2Test.class,
- DBAppenderIntegrationTest.class })
+ DBAppenderIntegrationTest.class, SQLBuilderTest.class,
+ ch.qos.logback.classic.db.names.PackageTest.class})
public class PackageTest {
}
\ No newline at end of file
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java
index 1894e5d..c03a67a 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java
@@ -1,9 +1,12 @@
package ch.qos.logback.classic.db;
-import ch.qos.logback.classic.db.names.*;
+import static org.fest.assertions.Assertions.assertThat;
+
import org.junit.Test;
-import static org.fest.assertions.Assertions.assertThat;
+import ch.qos.logback.classic.db.names.DBNameResolver;
+import ch.qos.logback.classic.db.names.DefaultDBNameResolver;
+import ch.qos.logback.classic.db.names.SimpleDBNameResolver;
/**
* @author Tomasz Nurkiewicz
@@ -50,74 +53,6 @@ public class SQLBuilderTest {
assertThat(sql).isEqualTo(expected);
}
- @Test
- public void shouldReturnCustomSqlInsertLoggingEventQuery() throws Exception {
- //given
- DBNameResolver nameResolver = createCustomDBNameResolver();
-
- //when
- String sql = SQLBuilder.buildInsertSQL(nameResolver);
-
- //then
- final String expected = "INSERT INTO alpha (a, b, c, d, e, f, a0, a1, a2, a3, g, h, i, j) VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
- assertThat(sql).isEqualTo(expected);
- }
-
- private DBNameResolver createCustomDBNameResolver() {
- final CustomDBNameResolver nameResolver = new CustomDBNameResolver();
- nameResolver.overrideTableName(TableName.LOGGING_EVENT, "alpha");
- nameResolver.overrideTableName(TableName.LOGGING_EVENT_EXCEPTION.name(), "beta");
- nameResolver.overrideTableName(TableName.LOGGING_EVENT_PROPERTY, "gamma");
-
- nameResolver.overrideColumnName(ColumnName.TIMESTMP, "a");
- nameResolver.overrideColumnName(ColumnName.FORMATTED_MESSAGE, "b");
- nameResolver.overrideColumnName(ColumnName.LOGGER_NAME, "c");
- nameResolver.overrideColumnName(ColumnName.LEVEL_STRING, "d");
- nameResolver.overrideColumnName(ColumnName.THREAD_NAME, "e");
- nameResolver.overrideColumnName(ColumnName.REFERENCE_FLAG, "f");
- nameResolver.overrideColumnName(ColumnName.ARG0.name(), "a0");
- nameResolver.overrideColumnName(ColumnName.ARG1.name(), "a1");
- nameResolver.overrideColumnName(ColumnName.ARG2.name(), "a2");
- nameResolver.overrideColumnName(ColumnName.ARG3.name(), "a3");
- nameResolver.overrideColumnName(ColumnName.CALLER_FILENAME.name(), "g");
- nameResolver.overrideColumnName(ColumnName.CALLER_CLASS.name(), "h");
- nameResolver.overrideColumnName(ColumnName.CALLER_METHOD.name(), "i");
- nameResolver.overrideColumnName(ColumnName.CALLER_LINE.name(), "j");
-
- nameResolver.overrideColumnName(ColumnName.EVENT_ID.name(), "k");
- nameResolver.overrideColumnName(ColumnName.I.name(), "l");
- nameResolver.overrideColumnName(ColumnName.TRACE_LINE.name(), "m");
-
- nameResolver.overrideColumnName(ColumnName.MAPPED_KEY.name(), "o");
- nameResolver.overrideColumnName(ColumnName.MAPPED_VALUE.name(), "p");
- return nameResolver;
- }
-
- @Test
- public void shouldReturnCustomSqlInsertExceptionQuery() throws Exception {
- //given
- DBNameResolver nameResolver = createCustomDBNameResolver();
-
- //when
- String sql = SQLBuilder.buildInsertExceptionSQL(nameResolver);
-
- //then
- final String expected = "INSERT INTO beta (k, l, m) VALUES (?, ?, ?)";
- assertThat(sql).isEqualTo(expected);
- }
-
- @Test
- public void shouldReturnCustomSqlInsertLoggingPropertyQuery() throws Exception {
- //given
- DBNameResolver nameResolver = createCustomDBNameResolver();
-
- //when
- String sql = SQLBuilder.buildInsertPropertiesSQL(nameResolver);
-
- //then
- final String expected = "INSERT INTO gamma (k, o, p) VALUES (?, ?, ?)";
- assertThat(sql).isEqualTo(expected);
- }
private DBNameResolver createSimpleDBNameResolver() {
final SimpleDBNameResolver nameResolver = new SimpleDBNameResolver();
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/db/names/CustomDBNameResolverTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/db/names/CustomDBNameResolverTest.java
deleted file mode 100644
index 0720db0..0000000
--- a/logback-classic/src/test/java/ch/qos/logback/classic/db/names/CustomDBNameResolverTest.java
+++ /dev/null
@@ -1,136 +0,0 @@
-package ch.qos.logback.classic.db.names;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.fest.assertions.Assertions.assertThat;
-
-/**
- * @author Tomasz Nurkiewicz
- * @since 2010-03-18
- */
-public class CustomDBNameResolverTest {
- private CustomDBNameResolver resolver;
-
- @Before
- public void setUp() throws Exception {
- resolver = new CustomDBNameResolver();
- }
-
- @Test
- public void shouldReturnDefaultTableName() throws Exception {
- //when
- String tableName = resolver.getTableName(TableName.LOGGING_EVENT);
-
- //then
- assertThat(tableName).isEqualTo("logging_event");
- }
-
- @Test
- public void shouldReturnDefaultLoggingEventColumnName() throws Exception {
- //when
- String columnName = resolver.getColumnName(ColumnName.LOGGER_NAME);
-
- //then
- assertThat(columnName).isEqualTo("logger_name");
- }
-
- @Test
- public void shouldReturnDefaultLoggingPropertyColumnName() throws Exception {
- //when
- String columnName = resolver.getColumnName(ColumnName.MAPPED_VALUE);
-
- //then
- assertThat(columnName).isEqualTo("mapped_value");
- }
-
- @Test
- public void shouldReturnDefaultLoggingExceptionColumnName() throws Exception {
- //when
- String columnName = resolver.getColumnName(ColumnName.EVENT_ID);
-
- //then
- assertThat(columnName).isEqualTo("event_id");
- }
-
- @Test
- public void shouldReturnModifiedTableName() throws Exception {
- //when
- resolver.overrideTableName(TableName.LOGGING_EVENT_EXCEPTION.name(), "tbl_logging_event_exception");
- String tableName = resolver.getTableName(TableName.LOGGING_EVENT_EXCEPTION);
-
- //then
- assertThat(tableName).isEqualTo("tbl_logging_event_exception");
- }
-
- @Test
- public void shouldReturnModifiedColumnName() throws Exception {
- //when
- resolver.overrideColumnName(ColumnName.CALLER_FILENAME.name(), "c_caller_filename");
- String columnName = resolver.getColumnName(ColumnName.CALLER_FILENAME);
-
- //then
- assertThat(columnName).isEqualTo("c_caller_filename");
- }
-
- @Test
- public void shouldReturnModifiedLoggingPropertyColumnName() throws Exception {
- //when
- resolver.overrideColumnName(ColumnName.MAPPED_KEY.name(), "c_mapped_key");
- String columnName = resolver.getColumnName(ColumnName.MAPPED_KEY);
-
- //then
- assertThat(columnName).isEqualTo("c_mapped_key");
- }
-
- @Test
- public void shouldReturnModifiedLoggingExceptionColumnName() throws Exception {
- //when
- resolver.overrideColumnName(ColumnName.I.name(), "c_i");
- String columnName = resolver.getColumnName(ColumnName.I);
-
- //then
- assertThat(columnName).isEqualTo("c_i");
- }
-
- @Test
- public void shouldReturnDefaultTableNameWhenNullGiven() throws Exception {
- //when
- resolver.overrideColumnName(TableName.LOGGING_EVENT_EXCEPTION.name(), null);
- String tableName = resolver.getTableName(TableName.LOGGING_EVENT_PROPERTY);
-
- //then
- assertThat(tableName).isEqualTo("logging_event_property");
- }
-
- @Test
- public void shouldReturnDefaultColumnNameWhenNullGiven() throws Exception {
- //when
- resolver.overrideColumnName(ColumnName.CALLER_CLASS.name(), null);
- String columnName = resolver.getColumnName(ColumnName.CALLER_CLASS);
-
- //then
- assertThat(columnName).isEqualTo("caller_class");
- }
-
- @Test
- public void shouldReturnDefaultLoggingPropertyColumnNameWhenNullGiven() throws Exception {
- //when
- resolver.overrideColumnName(ColumnName.EVENT_ID.name(), null);
- String columnName = resolver.getColumnName(ColumnName.EVENT_ID);
-
- //then
- assertThat(columnName).isEqualTo("event_id");
- }
-
- @Test
- public void shouldReturnDefaultLoggingExceptionColumnNameWhenNullGiven() throws Exception {
- //when
- resolver.overrideColumnName(ColumnName.I.name(), null);
- String columnName = resolver.getColumnName(ColumnName.I);
-
- //then
- assertThat(columnName).isEqualTo("i");
- }
-
-}
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/db/PackageTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/db/names/PackageTest.java
similarity index 81%
copy from logback-classic/src/test/java/ch/qos/logback/classic/db/PackageTest.java
copy to logback-classic/src/test/java/ch/qos/logback/classic/db/names/PackageTest.java
index 5c90451..60a57b1 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/db/PackageTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/db/names/PackageTest.java
@@ -11,14 +11,14 @@
* under the terms of the GNU Lesser General Public License version 2.1
* as published by the Free Software Foundation.
*/
-package ch.qos.logback.classic.db;
+package ch.qos.logback.classic.db.names;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
-@SuiteClasses( { DBAppenderHSQLTest.class, DBAppenderH2Test.class,
- DBAppenderIntegrationTest.class })
+@SuiteClasses( { DefaultDBNameResolverTest.class,
+ SimpleDBNameResolverTest.class })
public class PackageTest {
}
\ No newline at end of file
diff --git a/logback-core/src/main/java/ch/qos/logback/core/db/DBAppenderBase.java b/logback-core/src/main/java/ch/qos/logback/core/db/DBAppenderBase.java
index de7d6ad..d958df4 100644
--- a/logback-core/src/main/java/ch/qos/logback/core/db/DBAppenderBase.java
+++ b/logback-core/src/main/java/ch/qos/logback/core/db/DBAppenderBase.java
@@ -108,7 +108,6 @@ public abstract class DBAppenderBase<E> extends UnsynchronizedAppenderBase<E> {
subAppend(eventObject, connection, insertStatement);
eventId = selectEventId(insertStatement, connection);
}
- System.out.println("eventid="+eventId);
secondarySubAppend(eventObject, connection, eventId);
// we no longer need the insertStatement
diff --git a/logback-core/src/test/java/ch/qos/logback/core/FileAppenderResilienceTest.java b/logback-core/src/test/java/ch/qos/logback/core/FileAppenderResilienceTest.java
index 0c83df6..99a6698 100644
--- a/logback-core/src/test/java/ch/qos/logback/core/FileAppenderResilienceTest.java
+++ b/logback-core/src/test/java/ch/qos/logback/core/FileAppenderResilienceTest.java
@@ -46,6 +46,7 @@ public class FileAppenderResilienceTest {
}
@Test
+ @Ignore
public void manual() throws InterruptedException, IOException {
Runner runner = new Runner(fa);
Thread t = new Thread(runner);
diff --git a/logback-core/src/test/java/ch/qos/logback/core/joran/action/IncludeActionTest.java b/logback-core/src/test/java/ch/qos/logback/core/joran/action/IncludeActionTest.java
index 4b82b1a..1f31383 100644
--- a/logback-core/src/test/java/ch/qos/logback/core/joran/action/IncludeActionTest.java
+++ b/logback-core/src/test/java/ch/qos/logback/core/joran/action/IncludeActionTest.java
@@ -29,7 +29,6 @@ import java.util.Stack;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.xml.sax.SAXParseException;
diff --git a/pom.xml b/pom.xml
index 4096a2e..a773645 100755
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>4.4</version>
+ <version>4.7</version>
<scope>test</scope>
</dependency>
<dependency>
http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=4abcfc3f85f0d26ae4ba72b6…
http://github.com/ceki/logback/commit/4abcfc3f85f0d26ae4ba72b6201f246615799…
commit 4abcfc3f85f0d26ae4ba72b6201f2466157997bf
Merge: ddd1b6a a8ab965
Author: Ceki Gulcu <ceki(a)qos.ch>
Date: Wed Mar 31 16:43:46 2010 +0200
Merge git://github.com/nurkiewicz/logback into thomasz20100331
http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=a8ab965ec25bd74d99673a1f…
http://github.com/ceki/logback/commit/a8ab965ec25bd74d99673a1f70748814b61ee…
commit a8ab965ec25bd74d99673a1f70748814b61eec02
Author: Tomasz Nurkiewicz <nurkiewicz(a)gmail.com>
Date: Sun Mar 28 20:27:51 2010 +0200
[LBCLASSIC-188] Short Javadocs with @since
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/CustomDBNameResolver.java b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/CustomDBNameResolver.java
index e4da258..373f4aa 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/CustomDBNameResolver.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/CustomDBNameResolver.java
@@ -17,8 +17,11 @@ import java.util.HashMap;
import java.util.Map;
/**
+ * Allows to override any table or column name to arbitrary value.
+ *
* @author Tomasz Nurkiewicz
- * @since 2010-03-16
+ * @author Ceki Gulcu
+ * @since 0.9.19
*/
public class CustomDBNameResolver implements DBNameResolver {
@@ -52,7 +55,4 @@ public class CustomDBNameResolver implements DBNameResolver {
columnNameOverrides.put(referenceColumnName.name(), name);
}
-
-
-
}
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java
index 7361e68..10f73f2 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java
@@ -1,9 +1,10 @@
package ch.qos.logback.classic.db.names;
/**
- * TODO: Handle null prefixes/suffixes somehow
+ * Adds custom prefix/suffix to table and column names.
+ *
* @author Tomasz Nurkiewicz
- * @since 2010-03-19
+ * @since 0.9.20
*/
public class SimpleDBNameResolver implements DBNameResolver {
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/TableName.java b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/TableName.java
index 9995361..7c6cf00 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/TableName.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/TableName.java
@@ -2,7 +2,7 @@ package ch.qos.logback.classic.db.names;
/**
* @author Tomasz Nurkiewicz
- * @since 2010-03-15
+ * @since 0.9.19
*/
public enum TableName {
http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=99aec4afc70c32ab2c896541…
http://github.com/ceki/logback/commit/99aec4afc70c32ab2c896541fb23587eac133…
commit 99aec4afc70c32ab2c896541fb23587eac133d5c
Author: Tomasz Nurkiewicz <nurkiewicz(a)gmail.com>
Date: Sun Mar 28 20:04:16 2010 +0200
Revert mistakenly commited @Ignore
diff --git a/logback-core/src/test/java/ch/qos/logback/core/FileAppenderResilienceTest.java b/logback-core/src/test/java/ch/qos/logback/core/FileAppenderResilienceTest.java
index 5a3463c..0c83df6 100644
--- a/logback-core/src/test/java/ch/qos/logback/core/FileAppenderResilienceTest.java
+++ b/logback-core/src/test/java/ch/qos/logback/core/FileAppenderResilienceTest.java
@@ -17,7 +17,6 @@ import ch.qos.logback.core.testUtil.RandomUtil;
import ch.qos.logback.core.util.CoreTestConstants;
import ch.qos.logback.core.util.ResilienceUtil;
-@Ignore
public class FileAppenderResilienceTest {
FileAppender<Object> fa = new FileAppender<Object>();
diff --git a/logback-core/src/test/java/ch/qos/logback/core/joran/action/IncludeActionTest.java b/logback-core/src/test/java/ch/qos/logback/core/joran/action/IncludeActionTest.java
index e7d2ffe..4c56b65 100644
--- a/logback-core/src/test/java/ch/qos/logback/core/joran/action/IncludeActionTest.java
+++ b/logback-core/src/test/java/ch/qos/logback/core/joran/action/IncludeActionTest.java
@@ -173,7 +173,6 @@ public class IncludeActionTest {
}
@Test
- @Ignore
public void unknownURL() throws JoranException {
System.setProperty(INCLUDE_KEY, "http://logback2345.qos.ch");
tc.doConfigure(TOP_BY_URL);
http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=48b7a18ac1c3aad68d969f70…
http://github.com/ceki/logback/commit/48b7a18ac1c3aad68d969f7074265524348b7…
commit 48b7a18ac1c3aad68d969f7074265524348b7360
Merge: 569f138 39d30d0
Author: Tomasz Nurkiewicz <nurkiewicz(a)gmail.com>
Date: Sun Mar 28 19:45:36 2010 +0200
Merge branch 'master' of git://github.com/ceki/logback
diff --cc logback-classic/src/main/java/ch/qos/logback/classic/db/SQLBuilder.java
index 7c724aa,8ebeece..489de51
--- a/logback-classic/src/main/java/ch/qos/logback/classic/db/SQLBuilder.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/db/SQLBuilder.java
@@@ -11,9 -24,9 +24,9 @@@ public class SQLBuilder
static String buildInsertPropertiesSQL(DBNameResolver dbNameResolver) {
StringBuilder sqlBuilder = new StringBuilder("INSERT INTO ");
sqlBuilder.append(dbNameResolver.getTableName(TableName.LOGGING_EVENT_PROPERTY)).append(" (");
- sqlBuilder.append(dbNameResolver.getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName.EVENT_ID)).append(", ");
- sqlBuilder.append(dbNameResolver.getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName.MAPPED_KEY)).append(", ");
- sqlBuilder.append(dbNameResolver.getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName.MAPPED_VALUE)).append(") ");
- sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.EVENT_ID)).append(",");
- sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.MAPPED_KEY)).append(",");
++ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.EVENT_ID)).append(", ");
++ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.MAPPED_KEY)).append(", ");
+ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.MAPPED_VALUE)).append(") ");
sqlBuilder.append("VALUES (?, ?, ?)");
return sqlBuilder.toString();
}
@@@ -21,9 -34,9 +34,9 @@@
static String buildInsertExceptionSQL(DBNameResolver dbNameResolver) {
StringBuilder sqlBuilder = new StringBuilder("INSERT INTO ");
sqlBuilder.append(dbNameResolver.getTableName(TableName.LOGGING_EVENT_EXCEPTION)).append(" (");
- sqlBuilder.append(dbNameResolver.getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName.EVENT_ID)).append(", ");
- sqlBuilder.append(dbNameResolver.getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName.I)).append(", ");
- sqlBuilder.append(dbNameResolver.getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName.TRACE_LINE)).append(") ");
- sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.EVENT_ID)).append(",");
- sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.I)).append(",");
++ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.EVENT_ID)).append(", ");
++ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.I)).append(", ");
+ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.TRACE_LINE)).append(") ");
sqlBuilder.append("VALUES (?, ?, ?)");
return sqlBuilder.toString();
}
@@@ -31,17 -44,21 +44,21 @@@
static String buildInsertSQL(DBNameResolver dbNameResolver) {
StringBuilder sqlBuilder = new StringBuilder("INSERT INTO ");
sqlBuilder.append(dbNameResolver.getTableName(TableName.LOGGING_EVENT)).append(" (");
- sqlBuilder.append(dbNameResolver.getLoggingEventColumnName(LoggingEventColumnName.TIMESTMP)).append(", ");
- sqlBuilder.append(dbNameResolver.getLoggingEventColumnName(LoggingEventColumnName.FORMATTED_MESSAGE)).append(", ");
- sqlBuilder.append(dbNameResolver.getLoggingEventColumnName(LoggingEventColumnName.LOGGER_NAME)).append(", ");
- sqlBuilder.append(dbNameResolver.getLoggingEventColumnName(LoggingEventColumnName.LEVEL_STRING)).append(", ");
- sqlBuilder.append(dbNameResolver.getLoggingEventColumnName(LoggingEventColumnName.THREAD_NAME)).append(", ");
- sqlBuilder.append(dbNameResolver.getLoggingEventColumnName(LoggingEventColumnName.REFERENCE_FLAG)).append(", ");
- sqlBuilder.append(dbNameResolver.getLoggingEventColumnName(LoggingEventColumnName.CALLER_FILENAME)).append(", ");
- sqlBuilder.append(dbNameResolver.getLoggingEventColumnName(LoggingEventColumnName.CALLER_CLASS)).append(", ");
- sqlBuilder.append(dbNameResolver.getLoggingEventColumnName(LoggingEventColumnName.CALLER_METHOD)).append(", ");
- sqlBuilder.append(dbNameResolver.getLoggingEventColumnName(LoggingEventColumnName.CALLER_LINE)).append(") ");
- sqlBuilder.append("VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?, ?)");
+ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.TIMESTMP)).append(", ");
+ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.FORMATTED_MESSAGE)).append(", ");
+ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.LOGGER_NAME)).append(", ");
+ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.LEVEL_STRING)).append(", ");
+ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.THREAD_NAME)).append(", ");
+ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.REFERENCE_FLAG)).append(", ");
+ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.ARG0)).append(", ");
+ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.ARG1)).append(", ");
+ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.ARG2)).append(", ");
+ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.ARG3)).append(", ");
+ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.CALLER_FILENAME)).append(", ");
+ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.CALLER_CLASS)).append(", ");
+ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.CALLER_METHOD)).append(", ");
+ sqlBuilder.append(dbNameResolver.getColumnName(ColumnName.CALLER_LINE)).append(") ");
- sqlBuilder.append(" VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
++ sqlBuilder.append("VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
return sqlBuilder.toString();
}
}
diff --cc logback-classic/src/main/java/ch/qos/logback/classic/db/names/CustomDBNameResolver.java
index b020d0f,e0578f9..e4da258
--- a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/CustomDBNameResolver.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/CustomDBNameResolver.java
@@@ -10,109 -23,30 +23,36 @@@ import java.util.Map
public class CustomDBNameResolver implements DBNameResolver {
private final DBNameResolver defaultDbNameResolver = new DefaultDBNameResolver();
- private final Map<TableName, String> tableNameOverrides = new EnumMap<TableName, String>(TableName.class);
- private final Map<LoggingEventColumnName, String> leColumnNameOverrides = new EnumMap<LoggingEventColumnName, String>(LoggingEventColumnName.class);
- private final Map<LoggingEventPropertyColumnName, String> lePropertyColumnNameOverrides = new EnumMap<LoggingEventPropertyColumnName, String>(LoggingEventPropertyColumnName.class);
- private final Map<LoggingEventExceptionColumnName, String> leExceptionColumnNameOverrides = new EnumMap<LoggingEventExceptionColumnName, String>(LoggingEventExceptionColumnName.class);
-
- public String getTableName(TableName tableName) {
- if (tableNameOverrides.get(tableName) != null)
- return tableNameOverrides.get(tableName);
+ private final Map<String, String> tableNameOverrides = new HashMap<String, String>();
+ private final Map<String, String> columnNameOverrides = new HashMap<String, String>();
+
+ public <N extends Enum<?>> String getTableName(N tableName) {
- if (tableNameOverrides.get(tableName) != null)
- return tableNameOverrides.get(tableName);
++ if (tableNameOverrides.get(tableName.name()) != null)
++ return tableNameOverrides.get(tableName.name());
return defaultDbNameResolver.getTableName(tableName);
}
- public String getLoggingEventColumnName(LoggingEventColumnName columnName) {
- if (leColumnNameOverrides.get(columnName) != null)
- return leColumnNameOverrides.get(columnName);
- return defaultDbNameResolver.getLoggingEventColumnName(columnName);
- }
-
- public String getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName columnName) {
- if (lePropertyColumnNameOverrides.get(columnName) != null)
- return lePropertyColumnNameOverrides.get(columnName);
- return defaultDbNameResolver.getLoggingEventPropertyColumnName(columnName);
+ public <N extends Enum<?>> String getColumnName(N columnName) {
- if (columnNameOverrides.get(columnName) != null)
- return columnNameOverrides.get(columnName);
++ if (columnNameOverrides.get(columnName.name()) != null)
++ return columnNameOverrides.get(columnName.name());
+ return defaultDbNameResolver.getColumnName(columnName);
}
-
-
+
- public String getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName columnName) {
- if (leExceptionColumnNameOverrides.get(columnName) != null)
- return leExceptionColumnNameOverrides.get(columnName);
- return defaultDbNameResolver.getLoggingEventExceptionColumnName(columnName);
+ public void overrideTableName(String reference, String name) {
+ tableNameOverrides.put(reference, name);
}
-
- public void setLoggingEventTableName(String tableName) {
- tableNameOverrides.put(TableName.LOGGING_EVENT, tableName);
+ public void overrideColumnName(String reference, String name) {
+ columnNameOverrides.put(reference, name);
}
- public void setLoggingEventPropertyTableName(String tableName) {
- tableNameOverrides.put(TableName.LOGGING_EVENT_PROPERTY, tableName);
++ public <N extends Enum<?>> void overrideTableName(N referenceTableName, String name) {
++ tableNameOverrides.put(referenceTableName.name(), name);
+ }
-
- public void setLoggingEventExceptionTableName(String tableName) {
- tableNameOverrides.put(TableName.LOGGING_EVENT_EXCEPTION, tableName);
++ public <N extends Enum<?>> void overrideColumnName(N referenceColumnName, String name) {
++ columnNameOverrides.put(referenceColumnName.name(), name);
+ }
+
- public void setLoggingEventTimestmpColumnName(String columnName) {
- leColumnNameOverrides.put(LoggingEventColumnName.TIMESTMP, columnName);
- }
-
- public void setLoggingEventFormattedMessageColumnName(String columnName) {
- leColumnNameOverrides.put(LoggingEventColumnName.FORMATTED_MESSAGE, columnName);
- }
- public void setLoggingEventLoggerNameColumnName(String columnName) {
- leColumnNameOverrides.put(LoggingEventColumnName.LOGGER_NAME, columnName);
- }
-
- public void setLoggingEventLevelStringColumnName(String columnName) {
- leColumnNameOverrides.put(LoggingEventColumnName.LEVEL_STRING, columnName);
- }
-
- public void setLoggingEventThreadNameColumnName(String columnName) {
- leColumnNameOverrides.put(LoggingEventColumnName.THREAD_NAME, columnName);
- }
-
- public void setLoggingEventReferenceFlagColumnName(String columnName) {
- leColumnNameOverrides.put(LoggingEventColumnName.REFERENCE_FLAG, columnName);
- }
-
- public void setLoggingEventCallerFilenameColumnName(String columnName) {
- leColumnNameOverrides.put(LoggingEventColumnName.CALLER_FILENAME, columnName);
- }
-
- public void setLoggingEventCallerClassColumnName(String columnName) {
- leColumnNameOverrides.put(LoggingEventColumnName.CALLER_CLASS, columnName);
- }
-
- public void setLoggingEventCallerMethodColumnName(String columnName) {
- leColumnNameOverrides.put(LoggingEventColumnName.CALLER_METHOD, columnName);
- }
-
- public void setLoggingEventCallerLineColumnName(String columnName) {
- leColumnNameOverrides.put(LoggingEventColumnName.CALLER_LINE, columnName);
- }
-
- public void setLoggingEventPropertyEventIdColumnName(String columnName) {
- lePropertyColumnNameOverrides.put(LoggingEventPropertyColumnName.EVENT_ID, columnName);
- }
-
- public void setLoggingEventPropertyMappedKeyColumnName(String columnName) {
- lePropertyColumnNameOverrides.put(LoggingEventPropertyColumnName.MAPPED_KEY, columnName);
- }
-
- public void setLoggingEventPropertyMappedValueColumnName(String columnName) {
- lePropertyColumnNameOverrides.put(LoggingEventPropertyColumnName.MAPPED_VALUE, columnName);
- }
-
- public void setLoggingEventExceptionEventIdColumnName(String columnName) {
- leExceptionColumnNameOverrides.put(LoggingEventExceptionColumnName.EVENT_ID, columnName);
- }
-
- public void setLoggingEventExceptionIColumnName(String columnName) {
- leExceptionColumnNameOverrides.put(LoggingEventExceptionColumnName.I, columnName);
- }
-
- public void setLoggingEventExceptionTraceLineColumnName(String columnName) {
- leExceptionColumnNameOverrides.put(LoggingEventExceptionColumnName.TRACE_LINE, columnName);
- }
+
}
diff --cc logback-classic/src/main/java/ch/qos/logback/classic/db/names/DBNameResolver.java
index 2647b00,e715fb5..672082d
--- a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/DBNameResolver.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/DBNameResolver.java
@@@ -1,13 -1,20 +1,32 @@@
+ /**
+ * Logback: the reliable, generic, fast and flexible logging framework.
+ * Copyright (C) 1999-2010, QOS.ch. All rights reserved.
- *
++ *
+ * This program and the accompanying materials are dual-licensed under either
+ * the terms of the Eclipse Public License v1.0 as published by the Eclipse
+ * Foundation
- *
++ *
+ * or (per the licensee's choosing)
- *
++ *
+ * under the terms of the GNU Lesser General Public License version 2.1 as
+ * published by the Free Software Foundation.
+ */
package ch.qos.logback.classic.db.names;
++/**
++ * Source of table and column names used in SQL queries generated by {@link ch.qos.logback.classic.db.DBAppender}
++ *
++ * Implement this interface to override default table and/or column names used by {@link ch.qos.logback.classic.db.DBAppender}.
++ *
++ * @author Tomasz Nurkiewicz
++ * @author Ceki Gulcu
++ * @since 0.9.19
++ * @see ch.qos.logback.classic.db.names.DefaultDBNameResolver
++ * @see ch.qos.logback.classic.db.names.CustomDBNameResolver
++ */
public interface DBNameResolver {
- String getTableName(TableName tableName);
-
- String getLoggingEventColumnName(LoggingEventColumnName columnName);
-
- String getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName columnName);
-
- String getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName columnName);
+ <N extends Enum<?>> String getTableName(N tableName);
+
+ <N extends Enum<?>> String getColumnName(N columnName);
}
diff --cc logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java
index c30e929,0000000..7361e68
mode 100644,000000..100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java
@@@ -1,46 -1,0 +1,41 @@@
+package ch.qos.logback.classic.db.names;
+
+/**
+ * TODO: Handle null prefixes/suffixes somehow
+ * @author Tomasz Nurkiewicz
+ * @since 2010-03-19
+ */
+public class SimpleDBNameResolver implements DBNameResolver {
+
+ private String tableNamePrefix = "";
++
+ private String tableNameSuffix = "";
++
+ private String columnNamePrefix = "";
++
+ private String columnNameSuffix = "";
+
- public String getTableName(TableName tableName) {
++ public <N extends Enum<?>> String getTableName(N tableName) {
+ return tableNamePrefix + tableName.name().toLowerCase() + tableNameSuffix;
+ }
+
- public String getLoggingEventColumnName(LoggingEventColumnName columnName) {
- return columnNamePrefix + columnName.name().toLowerCase() + columnNameSuffix;
- }
-
- public String getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName columnName) {
- return columnNamePrefix + columnName.name().toLowerCase() + columnNameSuffix;
- }
-
- public String getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName columnName) {
++ public <N extends Enum<?>> String getColumnName(N columnName) {
+ return columnNamePrefix + columnName.name().toLowerCase() + columnNameSuffix;
+ }
+
+ public void setTableNamePrefix(String tableNamePrefix) {
+ this.tableNamePrefix = tableNamePrefix != null? tableNamePrefix : "";
+ }
+
+ public void setTableNameSuffix(String tableNameSuffix) {
+ this.tableNameSuffix = tableNameSuffix != null? tableNameSuffix : "";
+ }
+
+ public void setColumnNamePrefix(String columnNamePrefix) {
+ this.columnNamePrefix = columnNamePrefix != null? columnNamePrefix : "";
+ }
+
+ public void setColumnNameSuffix(String columnNameSuffix) {
+ this.columnNameSuffix = columnNameSuffix != null? columnNameSuffix : "";
+ }
+}
diff --cc logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java
index 72bc206,0000000..1894e5d
mode 100644,000000..100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java
@@@ -1,170 -1,0 +1,170 @@@
+package ch.qos.logback.classic.db;
+
- import ch.qos.logback.classic.db.names.CustomDBNameResolver;
- import ch.qos.logback.classic.db.names.DBNameResolver;
- import ch.qos.logback.classic.db.names.DefaultDBNameResolver;
- import ch.qos.logback.classic.db.names.SimpleDBNameResolver;
++import ch.qos.logback.classic.db.names.*;
+import org.junit.Test;
+
+import static org.fest.assertions.Assertions.assertThat;
+
+/**
+ * @author Tomasz Nurkiewicz
+ * @since 2010-03-22
+ */
+public class SQLBuilderTest {
+
+ @Test
+ public void shouldReturnDefaultSqlInsertLoggingEventQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = new DefaultDBNameResolver();
+
+ //when
+ String sql = SQLBuilder.buildInsertSQL(nameResolver);
+
+ //then
- final String expected = "INSERT INTO logging_event (timestmp, formatted_message, logger_name, level_string, thread_name, reference_flag, caller_filename, caller_class, caller_method, caller_line) VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?, ?)";
++ final String expected = "INSERT INTO logging_event (timestmp, formatted_message, logger_name, level_string, thread_name, reference_flag, arg0, arg1, arg2, arg3, caller_filename, caller_class, caller_method, caller_line) VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
+
+ @Test
+ public void shouldReturnDefaultSqlInsertExceptionQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = new DefaultDBNameResolver();
+
+ //when
+ String sql = SQLBuilder.buildInsertExceptionSQL(nameResolver);
+
+ //then
+ final String expected = "INSERT INTO logging_event_exception (event_id, i, trace_line) VALUES (?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
+
+ @Test
+ public void shouldReturnDefaultSqlInsertLoggingPropertyQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = new DefaultDBNameResolver();
+
+ //when
+ String sql = SQLBuilder.buildInsertPropertiesSQL(nameResolver);
+
+ //then
+ final String expected = "INSERT INTO logging_event_property (event_id, mapped_key, mapped_value) VALUES (?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
+
+ @Test
+ public void shouldReturnCustomSqlInsertLoggingEventQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = createCustomDBNameResolver();
+
+ //when
+ String sql = SQLBuilder.buildInsertSQL(nameResolver);
+
+ //then
- final String expected = "INSERT INTO alpha (a, b, c, d, e, f, g, h, i, j) VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?, ?)";
++ final String expected = "INSERT INTO alpha (a, b, c, d, e, f, a0, a1, a2, a3, g, h, i, j) VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
+
+ private DBNameResolver createCustomDBNameResolver() {
+ final CustomDBNameResolver nameResolver = new CustomDBNameResolver();
- nameResolver.setLoggingEventTableName("alpha");
- nameResolver.setLoggingEventExceptionTableName("beta");
- nameResolver.setLoggingEventPropertyTableName("gamma");
-
- nameResolver.setLoggingEventTimestmpColumnName("a");
- nameResolver.setLoggingEventFormattedMessageColumnName("b");
- nameResolver.setLoggingEventLoggerNameColumnName("c");
- nameResolver.setLoggingEventLevelStringColumnName("d");
- nameResolver.setLoggingEventThreadNameColumnName("e");
- nameResolver.setLoggingEventReferenceFlagColumnName("f");
- nameResolver.setLoggingEventCallerFilenameColumnName("g");
- nameResolver.setLoggingEventCallerClassColumnName("h");
- nameResolver.setLoggingEventCallerMethodColumnName("i");
- nameResolver.setLoggingEventCallerLineColumnName("j");
-
- nameResolver.setLoggingEventExceptionEventIdColumnName("k");
- nameResolver.setLoggingEventExceptionIColumnName("l");
- nameResolver.setLoggingEventExceptionTraceLineColumnName("m");
-
- nameResolver.setLoggingEventPropertyEventIdColumnName("n");
- nameResolver.setLoggingEventPropertyMappedKeyColumnName("o");
- nameResolver.setLoggingEventPropertyMappedValueColumnName("p");
++ nameResolver.overrideTableName(TableName.LOGGING_EVENT, "alpha");
++ nameResolver.overrideTableName(TableName.LOGGING_EVENT_EXCEPTION.name(), "beta");
++ nameResolver.overrideTableName(TableName.LOGGING_EVENT_PROPERTY, "gamma");
++
++ nameResolver.overrideColumnName(ColumnName.TIMESTMP, "a");
++ nameResolver.overrideColumnName(ColumnName.FORMATTED_MESSAGE, "b");
++ nameResolver.overrideColumnName(ColumnName.LOGGER_NAME, "c");
++ nameResolver.overrideColumnName(ColumnName.LEVEL_STRING, "d");
++ nameResolver.overrideColumnName(ColumnName.THREAD_NAME, "e");
++ nameResolver.overrideColumnName(ColumnName.REFERENCE_FLAG, "f");
++ nameResolver.overrideColumnName(ColumnName.ARG0.name(), "a0");
++ nameResolver.overrideColumnName(ColumnName.ARG1.name(), "a1");
++ nameResolver.overrideColumnName(ColumnName.ARG2.name(), "a2");
++ nameResolver.overrideColumnName(ColumnName.ARG3.name(), "a3");
++ nameResolver.overrideColumnName(ColumnName.CALLER_FILENAME.name(), "g");
++ nameResolver.overrideColumnName(ColumnName.CALLER_CLASS.name(), "h");
++ nameResolver.overrideColumnName(ColumnName.CALLER_METHOD.name(), "i");
++ nameResolver.overrideColumnName(ColumnName.CALLER_LINE.name(), "j");
++
++ nameResolver.overrideColumnName(ColumnName.EVENT_ID.name(), "k");
++ nameResolver.overrideColumnName(ColumnName.I.name(), "l");
++ nameResolver.overrideColumnName(ColumnName.TRACE_LINE.name(), "m");
++
++ nameResolver.overrideColumnName(ColumnName.MAPPED_KEY.name(), "o");
++ nameResolver.overrideColumnName(ColumnName.MAPPED_VALUE.name(), "p");
+ return nameResolver;
+ }
+
+ @Test
+ public void shouldReturnCustomSqlInsertExceptionQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = createCustomDBNameResolver();
+
+ //when
+ String sql = SQLBuilder.buildInsertExceptionSQL(nameResolver);
+
+ //then
+ final String expected = "INSERT INTO beta (k, l, m) VALUES (?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
+
+ @Test
+ public void shouldReturnCustomSqlInsertLoggingPropertyQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = createCustomDBNameResolver();
+
+ //when
+ String sql = SQLBuilder.buildInsertPropertiesSQL(nameResolver);
+
+ //then
- final String expected = "INSERT INTO gamma (n, o, p) VALUES (?, ?, ?)";
++ final String expected = "INSERT INTO gamma (k, o, p) VALUES (?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
+
+ private DBNameResolver createSimpleDBNameResolver() {
+ final SimpleDBNameResolver nameResolver = new SimpleDBNameResolver();
+ nameResolver.setTableNamePrefix("tp_");
+ nameResolver.setTableNameSuffix("_ts");
+ nameResolver.setColumnNamePrefix("cp_");
+ nameResolver.setColumnNameSuffix("_cs");
+ return nameResolver;
+ }
+
+ @Test
+ public void shouldReturnSimpleSqlInsertLoggingEventQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = createSimpleDBNameResolver();
+
+ //when
+ String sql = SQLBuilder.buildInsertSQL(nameResolver);
+
+ //then
- final String expected = "INSERT INTO tp_logging_event_ts (cp_timestmp_cs, cp_formatted_message_cs, cp_logger_name_cs, cp_level_string_cs, cp_thread_name_cs, cp_reference_flag_cs, cp_caller_filename_cs, cp_caller_class_cs, cp_caller_method_cs, cp_caller_line_cs) VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?, ?)";
++ final String expected = "INSERT INTO tp_logging_event_ts (cp_timestmp_cs, cp_formatted_message_cs, cp_logger_name_cs, cp_level_string_cs, cp_thread_name_cs, cp_reference_flag_cs, cp_arg0_cs, cp_arg1_cs, cp_arg2_cs, cp_arg3_cs, cp_caller_filename_cs, cp_caller_class_cs, cp_caller_method_cs, cp_caller_line_cs) VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
+
+ @Test
+ public void shouldReturnSimpleSqlInsertExceptionQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = createSimpleDBNameResolver();
+
+ //when
+ String sql = SQLBuilder.buildInsertExceptionSQL(nameResolver);
+
+ //then
+ final String expected = "INSERT INTO tp_logging_event_exception_ts (cp_event_id_cs, cp_i_cs, cp_trace_line_cs) VALUES (?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
+
+ @Test
+ public void shouldReturnSimpleSqlInsertLoggingPropertyQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = createSimpleDBNameResolver();
+
+ //when
+ String sql = SQLBuilder.buildInsertPropertiesSQL(nameResolver);
+
+ //then
+ final String expected = "INSERT INTO tp_logging_event_property_ts (cp_event_id_cs, cp_mapped_key_cs, cp_mapped_value_cs) VALUES (?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
+
+}
diff --cc logback-classic/src/test/java/ch/qos/logback/classic/db/names/CustomDBNameResolverTest.java
index cde1417,0000000..0720db0
mode 100644,000000..100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/db/names/CustomDBNameResolverTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/db/names/CustomDBNameResolverTest.java
@@@ -1,136 -1,0 +1,136 @@@
+package ch.qos.logback.classic.db.names;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.fest.assertions.Assertions.assertThat;
+
+/**
+ * @author Tomasz Nurkiewicz
+ * @since 2010-03-18
+ */
+public class CustomDBNameResolverTest {
+ private CustomDBNameResolver resolver;
+
+ @Before
+ public void setUp() throws Exception {
+ resolver = new CustomDBNameResolver();
+ }
+
+ @Test
+ public void shouldReturnDefaultTableName() throws Exception {
+ //when
+ String tableName = resolver.getTableName(TableName.LOGGING_EVENT);
+
+ //then
+ assertThat(tableName).isEqualTo("logging_event");
+ }
+
+ @Test
+ public void shouldReturnDefaultLoggingEventColumnName() throws Exception {
+ //when
- String columnName = resolver.getLoggingEventColumnName(LoggingEventColumnName.LOGGER_NAME);
++ String columnName = resolver.getColumnName(ColumnName.LOGGER_NAME);
+
+ //then
+ assertThat(columnName).isEqualTo("logger_name");
+ }
+
+ @Test
+ public void shouldReturnDefaultLoggingPropertyColumnName() throws Exception {
+ //when
- String columnName = resolver.getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName.MAPPED_VALUE);
++ String columnName = resolver.getColumnName(ColumnName.MAPPED_VALUE);
+
+ //then
+ assertThat(columnName).isEqualTo("mapped_value");
+ }
+
+ @Test
+ public void shouldReturnDefaultLoggingExceptionColumnName() throws Exception {
+ //when
- String columnName = resolver.getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName.EVENT_ID);
++ String columnName = resolver.getColumnName(ColumnName.EVENT_ID);
+
+ //then
+ assertThat(columnName).isEqualTo("event_id");
+ }
+
+ @Test
+ public void shouldReturnModifiedTableName() throws Exception {
+ //when
- resolver.setLoggingEventExceptionTableName("tbl_logging_event_exception");
++ resolver.overrideTableName(TableName.LOGGING_EVENT_EXCEPTION.name(), "tbl_logging_event_exception");
+ String tableName = resolver.getTableName(TableName.LOGGING_EVENT_EXCEPTION);
+
+ //then
+ assertThat(tableName).isEqualTo("tbl_logging_event_exception");
+ }
+
+ @Test
- public void shouldReturnModifiedLoggingEventColumnName() throws Exception {
++ public void shouldReturnModifiedColumnName() throws Exception {
+ //when
- resolver.setLoggingEventCallerFilenameColumnName("c_caller_filename");
- String columnName = resolver.getLoggingEventColumnName(LoggingEventColumnName.CALLER_FILENAME);
++ resolver.overrideColumnName(ColumnName.CALLER_FILENAME.name(), "c_caller_filename");
++ String columnName = resolver.getColumnName(ColumnName.CALLER_FILENAME);
+
+ //then
+ assertThat(columnName).isEqualTo("c_caller_filename");
+ }
+
+ @Test
+ public void shouldReturnModifiedLoggingPropertyColumnName() throws Exception {
+ //when
- resolver.setLoggingEventPropertyMappedKeyColumnName("c_mapped_key");
- String columnName = resolver.getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName.MAPPED_KEY);
++ resolver.overrideColumnName(ColumnName.MAPPED_KEY.name(), "c_mapped_key");
++ String columnName = resolver.getColumnName(ColumnName.MAPPED_KEY);
+
+ //then
+ assertThat(columnName).isEqualTo("c_mapped_key");
+ }
+
+ @Test
+ public void shouldReturnModifiedLoggingExceptionColumnName() throws Exception {
+ //when
- resolver.setLoggingEventExceptionIColumnName("c_i");
- String columnName = resolver.getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName.I);
++ resolver.overrideColumnName(ColumnName.I.name(), "c_i");
++ String columnName = resolver.getColumnName(ColumnName.I);
+
+ //then
+ assertThat(columnName).isEqualTo("c_i");
+ }
+
+ @Test
+ public void shouldReturnDefaultTableNameWhenNullGiven() throws Exception {
+ //when
- resolver.setLoggingEventExceptionTableName(null);
++ resolver.overrideColumnName(TableName.LOGGING_EVENT_EXCEPTION.name(), null);
+ String tableName = resolver.getTableName(TableName.LOGGING_EVENT_PROPERTY);
+
+ //then
+ assertThat(tableName).isEqualTo("logging_event_property");
+ }
+
+ @Test
- public void shouldReturnDefaultLoggingEventColumnNameWhenNullGiven() throws Exception {
++ public void shouldReturnDefaultColumnNameWhenNullGiven() throws Exception {
+ //when
- resolver.setLoggingEventCallerFilenameColumnName(null);
- String columnName = resolver.getLoggingEventColumnName(LoggingEventColumnName.CALLER_CLASS);
++ resolver.overrideColumnName(ColumnName.CALLER_CLASS.name(), null);
++ String columnName = resolver.getColumnName(ColumnName.CALLER_CLASS);
+
+ //then
+ assertThat(columnName).isEqualTo("caller_class");
+ }
+
+ @Test
+ public void shouldReturnDefaultLoggingPropertyColumnNameWhenNullGiven() throws Exception {
+ //when
- resolver.setLoggingEventPropertyMappedKeyColumnName(null);
- String columnName = resolver.getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName.EVENT_ID);
++ resolver.overrideColumnName(ColumnName.EVENT_ID.name(), null);
++ String columnName = resolver.getColumnName(ColumnName.EVENT_ID);
+
+ //then
+ assertThat(columnName).isEqualTo("event_id");
+ }
+
+ @Test
+ public void shouldReturnDefaultLoggingExceptionColumnNameWhenNullGiven() throws Exception {
+ //when
- resolver.setLoggingEventExceptionIColumnName(null);
- String columnName = resolver.getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName.I);
++ resolver.overrideColumnName(ColumnName.I.name(), null);
++ String columnName = resolver.getColumnName(ColumnName.I);
+
+ //then
+ assertThat(columnName).isEqualTo("i");
+ }
+
+}
diff --cc logback-classic/src/test/java/ch/qos/logback/classic/db/names/DefaultDBNameResolverTest.java
index 6318da3,0000000..4a546fd
mode 100644,000000..100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/db/names/DefaultDBNameResolverTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/db/names/DefaultDBNameResolverTest.java
@@@ -1,57 -1,0 +1,57 @@@
+package ch.qos.logback.classic.db.names;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.fest.assertions.Assertions.assertThat;
+
+/**
+ * @author Tomasz Nurkiewicz
+ * @since 2010-03-18
+ */
+public class DefaultDBNameResolverTest {
+
+ private DefaultDBNameResolver resolver;
+
+ @Before
+ public void setUp() throws Exception {
+ resolver = new DefaultDBNameResolver();
+ }
+
+ @Test
+ public void testGetLoggingEventColumnName() throws Exception {
+ //when
- String columnName = resolver.getLoggingEventColumnName(LoggingEventColumnName.LOGGER_NAME);
++ String columnName = resolver.getColumnName(ColumnName.LOGGER_NAME);
+
+ //then
+ assertThat(columnName).isEqualTo("logger_name");
+ }
+
+ @Test
+ public void testGetLoggingEventPropertyColumnName() throws Exception {
+ //when
- String columnName = resolver.getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName.MAPPED_KEY);
++ String columnName = resolver.getColumnName(ColumnName.MAPPED_KEY);
+
+ //then
+ assertThat(columnName).isEqualTo("mapped_key");
+ }
+
+ @Test
+ public void testGetLoggingEventExceptionColumnName() throws Exception {
+ //when
- String columnName = resolver.getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName.TRACE_LINE);
++ String columnName = resolver.getColumnName(ColumnName.TRACE_LINE);
+
+ //then
+ assertThat(columnName).isEqualTo("trace_line");
+ }
+
+ @Test
+ public void testGetTableName() throws Exception {
+ //when
+ String tableName = resolver.getTableName(TableName.LOGGING_EVENT_EXCEPTION);
+
+ //then
+ assertThat(tableName).isEqualTo("logging_event_exception");
+ }
+
+}
diff --cc logback-classic/src/test/java/ch/qos/logback/classic/db/names/SimpleDBNameResolverTest.java
index d87c603,0000000..fd20ea9
mode 100644,000000..100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/db/names/SimpleDBNameResolverTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/db/names/SimpleDBNameResolverTest.java
@@@ -1,128 -1,0 +1,128 @@@
+package ch.qos.logback.classic.db.names;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.fest.assertions.Assertions.assertThat;
+
+/**
+ * @author Tomasz Nurkiewicz
+ * @since 2010-03-22
+ */
+public class SimpleDBNameResolverTest {
+
+ private SimpleDBNameResolver nameResolver;
+
+ @Before
+ public void setUp() throws Exception {
+ nameResolver = new SimpleDBNameResolver();
+ /*nameResolver.setTableNameSuffix("_ts");
+ nameResolver.setColumnNamePrefix("cp_");
+ nameResolver.setColumnNameSuffix("_cs");*/
+ }
+
+ @Test
+ public void shouldReturnTableNameWithPrefix() throws Exception {
+ //given
+
+ //when
+ nameResolver.setTableNamePrefix("tp_");
+
+ //then
+ assertThat(nameResolver.getTableName(TableName.LOGGING_EVENT)).isEqualTo("tp_logging_event");
- assertThat(nameResolver.getLoggingEventColumnName(LoggingEventColumnName.THREAD_NAME)).isEqualTo("thread_name");
++ assertThat(nameResolver.getColumnName(ColumnName.THREAD_NAME)).isEqualTo("thread_name");
+ }
+
+ @Test
+ public void shouldReturnTableNameWithSuffix() throws Exception {
+ //given
+
+ //when
+ nameResolver.setTableNameSuffix("_ts");
+
+ //then
+ assertThat(nameResolver.getTableName(TableName.LOGGING_EVENT)).isEqualTo("logging_event_ts");
- assertThat(nameResolver.getLoggingEventColumnName(LoggingEventColumnName.THREAD_NAME)).isEqualTo("thread_name");
++ assertThat(nameResolver.getColumnName(ColumnName.THREAD_NAME)).isEqualTo("thread_name");
+ }
+
+ @Test
+ public void shouldReturnTableNameWithBothPrefixAndSuffix() throws Exception {
+ //given
+
+ //when
+ nameResolver.setTableNamePrefix("tp_");
+ nameResolver.setTableNameSuffix("_ts");
+
+ //then
+ assertThat(nameResolver.getTableName(TableName.LOGGING_EVENT)).isEqualTo("tp_logging_event_ts");
- assertThat(nameResolver.getLoggingEventColumnName(LoggingEventColumnName.THREAD_NAME)).isEqualTo("thread_name");
++ assertThat(nameResolver.getColumnName(ColumnName.THREAD_NAME)).isEqualTo("thread_name");
+ }
+
+ @Test
+ public void shouldReturnColumnNameWithPrefix() throws Exception {
+ //given
+
+ //when
+ nameResolver.setColumnNamePrefix("cp_");
+
+ //then
+ assertThat(nameResolver.getTableName(TableName.LOGGING_EVENT)).isEqualTo("logging_event");
- assertThat(nameResolver.getLoggingEventColumnName(LoggingEventColumnName.THREAD_NAME)).isEqualTo("cp_thread_name");
++ assertThat(nameResolver.getColumnName(ColumnName.THREAD_NAME)).isEqualTo("cp_thread_name");
+ }
+
+ @Test
+ public void shouldReturnColumnNameWithSuffix() throws Exception {
+ //given
+
+ //when
+ nameResolver.setColumnNameSuffix("_cs");
+
+ //then
+ assertThat(nameResolver.getTableName(TableName.LOGGING_EVENT)).isEqualTo("logging_event");
- assertThat(nameResolver.getLoggingEventColumnName(LoggingEventColumnName.THREAD_NAME)).isEqualTo("thread_name_cs");
++ assertThat(nameResolver.getColumnName(ColumnName.THREAD_NAME)).isEqualTo("thread_name_cs");
+ }
+
+ @Test
+ public void shouldReturnColumnNameWithBothPrefixAndSuffix() throws Exception {
+ //given
+
+ //when
+ nameResolver.setColumnNamePrefix("cp_");
+ nameResolver.setColumnNameSuffix("_cs");
+
+ //then
+ assertThat(nameResolver.getTableName(TableName.LOGGING_EVENT)).isEqualTo("logging_event");
- assertThat(nameResolver.getLoggingEventColumnName(LoggingEventColumnName.THREAD_NAME)).isEqualTo("cp_thread_name_cs");
++ assertThat(nameResolver.getColumnName(ColumnName.THREAD_NAME)).isEqualTo("cp_thread_name_cs");
+ }
+
+ @Test
+ public void shouldReturnTableAndColumnNamesWithBothPrefixAndSuffix() throws Exception {
+ //given
+
+ //when
+ nameResolver.setTableNamePrefix("tp_");
+ nameResolver.setTableNameSuffix("_ts");
+ nameResolver.setColumnNamePrefix("cp_");
+ nameResolver.setColumnNameSuffix("_cs");
+
+ //then
+ assertThat(nameResolver.getTableName(TableName.LOGGING_EVENT)).isEqualTo("tp_logging_event_ts");
- assertThat(nameResolver.getLoggingEventColumnName(LoggingEventColumnName.THREAD_NAME)).isEqualTo("cp_thread_name_cs");
++ assertThat(nameResolver.getColumnName(ColumnName.THREAD_NAME)).isEqualTo("cp_thread_name_cs");
+ }
+
+ @Test
+ public void shouldHandleNullsAsEmptyStrings() throws Exception {
+ //given
+
+ //when
+ nameResolver.setTableNamePrefix(null);
+ nameResolver.setTableNameSuffix(null);
+ nameResolver.setColumnNamePrefix(null);
+ nameResolver.setColumnNameSuffix(null);
+
+ //then
+ assertThat(nameResolver.getTableName(TableName.LOGGING_EVENT)).isEqualTo("logging_event");
- assertThat(nameResolver.getLoggingEventColumnName(LoggingEventColumnName.THREAD_NAME)).isEqualTo("thread_name");
++ assertThat(nameResolver.getColumnName(ColumnName.THREAD_NAME)).isEqualTo("thread_name");
+ }
+
+}
diff --cc logback-core/src/test/java/ch/qos/logback/core/FileAppenderResilienceTest.java
index 99a6698,99a6698..5a3463c
--- a/logback-core/src/test/java/ch/qos/logback/core/FileAppenderResilienceTest.java
+++ b/logback-core/src/test/java/ch/qos/logback/core/FileAppenderResilienceTest.java
@@@ -17,6 -17,6 +17,7 @@@ import ch.qos.logback.core.testUtil.Ran
import ch.qos.logback.core.util.CoreTestConstants;
import ch.qos.logback.core.util.ResilienceUtil;
++@Ignore
public class FileAppenderResilienceTest {
FileAppender<Object> fa = new FileAppender<Object>();
@@@ -46,7 -46,7 +47,6 @@@
}
@Test
-- @Ignore
public void manual() throws InterruptedException, IOException {
Runner runner = new Runner(fa);
Thread t = new Thread(runner);
diff --cc logback-core/src/test/java/ch/qos/logback/core/joran/action/IncludeActionTest.java
index d242e9f,d242e9f..e7d2ffe
--- a/logback-core/src/test/java/ch/qos/logback/core/joran/action/IncludeActionTest.java
+++ b/logback-core/src/test/java/ch/qos/logback/core/joran/action/IncludeActionTest.java
@@@ -27,6 -27,6 +27,7 @@@ import java.util.HashMap
import org.junit.After;
import org.junit.Before;
++import org.junit.Ignore;
import org.junit.Test;
import org.xml.sax.SAXParseException;
@@@ -172,6 -172,6 +173,7 @@@ public class IncludeActionTest
}
@Test
++ @Ignore
public void unknownURL() throws JoranException {
System.setProperty(INCLUDE_KEY, "http://logback2345.qos.ch");
tc.doConfigure(TOP_BY_URL);
http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=569f138e5747e97715c3cd21…
http://github.com/ceki/logback/commit/569f138e5747e97715c3cd21a4e60187539f3…
commit 569f138e5747e97715c3cd21a4e60187539f3cd2
Author: Tomasz Nurkiewicz <nurkiewicz(a)gmail.com>
Date: Tue Mar 23 20:11:22 2010 +0100
[LBCLASSIC-188] SimpleDBNameResolver unit tests
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java
index 3ca03b3..c30e929 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java
@@ -13,34 +13,34 @@ public class SimpleDBNameResolver implements DBNameResolver {
private String columnNameSuffix = "";
public String getTableName(TableName tableName) {
- return tableNamePrefix + tableName.name() + tableNameSuffix;
+ return tableNamePrefix + tableName.name().toLowerCase() + tableNameSuffix;
}
public String getLoggingEventColumnName(LoggingEventColumnName columnName) {
- return columnNamePrefix + columnName.name() + columnNameSuffix;
+ return columnNamePrefix + columnName.name().toLowerCase() + columnNameSuffix;
}
public String getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName columnName) {
- return columnNamePrefix + columnName.name() + columnNameSuffix;
+ return columnNamePrefix + columnName.name().toLowerCase() + columnNameSuffix;
}
public String getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName columnName) {
- return columnNamePrefix + columnName.name() + columnNameSuffix;
+ return columnNamePrefix + columnName.name().toLowerCase() + columnNameSuffix;
}
public void setTableNamePrefix(String tableNamePrefix) {
- this.tableNamePrefix = tableNamePrefix;
+ this.tableNamePrefix = tableNamePrefix != null? tableNamePrefix : "";
}
public void setTableNameSuffix(String tableNameSuffix) {
- this.tableNameSuffix = tableNameSuffix;
+ this.tableNameSuffix = tableNameSuffix != null? tableNameSuffix : "";
}
public void setColumnNamePrefix(String columnNamePrefix) {
- this.columnNamePrefix = columnNamePrefix;
+ this.columnNamePrefix = columnNamePrefix != null? columnNamePrefix : "";
}
public void setColumnNameSuffix(String columnNameSuffix) {
- this.columnNameSuffix = columnNameSuffix;
+ this.columnNameSuffix = columnNameSuffix != null? columnNameSuffix : "";
}
}
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java
index 8c6ee88..72bc206 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java
@@ -3,6 +3,7 @@ package ch.qos.logback.classic.db;
import ch.qos.logback.classic.db.names.CustomDBNameResolver;
import ch.qos.logback.classic.db.names.DBNameResolver;
import ch.qos.logback.classic.db.names.DefaultDBNameResolver;
+import ch.qos.logback.classic.db.names.SimpleDBNameResolver;
import org.junit.Test;
import static org.fest.assertions.Assertions.assertThat;
@@ -106,7 +107,7 @@ public class SQLBuilderTest {
}
@Test
- public void shouldReturnCustomtSqlInsertLoggingPropertyQuery() throws Exception {
+ public void shouldReturnCustomSqlInsertLoggingPropertyQuery() throws Exception {
//given
DBNameResolver nameResolver = createCustomDBNameResolver();
@@ -118,4 +119,52 @@ public class SQLBuilderTest {
assertThat(sql).isEqualTo(expected);
}
+ private DBNameResolver createSimpleDBNameResolver() {
+ final SimpleDBNameResolver nameResolver = new SimpleDBNameResolver();
+ nameResolver.setTableNamePrefix("tp_");
+ nameResolver.setTableNameSuffix("_ts");
+ nameResolver.setColumnNamePrefix("cp_");
+ nameResolver.setColumnNameSuffix("_cs");
+ return nameResolver;
+ }
+
+ @Test
+ public void shouldReturnSimpleSqlInsertLoggingEventQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = createSimpleDBNameResolver();
+
+ //when
+ String sql = SQLBuilder.buildInsertSQL(nameResolver);
+
+ //then
+ final String expected = "INSERT INTO tp_logging_event_ts (cp_timestmp_cs, cp_formatted_message_cs, cp_logger_name_cs, cp_level_string_cs, cp_thread_name_cs, cp_reference_flag_cs, cp_caller_filename_cs, cp_caller_class_cs, cp_caller_method_cs, cp_caller_line_cs) VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
+
+ @Test
+ public void shouldReturnSimpleSqlInsertExceptionQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = createSimpleDBNameResolver();
+
+ //when
+ String sql = SQLBuilder.buildInsertExceptionSQL(nameResolver);
+
+ //then
+ final String expected = "INSERT INTO tp_logging_event_exception_ts (cp_event_id_cs, cp_i_cs, cp_trace_line_cs) VALUES (?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
+
+ @Test
+ public void shouldReturnSimpleSqlInsertLoggingPropertyQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = createSimpleDBNameResolver();
+
+ //when
+ String sql = SQLBuilder.buildInsertPropertiesSQL(nameResolver);
+
+ //then
+ final String expected = "INSERT INTO tp_logging_event_property_ts (cp_event_id_cs, cp_mapped_key_cs, cp_mapped_value_cs) VALUES (?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
+
}
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/db/names/SimpleDBNameResolverTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/db/names/SimpleDBNameResolverTest.java
index f712b24..d87c603 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/db/names/SimpleDBNameResolverTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/db/names/SimpleDBNameResolverTest.java
@@ -1,8 +1,128 @@
package ch.qos.logback.classic.db.names;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.fest.assertions.Assertions.assertThat;
+
/**
* @author Tomasz Nurkiewicz
* @since 2010-03-22
*/
public class SimpleDBNameResolverTest {
+
+ private SimpleDBNameResolver nameResolver;
+
+ @Before
+ public void setUp() throws Exception {
+ nameResolver = new SimpleDBNameResolver();
+ /*nameResolver.setTableNameSuffix("_ts");
+ nameResolver.setColumnNamePrefix("cp_");
+ nameResolver.setColumnNameSuffix("_cs");*/
+ }
+
+ @Test
+ public void shouldReturnTableNameWithPrefix() throws Exception {
+ //given
+
+ //when
+ nameResolver.setTableNamePrefix("tp_");
+
+ //then
+ assertThat(nameResolver.getTableName(TableName.LOGGING_EVENT)).isEqualTo("tp_logging_event");
+ assertThat(nameResolver.getLoggingEventColumnName(LoggingEventColumnName.THREAD_NAME)).isEqualTo("thread_name");
+ }
+
+ @Test
+ public void shouldReturnTableNameWithSuffix() throws Exception {
+ //given
+
+ //when
+ nameResolver.setTableNameSuffix("_ts");
+
+ //then
+ assertThat(nameResolver.getTableName(TableName.LOGGING_EVENT)).isEqualTo("logging_event_ts");
+ assertThat(nameResolver.getLoggingEventColumnName(LoggingEventColumnName.THREAD_NAME)).isEqualTo("thread_name");
+ }
+
+ @Test
+ public void shouldReturnTableNameWithBothPrefixAndSuffix() throws Exception {
+ //given
+
+ //when
+ nameResolver.setTableNamePrefix("tp_");
+ nameResolver.setTableNameSuffix("_ts");
+
+ //then
+ assertThat(nameResolver.getTableName(TableName.LOGGING_EVENT)).isEqualTo("tp_logging_event_ts");
+ assertThat(nameResolver.getLoggingEventColumnName(LoggingEventColumnName.THREAD_NAME)).isEqualTo("thread_name");
+ }
+
+ @Test
+ public void shouldReturnColumnNameWithPrefix() throws Exception {
+ //given
+
+ //when
+ nameResolver.setColumnNamePrefix("cp_");
+
+ //then
+ assertThat(nameResolver.getTableName(TableName.LOGGING_EVENT)).isEqualTo("logging_event");
+ assertThat(nameResolver.getLoggingEventColumnName(LoggingEventColumnName.THREAD_NAME)).isEqualTo("cp_thread_name");
+ }
+
+ @Test
+ public void shouldReturnColumnNameWithSuffix() throws Exception {
+ //given
+
+ //when
+ nameResolver.setColumnNameSuffix("_cs");
+
+ //then
+ assertThat(nameResolver.getTableName(TableName.LOGGING_EVENT)).isEqualTo("logging_event");
+ assertThat(nameResolver.getLoggingEventColumnName(LoggingEventColumnName.THREAD_NAME)).isEqualTo("thread_name_cs");
+ }
+
+ @Test
+ public void shouldReturnColumnNameWithBothPrefixAndSuffix() throws Exception {
+ //given
+
+ //when
+ nameResolver.setColumnNamePrefix("cp_");
+ nameResolver.setColumnNameSuffix("_cs");
+
+ //then
+ assertThat(nameResolver.getTableName(TableName.LOGGING_EVENT)).isEqualTo("logging_event");
+ assertThat(nameResolver.getLoggingEventColumnName(LoggingEventColumnName.THREAD_NAME)).isEqualTo("cp_thread_name_cs");
+ }
+
+ @Test
+ public void shouldReturnTableAndColumnNamesWithBothPrefixAndSuffix() throws Exception {
+ //given
+
+ //when
+ nameResolver.setTableNamePrefix("tp_");
+ nameResolver.setTableNameSuffix("_ts");
+ nameResolver.setColumnNamePrefix("cp_");
+ nameResolver.setColumnNameSuffix("_cs");
+
+ //then
+ assertThat(nameResolver.getTableName(TableName.LOGGING_EVENT)).isEqualTo("tp_logging_event_ts");
+ assertThat(nameResolver.getLoggingEventColumnName(LoggingEventColumnName.THREAD_NAME)).isEqualTo("cp_thread_name_cs");
+ }
+
+ @Test
+ public void shouldHandleNullsAsEmptyStrings() throws Exception {
+ //given
+
+ //when
+ nameResolver.setTableNamePrefix(null);
+ nameResolver.setTableNameSuffix(null);
+ nameResolver.setColumnNamePrefix(null);
+ nameResolver.setColumnNameSuffix(null);
+
+ //then
+ assertThat(nameResolver.getTableName(TableName.LOGGING_EVENT)).isEqualTo("logging_event");
+ assertThat(nameResolver.getLoggingEventColumnName(LoggingEventColumnName.THREAD_NAME)).isEqualTo("thread_name");
+ }
+
}
http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=2f15b38b16cef98708af85b4…
http://github.com/ceki/logback/commit/2f15b38b16cef98708af85b4c238e20884fc8…
commit 2f15b38b16cef98708af85b4c238e20884fc8f51
Author: Tomasz Nurkiewicz <nurkiewicz(a)gmail.com>
Date: Tue Mar 23 00:00:29 2010 +0100
[LBCLASSIC-188] SQLBuilder tests for custom name resolver
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java
index 443b082..8c6ee88 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java
@@ -1,5 +1,6 @@
package ch.qos.logback.classic.db;
+import ch.qos.logback.classic.db.names.CustomDBNameResolver;
import ch.qos.logback.classic.db.names.DBNameResolver;
import ch.qos.logback.classic.db.names.DefaultDBNameResolver;
import org.junit.Test;
@@ -51,6 +52,70 @@ public class SQLBuilderTest {
assertThat(sql).isEqualTo(expected);
}
+ @Test
+ public void shouldReturnCustomSqlInsertLoggingEventQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = createCustomDBNameResolver();
+
+ //when
+ String sql = SQLBuilder.buildInsertSQL(nameResolver);
+
+ //then
+ final String expected = "INSERT INTO alpha (a, b, c, d, e, f, g, h, i, j) VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
+
+ private DBNameResolver createCustomDBNameResolver() {
+ final CustomDBNameResolver nameResolver = new CustomDBNameResolver();
+ nameResolver.setLoggingEventTableName("alpha");
+ nameResolver.setLoggingEventExceptionTableName("beta");
+ nameResolver.setLoggingEventPropertyTableName("gamma");
+
+ nameResolver.setLoggingEventTimestmpColumnName("a");
+ nameResolver.setLoggingEventFormattedMessageColumnName("b");
+ nameResolver.setLoggingEventLoggerNameColumnName("c");
+ nameResolver.setLoggingEventLevelStringColumnName("d");
+ nameResolver.setLoggingEventThreadNameColumnName("e");
+ nameResolver.setLoggingEventReferenceFlagColumnName("f");
+ nameResolver.setLoggingEventCallerFilenameColumnName("g");
+ nameResolver.setLoggingEventCallerClassColumnName("h");
+ nameResolver.setLoggingEventCallerMethodColumnName("i");
+ nameResolver.setLoggingEventCallerLineColumnName("j");
+
+ nameResolver.setLoggingEventExceptionEventIdColumnName("k");
+ nameResolver.setLoggingEventExceptionIColumnName("l");
+ nameResolver.setLoggingEventExceptionTraceLineColumnName("m");
+
+ nameResolver.setLoggingEventPropertyEventIdColumnName("n");
+ nameResolver.setLoggingEventPropertyMappedKeyColumnName("o");
+ nameResolver.setLoggingEventPropertyMappedValueColumnName("p");
+ return nameResolver;
+ }
+
+ @Test
+ public void shouldReturnCustomSqlInsertExceptionQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = createCustomDBNameResolver();
+ //when
+ String sql = SQLBuilder.buildInsertExceptionSQL(nameResolver);
+
+ //then
+ final String expected = "INSERT INTO beta (k, l, m) VALUES (?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
+
+ @Test
+ public void shouldReturnCustomtSqlInsertLoggingPropertyQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = createCustomDBNameResolver();
+
+ //when
+ String sql = SQLBuilder.buildInsertPropertiesSQL(nameResolver);
+
+ //then
+ final String expected = "INSERT INTO gamma (n, o, p) VALUES (?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
}
http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=dc2438ed69e0a56e9ecb4e87…
http://github.com/ceki/logback/commit/dc2438ed69e0a56e9ecb4e87ef29ef142ad55…
commit dc2438ed69e0a56e9ecb4e87ef29ef142ad5557b
Author: Tomasz Nurkiewicz <nurkiewicz(a)gmail.com>
Date: Mon Mar 22 23:51:19 2010 +0100
[LBCLASSIC-188] SQLBuilder tests for default name resolver
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/db/SQLBuilder.java b/logback-classic/src/main/java/ch/qos/logback/classic/db/SQLBuilder.java
index 9c197a0..7c724aa 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/db/SQLBuilder.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/db/SQLBuilder.java
@@ -11,8 +11,8 @@ public class SQLBuilder {
static String buildInsertPropertiesSQL(DBNameResolver dbNameResolver) {
StringBuilder sqlBuilder = new StringBuilder("INSERT INTO ");
sqlBuilder.append(dbNameResolver.getTableName(TableName.LOGGING_EVENT_PROPERTY)).append(" (");
- sqlBuilder.append(dbNameResolver.getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName.EVENT_ID)).append(",");
- sqlBuilder.append(dbNameResolver.getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName.MAPPED_KEY)).append(",");
+ sqlBuilder.append(dbNameResolver.getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName.EVENT_ID)).append(", ");
+ sqlBuilder.append(dbNameResolver.getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName.MAPPED_KEY)).append(", ");
sqlBuilder.append(dbNameResolver.getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName.MAPPED_VALUE)).append(") ");
sqlBuilder.append("VALUES (?, ?, ?)");
return sqlBuilder.toString();
@@ -21,8 +21,8 @@ public class SQLBuilder {
static String buildInsertExceptionSQL(DBNameResolver dbNameResolver) {
StringBuilder sqlBuilder = new StringBuilder("INSERT INTO ");
sqlBuilder.append(dbNameResolver.getTableName(TableName.LOGGING_EVENT_EXCEPTION)).append(" (");
- sqlBuilder.append(dbNameResolver.getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName.EVENT_ID)).append(",");
- sqlBuilder.append(dbNameResolver.getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName.I)).append(",");
+ sqlBuilder.append(dbNameResolver.getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName.EVENT_ID)).append(", ");
+ sqlBuilder.append(dbNameResolver.getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName.I)).append(", ");
sqlBuilder.append(dbNameResolver.getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName.TRACE_LINE)).append(") ");
sqlBuilder.append("VALUES (?, ?, ?)");
return sqlBuilder.toString();
@@ -41,7 +41,7 @@ public class SQLBuilder {
sqlBuilder.append(dbNameResolver.getLoggingEventColumnName(LoggingEventColumnName.CALLER_CLASS)).append(", ");
sqlBuilder.append(dbNameResolver.getLoggingEventColumnName(LoggingEventColumnName.CALLER_METHOD)).append(", ");
sqlBuilder.append(dbNameResolver.getLoggingEventColumnName(LoggingEventColumnName.CALLER_LINE)).append(") ");
- sqlBuilder.append(" VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?, ?)");
+ sqlBuilder.append("VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?, ?)");
return sqlBuilder.toString();
}
}
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java
new file mode 100644
index 0000000..443b082
--- /dev/null
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java
@@ -0,0 +1,56 @@
+package ch.qos.logback.classic.db;
+
+import ch.qos.logback.classic.db.names.DBNameResolver;
+import ch.qos.logback.classic.db.names.DefaultDBNameResolver;
+import org.junit.Test;
+
+import static org.fest.assertions.Assertions.assertThat;
+
+/**
+ * @author Tomasz Nurkiewicz
+ * @since 2010-03-22
+ */
+public class SQLBuilderTest {
+
+ @Test
+ public void shouldReturnDefaultSqlInsertLoggingEventQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = new DefaultDBNameResolver();
+
+ //when
+ String sql = SQLBuilder.buildInsertSQL(nameResolver);
+
+ //then
+ final String expected = "INSERT INTO logging_event (timestmp, formatted_message, logger_name, level_string, thread_name, reference_flag, caller_filename, caller_class, caller_method, caller_line) VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
+
+ @Test
+ public void shouldReturnDefaultSqlInsertExceptionQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = new DefaultDBNameResolver();
+
+ //when
+ String sql = SQLBuilder.buildInsertExceptionSQL(nameResolver);
+
+ //then
+ final String expected = "INSERT INTO logging_event_exception (event_id, i, trace_line) VALUES (?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
+
+ @Test
+ public void shouldReturnDefaultSqlInsertLoggingPropertyQuery() throws Exception {
+ //given
+ DBNameResolver nameResolver = new DefaultDBNameResolver();
+
+ //when
+ String sql = SQLBuilder.buildInsertPropertiesSQL(nameResolver);
+
+ //then
+ final String expected = "INSERT INTO logging_event_property (event_id, mapped_key, mapped_value) VALUES (?, ?, ?)";
+ assertThat(sql).isEqualTo(expected);
+ }
+
+
+
+}
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/db/names/SimpleDBNameResolverTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/db/names/SimpleDBNameResolverTest.java
new file mode 100644
index 0000000..f712b24
--- /dev/null
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/db/names/SimpleDBNameResolverTest.java
@@ -0,0 +1,8 @@
+package ch.qos.logback.classic.db.names;
+
+/**
+ * @author Tomasz Nurkiewicz
+ * @since 2010-03-22
+ */
+public class SimpleDBNameResolverTest {
+}
http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=0851bedca5864da9bd729793…
http://github.com/ceki/logback/commit/0851bedca5864da9bd729793393dfcb474172…
commit 0851bedca5864da9bd729793393dfcb47417292e
Author: Tomasz Nurkiewicz <nurkiewicz(a)gmail.com>
Date: Sun Mar 21 23:58:37 2010 +0100
[LBCLASSIC-188] SimpleDBNameResolver C&P bugfix
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java
index 2fdcd32..3ca03b3 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java
@@ -13,7 +13,7 @@ public class SimpleDBNameResolver implements DBNameResolver {
private String columnNameSuffix = "";
public String getTableName(TableName tableName) {
- return tableNamePrefix + tableName.name() + columnNamePrefix;
+ return tableNamePrefix + tableName.name() + tableNameSuffix;
}
public String getLoggingEventColumnName(LoggingEventColumnName columnName) {
http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=80fb8ac10abdf2db8aafb05e…
http://github.com/ceki/logback/commit/80fb8ac10abdf2db8aafb05e8899660879d2e…
commit 80fb8ac10abdf2db8aafb05e8899660879d2ebd4
Author: Tomasz Nurkiewicz <nurkiewicz(a)gmail.com>
Date: Fri Mar 19 18:47:30 2010 +0100
[LBCLASSIC-188] SimpleDBNameResolver allowing to customize table and column prefixes/suffixes
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java
new file mode 100644
index 0000000..2fdcd32
--- /dev/null
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java
@@ -0,0 +1,46 @@
+package ch.qos.logback.classic.db.names;
+
+/**
+ * TODO: Handle null prefixes/suffixes somehow
+ * @author Tomasz Nurkiewicz
+ * @since 2010-03-19
+ */
+public class SimpleDBNameResolver implements DBNameResolver {
+
+ private String tableNamePrefix = "";
+ private String tableNameSuffix = "";
+ private String columnNamePrefix = "";
+ private String columnNameSuffix = "";
+
+ public String getTableName(TableName tableName) {
+ return tableNamePrefix + tableName.name() + columnNamePrefix;
+ }
+
+ public String getLoggingEventColumnName(LoggingEventColumnName columnName) {
+ return columnNamePrefix + columnName.name() + columnNameSuffix;
+ }
+
+ public String getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName columnName) {
+ return columnNamePrefix + columnName.name() + columnNameSuffix;
+ }
+
+ public String getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName columnName) {
+ return columnNamePrefix + columnName.name() + columnNameSuffix;
+ }
+
+ public void setTableNamePrefix(String tableNamePrefix) {
+ this.tableNamePrefix = tableNamePrefix;
+ }
+
+ public void setTableNameSuffix(String tableNameSuffix) {
+ this.tableNameSuffix = tableNameSuffix;
+ }
+
+ public void setColumnNamePrefix(String columnNamePrefix) {
+ this.columnNamePrefix = columnNamePrefix;
+ }
+
+ public void setColumnNameSuffix(String columnNameSuffix) {
+ this.columnNameSuffix = columnNameSuffix;
+ }
+}
http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=a9d4721dbca8c77e5b005bca…
http://github.com/ceki/logback/commit/a9d4721dbca8c77e5b005bca28f15f1757873…
commit a9d4721dbca8c77e5b005bca28f15f1757873b74
Author: Tomasz Nurkiewicz <nurkiewicz(a)gmail.com>
Date: Fri Mar 19 18:42:40 2010 +0100
[LBCLASSIC-188] Unit tests of DBNameResolver implementations
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/db/names/CustomDBNameResolverTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/db/names/CustomDBNameResolverTest.java
new file mode 100644
index 0000000..cde1417
--- /dev/null
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/db/names/CustomDBNameResolverTest.java
@@ -0,0 +1,136 @@
+package ch.qos.logback.classic.db.names;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.fest.assertions.Assertions.assertThat;
+
+/**
+ * @author Tomasz Nurkiewicz
+ * @since 2010-03-18
+ */
+public class CustomDBNameResolverTest {
+ private CustomDBNameResolver resolver;
+
+ @Before
+ public void setUp() throws Exception {
+ resolver = new CustomDBNameResolver();
+ }
+
+ @Test
+ public void shouldReturnDefaultTableName() throws Exception {
+ //when
+ String tableName = resolver.getTableName(TableName.LOGGING_EVENT);
+
+ //then
+ assertThat(tableName).isEqualTo("logging_event");
+ }
+
+ @Test
+ public void shouldReturnDefaultLoggingEventColumnName() throws Exception {
+ //when
+ String columnName = resolver.getLoggingEventColumnName(LoggingEventColumnName.LOGGER_NAME);
+
+ //then
+ assertThat(columnName).isEqualTo("logger_name");
+ }
+
+ @Test
+ public void shouldReturnDefaultLoggingPropertyColumnName() throws Exception {
+ //when
+ String columnName = resolver.getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName.MAPPED_VALUE);
+
+ //then
+ assertThat(columnName).isEqualTo("mapped_value");
+ }
+
+ @Test
+ public void shouldReturnDefaultLoggingExceptionColumnName() throws Exception {
+ //when
+ String columnName = resolver.getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName.EVENT_ID);
+
+ //then
+ assertThat(columnName).isEqualTo("event_id");
+ }
+
+ @Test
+ public void shouldReturnModifiedTableName() throws Exception {
+ //when
+ resolver.setLoggingEventExceptionTableName("tbl_logging_event_exception");
+ String tableName = resolver.getTableName(TableName.LOGGING_EVENT_EXCEPTION);
+
+ //then
+ assertThat(tableName).isEqualTo("tbl_logging_event_exception");
+ }
+
+ @Test
+ public void shouldReturnModifiedLoggingEventColumnName() throws Exception {
+ //when
+ resolver.setLoggingEventCallerFilenameColumnName("c_caller_filename");
+ String columnName = resolver.getLoggingEventColumnName(LoggingEventColumnName.CALLER_FILENAME);
+
+ //then
+ assertThat(columnName).isEqualTo("c_caller_filename");
+ }
+
+ @Test
+ public void shouldReturnModifiedLoggingPropertyColumnName() throws Exception {
+ //when
+ resolver.setLoggingEventPropertyMappedKeyColumnName("c_mapped_key");
+ String columnName = resolver.getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName.MAPPED_KEY);
+
+ //then
+ assertThat(columnName).isEqualTo("c_mapped_key");
+ }
+
+ @Test
+ public void shouldReturnModifiedLoggingExceptionColumnName() throws Exception {
+ //when
+ resolver.setLoggingEventExceptionIColumnName("c_i");
+ String columnName = resolver.getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName.I);
+
+ //then
+ assertThat(columnName).isEqualTo("c_i");
+ }
+
+ @Test
+ public void shouldReturnDefaultTableNameWhenNullGiven() throws Exception {
+ //when
+ resolver.setLoggingEventExceptionTableName(null);
+ String tableName = resolver.getTableName(TableName.LOGGING_EVENT_PROPERTY);
+
+ //then
+ assertThat(tableName).isEqualTo("logging_event_property");
+ }
+
+ @Test
+ public void shouldReturnDefaultLoggingEventColumnNameWhenNullGiven() throws Exception {
+ //when
+ resolver.setLoggingEventCallerFilenameColumnName(null);
+ String columnName = resolver.getLoggingEventColumnName(LoggingEventColumnName.CALLER_CLASS);
+
+ //then
+ assertThat(columnName).isEqualTo("caller_class");
+ }
+
+ @Test
+ public void shouldReturnDefaultLoggingPropertyColumnNameWhenNullGiven() throws Exception {
+ //when
+ resolver.setLoggingEventPropertyMappedKeyColumnName(null);
+ String columnName = resolver.getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName.EVENT_ID);
+
+ //then
+ assertThat(columnName).isEqualTo("event_id");
+ }
+
+ @Test
+ public void shouldReturnDefaultLoggingExceptionColumnNameWhenNullGiven() throws Exception {
+ //when
+ resolver.setLoggingEventExceptionIColumnName(null);
+ String columnName = resolver.getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName.I);
+
+ //then
+ assertThat(columnName).isEqualTo("i");
+ }
+
+}
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/db/names/DefaultDBNameResolverTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/db/names/DefaultDBNameResolverTest.java
new file mode 100644
index 0000000..6318da3
--- /dev/null
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/db/names/DefaultDBNameResolverTest.java
@@ -0,0 +1,57 @@
+package ch.qos.logback.classic.db.names;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.fest.assertions.Assertions.assertThat;
+
+/**
+ * @author Tomasz Nurkiewicz
+ * @since 2010-03-18
+ */
+public class DefaultDBNameResolverTest {
+
+ private DefaultDBNameResolver resolver;
+
+ @Before
+ public void setUp() throws Exception {
+ resolver = new DefaultDBNameResolver();
+ }
+
+ @Test
+ public void testGetLoggingEventColumnName() throws Exception {
+ //when
+ String columnName = resolver.getLoggingEventColumnName(LoggingEventColumnName.LOGGER_NAME);
+
+ //then
+ assertThat(columnName).isEqualTo("logger_name");
+ }
+
+ @Test
+ public void testGetLoggingEventPropertyColumnName() throws Exception {
+ //when
+ String columnName = resolver.getLoggingEventPropertyColumnName(LoggingEventPropertyColumnName.MAPPED_KEY);
+
+ //then
+ assertThat(columnName).isEqualTo("mapped_key");
+ }
+
+ @Test
+ public void testGetLoggingEventExceptionColumnName() throws Exception {
+ //when
+ String columnName = resolver.getLoggingEventExceptionColumnName(LoggingEventExceptionColumnName.TRACE_LINE);
+
+ //then
+ assertThat(columnName).isEqualTo("trace_line");
+ }
+
+ @Test
+ public void testGetTableName() throws Exception {
+ //when
+ String tableName = resolver.getTableName(TableName.LOGGING_EVENT_EXCEPTION);
+
+ //then
+ assertThat(tableName).isEqualTo("logging_event_exception");
+ }
+
+}
http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=e804e15654e6b911de4d771f…
http://github.com/ceki/logback/commit/e804e15654e6b911de4d771f2b3a88a405233…
commit e804e15654e6b911de4d771f2b3a88a405233d42
Author: Tomasz Nurkiewicz <nurkiewicz(a)gmail.com>
Date: Fri Mar 19 18:42:09 2010 +0100
[LBCLASSIC-188] Setter name refactoring
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/CustomDBNameResolver.java b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/CustomDBNameResolver.java
index 0880aa5..b020d0f 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/db/names/CustomDBNameResolver.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/db/names/CustomDBNameResolver.java
@@ -95,11 +95,11 @@ public class CustomDBNameResolver implements DBNameResolver {
lePropertyColumnNameOverrides.put(LoggingEventPropertyColumnName.EVENT_ID, columnName);
}
- public void setMappedKeyColumnName(String columnName) {
+ public void setLoggingEventPropertyMappedKeyColumnName(String columnName) {
lePropertyColumnNameOverrides.put(LoggingEventPropertyColumnName.MAPPED_KEY, columnName);
}
- public void setMappedValueColumnName(String columnName) {
+ public void setLoggingEventPropertyMappedValueColumnName(String columnName) {
lePropertyColumnNameOverrides.put(LoggingEventPropertyColumnName.MAPPED_VALUE, columnName);
}
http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=97af7f3deb4f81e0877f5c50…
http://github.com/ceki/logback/commit/97af7f3deb4f81e0877f5c5076d477010725d…
commit 97af7f3deb4f81e0877f5c5076d477010725dfef
Author: Tomasz Nurkiewicz <nurkiewicz(a)gmail.com>
Date: Fri Mar 19 18:38:33 2010 +0100
[LBCLASSIC-188] Add FEST-Assert test dependency
diff --git a/pom.xml b/pom.xml
index 3fcf402..20d903f 100755
--- a/pom.xml
+++ b/pom.xml
@@ -32,8 +32,14 @@
<version>4.4</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.easytesting</groupId>
+ <artifactId>fest-assert</artifactId>
+ <version>1.2</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
-
+
<properties>
<!-- slf4j.version property is used below, in
logback-classic/pom.xml and in setClasspath.cmd -->
http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=bf77adca9403f83b2dbaa849…
http://github.com/ceki/logback/commit/bf77adca9403f83b2dbaa849ce08000d4a06e…
commit bf77adca9403f83b2dbaa849ce08000d4a06eaf8
Merge: 35a2ffe 1acd46c
Author: Tomasz Nurkiewicz <nurkiewicz(a)gmail.com>
Date: Wed Mar 17 23:54:57 2010 +0100
Merge branch 'master' of git://github.com/ceki/logback
-----------------------------------------------------------------------
Summary of changes:
.../java/ch/qos/logback/classic/db/SQLBuilder.java | 10 +-
.../classic/db/names/CustomDBNameResolver.java | 52 --------
.../logback/classic/db/names/DBNameResolver.java | 18 +++-
.../classic/db/names/SimpleDBNameResolver.java | 42 +++++++
.../ch/qos/logback/classic/db/names/TableName.java | 2 +-
.../ch/qos/logback/classic/db/PackageTest.java | 3 +-
.../ch/qos/logback/classic/db/SQLBuilderTest.java | 105 ++++++++++++++++
.../db/names/DefaultDBNameResolverTest.java | 57 +++++++++
.../classic/{boolex => db/names}/PackageTest.java | 5 +-
.../classic/db/names/SimpleDBNameResolverTest.java | 128 ++++++++++++++++++++
.../ch/qos/logback/core/db/DBAppenderBase.java | 1 -
pom.xml | 10 ++-
12 files changed, 366 insertions(+), 67 deletions(-)
delete mode 100644 logback-classic/src/main/java/ch/qos/logback/classic/db/names/CustomDBNameResolver.java
create mode 100644 logback-classic/src/main/java/ch/qos/logback/classic/db/names/SimpleDBNameResolver.java
create mode 100644 logback-classic/src/test/java/ch/qos/logback/classic/db/SQLBuilderTest.java
create mode 100644 logback-classic/src/test/java/ch/qos/logback/classic/db/names/DefaultDBNameResolverTest.java
copy logback-classic/src/test/java/ch/qos/logback/classic/{boolex => db/names}/PackageTest.java (82%)
create mode 100644 logback-classic/src/test/java/ch/qos/logback/classic/db/names/SimpleDBNameResolverTest.java
hooks/post-receive
--
Logback: the generic, reliable, fast and flexible logging framework.
1
0
Hello Thomasz,
While pulling in from your repo, I noticed a few things.
- In CustomDBNameResolver you now check for the null names of enum names. For
example,
if (tableNameOverrides.get(tableName) != null)
became
if (tableNameOverrides.get(tableName.name()) != null)
Since the tableName variable is an enum, its name cannot be null if tableName is
not null.
However, in the same method changing the return value from
return tableNameOverrides.get(tableName);
to
return tableNameOverrides.get(tableName.name());
although equivalent, is clearer.
Given that CustomDBNameResolver cannot be configured via a config file
on account of Joran's lack of support for two-argument setters, I
think it should be either removed or changed so that it takes the
modified column names via a map of type Map<Enum, String>. If you
prefer the latter option, then please enter a jira issue requesting to
add support for maps in joran. In the mean time I am going to remove
CustomDBNameResolver because currently it's just noise.
- In FileAppenderResilienceTest for some reason you removed the
@Ignore annotation on a test called manual() which never exits. As the
name suggests, it's intended for manual testing.
- In IncludeActionTest you have added an import statement for
org.junit.Ignore but do not use it.
The test cases you provide are quite nice. How come you did not use
the hamcrest type assertions built into Junit 4.4+ and chose
fest-assert instead?
Many thanks for your contributions,
--
Ceki
1
0