Repository: logging-log4j2 Updated Branches: refs/heads/master 9101f80ae -> 4579f1439
New ConsoleAppender factory method is type safe, old method is deprecated. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/4579f143 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/4579f143 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/4579f143 Branch: refs/heads/master Commit: 4579f143958771e3f26d2b8dad944bb0e899bf54 Parents: 9101f80 Author: ggregory <ggreg...@apache.org> Authored: Wed Dec 2 22:22:22 2015 -0800 Committer: ggregory <ggreg...@apache.org> Committed: Wed Dec 2 22:22:22 2015 -0800 ---------------------------------------------------------------------- .../log4j/core/appender/ConsoleAppender.java | 45 +++++++++++++++++--- .../core/appender/ConsoleAppenderTest.java | 10 ++--- 2 files changed, 43 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4579f143/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java index 82a97d9..10abd72 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java @@ -86,14 +86,15 @@ public final class ConsoleAppender extends AbstractOutputStreamAppender<OutputSt * @param ignore If {@code "true"} (default) exceptions encountered when appending events are logged; otherwise they * are propagated to the caller. * @return The ConsoleAppender. + * @deprecated Use {@link #createAppender(Layout, Filter, Target, String, String, boolean)}. */ - @PluginFactory - public static ConsoleAppender createAppender(@PluginElement("Layout") Layout<? extends Serializable> layout, - @PluginElement("Filter") final Filter filter, - @PluginAttribute(value = "target", defaultString = "SYSTEM_OUT") final String targetStr, - @PluginAttribute("name") final String name, - @PluginAttribute(value = "follow", defaultBoolean = false) final String follow, - @PluginAttribute(value = "ignoreExceptions", defaultBoolean = true) final String ignore) { + @Deprecated + public static ConsoleAppender createAppender(Layout<? extends Serializable> layout, + final Filter filter, + final String targetStr, + final String name, + final String follow, + final String ignore) { if (name == null) { LOGGER.error("No name provided for ConsoleAppender"); return null; @@ -107,6 +108,36 @@ public final class ConsoleAppender extends AbstractOutputStreamAppender<OutputSt return new ConsoleAppender(name, layout, filter, getManager(target, isFollow, layout), ignoreExceptions, target); } + /** + * Creates a Console Appender. + * + * @param layout The layout to use (required). + * @param filter The Filter or null. + * @param target The target (SYSTEM_OUT or SYSTEM_ERR). The default is SYSTEM_OUT. + * @param follow If true will follow changes to the underlying output stream. + * @param name The name of the Appender (required). + * @param ignoreExceptions If {@code "true"} (default) exceptions encountered when appending events are logged; otherwise they + * are propagated to the caller. + * @return The ConsoleAppender. + */ + @PluginFactory + public static ConsoleAppender createAppender(@PluginElement("Layout") Layout<? extends Serializable> layout, + @PluginElement("Filter") final Filter filter, + @PluginAttribute(value = "target") Target target, + @PluginAttribute("name") final String name, + @PluginAttribute(value = "follow", defaultBoolean = false) final boolean follow, + @PluginAttribute(value = "ignoreExceptions", defaultBoolean = true) final boolean ignoreExceptions) { + if (name == null) { + LOGGER.error("No name provided for ConsoleAppender"); + return null; + } + if (layout == null) { + layout = PatternLayout.createDefaultLayout(); + } + target = target == null ? Target.SYSTEM_OUT : target; + return new ConsoleAppender(name, layout, filter, getManager(target, follow, layout), ignoreExceptions, target); + } + public static ConsoleAppender createDefaultAppenderForLayout(final Layout<? extends Serializable> layout) { // this method cannot use the builder class without introducing an infinite loop due to DefaultConfiguration return new ConsoleAppender("DefaultConsole-" + COUNT.incrementAndGet(), layout, null, http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4579f143/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderTest.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderTest.java index 317fc17..65b3e2e 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderTest.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderTest.java @@ -90,7 +90,7 @@ public class ConsoleAppenderTest { abstract void systemSet(PrintStream printStream); } - private void testConsoleStreamManagerDoesNotClose(final PrintStream ps, final String targetName, final SystemSetter systemSetter) { + private void testConsoleStreamManagerDoesNotClose(final PrintStream ps, final Target targetName, final SystemSetter systemSetter) { try { psMock.write((byte[]) anyObject(), anyInt(), anyInt()); expectLastCall().anyTimes(); @@ -100,8 +100,8 @@ public class ConsoleAppenderTest { mocks.replayAll(); systemSetter.systemSet(psMock); final Layout<String> layout = PatternLayout.createLayout(null, null, null, null, null, false, false, null, null); - final ConsoleAppender app = ConsoleAppender.createAppender(layout, null, targetName, "Console", "false", - "false"); + final ConsoleAppender app = ConsoleAppender.createAppender(layout, null, targetName, "Console", false, + false); app.start(); assertTrue("Appender did not start", app.isStarted()); @@ -162,12 +162,12 @@ public class ConsoleAppenderTest { @Test public void testSystemErrStreamManagerDoesNotClose() { - testConsoleStreamManagerDoesNotClose(System.err, "SYSTEM_ERR", SystemSetter.SYSTEM_ERR); + testConsoleStreamManagerDoesNotClose(System.err, Target.SYSTEM_ERR, SystemSetter.SYSTEM_ERR); } @Test public void testSystemOutStreamManagerDoesNotClose() { - testConsoleStreamManagerDoesNotClose(System.out, "SYSTEM_OUT", SystemSetter.SYSTEM_OUT); + testConsoleStreamManagerDoesNotClose(System.out, Target.SYSTEM_OUT, SystemSetter.SYSTEM_OUT); } }