You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2015/09/24 05:09:49 UTC

logging-log4j2 git commit: Renamed InitialLoggerContext to LoggerContextRule.

Repository: logging-log4j2
Updated Branches:
  refs/heads/master 56660bc7c -> f1e3bec24


Renamed InitialLoggerContext to LoggerContextRule.

Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/f1e3bec2
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/f1e3bec2
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/f1e3bec2

Branch: refs/heads/master
Commit: f1e3bec24c21527fd4e4bd34e7bc6ad8ae744cf2
Parents: 56660bc
Author: ggregory <gg...@apache.org>
Authored: Wed Sep 23 20:09:45 2015 -0700
Committer: ggregory <gg...@apache.org>
Committed: Wed Sep 23 20:09:45 2015 -0700

----------------------------------------------------------------------
 .../logging/slf4j/CallerInformationTest.java    | 130 ++++----
 .../logging/slf4j/InitialLoggerContext.java     |  71 -----
 .../apache/logging/slf4j/LoggerContextRule.java |  72 +++++
 .../org/apache/logging/slf4j/LoggerTest.java    | 318 +++++++++----------
 4 files changed, 296 insertions(+), 295 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f1e3bec2/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/CallerInformationTest.java
----------------------------------------------------------------------
diff --git a/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/CallerInformationTest.java b/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/CallerInformationTest.java
index e1d7d64..7ebab7a 100644
--- a/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/CallerInformationTest.java
+++ b/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/CallerInformationTest.java
@@ -1,65 +1,65 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache license, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the license for the specific language governing permissions and
- * limitations under the license.
- */
-package org.apache.logging.slf4j;
-
-import java.util.List;
-
-import ch.qos.logback.classic.spi.ILoggingEvent;
-import ch.qos.logback.core.testUtil.StringListAppender;
-import org.apache.logging.log4j.LogManager;
-import org.junit.ClassRule;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class CallerInformationTest {
-
-    private static final String CONFIG = "target/test-classes/logback-calling-class.xml";
-
-    @ClassRule
-    public static final InitialLoggerContext CTX = new InitialLoggerContext(CONFIG);
-
-    @Test
-    public void testClassLogger() throws Exception {
-        final SLF4JLogger logger = (SLF4JLogger) LogManager.getLogger("ClassLogger");
-        final StringListAppender<ILoggingEvent> app = TestUtil.getListAppender(logger, "Class");
-        logger.info("Ignored message contents.");
-        logger.warn("Verifying the caller class is still correct.");
-        logger.error("Hopefully nobody breaks me!");
-        final List<String> messages = app.strList;
-        assertEquals("Incorrect number of messages.", 3, messages.size());
-        for (final String message : messages) {
-            assertEquals("Incorrect caller class name.", this.getClass().getName(), message);
-        }
-    }
-
-    @Test
-    public void testMethodLogger() throws Exception {
-        final SLF4JLogger logger = (SLF4JLogger) LogManager.getLogger("MethodLogger");
-        final StringListAppender<ILoggingEvent> app = TestUtil.getListAppender(logger, "Method");
-        logger.info("More messages.");
-        logger.warn("CATASTROPHE INCOMING!");
-        logger.error("ZOMBIES!!!");
-        logger.warn("brains~~~");
-        logger.info("Itchy. Tasty.");
-        final List<String> messages = app.strList;
-        assertEquals("Incorrect number of messages.", 5, messages.size());
-        for (final String message : messages) {
-            assertEquals("Incorrect caller method name.", "testMethodLogger", message);
-        }
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
+package org.apache.logging.slf4j;
+
+import java.util.List;
+
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.testUtil.StringListAppender;
+import org.apache.logging.log4j.LogManager;
+import org.junit.ClassRule;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class CallerInformationTest {
+
+    private static final String CONFIG = "target/test-classes/logback-calling-class.xml";
+
+    @ClassRule
+    public static final LoggerContextRule CTX = new LoggerContextRule(CONFIG);
+
+    @Test
+    public void testClassLogger() throws Exception {
+        final SLF4JLogger logger = (SLF4JLogger) LogManager.getLogger("ClassLogger");
+        final StringListAppender<ILoggingEvent> app = TestUtil.getListAppender(logger, "Class");
+        logger.info("Ignored message contents.");
+        logger.warn("Verifying the caller class is still correct.");
+        logger.error("Hopefully nobody breaks me!");
+        final List<String> messages = app.strList;
+        assertEquals("Incorrect number of messages.", 3, messages.size());
+        for (final String message : messages) {
+            assertEquals("Incorrect caller class name.", this.getClass().getName(), message);
+        }
+    }
+
+    @Test
+    public void testMethodLogger() throws Exception {
+        final SLF4JLogger logger = (SLF4JLogger) LogManager.getLogger("MethodLogger");
+        final StringListAppender<ILoggingEvent> app = TestUtil.getListAppender(logger, "Method");
+        logger.info("More messages.");
+        logger.warn("CATASTROPHE INCOMING!");
+        logger.error("ZOMBIES!!!");
+        logger.warn("brains~~~");
+        logger.info("Itchy. Tasty.");
+        final List<String> messages = app.strList;
+        assertEquals("Incorrect number of messages.", 5, messages.size());
+        for (final String message : messages) {
+            assertEquals("Incorrect caller method name.", "testMethodLogger", message);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f1e3bec2/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/InitialLoggerContext.java
----------------------------------------------------------------------
diff --git a/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/InitialLoggerContext.java b/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/InitialLoggerContext.java
deleted file mode 100644
index 102e032..0000000
--- a/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/InitialLoggerContext.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache license, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the license for the specific language governing permissions and
- * limitations under the license.
- */
-package org.apache.logging.slf4j;
-
-import ch.qos.logback.classic.Logger;
-import ch.qos.logback.classic.LoggerContext;
-import ch.qos.logback.classic.joran.JoranConfigurator;
-import ch.qos.logback.core.joran.GenericConfigurator;
-import org.junit.rules.TestRule;
-import org.junit.runner.Description;
-import org.junit.runners.model.Statement;
-import org.slf4j.LoggerFactory;
-
-/**
- * JUnit {@link TestRule} similar to the TestRule in {@code log4j-core} of the same name.
- *
- * @since 2.1
- */
-public class InitialLoggerContext implements TestRule {
-
-    private final String configLocation;
-
-    private LoggerContext context;
-
-    private String testClassName;
-
-    public InitialLoggerContext(final String configLocation) {
-        this.configLocation = configLocation;
-    }
-
-    @Override
-    public Statement apply(final Statement base, final Description description) {
-        testClassName = description.getClassName();
-        return new Statement() {
-            @Override
-            public void evaluate() throws Throwable {
-                context = (LoggerContext) LoggerFactory.getILoggerFactory();
-                final GenericConfigurator configurator = new JoranConfigurator();
-                configurator.setContext(context);
-                configurator.doConfigure(configLocation);
-                base.evaluate();
-            }
-        };
-    }
-
-    public LoggerContext getContext() {
-        return context;
-    }
-
-    public Logger getLogger() {
-        return context.getLogger(testClassName);
-    }
-
-    public Logger getLogger(final String name) {
-        return context.getLogger(name);
-    }
-}

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f1e3bec2/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/LoggerContextRule.java
----------------------------------------------------------------------
diff --git a/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/LoggerContextRule.java b/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/LoggerContextRule.java
new file mode 100644
index 0000000..0f245e2
--- /dev/null
+++ b/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/LoggerContextRule.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
+package org.apache.logging.slf4j;
+
+import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.joran.JoranConfigurator;
+import ch.qos.logback.core.joran.GenericConfigurator;
+import org.junit.rules.TestRule;
+import org.junit.runner.Description;
+import org.junit.runners.model.Statement;
+import org.slf4j.LoggerFactory;
+
+/**
+ * JUnit {@link TestRule} similar to the TestRule in {@code log4j-core} of the same name.
+ *
+ * @since 2.1
+ * @since 2.4.1 Renamed InitialLoggerContext to LoggerContextRule
+ */
+public class LoggerContextRule implements TestRule {
+
+    private final String configLocation;
+
+    private LoggerContext context;
+
+    private String testClassName;
+
+    public LoggerContextRule(final String configLocation) {
+        this.configLocation = configLocation;
+    }
+
+    @Override
+    public Statement apply(final Statement base, final Description description) {
+        testClassName = description.getClassName();
+        return new Statement() {
+            @Override
+            public void evaluate() throws Throwable {
+                context = (LoggerContext) LoggerFactory.getILoggerFactory();
+                final GenericConfigurator configurator = new JoranConfigurator();
+                configurator.setContext(context);
+                configurator.doConfigure(configLocation);
+                base.evaluate();
+            }
+        };
+    }
+
+    public LoggerContext getContext() {
+        return context;
+    }
+
+    public Logger getLogger() {
+        return context.getLogger(testClassName);
+    }
+
+    public Logger getLogger(final String name) {
+        return context.getLogger(name);
+    }
+}

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f1e3bec2/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/LoggerTest.java
----------------------------------------------------------------------
diff --git a/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/LoggerTest.java b/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/LoggerTest.java
index b309edb..fb30a1b 100644
--- a/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/LoggerTest.java
+++ b/log4j-to-slf4j/src/test/java/org/apache/logging/slf4j/LoggerTest.java
@@ -1,159 +1,159 @@
-
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache license, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-*      http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the license for the specific language governing permissions and
-* limitations under the license.
-*/
-package org.apache.logging.slf4j;
-
-import java.util.Date;
-import java.util.List;
-
-import ch.qos.logback.classic.spi.ILoggingEvent;
-import ch.qos.logback.core.testUtil.StringListAppender;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.ThreadContext;
-import org.apache.logging.log4j.message.MessageFactory;
-import org.apache.logging.log4j.message.ParameterizedMessageFactory;
-import org.apache.logging.log4j.message.StringFormatterMessageFactory;
-import org.junit.Before;
-import org.junit.ClassRule;
-import org.junit.Test;
-
-import static org.hamcrest.Matchers.*;
-import static org.junit.Assert.*;
-
-/**
- *
- */
-public class LoggerTest {
-
-    private static final String CONFIG = "target/test-classes/logback-slf4j.xml";
-
-    @ClassRule
-    public static final InitialLoggerContext CTX = new InitialLoggerContext(CONFIG);
-
-    private Logger logger;
-    private StringListAppender<ILoggingEvent> list;
-
-    @Before
-    public void setUp() throws Exception {
-        final org.slf4j.Logger slf4jLogger = CTX.getLogger();
-        logger = LogManager.getLogger();
-        assertThat(slf4jLogger, is(theInstance(((SLF4JLogger) logger).getLogger())));
-        final ch.qos.logback.classic.Logger rootLogger = CTX.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
-        rootLogger.detachAppender("console");
-        list = TestUtil.getListAppender(rootLogger, "LIST");
-        assertThat(list, is(notNullValue()));
-        assertThat(list.strList, is(notNullValue()));
-        list.strList.clear();
-    }
-
-    @Test
-    public void basicFlow() {
-        logger.entry();
-        logger.exit();
-        assertThat(list.strList, hasSize(2));
-    }
-
-    @Test
-    public void simpleFlow() {
-        logger.entry(CONFIG);
-        logger.exit(0);
-        assertThat(list.strList, hasSize(2));
-    }
-
-    @Test
-    public void throwing() {
-        logger.throwing(new IllegalArgumentException("Test Exception"));
-        assertThat(list.strList, hasSize(1));
-    }
-
-    @Test
-    public void catching() {
-        try {
-            throw new NullPointerException();
-        } catch (final Exception e) {
-            logger.catching(e);
-        }
-        assertThat(list.strList, hasSize(1));
-    }
-
-    @Test
-    public void debug() {
-        logger.debug("Debug message");
-        assertThat(list.strList, hasSize(1));
-    }
-
-    @Test
-    public void getLogger_String_MessageFactoryMismatch() {
-        final Logger testLogger = testMessageFactoryMismatch("getLogger_String_MessageFactoryMismatch",
-            StringFormatterMessageFactory.INSTANCE, ParameterizedMessageFactory.INSTANCE);
-        testLogger.debug("%,d", Integer.MAX_VALUE);
-        assertThat(list.strList, hasSize(1));
-        assertThat(list.strList, hasItem(String.format("%,d", Integer.MAX_VALUE)));
-    }
-
-    @Test
-    public void getLogger_String_MessageFactoryMismatchNull() {
-        final Logger testLogger =  testMessageFactoryMismatch("getLogger_String_MessageFactoryMismatchNull",
-            StringFormatterMessageFactory.INSTANCE, null);
-        testLogger.debug("%,d", Integer.MAX_VALUE);
-        assertThat(list.strList, hasSize(1));
-        assertThat(list.strList, hasItem(String.format("%,d", Integer.MAX_VALUE)));
-    }
-
-    private Logger testMessageFactoryMismatch(final String name, final MessageFactory messageFactory1, final MessageFactory messageFactory2) {
-        final Logger testLogger = LogManager.getLogger(name, messageFactory1);
-        assertThat(testLogger, is(notNullValue()));
-        assertThat(testLogger.getMessageFactory(), equalTo(messageFactory1));
-        final Logger testLogger2 = LogManager.getLogger(name, messageFactory2);
-        assertThat(testLogger2.getMessageFactory(), equalTo(messageFactory1));
-        return testLogger;
-    }
-
-    @Test
-    public void debugObject() {
-        logger.debug(new Date());
-        assertThat(list.strList, hasSize(1));
-    }
-
-    @Test
-    public void debugWithParms() {
-        logger.debug("Hello, {}", "World");
-        assertThat(list.strList, hasSize(1));
-    }
-
-    @Test
-    public void testImpliedThrowable() {
-        logger.debug("This is a test", new Throwable("Testing"));
-        final List<String> msgs = list.strList;
-        assertThat(msgs, hasSize(1));
-        final String expected = "java.lang.Throwable: Testing";
-        assertTrue("Incorrect message data", msgs.get(0).contains(expected));
-    }
-
-    @SuppressWarnings("unchecked")
-    @Test
-    public void mdc() {
-        ThreadContext.put("TestYear", Integer.toString(2010));
-        logger.debug("Debug message");
-        ThreadContext.clearMap();
-        logger.debug("Debug message");
-        assertThat(list.strList, hasSize(2));
-        assertTrue("Incorrect year", list.strList.get(0).startsWith("2010"));
-    }
-}
-
+
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache license, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+*      http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the license for the specific language governing permissions and
+* limitations under the license.
+*/
+package org.apache.logging.slf4j;
+
+import java.util.Date;
+import java.util.List;
+
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.testUtil.StringListAppender;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.message.MessageFactory;
+import org.apache.logging.log4j.message.ParameterizedMessageFactory;
+import org.apache.logging.log4j.message.StringFormatterMessageFactory;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
+
+import static org.hamcrest.Matchers.*;
+import static org.junit.Assert.*;
+
+/**
+ *
+ */
+public class LoggerTest {
+
+    private static final String CONFIG = "target/test-classes/logback-slf4j.xml";
+
+    @ClassRule
+    public static final LoggerContextRule CTX = new LoggerContextRule(CONFIG);
+
+    private Logger logger;
+    private StringListAppender<ILoggingEvent> list;
+
+    @Before
+    public void setUp() throws Exception {
+        final org.slf4j.Logger slf4jLogger = CTX.getLogger();
+        logger = LogManager.getLogger();
+        assertThat(slf4jLogger, is(theInstance(((SLF4JLogger) logger).getLogger())));
+        final ch.qos.logback.classic.Logger rootLogger = CTX.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
+        rootLogger.detachAppender("console");
+        list = TestUtil.getListAppender(rootLogger, "LIST");
+        assertThat(list, is(notNullValue()));
+        assertThat(list.strList, is(notNullValue()));
+        list.strList.clear();
+    }
+
+    @Test
+    public void basicFlow() {
+        logger.entry();
+        logger.exit();
+        assertThat(list.strList, hasSize(2));
+    }
+
+    @Test
+    public void simpleFlow() {
+        logger.entry(CONFIG);
+        logger.exit(0);
+        assertThat(list.strList, hasSize(2));
+    }
+
+    @Test
+    public void throwing() {
+        logger.throwing(new IllegalArgumentException("Test Exception"));
+        assertThat(list.strList, hasSize(1));
+    }
+
+    @Test
+    public void catching() {
+        try {
+            throw new NullPointerException();
+        } catch (final Exception e) {
+            logger.catching(e);
+        }
+        assertThat(list.strList, hasSize(1));
+    }
+
+    @Test
+    public void debug() {
+        logger.debug("Debug message");
+        assertThat(list.strList, hasSize(1));
+    }
+
+    @Test
+    public void getLogger_String_MessageFactoryMismatch() {
+        final Logger testLogger = testMessageFactoryMismatch("getLogger_String_MessageFactoryMismatch",
+            StringFormatterMessageFactory.INSTANCE, ParameterizedMessageFactory.INSTANCE);
+        testLogger.debug("%,d", Integer.MAX_VALUE);
+        assertThat(list.strList, hasSize(1));
+        assertThat(list.strList, hasItem(String.format("%,d", Integer.MAX_VALUE)));
+    }
+
+    @Test
+    public void getLogger_String_MessageFactoryMismatchNull() {
+        final Logger testLogger =  testMessageFactoryMismatch("getLogger_String_MessageFactoryMismatchNull",
+            StringFormatterMessageFactory.INSTANCE, null);
+        testLogger.debug("%,d", Integer.MAX_VALUE);
+        assertThat(list.strList, hasSize(1));
+        assertThat(list.strList, hasItem(String.format("%,d", Integer.MAX_VALUE)));
+    }
+
+    private Logger testMessageFactoryMismatch(final String name, final MessageFactory messageFactory1, final MessageFactory messageFactory2) {
+        final Logger testLogger = LogManager.getLogger(name, messageFactory1);
+        assertThat(testLogger, is(notNullValue()));
+        assertThat(testLogger.getMessageFactory(), equalTo(messageFactory1));
+        final Logger testLogger2 = LogManager.getLogger(name, messageFactory2);
+        assertThat(testLogger2.getMessageFactory(), equalTo(messageFactory1));
+        return testLogger;
+    }
+
+    @Test
+    public void debugObject() {
+        logger.debug(new Date());
+        assertThat(list.strList, hasSize(1));
+    }
+
+    @Test
+    public void debugWithParms() {
+        logger.debug("Hello, {}", "World");
+        assertThat(list.strList, hasSize(1));
+    }
+
+    @Test
+    public void testImpliedThrowable() {
+        logger.debug("This is a test", new Throwable("Testing"));
+        final List<String> msgs = list.strList;
+        assertThat(msgs, hasSize(1));
+        final String expected = "java.lang.Throwable: Testing";
+        assertTrue("Incorrect message data", msgs.get(0).contains(expected));
+    }
+
+    @SuppressWarnings("unchecked")
+    @Test
+    public void mdc() {
+        ThreadContext.put("TestYear", Integer.toString(2010));
+        logger.debug("Debug message");
+        ThreadContext.clearMap();
+        logger.debug("Debug message");
+        assertThat(list.strList, hasSize(2));
+        assertTrue("Incorrect year", list.strList.get(0).startsWith("2010"));
+    }
+}
+