You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by mi...@apache.org on 2016/06/03 09:41:40 UTC

[46/50] logging-log4j2 git commit: Replace getLogger("") with getRootLogger().

Replace getLogger("") with getRootLogger().

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

Branch: refs/heads/LOG4J-1181
Commit: ea87ba22350e3af3ed9b4d1e4b81bdf7c6041a2d
Parents: 7a8f3c8
Author: ggregory <gg...@apache.org>
Authored: Thu Jun 2 14:50:26 2016 -0700
Committer: ggregory <gg...@apache.org>
Committed: Thu Jun 2 14:50:26 2016 -0700

----------------------------------------------------------------------
 .../core/layout/CsvLogEventLayoutTest.java      | 340 +++++++++----------
 .../core/layout/CsvParameterLayoutTest.java     | 322 +++++++++---------
 .../log4j/core/layout/GelfLayoutTest.java       |   2 +-
 .../log4j/core/layout/HtmlLayoutTest.java       |   2 +-
 .../log4j/core/layout/JsonLayoutTest.java       |   2 +-
 .../log4j/core/layout/PatternLayoutTest.java    |   2 +-
 .../log4j/core/layout/Rfc5424LayoutTest.java    |   2 +-
 .../log4j/core/layout/SerializedLayoutTest.java |   2 +-
 .../log4j/core/layout/SyslogLayoutTest.java     |   2 +-
 .../log4j/core/layout/XmlLayoutTest.java        |   2 +-
 .../log4j/core/layout/YamlLayoutTest.java       |   2 +-
 .../log4j/core/pattern/PatternParserTest.java   |   2 +-
 12 files changed, 341 insertions(+), 341 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ea87ba22/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvLogEventLayoutTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvLogEventLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvLogEventLayoutTest.java
index 688cb42..58136de7 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvLogEventLayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvLogEventLayoutTest.java
@@ -1,170 +1,170 @@
-/*
- * 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.log4j.core.layout;
-
-import static org.junit.Assert.assertEquals;
-
-import java.nio.charset.StandardCharsets;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.csv.CSVFormat;
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.ThreadContext;
-import org.apache.logging.log4j.core.Appender;
-import org.apache.logging.log4j.core.BasicConfigurationFactory;
-import org.apache.logging.log4j.core.Logger;
-import org.apache.logging.log4j.core.LoggerContext;
-import org.apache.logging.log4j.core.config.ConfigurationFactory;
-import org.apache.logging.log4j.test.appender.ListAppender;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-/**
- * Tests {@link AbstractCsvLayout}.
- *
- * @since 2.4
- */
-public class CsvLogEventLayoutTest {
-    static ConfigurationFactory cf = new BasicConfigurationFactory();
-
-    @AfterClass
-    public static void cleanupClass() {
-        ConfigurationFactory.removeConfigurationFactory(cf);
-        ThreadContext.clearAll();
-    }
-
-    @BeforeClass
-    public static void setupClass() {
-        ThreadContext.clearAll();
-        ConfigurationFactory.setConfigurationFactory(cf);
-        final LoggerContext ctx = LoggerContext.getContext();
-        ctx.reconfigure();
-    }
-
-    private final LoggerContext ctx = LoggerContext.getContext();
-
-    private final Logger root = ctx.getLogger("");
-
-    @Test
-    public void testCustomCharset() {
-        final AbstractCsvLayout layout = CsvLogEventLayout.createLayout(null, "Excel", null, null, null, null, null,
-                null, StandardCharsets.UTF_16, null, null);
-        assertEquals("text/csv; charset=UTF-16", layout.getContentType());
-    }
-
-    @Test
-    public void testHeaderFooter() {
-        final String header = "# Header";
-        final String footer = "# Footer ";
-        final AbstractCsvLayout layout = CsvLogEventLayout.createLayout(ctx.getConfiguration(), "Excel", null, null,
-                null, null, null, null, null, header, footer);
-        testLayout(CSVFormat.DEFAULT, layout, header, footer);
-    }
-
-    @Test
-    public void testDefaultCharset() {
-        final AbstractCsvLayout layout = CsvLogEventLayout.createDefaultLayout();
-        assertEquals(StandardCharsets.UTF_8, layout.getCharset());
-    }
-
-    @Test
-    public void testDefaultContentType() {
-        final AbstractCsvLayout layout = CsvLogEventLayout.createDefaultLayout();
-        assertEquals("text/csv; charset=UTF-8", layout.getContentType());
-    }
-
-    private void testLayout(final CSVFormat format) {
-        testLayout(format, CsvLogEventLayout.createLayout(format), null, null);
-    }
-
-    private void testLayout(final CSVFormat format, final AbstractCsvLayout layout, String header, String footer) {
-        final Map<String, Appender> appenders = root.getAppenders();
-        for (final Appender appender : appenders.values()) {
-            root.removeAppender(appender);
-        }
-        // set up appender
-        final ListAppender appender = new ListAppender("List", null, layout, true, false);
-        appender.start();
-
-        // set appender on root and set level to debug
-        root.addAppender(appender);
-        root.setLevel(Level.DEBUG);
-
-        root.debug("one={}, two={}, three={}", 1, 2, 3);
-        root.info("Hello");
-        appender.stop();
-
-        final List<String> list = appender.getMessages();
-        final boolean hasHeaderSerializer = layout.getHeaderSerializer() != null;
-        final boolean hasFooterSerializer = layout.getFooterSerializer() != null;
-        final int headerOffset = hasHeaderSerializer ? 1 : 0;
-        final String event0 = list.get(0 + headerOffset);
-        final String event1 = list.get(1 + headerOffset);
-        final char del = format.getDelimiter();
-        Assert.assertTrue(event0, event0.contains(del + "DEBUG" + del));
-        final String quote = del == ',' ? "\"" : "";
-        Assert.assertTrue(event0, event0.contains(del + quote + "one=1, two=2, three=3" + quote + del));
-        Assert.assertTrue(event1, event1.contains(del + "INFO" + del));
-        
-        if (hasHeaderSerializer && header == null) {
-            Assert.fail();
-        }
-        if (!hasHeaderSerializer && header != null) {
-            Assert.fail();
-        }
-        if (hasFooterSerializer && footer == null) {
-            Assert.fail();
-        }
-        if (!hasFooterSerializer && footer != null) {
-            Assert.fail();
-        }
-        if (hasHeaderSerializer) {
-            Assert.assertEquals(list.toString(), header, list.get(0));
-        }
-        if (hasFooterSerializer) {
-            Assert.assertEquals(list.toString(), footer, list.get(list.size() - 1));
-        }
-    }
-
-    @Test
-    public void testLayoutDefault() throws Exception {
-        testLayout(CSVFormat.DEFAULT);
-    }
-
-    @Test
-    public void testLayoutExcel() throws Exception {
-        testLayout(CSVFormat.EXCEL);
-    }
-
-    @Test
-    public void testLayoutMySQL() throws Exception {
-        testLayout(CSVFormat.MYSQL);
-    }
-
-    @Test
-    public void testLayoutRFC4180() throws Exception {
-        testLayout(CSVFormat.RFC4180);
-    }
-
-    @Test
-    public void testLayoutTab() throws Exception {
-        testLayout(CSVFormat.TDF);
-    }
-}
+/*
+ * 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.log4j.core.layout;
+
+import static org.junit.Assert.assertEquals;
+
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.csv.CSVFormat;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.core.Appender;
+import org.apache.logging.log4j.core.BasicConfigurationFactory;
+import org.apache.logging.log4j.core.Logger;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.config.ConfigurationFactory;
+import org.apache.logging.log4j.test.appender.ListAppender;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * Tests {@link AbstractCsvLayout}.
+ *
+ * @since 2.4
+ */
+public class CsvLogEventLayoutTest {
+    static ConfigurationFactory cf = new BasicConfigurationFactory();
+
+    @AfterClass
+    public static void cleanupClass() {
+        ConfigurationFactory.removeConfigurationFactory(cf);
+        ThreadContext.clearAll();
+    }
+
+    @BeforeClass
+    public static void setupClass() {
+        ThreadContext.clearAll();
+        ConfigurationFactory.setConfigurationFactory(cf);
+        final LoggerContext ctx = LoggerContext.getContext();
+        ctx.reconfigure();
+    }
+
+    private final LoggerContext ctx = LoggerContext.getContext();
+
+    private final Logger root = ctx.getRootLogger();
+
+    @Test
+    public void testCustomCharset() {
+        final AbstractCsvLayout layout = CsvLogEventLayout.createLayout(null, "Excel", null, null, null, null, null,
+                null, StandardCharsets.UTF_16, null, null);
+        assertEquals("text/csv; charset=UTF-16", layout.getContentType());
+    }
+
+    @Test
+    public void testHeaderFooter() {
+        final String header = "# Header";
+        final String footer = "# Footer ";
+        final AbstractCsvLayout layout = CsvLogEventLayout.createLayout(ctx.getConfiguration(), "Excel", null, null,
+                null, null, null, null, null, header, footer);
+        testLayout(CSVFormat.DEFAULT, layout, header, footer);
+    }
+
+    @Test
+    public void testDefaultCharset() {
+        final AbstractCsvLayout layout = CsvLogEventLayout.createDefaultLayout();
+        assertEquals(StandardCharsets.UTF_8, layout.getCharset());
+    }
+
+    @Test
+    public void testDefaultContentType() {
+        final AbstractCsvLayout layout = CsvLogEventLayout.createDefaultLayout();
+        assertEquals("text/csv; charset=UTF-8", layout.getContentType());
+    }
+
+    private void testLayout(final CSVFormat format) {
+        testLayout(format, CsvLogEventLayout.createLayout(format), null, null);
+    }
+
+    private void testLayout(final CSVFormat format, final AbstractCsvLayout layout, String header, String footer) {
+        final Map<String, Appender> appenders = root.getAppenders();
+        for (final Appender appender : appenders.values()) {
+            root.removeAppender(appender);
+        }
+        // set up appender
+        final ListAppender appender = new ListAppender("List", null, layout, true, false);
+        appender.start();
+
+        // set appender on root and set level to debug
+        root.addAppender(appender);
+        root.setLevel(Level.DEBUG);
+
+        root.debug("one={}, two={}, three={}", 1, 2, 3);
+        root.info("Hello");
+        appender.stop();
+
+        final List<String> list = appender.getMessages();
+        final boolean hasHeaderSerializer = layout.getHeaderSerializer() != null;
+        final boolean hasFooterSerializer = layout.getFooterSerializer() != null;
+        final int headerOffset = hasHeaderSerializer ? 1 : 0;
+        final String event0 = list.get(0 + headerOffset);
+        final String event1 = list.get(1 + headerOffset);
+        final char del = format.getDelimiter();
+        Assert.assertTrue(event0, event0.contains(del + "DEBUG" + del));
+        final String quote = del == ',' ? "\"" : "";
+        Assert.assertTrue(event0, event0.contains(del + quote + "one=1, two=2, three=3" + quote + del));
+        Assert.assertTrue(event1, event1.contains(del + "INFO" + del));
+        
+        if (hasHeaderSerializer && header == null) {
+            Assert.fail();
+        }
+        if (!hasHeaderSerializer && header != null) {
+            Assert.fail();
+        }
+        if (hasFooterSerializer && footer == null) {
+            Assert.fail();
+        }
+        if (!hasFooterSerializer && footer != null) {
+            Assert.fail();
+        }
+        if (hasHeaderSerializer) {
+            Assert.assertEquals(list.toString(), header, list.get(0));
+        }
+        if (hasFooterSerializer) {
+            Assert.assertEquals(list.toString(), footer, list.get(list.size() - 1));
+        }
+    }
+
+    @Test
+    public void testLayoutDefault() throws Exception {
+        testLayout(CSVFormat.DEFAULT);
+    }
+
+    @Test
+    public void testLayoutExcel() throws Exception {
+        testLayout(CSVFormat.EXCEL);
+    }
+
+    @Test
+    public void testLayoutMySQL() throws Exception {
+        testLayout(CSVFormat.MYSQL);
+    }
+
+    @Test
+    public void testLayoutRFC4180() throws Exception {
+        testLayout(CSVFormat.RFC4180);
+    }
+
+    @Test
+    public void testLayoutTab() throws Exception {
+        testLayout(CSVFormat.TDF);
+    }
+}

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ea87ba22/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvParameterLayoutTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvParameterLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvParameterLayoutTest.java
index a51db99..061458f 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvParameterLayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvParameterLayoutTest.java
@@ -1,161 +1,161 @@
-/*
- * 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.log4j.core.layout;
-
-import java.nio.charset.StandardCharsets;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.commons.csv.CSVFormat;
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.ThreadContext;
-import org.apache.logging.log4j.core.Appender;
-import org.apache.logging.log4j.core.Logger;
-import org.apache.logging.log4j.junit.LoggerContextRule;
-import org.apache.logging.log4j.message.ObjectArrayMessage;
-import org.apache.logging.log4j.test.appender.ListAppender;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import static org.junit.Assert.*;
-
-/**
- * Tests {@link AbstractCsvLayout}.
- *
- * @since 2.4
- */
-@RunWith(value = Parameterized.class)
-public class CsvParameterLayoutTest {
-    @Parameterized.Parameters(name = "{0}")
-    public static Collection<Object[]> data() {
-        return Arrays.asList(
-                new Object[][]{
-                        { new LoggerContextRule("csvParamsSync.xml"), },
-                        { new LoggerContextRule("csvParamsMixedAsync.xml"), },
-                }
-        );
-    }
-
-    @Rule
-    public final LoggerContextRule init;
-
-    public CsvParameterLayoutTest(final LoggerContextRule contextRule) {
-        this.init = contextRule;
-    }
-
-    @AfterClass
-    public static void cleanupClass() {
-//        System.setProperty(Constants.LOG4J_CONTEXT_SELECTOR, null);
-        ThreadContext.clearAll();
-    }
-
-    @Test
-    public void testCustomCharset() {
-        final AbstractCsvLayout layout = CsvParameterLayout.createLayout(null, "Excel", null, null, null, null, null,
-                null, StandardCharsets.UTF_16, null, null);
-        assertEquals("text/csv; charset=UTF-16", layout.getContentType());
-    }
-
-    @Test
-    public void testDefaultCharset() {
-        final AbstractCsvLayout layout = CsvParameterLayout.createDefaultLayout();
-        assertEquals(StandardCharsets.UTF_8, layout.getCharset());
-    }
-
-    @Test
-    public void testDefaultContentType() {
-        final AbstractCsvLayout layout = CsvParameterLayout.createDefaultLayout();
-        assertEquals("text/csv; charset=UTF-8", layout.getContentType());
-    }
-
-    static void testLayoutNormalApi(final Logger root, final AbstractCsvLayout layout, boolean messageApi) throws Exception {
-        final Map<String, Appender> appenders = root.getAppenders();
-        for (final Appender appender : appenders.values()) {
-            root.removeAppender(appender);
-        }
-        // set up appender
-        final ListAppender appender = new ListAppender("List", null, layout, true, false);
-        appender.start();
-
-        appender.countDownLatch = new CountDownLatch(4);
-
-        // set appender on root and set level to debug
-        root.addAppender(appender);
-        root.setLevel(Level.DEBUG);
-
-        // output messages
-        if (messageApi) {
-            logDebugObjectArrayMessage(root);
-        } else {
-            logDebugNormalApi(root);
-        }
-
-        // wait until background thread finished processing
-        appender.countDownLatch.await(10, TimeUnit.SECONDS);
-        assertEquals("Background thread did not finish processing: msg count", 4, appender.getMessages().size());
-
-        // don't stop appender until background thread is done
-        appender.stop();
-
-        final List<String> list = appender.getMessages();
-        final char d = layout.getFormat().getDelimiter();
-        Assert.assertEquals("1" + d + "2" + d + "3", list.get(0));
-        Assert.assertEquals("2" + d + "3", list.get(1));
-        Assert.assertEquals("5" + d + "6", list.get(2));
-        Assert.assertEquals("7" + d + "8" + d + "9" + d + "10", list.get(3));
-    }
-
-    private static void logDebugNormalApi(final Logger root) {
-        root.debug("with placeholders: {}{}{}", 1, 2, 3);
-        root.debug("without placeholders", 2, 3);
-        root.debug(null, 5, 6);
-        root.debug("invalid placeholder count {}", 7, 8, 9, 10);
-    }
-
-    private static void logDebugObjectArrayMessage(final Logger root) {
-        root.debug(new ObjectArrayMessage(1, 2, 3));
-        root.debug(new ObjectArrayMessage(2, 3));
-        root.debug(new ObjectArrayMessage(5, 6));
-        root.debug(new ObjectArrayMessage(7, 8, 9, 10));
-    }
-
-    @Test
-    public void testLayoutDefaultNormal() throws Exception {
-        Logger root = this.init.getLogger("");
-        testLayoutNormalApi(root, CsvParameterLayout.createDefaultLayout(), false);
-    }
-
-    @Test
-    public void testLayoutDefaultObjectArrayMessage() throws Exception {
-        Logger root = this.init.getLogger("");
-        testLayoutNormalApi(root, CsvParameterLayout.createDefaultLayout(), true);
-    }
-
-    @Test
-    public void testLayoutTab() throws Exception {
-        Logger root = this.init.getLogger("");
-        testLayoutNormalApi(root, CsvParameterLayout.createLayout(CSVFormat.TDF), true);
-    }
-}
+/*
+ * 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.log4j.core.layout;
+
+import java.nio.charset.StandardCharsets;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.commons.csv.CSVFormat;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.core.Appender;
+import org.apache.logging.log4j.core.Logger;
+import org.apache.logging.log4j.junit.LoggerContextRule;
+import org.apache.logging.log4j.message.ObjectArrayMessage;
+import org.apache.logging.log4j.test.appender.ListAppender;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import static org.junit.Assert.*;
+
+/**
+ * Tests {@link AbstractCsvLayout}.
+ *
+ * @since 2.4
+ */
+@RunWith(value = Parameterized.class)
+public class CsvParameterLayoutTest {
+    @Parameterized.Parameters(name = "{0}")
+    public static Collection<Object[]> data() {
+        return Arrays.asList(
+                new Object[][]{
+                        { new LoggerContextRule("csvParamsSync.xml"), },
+                        { new LoggerContextRule("csvParamsMixedAsync.xml"), },
+                }
+        );
+    }
+
+    @Rule
+    public final LoggerContextRule init;
+
+    public CsvParameterLayoutTest(final LoggerContextRule contextRule) {
+        this.init = contextRule;
+    }
+
+    @AfterClass
+    public static void cleanupClass() {
+//        System.setProperty(Constants.LOG4J_CONTEXT_SELECTOR, null);
+        ThreadContext.clearAll();
+    }
+
+    @Test
+    public void testCustomCharset() {
+        final AbstractCsvLayout layout = CsvParameterLayout.createLayout(null, "Excel", null, null, null, null, null,
+                null, StandardCharsets.UTF_16, null, null);
+        assertEquals("text/csv; charset=UTF-16", layout.getContentType());
+    }
+
+    @Test
+    public void testDefaultCharset() {
+        final AbstractCsvLayout layout = CsvParameterLayout.createDefaultLayout();
+        assertEquals(StandardCharsets.UTF_8, layout.getCharset());
+    }
+
+    @Test
+    public void testDefaultContentType() {
+        final AbstractCsvLayout layout = CsvParameterLayout.createDefaultLayout();
+        assertEquals("text/csv; charset=UTF-8", layout.getContentType());
+    }
+
+    static void testLayoutNormalApi(final Logger root, final AbstractCsvLayout layout, boolean messageApi) throws Exception {
+        final Map<String, Appender> appenders = root.getAppenders();
+        for (final Appender appender : appenders.values()) {
+            root.removeAppender(appender);
+        }
+        // set up appender
+        final ListAppender appender = new ListAppender("List", null, layout, true, false);
+        appender.start();
+
+        appender.countDownLatch = new CountDownLatch(4);
+
+        // set appender on root and set level to debug
+        root.addAppender(appender);
+        root.setLevel(Level.DEBUG);
+
+        // output messages
+        if (messageApi) {
+            logDebugObjectArrayMessage(root);
+        } else {
+            logDebugNormalApi(root);
+        }
+
+        // wait until background thread finished processing
+        appender.countDownLatch.await(10, TimeUnit.SECONDS);
+        assertEquals("Background thread did not finish processing: msg count", 4, appender.getMessages().size());
+
+        // don't stop appender until background thread is done
+        appender.stop();
+
+        final List<String> list = appender.getMessages();
+        final char d = layout.getFormat().getDelimiter();
+        Assert.assertEquals("1" + d + "2" + d + "3", list.get(0));
+        Assert.assertEquals("2" + d + "3", list.get(1));
+        Assert.assertEquals("5" + d + "6", list.get(2));
+        Assert.assertEquals("7" + d + "8" + d + "9" + d + "10", list.get(3));
+    }
+
+    private static void logDebugNormalApi(final Logger root) {
+        root.debug("with placeholders: {}{}{}", 1, 2, 3);
+        root.debug("without placeholders", 2, 3);
+        root.debug(null, 5, 6);
+        root.debug("invalid placeholder count {}", 7, 8, 9, 10);
+    }
+
+    private static void logDebugObjectArrayMessage(final Logger root) {
+        root.debug(new ObjectArrayMessage(1, 2, 3));
+        root.debug(new ObjectArrayMessage(2, 3));
+        root.debug(new ObjectArrayMessage(5, 6));
+        root.debug(new ObjectArrayMessage(7, 8, 9, 10));
+    }
+
+    @Test
+    public void testLayoutDefaultNormal() throws Exception {
+        Logger root = this.init.getRootLogger();
+        testLayoutNormalApi(root, CsvParameterLayout.createDefaultLayout(), false);
+    }
+
+    @Test
+    public void testLayoutDefaultObjectArrayMessage() throws Exception {
+        Logger root = this.init.getRootLogger();
+        testLayoutNormalApi(root, CsvParameterLayout.createDefaultLayout(), true);
+    }
+
+    @Test
+    public void testLayoutTab() throws Exception {
+        Logger root = this.init.getRootLogger();
+        testLayoutNormalApi(root, CsvParameterLayout.createLayout(CSVFormat.TDF), true);
+    }
+}

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ea87ba22/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/GelfLayoutTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/GelfLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/GelfLayoutTest.java
index d12aa57..4dcd828 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/GelfLayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/GelfLayoutTest.java
@@ -72,7 +72,7 @@ public class GelfLayoutTest {
 
     LoggerContext ctx = LoggerContext.getContext();
 
-    Logger root = ctx.getLogger("");
+    Logger root = ctx.getRootLogger();
 
     private void testCompressedLayout(final CompressionType compressionType, boolean includeStacktrace) throws IOException {
         for (final Appender appender : root.getAppenders().values()) {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ea87ba22/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/HtmlLayoutTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/HtmlLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/HtmlLayoutTest.java
index 7253b56..cf38518 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/HtmlLayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/HtmlLayoutTest.java
@@ -39,7 +39,7 @@ import static org.junit.Assert.*;
  */
 public class HtmlLayoutTest {
     LoggerContext ctx = LoggerContext.getContext();
-    Logger root = ctx.getLogger("");
+    Logger root = ctx.getRootLogger();
 
     static ConfigurationFactory cf = new BasicConfigurationFactory();
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ea87ba22/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java
index 55a22b9..0c2fbca 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java
@@ -67,7 +67,7 @@ public class JsonLayoutTest {
 
     LoggerContext ctx = LoggerContext.getContext();
 
-    Logger rootLogger = this.ctx.getLogger("");
+    Logger rootLogger = this.ctx.getRootLogger();
 
     private void checkAt(final String expected, final int lineIndex, final List<String> list) {
         final String trimedLine = list.get(lineIndex).trim();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ea87ba22/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutTest.java
index 6f58ebc..d114bb8 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutTest.java
@@ -68,7 +68,7 @@ public class PatternLayoutTest {
 
     LoggerContext ctx = LoggerContext.getContext();
 
-    Logger root = ctx.getLogger("");
+    Logger root = ctx.getRootLogger();
 
     @After
     public void after() {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ea87ba22/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/Rfc5424LayoutTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/Rfc5424LayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/Rfc5424LayoutTest.java
index f310846..7259080 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/Rfc5424LayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/Rfc5424LayoutTest.java
@@ -43,7 +43,7 @@ import static org.junit.Assert.*;
 
 public class Rfc5424LayoutTest {
     LoggerContext ctx = LoggerContext.getContext();
-    Logger root = ctx.getLogger("");
+    Logger root = ctx.getRootLogger();
 
 
     private static final String line1 = "ATM - - [RequestContext@3692 loginId=\"JohnDoe\"] starting mdc pattern test";

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ea87ba22/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/SerializedLayoutTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/SerializedLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/SerializedLayoutTest.java
index 2ea4685..d4636b4 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/SerializedLayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/SerializedLayoutTest.java
@@ -49,7 +49,7 @@ import static org.junit.Assert.*;
 public class SerializedLayoutTest {
     private static final String DAT_PATH = "target/test-classes/serializedEvent.dat";
     LoggerContext ctx = LoggerContext.getContext();
-    Logger root = ctx.getLogger("");
+    Logger root = ctx.getRootLogger();
 
     static ConfigurationFactory cf = new BasicConfigurationFactory();
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ea87ba22/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/SyslogLayoutTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/SyslogLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/SyslogLayoutTest.java
index d7a87fc..f84d01c 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/SyslogLayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/SyslogLayoutTest.java
@@ -41,7 +41,7 @@ import static org.junit.Assert.*;
  */
 public class SyslogLayoutTest {
     LoggerContext ctx = LoggerContext.getContext();
-    Logger root = ctx.getLogger("");
+    Logger root = ctx.getRootLogger();
 
 
     private static final String line1 = "starting mdc pattern test";

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ea87ba22/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/XmlLayoutTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/XmlLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/XmlLayoutTest.java
index 4ea4ca5..2e87a94 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/XmlLayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/XmlLayoutTest.java
@@ -69,7 +69,7 @@ public class XmlLayoutTest {
 
     LoggerContext ctx = LoggerContext.getContext();
 
-    Logger rootLogger = this.ctx.getLogger("");
+    Logger rootLogger = this.ctx.getRootLogger();
 
     private void checkAttribute(final String name, final String value, final boolean compact, final String str) {
         Assert.assertTrue(str, str.contains(name + "=\"" + value + "\""));

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ea87ba22/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/YamlLayoutTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/YamlLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/YamlLayoutTest.java
index fb1dccc..88a2138 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/YamlLayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/YamlLayoutTest.java
@@ -65,7 +65,7 @@ public class YamlLayoutTest {
 
     LoggerContext ctx = LoggerContext.getContext();
 
-    Logger rootLogger = this.ctx.getLogger("");
+    Logger rootLogger = this.ctx.getRootLogger();
 
     private void checkAt(final String expected, final int lineIndex, final List<String> list) {
         final String trimedLine = list.get(lineIndex).trim();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ea87ba22/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/PatternParserTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/PatternParserTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/PatternParserTest.java
index 62ff668..c3e064e 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/PatternParserTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/PatternParserTest.java
@@ -46,7 +46,7 @@ public class PatternParserTest {
     static String OUTPUT_FILE   = "output/PatternParser";
     static String WITNESS_FILE  = "witness/PatternParser";
     LoggerContext ctx = LoggerContext.getContext();
-    Logger root = ctx.getLogger("");
+    Logger root = ctx.getRootLogger();
 
     private static String msgPattern = "%m%n";
     private final String mdcMsgPattern1 = "%m : %X%n";