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/14 07:55:19 UTC
[01/19] logging-log4j2 git commit: FastConsoleAppender
Repository: logging-log4j2
Updated Branches:
refs/heads/master 86095e9f2 -> 24bfc3e86
FastConsoleAppender
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/06c55468
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/06c55468
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/06c55468
Branch: refs/heads/master
Commit: 06c55468948efdce95a591801d5f9e2ffdb69dd4
Parents: e012269
Author: Mikael St�ldal <mi...@magine.com>
Authored: Thu May 26 17:12:33 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Thu May 26 17:12:33 2016 +0200
----------------------------------------------------------------------
.../core/appender/FastConsoleAppender.java | 227 +++++++++++++++++++
.../jmh/Log4j2AppenderComparisonBenchmark.java | 18 ++
.../resources/log4j2-appenderComparison.xml | 6 +
3 files changed, 251 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/06c55468/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FastConsoleAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FastConsoleAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FastConsoleAppender.java
new file mode 100644
index 0000000..a7cd905
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FastConsoleAppender.java
@@ -0,0 +1,227 @@
+/*
+ * 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.appender;
+
+import java.io.FileDescriptor;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
+import java.io.Serializable;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.apache.logging.log4j.core.Filter;
+import org.apache.logging.log4j.core.Layout;
+import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
+import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute;
+import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
+import org.apache.logging.log4j.core.config.plugins.PluginElement;
+import org.apache.logging.log4j.core.config.plugins.PluginFactory;
+import org.apache.logging.log4j.core.config.plugins.validation.constraints.Required;
+import org.apache.logging.log4j.core.layout.PatternLayout;
+import org.apache.logging.log4j.core.util.CloseShieldOutputStream;
+
+/**
+ * Appends log events to <code>System.out</code> or <code>System.err</code> using a layout specified by the user. The
+ * default target is <code>System.out</code>.
+ */
+@Plugin(name = "FastConsole", category = "Core", elementType = "appender", printObject = true)
+public final class FastConsoleAppender extends AbstractOutputStreamAppender<OutputStreamManager> {
+
+ private static ConsoleManagerFactory factory = new ConsoleManagerFactory();
+ private static final Target DEFAULT_TARGET = Target.SYSTEM_OUT;
+ private static final AtomicInteger COUNT = new AtomicInteger();
+
+ private final Target target;
+
+ /**
+ * Enumeration of console destinations.
+ */
+ public enum Target {
+ /** Standard output. */
+ SYSTEM_OUT,
+ /** Standard error output. */
+ SYSTEM_ERR
+ }
+
+ private FastConsoleAppender(final String name, final Layout<? extends Serializable> layout, final Filter filter,
+ final OutputStreamManager manager, final boolean ignoreExceptions, Target target) {
+ super(name, layout, filter, ignoreExceptions, true, manager);
+ this.target = 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 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 FastConsoleAppender createAppender(
+ // @formatter:off
+ @PluginElement("Layout") Layout<? extends Serializable> layout,
+ @PluginElement("Filter") final Filter filter,
+ @PluginAttribute(value = "target") Target target,
+ @PluginAttribute("name") final String name,
+ @PluginAttribute(value = "ignoreExceptions", defaultBoolean = true) final boolean ignoreExceptions) {
+ // @formatter:on
+ 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 FastConsoleAppender(name, layout, filter, getManager(target, layout), ignoreExceptions, target);
+ }
+
+ public static FastConsoleAppender createDefaultAppenderForLayout(final Layout<? extends Serializable> layout) {
+ // this method cannot use the builder class without introducing an infinite loop due to DefaultConfiguration
+ return new FastConsoleAppender("DefaultConsole-" + COUNT.incrementAndGet(), layout, null,
+ getDefaultManager(DEFAULT_TARGET, layout), true, DEFAULT_TARGET);
+ }
+
+ @PluginBuilderFactory
+ public static Builder newBuilder() {
+ return new Builder();
+ }
+
+ /**
+ * Builds ConsoleAppender instances.
+ */
+ public static class Builder implements org.apache.logging.log4j.core.util.Builder<FastConsoleAppender> {
+
+ @PluginElement("Layout")
+ @Required
+ private Layout<? extends Serializable> layout = PatternLayout.createDefaultLayout();
+
+ @PluginElement("Filter")
+ private Filter filter;
+
+ @PluginBuilderAttribute
+ @Required
+ private Target target = DEFAULT_TARGET;
+
+ @PluginBuilderAttribute
+ @Required
+ private String name;
+
+ @PluginBuilderAttribute
+ private boolean ignoreExceptions = true;
+
+ public Builder setLayout(final Layout<? extends Serializable> aLayout) {
+ this.layout = aLayout;
+ return this;
+ }
+
+ public Builder setFilter(final Filter aFilter) {
+ this.filter = aFilter;
+ return this;
+ }
+
+ public Builder setTarget(final Target aTarget) {
+ this.target = aTarget;
+ return this;
+ }
+
+ public Builder setName(final String aName) {
+ this.name = aName;
+ return this;
+ }
+
+ public Builder setIgnoreExceptions(final boolean shouldIgnoreExceptions) {
+ this.ignoreExceptions = shouldIgnoreExceptions;
+ return this;
+ }
+
+ @Override
+ public FastConsoleAppender build() {
+ return new FastConsoleAppender(name, layout, filter, getManager(target, layout), ignoreExceptions, target);
+ }
+ }
+
+ private static OutputStreamManager getDefaultManager(final Target target, final Layout<? extends Serializable> layout) {
+ final OutputStream os = getOutputStream(target);
+
+ // LOG4J2-1176 DefaultConfiguration should not share OutputStreamManager instances to avoid memory leaks.
+ final String managerName = target.name() + '-' + COUNT.get();
+ return OutputStreamManager.getManager(managerName, new FactoryData(os, managerName, layout), factory);
+ }
+
+ private static OutputStreamManager getManager(final Target target, final Layout<? extends Serializable> layout) {
+ final OutputStream os = getOutputStream(target);
+ final String managerName = target.name();
+ return OutputStreamManager.getManager(managerName, new FactoryData(os, managerName, layout), factory);
+ }
+
+ private static OutputStream getOutputStream(final Target target) {
+ OutputStream outputStream = target == Target.SYSTEM_OUT
+ ? new FileOutputStream(FileDescriptor.out)
+ : new FileOutputStream(FileDescriptor.err);
+ return new CloseShieldOutputStream(outputStream);
+ }
+
+ /**
+ * Data to pass to factory method.
+ */
+ private static class FactoryData {
+ private final OutputStream os;
+ private final String name;
+ private final Layout<? extends Serializable> layout;
+
+ /**
+ * Constructor.
+ *
+ * @param os The OutputStream.
+ * @param type The name of the target.
+ * @param layout A Serializable layout
+ */
+ public FactoryData(final OutputStream os, final String type, final Layout<? extends Serializable> layout) {
+ this.os = os;
+ this.name = type;
+ this.layout = layout;
+ }
+ }
+
+ /**
+ * Factory to create the Appender.
+ */
+ private static class ConsoleManagerFactory implements ManagerFactory<OutputStreamManager, FactoryData> {
+
+ /**
+ * Create an OutputStreamManager.
+ *
+ * @param name The name of the entity to manage.
+ * @param data The data required to create the entity.
+ * @return The OutputStreamManager
+ */
+ @Override
+ public OutputStreamManager createManager(final String name, final FactoryData data) {
+ return new OutputStreamManager(data.os, data.name, data.layout, true);
+ }
+ }
+
+ public Target getTarget() {
+ return target;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/06c55468/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/Log4j2AppenderComparisonBenchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/Log4j2AppenderComparisonBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/Log4j2AppenderComparisonBenchmark.java
index 0527709..a4ea02e 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/Log4j2AppenderComparisonBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/Log4j2AppenderComparisonBenchmark.java
@@ -57,12 +57,14 @@ public class Log4j2AppenderComparisonBenchmark {
private Logger rafLogger;
private Logger mmapLogger;
private Logger consoleLogger;
+ private Logger fastConsoleLogger;
private Logger noopLogger;
private Logger rewriteLogger;
private Appender fileAppender;
private Appender rafAppender;
private Appender mmapAppender;
private Appender consoleAppender;
+ private Appender fastConsoleAppender;
private Appender noopAppender;
private Appender rewriteAppender;
@@ -102,6 +104,7 @@ public class Log4j2AppenderComparisonBenchmark {
rafLogger = LogManager.getLogger("RAFLogger");
mmapLogger = LogManager.getLogger("MMapLogger");
consoleLogger = LogManager.getLogger("ConsoleLogger");
+ fastConsoleLogger = LogManager.getLogger("FastConsoleLogger");
noopLogger = LogManager.getLogger("NoopLogger");
rewriteLogger = LogManager.getLogger("RewriteLogger");
@@ -109,6 +112,7 @@ public class Log4j2AppenderComparisonBenchmark {
rafAppender = ((org.apache.logging.log4j.core.Logger) rafLogger).getAppenders().get("RandomAccessFile");
mmapAppender = ((org.apache.logging.log4j.core.Logger) mmapLogger).getAppenders().get("MemoryMappedFile");
consoleAppender = ((org.apache.logging.log4j.core.Logger) consoleLogger).getAppenders().get("Console");
+ fastConsoleAppender = ((org.apache.logging.log4j.core.Logger) fastConsoleLogger).getAppenders().get("FastConsole");
noopAppender = ((org.apache.logging.log4j.core.Logger) noopLogger).getAppenders().get("NoOp");
rewriteAppender = ((org.apache.logging.log4j.core.Logger) rewriteLogger).getAppenders().get("Rewrite");
}
@@ -218,4 +222,18 @@ public class Log4j2AppenderComparisonBenchmark {
public void appenderConsole() {
consoleAppender.append(EVENT);
}
+
+ @BenchmarkMode(Mode.Throughput)
+ @OutputTimeUnit(TimeUnit.SECONDS)
+ @Benchmark
+ public void end2endFastConsole() {
+ fastConsoleLogger.debug(MESSAGE);
+ }
+
+ @BenchmarkMode(Mode.Throughput)
+ @OutputTimeUnit(TimeUnit.SECONDS)
+ @Benchmark
+ public void appenderFastConsole() {
+ fastConsoleAppender.append(EVENT);
+ }
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/06c55468/log4j-perf/src/main/resources/log4j2-appenderComparison.xml
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/resources/log4j2-appenderComparison.xml b/log4j-perf/src/main/resources/log4j2-appenderComparison.xml
index 741a225..8ad6327 100644
--- a/log4j-perf/src/main/resources/log4j2-appenderComparison.xml
+++ b/log4j-perf/src/main/resources/log4j2-appenderComparison.xml
@@ -21,6 +21,9 @@
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d %p [%t] %c{1} %X{transactionId} - %m%n"/>
</Console>
+ <FastConsole name="FastConsole" target="SYSTEM_OUT">
+ <PatternLayout pattern="%d %p [%t] %c{1} %X{transactionId} - %m%n"/>
+ </FastConsole>
<File name="File" fileName="target/testlog4j2.log" immediateFlush="false">
<PatternLayout pattern="%d %p [%t] %c{1} %X{transactionId} - %m%n"/>
</File>
@@ -55,6 +58,9 @@
<Logger name="ConsoleLogger" level="debug" additivity="false">
<AppenderRef ref="Console"/>
</Logger>
+ <Logger name="FastConsoleLogger" level="debug" additivity="false">
+ <AppenderRef ref="FastConsole"/>
+ </Logger>
<Logger name="NoopLogger" level="debug" additivity="false">
<AppenderRef ref="NoOp"/>
</Logger>
[19/19] logging-log4j2 git commit: Fix typo
Posted by mi...@apache.org.
Fix typo
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/24bfc3e8
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/24bfc3e8
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/24bfc3e8
Branch: refs/heads/master
Commit: 24bfc3e867484b7a98fbef2623619b93562d8735
Parents: 10dbe30
Author: Mikael St�ldal <mi...@magine.com>
Authored: Tue Jun 14 09:52:06 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Tue Jun 14 09:52:06 2016 +0200
----------------------------------------------------------------------
src/changes/changes.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/24bfc3e8/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 053e712..b217bf3 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -25,7 +25,7 @@
<body>
<release version="2.6.2" date="2016-MM-DD" description="GA Release 2.6.2">
<action issue="LOG4J2-1395" dev="mikes" type="add">
- "direct" option to ConsoleAdapter for increased performance.
+ "direct" option to ConsoleAppender for increased performance.
</action>
<action issue="LOG4J2-1418" dev="mikes" type="fix">
Provide MessageFactory2 to custom Logger implementations.
[12/19] logging-log4j2 git commit: Clarify docs
Posted by mi...@apache.org.
Clarify docs
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/ad0b66eb
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/ad0b66eb
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/ad0b66eb
Branch: refs/heads/master
Commit: ad0b66eb2d2f27512d30f779c3a42a7b11823caf
Parents: 1a7715c
Author: Mikael St�ldal <mi...@magine.com>
Authored: Mon Jun 13 16:41:19 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Mon Jun 13 16:41:19 2016 +0200
----------------------------------------------------------------------
src/site/xdoc/manual/appenders.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ad0b66eb/src/site/xdoc/manual/appenders.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/appenders.xml b/src/site/xdoc/manual/appenders.xml
index 7b7aa41..9e1c44a 100644
--- a/src/site/xdoc/manual/appenders.xml
+++ b/src/site/xdoc/manual/appenders.xml
@@ -195,7 +195,8 @@
<td>boolean</td>
<td>Write directly to <code>java.io.FileDescriptor</code> and bypass <code>java.lang.System.out/.err</code>.
Can give up to 10x performance boost when the output is redirected to file or other process.
- Cannot be used with Jansi on Windows. Cannot be used with <code>follow</code>.
+ Cannot be used with Jansi on Windows. Cannot be used with <code>follow</code>. Output will not respect
+ <code>java.lang.System.setOut()/.setErr()</code>
<i>New since 2.6.2. Be aware that this is a new addition, and although it has been
tested on several platforms, it does not have as much track record as using ConsoleAppender without it.</i>
</td>
[04/19] logging-log4j2 git commit: Docs
Posted by mi...@apache.org.
Docs
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/a9bff15b
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/a9bff15b
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/a9bff15b
Branch: refs/heads/master
Commit: a9bff15bb237cc65bd2e58c6eba508cc60bc8d0f
Parents: 50d0bf1
Author: Mikael St�ldal <mi...@magine.com>
Authored: Mon May 30 17:02:49 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Mon May 30 17:02:49 2016 +0200
----------------------------------------------------------------------
src/site/xdoc/manual/appenders.xml | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/a9bff15b/src/site/xdoc/manual/appenders.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/appenders.xml b/src/site/xdoc/manual/appenders.xml
index ac562c5..065c87f 100644
--- a/src/site/xdoc/manual/appenders.xml
+++ b/src/site/xdoc/manual/appenders.xml
@@ -188,7 +188,13 @@
<td>boolean</td>
<td>Identifies whether the appender honors reassignments of System.out or System.err
via System.setOut or System.setErr made after configuration. Note that the follow
- attribute cannot be used with Jansi on Windows.</td>
+ attribute cannot be used with Jansi on Windows. Cannot be used with <code>direct</code>.</td>
+ </tr>
+ <tr>
+ <td>direct</td>
+ <td>boolean</td>
+ <td>Write directly to <code>java.io.FileDescriptor</code> and bypass <code>java.lang.System.out/.err</code>.
+ Can give up to 5x performance boost. Cannot be used with <code>follow</code>.</td>
</tr>
<tr>
<td>name</td>
[18/19] logging-log4j2 git commit: Update changes.xml
Posted by mi...@apache.org.
Update changes.xml
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/10dbe302
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/10dbe302
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/10dbe302
Branch: refs/heads/master
Commit: 10dbe3029ec97c63971737633fe00dfc252fa439
Parents: a8d466d
Author: Mikael St�ldal <mi...@magine.com>
Authored: Tue Jun 14 09:49:14 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Tue Jun 14 09:49:14 2016 +0200
----------------------------------------------------------------------
src/changes/changes.xml | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/10dbe302/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 0924f00..053e712 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -24,6 +24,9 @@
</properties>
<body>
<release version="2.6.2" date="2016-MM-DD" description="GA Release 2.6.2">
+ <action issue="LOG4J2-1395" dev="mikes" type="add">
+ "direct" option to ConsoleAdapter for increased performance.
+ </action>
<action issue="LOG4J2-1418" dev="mikes" type="fix">
Provide MessageFactory2 to custom Logger implementations.
</action>
[10/19] logging-log4j2 git commit: Merge branch 'master' into
LOG4J2-1395
Posted by mi...@apache.org.
Merge branch 'master' into LOG4J2-1395
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/22313da8
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/22313da8
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/22313da8
Branch: refs/heads/master
Commit: 22313da8c948f134d8325f51ff7139c2dce585de
Parents: 504a0e6 021da77
Author: Mikael St�ldal <mi...@magine.com>
Authored: Mon Jun 13 11:31:18 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Mon Jun 13 11:31:18 2016 +0200
----------------------------------------------------------------------
BUILDING.txt | 2 +-
.../java/org/apache/logging/log4j/Logger.java | 14 ++-
.../log4j/message/ParameterFormatter.java | 21 ++++
.../logging/log4j/spi/AbstractLogger.java | 26 +----
.../apache/logging/log4j/util/Constants.java | 61 ++++++++++
.../apache/logging/log4j/util/LoaderUtil.java | 1 +
.../org/apache/logging/log4j/util/Unbox.java | 46 +++++++-
.../log4j/core/appender/AsyncAppender.java | 3 +
.../core/appender/RollingFileAppender.java | 2 +
.../RollingRandomAccessFileAppender.java | 2 +
.../appender/rolling/RollingFileManager.java | 3 +
.../rolling/RollingRandomAccessFileManager.java | 6 +-
.../logging/log4j/core/util/Constants.java | 6 +-
.../AsyncAppenderQueueFullPolicyTest.java | 29 +++--
.../rolling/OnStartupTriggeringPolicyTest.java | 1 +
.../RandomRollingAppenderOnStartupTest.java | 110 +++++++++++++++++++
.../rolling/RollingAppenderOnStartupTest.java | 21 +++-
.../rolling/RollingAppenderSizeTest.java | 35 +++++-
.../log4j/test/appender/BlockingAppender.java | 1 +
log4j-core/src/test/resources/log4j-test5.xml | 36 ++++++
.../logging/log4j/perf/jmh/UnboxBenchmark.java | 91 +++++++++++++++
pom.xml | 3 +-
src/changes/changes.xml | 23 ++++
src/site/xdoc/articles.xml | 4 +
src/site/xdoc/manual/extending.xml | 10 +-
25 files changed, 493 insertions(+), 64 deletions(-)
----------------------------------------------------------------------
[08/19] logging-log4j2 git commit: Do not use Jansi in direct mode
Posted by mi...@apache.org.
Do not use Jansi in direct mode
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/3e3c8f43
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/3e3c8f43
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/3e3c8f43
Branch: refs/heads/master
Commit: 3e3c8f43f80e42a9d4e8d3c132dbd40b5d05c34c
Parents: 10f724f
Author: Mikael St�ldal <mi...@magine.com>
Authored: Tue Jun 7 11:31:36 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Tue Jun 7 11:31:36 2016 +0200
----------------------------------------------------------------------
.../org/apache/logging/log4j/core/appender/ConsoleAppender.java | 2 +-
src/site/xdoc/manual/appenders.xml | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3e3c8f43/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 3f86457..2e3b38f 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
@@ -265,7 +265,7 @@ public final class ConsoleAppender extends AbstractOutputStreamAppender<OutputSt
throw new IllegalStateException("Unsupported default encoding " + enc, ex);
}
final PropertiesUtil propsUtil = PropertiesUtil.getProperties();
- if (!propsUtil.isOsWindows() || propsUtil.getBooleanProperty("log4j.skipJansi")) {
+ if (!propsUtil.isOsWindows() || propsUtil.getBooleanProperty("log4j.skipJansi") || direct) {
return outputStream;
}
try {
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3e3c8f43/src/site/xdoc/manual/appenders.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/appenders.xml b/src/site/xdoc/manual/appenders.xml
index 918dd66..a1f974e 100644
--- a/src/site/xdoc/manual/appenders.xml
+++ b/src/site/xdoc/manual/appenders.xml
@@ -194,7 +194,8 @@
<td>direct</td>
<td>boolean</td>
<td>Write directly to <code>java.io.FileDescriptor</code> and bypass <code>java.lang.System.out/.err</code>.
- Can give up to 10x performance boost. Cannot be used with <code>follow</code>.</td>
+ Can give up to 10x performance boost. Cannot be used with Jansi on Windows.
+ Cannot be used with <code>follow</code>.</td>
</tr>
<tr>
<td>name</td>
[05/19] logging-log4j2 git commit: Merge branch 'master' into
LOG4J2-1395
Posted by mi...@apache.org.
Merge branch 'master' into LOG4J2-1395
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/76400477
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/76400477
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/76400477
Branch: refs/heads/master
Commit: 76400477aae680862e3001107d06faf1fe3e244f
Parents: a9bff15 2c4bdbb
Author: Mikael St�ldal <mi...@magine.com>
Authored: Tue May 31 10:18:03 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Tue May 31 10:18:03 2016 +0200
----------------------------------------------------------------------
src/site/xdoc/manual/appenders.xml | 3 ++-
src/site/xdoc/runtime-dependencies.xml | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76400477/src/site/xdoc/manual/appenders.xml
----------------------------------------------------------------------
[17/19] logging-log4j2 git commit: Merge branch 'master' into
LOG4J2-1395
Posted by mi...@apache.org.
Merge branch 'master' into LOG4J2-1395
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/a8d466da
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/a8d466da
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/a8d466da
Branch: refs/heads/master
Commit: a8d466da02f1d2f36210ff787ed0b8ea1e64eec7
Parents: 7a06cd9 86095e9
Author: Mikael St�ldal <mi...@magine.com>
Authored: Tue Jun 14 09:47:52 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Tue Jun 14 09:47:52 2016 +0200
----------------------------------------------------------------------
log4j-bom/pom.xml | 4 ++--
pom.xml | 36 +++++++++++++++++++++++++-----------
src/site/xdoc/manual/async.xml | 4 ++--
3 files changed, 29 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
[16/19] logging-log4j2 git commit: Fix formatting
Posted by mi...@apache.org.
Fix formatting
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/7a06cd98
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/7a06cd98
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/7a06cd98
Branch: refs/heads/master
Commit: 7a06cd98eb585915236e159a2d4e10558eeb4535
Parents: 069e379
Author: Mikael St�ldal <mi...@magine.com>
Authored: Mon Jun 13 20:43:06 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Mon Jun 13 20:43:06 2016 +0200
----------------------------------------------------------------------
src/site/xdoc/manual/appenders.xml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7a06cd98/src/site/xdoc/manual/appenders.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/appenders.xml b/src/site/xdoc/manual/appenders.xml
index ef675c6..f516d00 100644
--- a/src/site/xdoc/manual/appenders.xml
+++ b/src/site/xdoc/manual/appenders.xml
@@ -199,8 +199,7 @@
<code>java.lang.System.setOut()/.setErr()</code> and may get intertwined with other output to
<code>java.lang.System.out/.err</code> in a multi-threaded application.
<i>New since 2.6.2. Be aware that this is a new addition, and it has only been tested with Oracle JVM
- on Linux and Windows so far.</i>
- </td>
+ on Linux and Windows so far.</i></td>
</tr>
<tr>
<td>name</td>
[15/19] logging-log4j2 git commit: Clarify docs more
Posted by mi...@apache.org.
Clarify docs more
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/069e379f
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/069e379f
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/069e379f
Branch: refs/heads/master
Commit: 069e379f4bbe87ea6bb82c108784a9cf4d0da264
Parents: d0dacc5
Author: Mikael St�ldal <mi...@magine.com>
Authored: Mon Jun 13 20:42:24 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Mon Jun 13 20:42:24 2016 +0200
----------------------------------------------------------------------
src/site/xdoc/manual/appenders.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/069e379f/src/site/xdoc/manual/appenders.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/appenders.xml b/src/site/xdoc/manual/appenders.xml
index f1924d3..ef675c6 100644
--- a/src/site/xdoc/manual/appenders.xml
+++ b/src/site/xdoc/manual/appenders.xml
@@ -198,8 +198,8 @@
Cannot be used with Jansi on Windows. Cannot be used with <code>follow</code>. Output will not respect
<code>java.lang.System.setOut()/.setErr()</code> and may get intertwined with other output to
<code>java.lang.System.out/.err</code> in a multi-threaded application.
- <i>New since 2.6.2. Be aware that this is a new addition, and although it has been
- tested on several platforms, it does not have as much track record as using ConsoleAppender without it.</i>
+ <i>New since 2.6.2. Be aware that this is a new addition, and it has only been tested with Oracle JVM
+ on Linux and Windows so far.</i>
</td>
</tr>
<tr>
[06/19] logging-log4j2 git commit: Update docs
Posted by mi...@apache.org.
Update docs
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/05559782
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/05559782
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/05559782
Branch: refs/heads/master
Commit: 05559782b7bcdc29cd1caf6917a4ea8ec8770965
Parents: 7640047
Author: Mikael St�ldal <mi...@magine.com>
Authored: Tue May 31 10:18:33 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Tue May 31 10:18:33 2016 +0200
----------------------------------------------------------------------
src/site/xdoc/manual/appenders.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/05559782/src/site/xdoc/manual/appenders.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/appenders.xml b/src/site/xdoc/manual/appenders.xml
index d5a0c20..e99bcc3 100644
--- a/src/site/xdoc/manual/appenders.xml
+++ b/src/site/xdoc/manual/appenders.xml
@@ -194,7 +194,7 @@
<td>direct</td>
<td>boolean</td>
<td>Write directly to <code>java.io.FileDescriptor</code> and bypass <code>java.lang.System.out/.err</code>.
- Can give up to 5x performance boost. Cannot be used with <code>follow</code>.</td>
+ Can give up to 10x performance boost. Cannot be used with <code>follow</code>.</td>
</tr>
<tr>
<td>name</td>
[07/19] logging-log4j2 git commit: Merge branch 'master' into
LOG4J2-1395
Posted by mi...@apache.org.
Merge branch 'master' into LOG4J2-1395
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/10f724f3
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/10f724f3
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/10f724f3
Branch: refs/heads/master
Commit: 10f724f3043852ce7a70bbfa32fa460471a72f5d
Parents: 0555978 b06f6ce
Author: Mikael St�ldal <mi...@magine.com>
Authored: Tue Jun 7 11:26:47 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Tue Jun 7 11:26:47 2016 +0200
----------------------------------------------------------------------
RELEASE-NOTES.txt | 160 +----
log4j-1.2-api/pom.xml | 2 +-
.../java/org/apache/log4j/LogWithMDCTest.java | 6 +-
.../java/org/apache/log4j/LogWithRouteTest.java | 6 +-
log4j-api/pom.xml | 2 +-
.../logging/log4j/CloseableThreadContext.java | 11 +-
.../org/apache/logging/log4j/LogManager.java | 18 +-
.../log4j/message/AbstractMessageFactory.java | 110 ++-
.../log4j/message/FormattedMessageFactory.java | 97 ++-
.../log4j/message/LocalizedMessageFactory.java | 10 +-
.../logging/log4j/message/MessageFactory2.java | 2 +
.../log4j/message/MessageFormatMessage.java | 2 +-
.../message/MessageFormatMessageFactory.java | 93 ++-
.../log4j/message/ParameterFormatter.java | 10 +-
.../log4j/message/ParameterizedMessage.java | 6 +-
.../message/ParameterizedMessageFactory.java | 105 ++-
.../ParameterizedNoReferenceMessageFactory.java | 12 +-
.../log4j/message/ReusableMessageFactory.java | 6 +-
.../log4j/message/ReusableObjectMessage.java | 2 +-
.../message/ReusableParameterizedMessage.java | 77 ++-
.../log4j/message/ReusableSimpleMessage.java | 4 +-
.../logging/log4j/message/SimpleMessage.java | 4 +-
.../log4j/message/SimpleMessageFactory.java | 102 ++-
.../log4j/message/StringFormattedMessage.java | 6 +
.../message/StringFormatterMessageFactory.java | 94 ++-
.../log4j/simple/SimpleLoggerContext.java | 4 +-
.../logging/log4j/spi/LoggerRegistry.java | 2 +-
.../org/apache/logging/log4j/spi/Provider.java | 4 +-
.../apache/logging/log4j/status/StatusData.java | 2 +-
.../logging/log4j/status/StatusLogger.java | 2 +-
.../apache/logging/log4j/util/Activator.java | 1 +
.../apache/logging/log4j/util/LambdaUtil.java | 2 +-
.../org/apache/logging/log4j/util/Supplier.java | 1 +
.../org/apache/logging/log4j/util/Unbox.java | 76 +-
.../logging/log4j/AbstractLoggerTest.java | 4 +-
.../apache/logging/log4j/LogManagerTest.java | 2 +-
.../org/apache/logging/log4j/LoggerTest.java | 16 +-
.../apache/logging/log4j/TestLoggerContext.java | 4 +-
.../logging/log4j/message/JsonMessage.java | 2 +-
.../log4j/message/ParameterFormatterTest.java | 12 +-
.../message/ReusableObjectMessageTest.java | 18 +-
.../ReusableParameterizedMessageTest.java | 15 +-
.../message/ReusableSimpleMessageTest.java | 18 +-
.../log4j/util/UnboxConfigurableTest.java | 67 ++
.../apache/logging/log4j/util/UnboxTest.java | 24 +-
log4j-bom/pom.xml | 8 +-
log4j-core/pom.xml | 6 +-
.../org/apache/logging/log4j/core/Logger.java | 4 +-
.../logging/log4j/core/LoggerContext.java | 4 +-
.../log4j/core/appender/AbstractManager.java | 10 +-
.../log4j/core/appender/AsyncAppender.java | 2 +-
.../log4j/core/appender/ConsoleAppender.java | 2 +-
.../core/appender/CountingNoOpAppender.java | 6 +-
.../core/appender/OutputStreamManager.java | 15 +-
.../log4j/core/appender/SocketAppender.java | 4 +-
.../core/appender/mom/kafka/KafkaAppender.java | 226 +++---
.../appender/rolling/CronTriggeringPolicy.java | 10 +-
.../rolling/DefaultRolloverStrategy.java | 12 +-
.../log4j/core/appender/rolling/FileSize.java | 180 ++---
.../rolling/OnStartupTriggeringPolicy.java | 48 +-
.../appender/rolling/RollingFileManager.java | 4 +-
.../appender/rolling/action/DeleteAction.java | 2 +-
.../core/appender/rolling/action/Duration.java | 514 +++++++-------
.../rolling/action/FileRenameAction.java | 52 +-
.../core/appender/rolling/action/IfAll.java | 232 +++----
.../core/appender/rolling/action/IfAny.java | 172 ++---
.../core/appender/routing/IdlePurgePolicy.java | 20 +-
.../core/appender/routing/RoutingAppender.java | 6 +-
.../logging/log4j/core/async/AsyncLogger.java | 4 +-
...syncLoggerConfigDefaultExceptionHandler.java | 4 +-
.../core/async/AsyncLoggerConfigDisruptor.java | 2 +-
.../log4j/core/async/AsyncLoggerContext.java | 4 +-
.../AsyncLoggerDefaultExceptionHandler.java | 4 +-
.../log4j/core/async/AsyncLoggerDisruptor.java | 472 ++++++-------
.../logging/log4j/core/async/DisruptorUtil.java | 2 +-
.../log4j/core/async/RingBufferLogEvent.java | 16 +-
.../core/config/AbstractConfiguration.java | 16 +-
.../log4j/core/config/AppenderControl.java | 2 +-
.../AwaitCompletionReliabilityStrategy.java | 350 +++++-----
...AwaitUnconditionallyReliabilityStrategy.java | 246 +++----
.../log4j/core/config/ConfigurationFactory.java | 10 +-
.../core/config/ConfigurationScheduler.java | 30 +-
.../log4j/core/config/ConfigurationSource.java | 6 +-
.../core/config/ConfiguratonFileWatcher.java | 4 +-
.../logging/log4j/core/config/Configurator.java | 688 +++++++++----------
.../core/config/DefaultReliabilityStrategy.java | 214 +++---
.../core/config/LockingReliabilityStrategy.java | 270 ++++----
.../core/config/ReliabilityStrategyFactory.java | 140 ++--
.../config/builder/impl/BuiltConfiguration.java | 6 +-
.../impl/DefaultConfigurationBuilder.java | 20 +-
.../impl/DefaultLoggerComponentBuilder.java | 4 +-
.../impl/DefaultScriptFileComponentBuilder.java | 8 +-
.../composite/CompositeConfiguration.java | 52 +-
.../config/composite/DefaultMergeStrategy.java | 76 +-
.../core/config/json/JsonConfiguration.java | 2 +-
.../properties/PropertiesConfiguration.java | 2 +-
.../PropertiesConfigurationBuilder.java | 68 +-
.../PropertiesConfigurationFactory.java | 2 +-
.../log4j/core/config/xml/XmlConfiguration.java | 6 +-
.../log4j/core/filter/AbstractFilterable.java | 14 +-
.../logging/log4j/core/filter/BurstFilter.java | 2 +-
.../log4j/core/filter/CompositeFilter.java | 27 +-
.../core/filter/DynamicThresholdFilter.java | 2 +-
.../logging/log4j/core/filter/ScriptFilter.java | 16 +-
.../logging/log4j/core/filter/TimeFilter.java | 2 +-
.../log4j/core/impl/Log4jContextFactory.java | 8 +-
.../logging/log4j/core/impl/Log4jLogEvent.java | 34 +-
.../log4j/core/impl/MutableLogEvent.java | 34 +-
.../log4j/core/layout/AbstractStringLayout.java | 2 +-
.../log4j/core/layout/CsvLogEventLayout.java | 3 -
.../logging/log4j/core/layout/GelfLayout.java | 12 +-
.../log4j/core/layout/JacksonFactory.java | 4 +-
.../core/layout/MarkerPatternSelector.java | 20 +-
.../log4j/core/layout/PatternLayout.java | 4 +-
.../core/layout/ScriptPatternSelector.java | 24 +-
.../log4j/core/layout/TextEncoderHelper.java | 4 +-
.../logging/log4j/core/net/SmtpManager.java | 4 +-
.../log4j/core/net/TcpSocketManager.java | 2 +-
.../pattern/EqualsReplacementConverter.java | 2 +-
.../ExtendedThrowablePatternConverter.java | 2 +-
.../core/pattern/MessagePatternConverter.java | 2 +-
.../log4j/core/pattern/NameAbbreviator.java | 4 +-
.../pattern/RootThrowablePatternConverter.java | 2 +-
.../VariablesNotEmptyReplacementConverter.java | 2 +-
.../logging/log4j/core/script/Script.java | 2 +-
.../logging/log4j/core/script/ScriptFile.java | 12 +-
.../log4j/core/script/ScriptManager.java | 14 +-
.../logging/log4j/core/script/ScriptRef.java | 8 +-
.../logging/log4j/core/util/CronExpression.java | 180 ++---
.../logging/log4j/core/util/DummyNanoClock.java | 96 +--
.../core/util/ExtensionLanguageMapping.java | 6 +-
.../logging/log4j/core/util/FileUtils.java | 4 +-
.../logging/log4j/core/util/JsonUtils.java | 14 +-
.../logging/log4j/core/util/StringEncoder.java | 14 +-
.../logging/log4j/core/util/Throwables.java | 60 +-
.../logging/log4j/core/util/WatchManager.java | 22 +-
.../core/util/datetime/FixedDateFormat.java | 686 +++++++++---------
.../core/GcFreeAsynchronousLoggingTest.java | 2 +-
.../log4j/core/GcFreeLoggingTestUtil.java | 6 +-
.../core/GcFreeMixedSyncAyncLoggingTest.java | 2 +-
.../core/GcFreeSynchronousLoggingTest.java | 2 +-
.../logging/log4j/core/Log4j1222Test.java | 2 +-
.../apache/logging/log4j/core/LogEventTest.java | 4 +-
.../apache/logging/log4j/core/LoggerTest.java | 14 +-
.../logging/log4j/core/PatternSelectorTest.java | 16 +-
.../log4j/core/PropertiesFileConfigTest.java | 2 +-
.../AsyncAppenderQueueFullPolicyTest.java | 6 +-
.../log4j/core/appender/HangingAppender.java | 6 +-
.../log4j/core/appender/SocketAppenderTest.java | 2 +-
.../appender/XmlCompleteFileAppenderTest.java | 2 +-
.../appender/mom/kafka/KafkaAppenderTest.java | 292 ++++----
.../rolling/OnStartupTriggeringPolicyTest.java | 69 +-
.../rolling/RollingAppenderCronTest.java | 10 +-
.../RollingAppenderCustomDeleteActionTest.java | 12 +-
...lingAppenderDeleteAccumulatedCount1Test.java | 24 +-
...lingAppenderDeleteAccumulatedCount2Test.java | 24 +-
...ollingAppenderDeleteAccumulatedSizeTest.java | 4 +-
.../RollingAppenderDeleteMaxDepthTest.java | 24 +-
.../RollingAppenderDeleteNestedTest.java | 24 +-
.../RollingAppenderDeleteScriptFri13thTest.java | 8 +-
.../RollingAppenderDeleteScriptTest.java | 8 +-
...ollingAppenderNoUnconditionalDeleteTest.java | 6 +-
.../rolling/RollingAppenderOnStartupTest.java | 100 +++
.../rolling/RollingAppenderSizeTest.java | 14 +-
.../rolling/action/CountingCondition.java | 124 ++--
.../rolling/action/DeleteActionTest.java | 238 +++----
.../rolling/action/DeletingVisitorTest.java | 270 ++++----
.../appender/rolling/action/DurationTest.java | 298 ++++----
.../appender/rolling/action/FixedCondition.java | 88 +--
.../action/IfAccumulatedFileCountTest.java | 150 ++--
.../action/IfAccumulatedFileSizeTest.java | 260 +++----
.../rolling/action/IfLastModifiedTest.java | 194 +++---
.../action/PathSortByModificationTimeTest.java | 186 ++---
.../rolling/action/ScriptConditionTest.java | 260 +++----
.../rolling/action/SortingVisitorTest.java | 188 ++---
.../routing/RoutingAppenderWithPurgingTest.java | 6 +-
.../core/async/AsyncLoggerTestNanoTime.java | 2 +-
.../async/AsyncQueueFullPolicyFactoryTest.java | 4 +-
.../async/DefaultAsyncQueueFullPolicyTest.java | 4 +-
.../DiscardingAsyncQueueFullPolicyTest.java | 22 +-
.../core/async/perftest/PerfTestDriver.java | 4 +-
.../core/async/perftest/ResponseTimeTest.java | 42 +-
.../core/async/perftest/SimplePerfTest.java | 28 +-
.../core/config/AbstractLog4j2_1100Test.java | 136 ++--
.../config/AppenderControlArraySetTest.java | 12 +-
.../core/config/CompositeConfigurationTest.java | 8 +-
.../log4j/core/config/ConfiguratorTest.java | 94 +--
.../log4j/core/config/TestConfigurator.java | 20 +-
.../builder/ConfigurationAssemblerTest.java | 14 +-
.../builder/CustomConfigurationFactory.java | 8 +-
...opertiesConfigurationRootLoggerOnlyTest.java | 10 +-
.../properties/PropertiesConfigurationTest.java | 10 +-
.../properties/RollingFilePropertiesTest.java | 10 +-
.../core/filter/AbstractFilterableTest.java | 281 ++++++++
.../core/filter/AbstractScriptFilterTest.java | 8 +-
.../core/impl/Log4jLogEventNanoTimeTest.java | 2 +-
.../log4j/core/impl/Log4jLogEventTest.java | 18 +-
.../log4j/core/impl/MutableLogEventTest.java | 12 +-
.../core/impl/ReusableLogEventFactoryTest.java | 12 +-
.../log4j/core/impl/ThrowableProxyTest.java | 2 +-
.../core/layout/CsvLogEventLayoutTest.java | 340 ++++-----
.../layout/CsvParameterLayoutAllAsyncTest.java | 6 +-
.../core/layout/CsvParameterLayoutTest.java | 322 ++++-----
.../log4j/core/layout/GelfLayoutTest.java | 6 +-
.../log4j/core/layout/HtmlLayoutTest.java | 2 +-
.../log4j/core/layout/JsonLayoutTest.java | 2 +-
.../layout/PatternLayoutMainMapLookupTest.java | 128 ++--
.../log4j/core/layout/PatternLayoutTest.java | 12 +-
.../log4j/core/layout/PatternSelectorTest.java | 130 ++--
.../log4j/core/layout/Rfc5424LayoutTest.java | 2 +-
.../log4j/core/layout/SerializedLayoutTest.java | 2 +-
.../core/layout/SpyByteBufferDestination.java | 2 +-
.../core/layout/StringBuilderEncoderTest.java | 6 +-
.../log4j/core/layout/SyslogLayoutTest.java | 2 +-
.../log4j/core/layout/XmlLayoutTest.java | 2 +-
.../log4j/core/layout/YamlLayoutTest.java | 6 +-
.../server/UdpSerializedSocketServerTest.java | 2 +
.../core/net/ssl/SslConfigurationTest.java | 4 +-
.../core/pattern/DatePatternConverterTest.java | 2 +-
...qualsIgnoreCaseReplacementConverterTest.java | 2 +-
.../pattern/EqualsReplacementConverterTest.java | 2 +-
.../log4j/core/pattern/PatternParserTest.java | 12 +-
...riablesNotEmptyReplacementConverterTest.java | 2 +-
.../log4j/core/util/CronExpressionTest.java | 32 +-
.../logging/log4j/core/util/ThrowablesTest.java | 4 +-
.../log4j/core/util/WatchManagerTest.java | 20 +-
.../apache/logging/log4j/junit/CleanFiles.java | 6 +-
.../logging/log4j/junit/LoggerContextRule.java | 92 +--
...MutableLogEventWithReusableParamMsgTest.java | 53 ++
.../log4j/test/appender/BlockingAppender.java | 2 +-
.../test/appender/EncodingListAppender.java | 12 +-
.../log4j/test/appender/ListAppender.java | 68 +-
.../src/test/resources/log4j-rolling.properties | 24 +-
log4j-core/src/test/resources/log4j-test4.xml | 36 +
log4j-distribution/pom.xml | 2 +-
log4j-flume-ng/pom.xml | 2 +-
.../log4j/flume/appender/FlumeAppenderTest.java | 2 +-
log4j-iostreams/pom.xml | 2 +-
log4j-jcl/pom.xml | 2 +-
log4j-jmx-gui/pom.xml | 2 +-
log4j-jul/pom.xml | 2 +-
.../logging/log4j/jul/AbstractLoggerTest.java | 4 +-
log4j-liquibase/pom.xml | 2 +-
log4j-nosql/pom.xml | 2 +-
.../nosql/appender/mongodb/MongoDbProvider.java | 4 +-
log4j-perf/pom.xml | 2 +-
.../message/ParameterFormatterBenchmark.java | 40 +-
...ractStringLayoutStringEncodingBenchmark.java | 32 +-
.../log4j/perf/jmh/CollectionsBenchmark.java | 12 +-
.../log4j/perf/jmh/FileAppenderBenchmark.java | 10 +-
.../perf/jmh/FileAppenderParamsBenchmark.java | 10 +-
.../jmh/Log4j2AppenderComparisonBenchmark.java | 6 +-
.../log4j/perf/jmh/LoggerConfigBenchmark.java | 2 +-
.../jmh/MemoryHandlerJULLocationBenchmark.java | 2 +-
.../perf/jmh/ParameterizedMessageBenchmark.java | 2 +-
.../ParameterizedMessageInliningBenchmark.java | 20 +-
.../jmh/PatternLayoutComparisonBenchmark.java | 2 +-
.../log4j/perf/jmh/StringEncodingBenchmark.java | 30 +-
.../perf/jmh/TextEncoderHelperBenchmark.java | 12 +-
...ThreadLocalVsConcurrentHashMapBenchmark.java | 6 +-
.../perf/jmh/ThreadLocalVsPoolBenchmark.java | 14 +-
.../perf/jmh/ThreadsafeDateFormatBenchmark.java | 4 +-
.../log4j/perf/jmh/VarargsBenchmark.java | 6 +-
.../logging/log4j/perf/nogc/AbstractLogger.java | 6 +-
.../logging/log4j/perf/nogc/ClassicLogger.java | 2 +-
.../logging/log4j/perf/nogc/DemoAppender.java | 12 +-
.../logging/log4j/perf/nogc/NoGcLayout.java | 16 +-
.../logging/log4j/perf/nogc/NoGcLogger.java | 2 +-
.../logging/log4j/perf/nogc/NoGcMessage.java | 10 +-
.../log4j/perf/nogc/ParameterizedMessage.java | 6 +-
.../apache/logging/log4j/perf/nogc/Test.java | 24 +-
.../logging/log4j/perf/util/DemoAppender.java | 10 +-
log4j-samples/configuration/pom.xml | 2 +-
.../configuration/CustomConfiguration.java | 2 +-
log4j-samples/flume-common/pom.xml | 2 +-
log4j-samples/flume-embedded/pom.xml | 2 +-
log4j-samples/flume-remote/pom.xml | 2 +-
log4j-samples/loggerProperties/pom.xml | 2 +-
.../logging/log4j/lookup/CustomLookup.java | 8 +-
.../logging/log4j/lookup/CustomMapMessage.java | 2 +-
.../logging/log4j/lookup/MapMessageLookup.java | 10 +-
.../logging/log4j/CustomPropertiesTest.java | 8 +-
log4j-samples/pom.xml | 2 +-
log4j-slf4j-impl/pom.xml | 2 +-
log4j-taglib/pom.xml | 2 +-
.../log4j/taglib/Log4jTaglibLoggerContext.java | 4 +-
log4j-to-slf4j/pom.xml | 2 +-
.../logging/slf4j/SLF4JLoggerContext.java | 4 +-
log4j-web/pom.xml | 2 +-
.../log4j/web/ServletRequestThreadContext.java | 8 +-
log4j-web/src/site/xdoc/index.xml | 16 -
pom.xml | 6 +-
src/changes/announcement.vm | 20 +-
src/changes/changes.xml | 36 +-
src/site/resources/images/logo.png | Bin 0 -> 41622 bytes
.../resources/logo/logo-lightning-2.6.1.png | Bin 0 -> 41622 bytes
.../resources/logo/logo-lightning-2.6.1.xcf | Bin 0 -> 65630 bytes
src/site/resources/logo/logo.jpg | Bin 0 -> 14818 bytes
src/site/site.vm | 8 +-
src/site/site.xml | 7 +-
src/site/xdoc/articles.xml | 8 +
src/site/xdoc/faq.xml | 51 +-
src/site/xdoc/index.xml | 142 ----
src/site/xdoc/index.xml.vm | 164 +++++
src/site/xdoc/manual/appenders.xml | 10 +-
src/site/xdoc/manual/configuration.xml.vm | 24 +-
src/site/xdoc/manual/extending.xml | 112 +++
src/site/xdoc/manual/garbagefree.xml | 15 +-
src/site/xdoc/manual/layouts.xml.vm | 4 +-
src/site/xdoc/manual/messages.xml | 14 +-
310 files changed, 7146 insertions(+), 5780 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/10f724f3/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/10f724f3/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/Log4j2AppenderComparisonBenchmark.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/10f724f3/src/site/xdoc/manual/appenders.xml
----------------------------------------------------------------------
[09/19] logging-log4j2 git commit: Update docs.
Posted by mi...@apache.org.
Update docs.
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/504a0e6a
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/504a0e6a
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/504a0e6a
Branch: refs/heads/master
Commit: 504a0e6a8d99d27aeff7f43d7b2a4909333575c7
Parents: 3e3c8f4
Author: Mikael St�ldal <mi...@magine.com>
Authored: Tue Jun 7 11:52:35 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Tue Jun 7 11:52:35 2016 +0200
----------------------------------------------------------------------
src/site/xdoc/manual/appenders.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/504a0e6a/src/site/xdoc/manual/appenders.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/appenders.xml b/src/site/xdoc/manual/appenders.xml
index a1f974e..cdda74d 100644
--- a/src/site/xdoc/manual/appenders.xml
+++ b/src/site/xdoc/manual/appenders.xml
@@ -194,8 +194,8 @@
<td>direct</td>
<td>boolean</td>
<td>Write directly to <code>java.io.FileDescriptor</code> and bypass <code>java.lang.System.out/.err</code>.
- Can give up to 10x performance boost. Cannot be used with Jansi on Windows.
- Cannot be used with <code>follow</code>.</td>
+ Can give up to 10x performance boost when the output is redirected to file or other process.
+ Cannot be used with Jansi on Windows. Cannot be used with <code>follow</code>.</td>
</tr>
<tr>
<td>name</td>
[14/19] logging-log4j2 git commit: Merge branch 'master' into
LOG4J2-1395
Posted by mi...@apache.org.
Merge branch 'master' into LOG4J2-1395
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/d0dacc51
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/d0dacc51
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/d0dacc51
Branch: refs/heads/master
Commit: d0dacc513de20d719b0c2e99f4f071b6efdcebad
Parents: 349c5eb 0cf1df0
Author: Mikael St�ldal <mi...@magine.com>
Authored: Mon Jun 13 20:41:00 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Mon Jun 13 20:41:00 2016 +0200
----------------------------------------------------------------------
.../logging/log4j/core/LoggerContext.java | 5 +++
.../logging/log4j/core/async/AsyncLogger.java | 1 -
src/site/xdoc/articles.xml | 33 ++++++++++++++++++++
src/site/xdoc/manual/configuration.xml.vm | 6 ++++
4 files changed, 44 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
[11/19] logging-log4j2 git commit: Update docs
Posted by mi...@apache.org.
Update docs
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/1a7715c9
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/1a7715c9
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/1a7715c9
Branch: refs/heads/master
Commit: 1a7715c93142941ac4e10f0bb9259d79e9070f5e
Parents: 22313da
Author: Mikael St�ldal <mi...@magine.com>
Authored: Mon Jun 13 11:33:43 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Mon Jun 13 11:33:43 2016 +0200
----------------------------------------------------------------------
src/site/xdoc/manual/appenders.xml | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1a7715c9/src/site/xdoc/manual/appenders.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/appenders.xml b/src/site/xdoc/manual/appenders.xml
index cdda74d..7b7aa41 100644
--- a/src/site/xdoc/manual/appenders.xml
+++ b/src/site/xdoc/manual/appenders.xml
@@ -195,7 +195,10 @@
<td>boolean</td>
<td>Write directly to <code>java.io.FileDescriptor</code> and bypass <code>java.lang.System.out/.err</code>.
Can give up to 10x performance boost when the output is redirected to file or other process.
- Cannot be used with Jansi on Windows. Cannot be used with <code>follow</code>.</td>
+ Cannot be used with Jansi on Windows. Cannot be used with <code>follow</code>.
+ <i>New since 2.6.2. Be aware that this is a new addition, and although it has been
+ tested on several platforms, it does not have as much track record as using ConsoleAppender without it.</i>
+ </td>
</tr>
<tr>
<td>name</td>
[03/19] logging-log4j2 git commit: direct paramter to ConsoleAppender
Posted by mi...@apache.org.
direct paramter to ConsoleAppender
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/50d0bf16
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/50d0bf16
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/50d0bf16
Branch: refs/heads/master
Commit: 50d0bf16861503e41954c74be9db869308b3a3e2
Parents: c0366fd
Author: Mikael St�ldal <mi...@magine.com>
Authored: Mon May 30 16:34:19 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Mon May 30 16:34:19 2016 +0200
----------------------------------------------------------------------
.../log4j/core/appender/ConsoleAppender.java | 56 +++--
.../core/appender/FastConsoleAppender.java | 227 -------------------
.../core/appender/ConsoleAppenderTest.java | 14 +-
.../jmh/Log4j2AppenderComparisonBenchmark.java | 16 +-
.../resources/log4j2-appenderComparison.xml | 8 +-
5 files changed, 57 insertions(+), 264 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/50d0bf16/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 4e1e87c..64a3a5b 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
@@ -16,6 +16,8 @@
*/
package org.apache.logging.log4j.core.appender;
+import java.io.FileDescriptor;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
@@ -80,12 +82,12 @@ public final class ConsoleAppender extends AbstractOutputStreamAppender<OutputSt
* @param layout The layout to use (required).
* @param filter The Filter or null.
* @param targetStr 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 follow If true will follow changes to the underlying output stream.
* @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, boolean, boolean)}.
+ * @deprecated Use {@link #createAppender(Layout, Filter, Target, String, boolean, boolean, boolean)}.
*/
@Deprecated
public static ConsoleAppender createAppender(Layout<? extends Serializable> layout,
@@ -104,7 +106,7 @@ public final class ConsoleAppender extends AbstractOutputStreamAppender<OutputSt
final boolean isFollow = Boolean.parseBoolean(follow);
final boolean ignoreExceptions = Booleans.parseBoolean(ignore, true);
final Target target = targetStr == null ? DEFAULT_TARGET : Target.valueOf(targetStr);
- return new ConsoleAppender(name, layout, filter, getManager(target, isFollow, layout), ignoreExceptions, target);
+ return new ConsoleAppender(name, layout, filter, getManager(target, isFollow, false, layout), ignoreExceptions, target);
}
/**
@@ -113,8 +115,10 @@ public final class ConsoleAppender extends AbstractOutputStreamAppender<OutputSt
* @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 follow If true will follow changes to the underlying output stream.
+ * @param direct If true will write directly to {@link java.io.FileDescriptor} and bypass
+ * {@link System#out}/{@link System#err}.
* @param ignoreExceptions If {@code "true"} (default) exceptions encountered when appending events are logged; otherwise they
* are propagated to the caller.
* @return The ConsoleAppender.
@@ -127,6 +131,7 @@ public final class ConsoleAppender extends AbstractOutputStreamAppender<OutputSt
@PluginAttribute(value = "target") Target target,
@PluginAttribute("name") final String name,
@PluginAttribute(value = "follow", defaultBoolean = false) final boolean follow,
+ @PluginAttribute(value = "direct", defaultBoolean = false) final boolean direct,
@PluginAttribute(value = "ignoreExceptions", defaultBoolean = true) final boolean ignoreExceptions) {
// @formatter:on
if (name == null) {
@@ -137,13 +142,17 @@ public final class ConsoleAppender extends AbstractOutputStreamAppender<OutputSt
layout = PatternLayout.createDefaultLayout();
}
target = target == null ? Target.SYSTEM_OUT : target;
- return new ConsoleAppender(name, layout, filter, getManager(target, follow, layout), ignoreExceptions, target);
+ if (follow && direct) {
+ LOGGER.error("Cannot use both follow and direct on ConsoleAppender");
+ return null;
+ }
+ return new ConsoleAppender(name, layout, filter, getManager(target, follow, direct, 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,
- getDefaultManager(DEFAULT_TARGET, false, layout), true, DEFAULT_TARGET);
+ getDefaultManager(DEFAULT_TARGET, false, false, layout), true, DEFAULT_TARGET);
}
@PluginBuilderFactory
@@ -175,6 +184,9 @@ public final class ConsoleAppender extends AbstractOutputStreamAppender<OutputSt
private boolean follow = false;
@PluginBuilderAttribute
+ private boolean direct = false;
+
+ @PluginBuilderAttribute
private boolean ignoreExceptions = true;
public Builder setLayout(final Layout<? extends Serializable> aLayout) {
@@ -202,6 +214,11 @@ public final class ConsoleAppender extends AbstractOutputStreamAppender<OutputSt
return this;
}
+ public Builder setDirect(final boolean shouldDirect) {
+ this.direct = shouldDirect;
+ return this;
+ }
+
public Builder setIgnoreExceptions(final boolean shouldIgnoreExceptions) {
this.ignoreExceptions = shouldIgnoreExceptions;
return this;
@@ -209,34 +226,39 @@ public final class ConsoleAppender extends AbstractOutputStreamAppender<OutputSt
@Override
public ConsoleAppender build() {
- return new ConsoleAppender(name, layout, filter, getManager(target, follow, layout), ignoreExceptions, target);
+ if (follow && direct) {
+ throw new IllegalArgumentException("Cannot use both follow and direct on ConsoleAppender");
+ }
+ return new ConsoleAppender(name, layout, filter, getManager(target, follow, direct, layout), ignoreExceptions, target);
}
}
- private static OutputStreamManager getDefaultManager(final Target target, final boolean follow,
+ private static OutputStreamManager getDefaultManager(final Target target, final boolean follow, final boolean direct,
final Layout<? extends Serializable> layout) {
- final OutputStream os = getOutputStream(follow, target);
+ final OutputStream os = getOutputStream(follow, direct, target);
// LOG4J2-1176 DefaultConfiguration should not share OutputStreamManager instances to avoid memory leaks.
- final String managerName = target.name() + '.' + follow + "-" + COUNT.get();
+ final String managerName = target.name() + '.' + follow + '.' + direct + "-" + COUNT.get();
return OutputStreamManager.getManager(managerName, new FactoryData(os, managerName, layout), factory);
}
- private static OutputStreamManager getManager(final Target target, final boolean follow,
+ private static OutputStreamManager getManager(final Target target, final boolean follow, final boolean direct,
final Layout<? extends Serializable> layout) {
- final OutputStream os = getOutputStream(follow, target);
- final String managerName = target.name() + '.' + follow;
+ final OutputStream os = getOutputStream(follow, direct, target);
+ final String managerName = target.name() + '.' + follow + '.' + direct;
return OutputStreamManager.getManager(managerName, new FactoryData(os, managerName, layout), factory);
}
- private static OutputStream getOutputStream(final boolean follow, final Target target) {
+ private static OutputStream getOutputStream(final boolean follow, final boolean direct, final Target target) {
final String enc = Charset.defaultCharset().name();
- OutputStream outputStream = null;
+ OutputStream outputStream;
try {
// @formatter:off
outputStream = target == Target.SYSTEM_OUT ?
- follow ? new PrintStream(new SystemOutStream(), true, enc) : System.out :
- follow ? new PrintStream(new SystemErrStream(), true, enc) : System.err;
+ direct ? new FileOutputStream(FileDescriptor.out) :
+ (follow ? new PrintStream(new SystemOutStream(), true, enc) : System.out) :
+ direct ? new FileOutputStream(FileDescriptor.err) :
+ (follow ? new PrintStream(new SystemErrStream(), true, enc) : System.err);
// @formatter:on
outputStream = new CloseShieldOutputStream(outputStream);
} catch (final UnsupportedEncodingException ex) { // should never happen
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/50d0bf16/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FastConsoleAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FastConsoleAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FastConsoleAppender.java
deleted file mode 100644
index a7cd905..0000000
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FastConsoleAppender.java
+++ /dev/null
@@ -1,227 +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.log4j.core.appender;
-
-import java.io.FileDescriptor;
-import java.io.FileOutputStream;
-import java.io.OutputStream;
-import java.io.Serializable;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.logging.log4j.core.Filter;
-import org.apache.logging.log4j.core.Layout;
-import org.apache.logging.log4j.core.config.plugins.Plugin;
-import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
-import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute;
-import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
-import org.apache.logging.log4j.core.config.plugins.PluginElement;
-import org.apache.logging.log4j.core.config.plugins.PluginFactory;
-import org.apache.logging.log4j.core.config.plugins.validation.constraints.Required;
-import org.apache.logging.log4j.core.layout.PatternLayout;
-import org.apache.logging.log4j.core.util.CloseShieldOutputStream;
-
-/**
- * Appends log events to <code>System.out</code> or <code>System.err</code> using a layout specified by the user. The
- * default target is <code>System.out</code>.
- */
-@Plugin(name = "FastConsole", category = "Core", elementType = "appender", printObject = true)
-public final class FastConsoleAppender extends AbstractOutputStreamAppender<OutputStreamManager> {
-
- private static ConsoleManagerFactory factory = new ConsoleManagerFactory();
- private static final Target DEFAULT_TARGET = Target.SYSTEM_OUT;
- private static final AtomicInteger COUNT = new AtomicInteger();
-
- private final Target target;
-
- /**
- * Enumeration of console destinations.
- */
- public enum Target {
- /** Standard output. */
- SYSTEM_OUT,
- /** Standard error output. */
- SYSTEM_ERR
- }
-
- private FastConsoleAppender(final String name, final Layout<? extends Serializable> layout, final Filter filter,
- final OutputStreamManager manager, final boolean ignoreExceptions, Target target) {
- super(name, layout, filter, ignoreExceptions, true, manager);
- this.target = 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 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 FastConsoleAppender createAppender(
- // @formatter:off
- @PluginElement("Layout") Layout<? extends Serializable> layout,
- @PluginElement("Filter") final Filter filter,
- @PluginAttribute(value = "target") Target target,
- @PluginAttribute("name") final String name,
- @PluginAttribute(value = "ignoreExceptions", defaultBoolean = true) final boolean ignoreExceptions) {
- // @formatter:on
- 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 FastConsoleAppender(name, layout, filter, getManager(target, layout), ignoreExceptions, target);
- }
-
- public static FastConsoleAppender createDefaultAppenderForLayout(final Layout<? extends Serializable> layout) {
- // this method cannot use the builder class without introducing an infinite loop due to DefaultConfiguration
- return new FastConsoleAppender("DefaultConsole-" + COUNT.incrementAndGet(), layout, null,
- getDefaultManager(DEFAULT_TARGET, layout), true, DEFAULT_TARGET);
- }
-
- @PluginBuilderFactory
- public static Builder newBuilder() {
- return new Builder();
- }
-
- /**
- * Builds ConsoleAppender instances.
- */
- public static class Builder implements org.apache.logging.log4j.core.util.Builder<FastConsoleAppender> {
-
- @PluginElement("Layout")
- @Required
- private Layout<? extends Serializable> layout = PatternLayout.createDefaultLayout();
-
- @PluginElement("Filter")
- private Filter filter;
-
- @PluginBuilderAttribute
- @Required
- private Target target = DEFAULT_TARGET;
-
- @PluginBuilderAttribute
- @Required
- private String name;
-
- @PluginBuilderAttribute
- private boolean ignoreExceptions = true;
-
- public Builder setLayout(final Layout<? extends Serializable> aLayout) {
- this.layout = aLayout;
- return this;
- }
-
- public Builder setFilter(final Filter aFilter) {
- this.filter = aFilter;
- return this;
- }
-
- public Builder setTarget(final Target aTarget) {
- this.target = aTarget;
- return this;
- }
-
- public Builder setName(final String aName) {
- this.name = aName;
- return this;
- }
-
- public Builder setIgnoreExceptions(final boolean shouldIgnoreExceptions) {
- this.ignoreExceptions = shouldIgnoreExceptions;
- return this;
- }
-
- @Override
- public FastConsoleAppender build() {
- return new FastConsoleAppender(name, layout, filter, getManager(target, layout), ignoreExceptions, target);
- }
- }
-
- private static OutputStreamManager getDefaultManager(final Target target, final Layout<? extends Serializable> layout) {
- final OutputStream os = getOutputStream(target);
-
- // LOG4J2-1176 DefaultConfiguration should not share OutputStreamManager instances to avoid memory leaks.
- final String managerName = target.name() + '-' + COUNT.get();
- return OutputStreamManager.getManager(managerName, new FactoryData(os, managerName, layout), factory);
- }
-
- private static OutputStreamManager getManager(final Target target, final Layout<? extends Serializable> layout) {
- final OutputStream os = getOutputStream(target);
- final String managerName = target.name();
- return OutputStreamManager.getManager(managerName, new FactoryData(os, managerName, layout), factory);
- }
-
- private static OutputStream getOutputStream(final Target target) {
- OutputStream outputStream = target == Target.SYSTEM_OUT
- ? new FileOutputStream(FileDescriptor.out)
- : new FileOutputStream(FileDescriptor.err);
- return new CloseShieldOutputStream(outputStream);
- }
-
- /**
- * Data to pass to factory method.
- */
- private static class FactoryData {
- private final OutputStream os;
- private final String name;
- private final Layout<? extends Serializable> layout;
-
- /**
- * Constructor.
- *
- * @param os The OutputStream.
- * @param type The name of the target.
- * @param layout A Serializable layout
- */
- public FactoryData(final OutputStream os, final String type, final Layout<? extends Serializable> layout) {
- this.os = os;
- this.name = type;
- this.layout = layout;
- }
- }
-
- /**
- * Factory to create the Appender.
- */
- private static class ConsoleManagerFactory implements ManagerFactory<OutputStreamManager, FactoryData> {
-
- /**
- * Create an OutputStreamManager.
- *
- * @param name The name of the entity to manage.
- * @param data The data required to create the entity.
- * @return The OutputStreamManager
- */
- @Override
- public OutputStreamManager createManager(final String name, final FactoryData data) {
- return new OutputStreamManager(data.os, data.name, data.layout, true);
- }
- }
-
- public Target getTarget() {
- return target;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/50d0bf16/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 65b3e2e..78ca50e 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
@@ -16,13 +16,6 @@
*/
package org.apache.logging.log4j.core.appender;
-import static org.easymock.EasyMock.anyInt;
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.expectLastCall;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
@@ -41,6 +34,11 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import static org.easymock.EasyMock.anyInt;
+import static org.easymock.EasyMock.anyObject;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.junit.Assert.*;
+
/**
*
@@ -100,7 +98,7 @@ 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,
+ final ConsoleAppender app = ConsoleAppender.createAppender(layout, null, targetName, "Console", false, false,
false);
app.start();
assertTrue("Appender did not start", app.isStarted());
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/50d0bf16/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/Log4j2AppenderComparisonBenchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/Log4j2AppenderComparisonBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/Log4j2AppenderComparisonBenchmark.java
index a4ea02e..6d5e8b2 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/Log4j2AppenderComparisonBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/Log4j2AppenderComparisonBenchmark.java
@@ -57,14 +57,14 @@ public class Log4j2AppenderComparisonBenchmark {
private Logger rafLogger;
private Logger mmapLogger;
private Logger consoleLogger;
- private Logger fastConsoleLogger;
+ private Logger directConsoleLogger;
private Logger noopLogger;
private Logger rewriteLogger;
private Appender fileAppender;
private Appender rafAppender;
private Appender mmapAppender;
private Appender consoleAppender;
- private Appender fastConsoleAppender;
+ private Appender directConsoleAppender;
private Appender noopAppender;
private Appender rewriteAppender;
@@ -104,7 +104,7 @@ public class Log4j2AppenderComparisonBenchmark {
rafLogger = LogManager.getLogger("RAFLogger");
mmapLogger = LogManager.getLogger("MMapLogger");
consoleLogger = LogManager.getLogger("ConsoleLogger");
- fastConsoleLogger = LogManager.getLogger("FastConsoleLogger");
+ directConsoleLogger = LogManager.getLogger("DirectConsoleLogger");
noopLogger = LogManager.getLogger("NoopLogger");
rewriteLogger = LogManager.getLogger("RewriteLogger");
@@ -112,7 +112,7 @@ public class Log4j2AppenderComparisonBenchmark {
rafAppender = ((org.apache.logging.log4j.core.Logger) rafLogger).getAppenders().get("RandomAccessFile");
mmapAppender = ((org.apache.logging.log4j.core.Logger) mmapLogger).getAppenders().get("MemoryMappedFile");
consoleAppender = ((org.apache.logging.log4j.core.Logger) consoleLogger).getAppenders().get("Console");
- fastConsoleAppender = ((org.apache.logging.log4j.core.Logger) fastConsoleLogger).getAppenders().get("FastConsole");
+ directConsoleAppender = ((org.apache.logging.log4j.core.Logger) directConsoleLogger).getAppenders().get("DirectConsole");
noopAppender = ((org.apache.logging.log4j.core.Logger) noopLogger).getAppenders().get("NoOp");
rewriteAppender = ((org.apache.logging.log4j.core.Logger) rewriteLogger).getAppenders().get("Rewrite");
}
@@ -226,14 +226,14 @@ public class Log4j2AppenderComparisonBenchmark {
@BenchmarkMode(Mode.Throughput)
@OutputTimeUnit(TimeUnit.SECONDS)
@Benchmark
- public void end2endFastConsole() {
- fastConsoleLogger.debug(MESSAGE);
+ public void end2endDirectConsole() {
+ directConsoleLogger.debug(MESSAGE);
}
@BenchmarkMode(Mode.Throughput)
@OutputTimeUnit(TimeUnit.SECONDS)
@Benchmark
- public void appenderFastConsole() {
- fastConsoleAppender.append(EVENT);
+ public void appenderDirectConsole() {
+ directConsoleAppender.append(EVENT);
}
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/50d0bf16/log4j-perf/src/main/resources/log4j2-appenderComparison.xml
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/resources/log4j2-appenderComparison.xml b/log4j-perf/src/main/resources/log4j2-appenderComparison.xml
index 8ad6327..70ce369 100644
--- a/log4j-perf/src/main/resources/log4j2-appenderComparison.xml
+++ b/log4j-perf/src/main/resources/log4j2-appenderComparison.xml
@@ -21,9 +21,9 @@
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d %p [%t] %c{1} %X{transactionId} - %m%n"/>
</Console>
- <FastConsole name="FastConsole" target="SYSTEM_OUT">
+ <Console name="DirectConsole" target="SYSTEM_OUT" direct="true">
<PatternLayout pattern="%d %p [%t] %c{1} %X{transactionId} - %m%n"/>
- </FastConsole>
+ </Console>
<File name="File" fileName="target/testlog4j2.log" immediateFlush="false">
<PatternLayout pattern="%d %p [%t] %c{1} %X{transactionId} - %m%n"/>
</File>
@@ -58,8 +58,8 @@
<Logger name="ConsoleLogger" level="debug" additivity="false">
<AppenderRef ref="Console"/>
</Logger>
- <Logger name="FastConsoleLogger" level="debug" additivity="false">
- <AppenderRef ref="FastConsole"/>
+ <Logger name="DirectConsoleLogger" level="debug" additivity="false">
+ <AppenderRef ref="DirectConsole"/>
</Logger>
<Logger name="NoopLogger" level="debug" additivity="false">
<AppenderRef ref="NoOp"/>
[02/19] logging-log4j2 git commit: Merge branch 'master' into
LOG4J2-1395
Posted by mi...@apache.org.
Merge branch 'master' into LOG4J2-1395
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/c0366fd3
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/c0366fd3
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/c0366fd3
Branch: refs/heads/master
Commit: c0366fd3638d37584db9db2f8b8c3b4d9ff1f7de
Parents: 06c5546 4471c51
Author: Mikael St�ldal <mi...@magine.com>
Authored: Mon May 30 14:05:31 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Mon May 30 14:05:31 2016 +0200
----------------------------------------------------------------------
BUILDING.txt | 96 ++++++++++---------
.../org/apache/logging/log4j/util/Unbox.java | 16 ++--
log4j-bom/.gitignore | 1 +
.../log4j/core/layout/CsvLogEventLayout.java | 35 +++----
.../log4j/core/layout/CsvParameterLayout.java | 6 +-
pom.xml | 4 +-
src/changes/changes.xml | 11 +++
src/site/resources/logo/logo-3d-green-bg-2.png | Bin 0 -> 33619 bytes
src/site/resources/logo/logo-3d-green-bg-2.xcf | Bin 0 -> 58311 bytes
src/site/resources/logo/logo-3d-green-bg.png | Bin 0 -> 32865 bytes
src/site/resources/logo/logo-3d-green-bg.xcf | Bin 0 -> 58333 bytes
src/site/resources/logo/logo-big-blue.png | Bin 0 -> 30347 bytes
src/site/resources/logo/logo-big-blue.xcf | Bin 0 -> 55133 bytes
src/site/resources/logo/logo-blue-web-r2.6.png | Bin 0 -> 38268 bytes
src/site/resources/logo/logo-blue-web-r2.6.xcf | Bin 0 -> 64192 bytes
src/site/resources/logo/logo-blue-web.png | Bin 0 -> 35254 bytes
src/site/resources/logo/logo-blue-web.xcf | Bin 0 -> 63386 bytes
.../resources/logo/logo-chocolate-swirl-2.png | Bin 0 -> 31842 bytes
.../resources/logo/logo-chocolate-swirl-2.xcf | Bin 0 -> 58254 bytes
.../resources/logo/logo-chocolate-swirl.png | Bin 0 -> 34753 bytes
.../resources/logo/logo-chocolate-swirl.xcf | Bin 0 -> 64646 bytes
src/site/resources/logo/logo-craters-2.png | Bin 0 -> 30522 bytes
src/site/resources/logo/logo-craters-2.xcf | Bin 0 -> 58393 bytes
src/site/resources/logo/logo-craters.png | Bin 0 -> 32590 bytes
src/site/resources/logo/logo-craters.xcf | Bin 0 -> 58716 bytes
src/site/resources/logo/logo-electric-blue.png | Bin 0 -> 31853 bytes
src/site/resources/logo/logo-electric-blue.xcf | Bin 0 -> 58321 bytes
src/site/resources/logo/logo-granite-2.png | Bin 0 -> 33714 bytes
src/site/resources/logo/logo-granite-2.xcf | Bin 0 -> 58695 bytes
src/site/resources/logo/logo-granite.png | Bin 0 -> 31959 bytes
src/site/resources/logo/logo-granite.xcf | Bin 0 -> 58354 bytes
src/site/resources/logo/logo-ice.png | Bin 0 -> 33947 bytes
src/site/resources/logo/logo-ice.xcf | Bin 0 -> 64835 bytes
src/site/resources/logo/logo-java-1.png | Bin 0 -> 33698 bytes
src/site/resources/logo/logo-java-1.xcf | Bin 0 -> 58663 bytes
src/site/resources/logo/logo-java-2.png | Bin 0 -> 36999 bytes
src/site/resources/logo/logo-java-2.xcf | Bin 0 -> 64767 bytes
src/site/resources/logo/logo-java-3.png | Bin 0 -> 33016 bytes
src/site/resources/logo/logo-java-3.xcf | Bin 0 -> 58335 bytes
src/site/resources/logo/logo-leather-2.png | Bin 0 -> 33766 bytes
src/site/resources/logo/logo-leather-2.xcf | Bin 0 -> 58757 bytes
src/site/resources/logo/logo-leather.png | Bin 0 -> 32668 bytes
src/site/resources/logo/logo-leather.xcf | Bin 0 -> 58406 bytes
src/site/resources/logo/logo-lightning.png | Bin 0 -> 38593 bytes
src/site/resources/logo/logo-lightning.xcf | Bin 0 -> 64749 bytes
src/site/resources/logo/logo-marble-1.png | Bin 0 -> 33208 bytes
src/site/resources/logo/logo-marble-1.xcf | Bin 0 -> 64833 bytes
src/site/resources/logo/logo-paper-1.png | Bin 0 -> 33016 bytes
src/site/resources/logo/logo-paper-1.xcf | Bin 0 -> 58337 bytes
src/site/resources/logo/logo-paper-2.png | Bin 0 -> 33082 bytes
src/site/resources/logo/logo-paper-2.xcf | Bin 0 -> 58324 bytes
src/site/resources/logo/logo-parque-1.png | Bin 0 -> 33676 bytes
src/site/resources/logo/logo-parque-1.xcf | Bin 0 -> 58334 bytes
src/site/resources/logo/logo-parque-2.png | Bin 0 -> 32530 bytes
src/site/resources/logo/logo-parque-2.xcf | Bin 0 -> 58370 bytes
src/site/resources/logo/logo-parque-3.png | Bin 0 -> 32927 bytes
src/site/resources/logo/logo-parque-3.xcf | Bin 0 -> 58348 bytes
src/site/resources/logo/logo-pastel-stuff-2.png | Bin 0 -> 33441 bytes
src/site/resources/logo/logo-pastel-stuff-2.xcf | Bin 0 -> 58354 bytes
src/site/resources/logo/logo-pastel-stuff-3.png | Bin 0 -> 33194 bytes
src/site/resources/logo/logo-pastel-stuff-3.xcf | Bin 0 -> 58367 bytes
src/site/resources/logo/logo-pastel-stuff.png | Bin 0 -> 37102 bytes
src/site/resources/logo/logo-pastel-stuff.xcf | Bin 0 -> 64784 bytes
src/site/resources/logo/logo-pine.png | Bin 0 -> 28260 bytes
src/site/resources/logo/logo-pine.xcf | Bin 0 -> 61254 bytes
src/site/resources/logo/logo-pool-bottom-bg.png | Bin 0 -> 31480 bytes
src/site/resources/logo/logo-pool-bottom-bg.xcf | Bin 0 -> 58386 bytes
src/site/resources/logo/logo-pool-bottom.png | Bin 0 -> 33961 bytes
src/site/resources/logo/logo-pool-bottom.xcf | Bin 0 -> 64819 bytes
src/site/resources/logo/logo-qbert.png | Bin 0 -> 34606 bytes
src/site/resources/logo/logo-qbert.xcf | Bin 0 -> 64777 bytes
src/site/resources/logo/logo-rain.png | Bin 0 -> 34527 bytes
src/site/resources/logo/logo-rain.xcf | Bin 0 -> 64686 bytes
src/site/resources/logo/logo-red-cubes.png | Bin 0 -> 32485 bytes
src/site/resources/logo/logo-red-cubes.xcf | Bin 0 -> 58334 bytes
src/site/resources/logo/logo-rocks.png | Bin 0 -> 39238 bytes
src/site/resources/logo/logo-rocks.xcf | Bin 0 -> 64798 bytes
src/site/resources/logo/logo-sky.png | Bin 0 -> 33307 bytes
src/site/resources/logo/logo-sky.xcf | Bin 0 -> 64206 bytes
src/site/resources/logo/logo-starfield.png | Bin 0 -> 30603 bytes
src/site/resources/logo/logo-starfield.xcf | Bin 0 -> 56479 bytes
src/site/resources/logo/logo-stone.png | Bin 0 -> 39696 bytes
src/site/resources/logo/logo-stone.xcf | Bin 0 -> 64755 bytes
src/site/resources/logo/logo-tree-bark.png | Bin 0 -> 40313 bytes
src/site/resources/logo/logo-tree-bark.xcf | Bin 0 -> 64751 bytes
src/site/resources/logo/logo-walnut.png | Bin 0 -> 35644 bytes
src/site/resources/logo/logo-walnut.xcf | Bin 0 -> 64852 bytes
src/site/resources/logo/logo-wood-1.png | Bin 0 -> 34322 bytes
src/site/resources/logo/logo-wood-1.xcf | Bin 0 -> 64867 bytes
src/site/resources/logo/logo-wood-2.png | Bin 0 -> 33795 bytes
src/site/resources/logo/logo-wood-2.xcf | Bin 0 -> 64846 bytes
src/site/resources/logo/logo-wood.png | Bin 0 -> 37241 bytes
src/site/resources/logo/logo-wood.xcf | Bin 0 -> 64930 bytes
93 files changed, 91 insertions(+), 78 deletions(-)
----------------------------------------------------------------------
[13/19] logging-log4j2 git commit: Clarify docs even more
Posted by mi...@apache.org.
Clarify docs even more
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/349c5eb5
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/349c5eb5
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/349c5eb5
Branch: refs/heads/master
Commit: 349c5eb5d5318a7f34a7e91c9dbbe43a33c9f32d
Parents: ad0b66e
Author: Mikael St�ldal <mi...@magine.com>
Authored: Mon Jun 13 17:27:54 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Mon Jun 13 17:27:54 2016 +0200
----------------------------------------------------------------------
src/site/xdoc/manual/appenders.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/349c5eb5/src/site/xdoc/manual/appenders.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/appenders.xml b/src/site/xdoc/manual/appenders.xml
index 9e1c44a..f1924d3 100644
--- a/src/site/xdoc/manual/appenders.xml
+++ b/src/site/xdoc/manual/appenders.xml
@@ -196,7 +196,8 @@
<td>Write directly to <code>java.io.FileDescriptor</code> and bypass <code>java.lang.System.out/.err</code>.
Can give up to 10x performance boost when the output is redirected to file or other process.
Cannot be used with Jansi on Windows. Cannot be used with <code>follow</code>. Output will not respect
- <code>java.lang.System.setOut()/.setErr()</code>
+ <code>java.lang.System.setOut()/.setErr()</code> and may get intertwined with other output to
+ <code>java.lang.System.out/.err</code> in a multi-threaded application.
<i>New since 2.6.2. Be aware that this is a new addition, and although it has been
tested on several platforms, it does not have as much track record as using ConsoleAppender without it.</i>
</td>