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 2015/12/03 10:54:51 UTC
[12/14] logging-log4j2 git commit: New ConsoleAppender factory method
is type safe, old method is deprecated.
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/LOG4J2-649
Commit: 4579f143958771e3f26d2b8dad944bb0e899bf54
Parents: 9101f80
Author: ggregory <gg...@apache.org>
Authored: Wed Dec 2 22:22:22 2015 -0800
Committer: ggregory <gg...@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);
}
}