You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2016/04/20 14:07:03 UTC

logging-log4j2 git commit: LOG4J2-1363 - Properties Configuration did not support includeLocation attribute on Loggers.

Repository: logging-log4j2
Updated Branches:
  refs/heads/master ddb2ca9e8 -> 4195c7b36


LOG4J2-1363 - Properties Configuration did not support includeLocation attribute on Loggers.


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

Branch: refs/heads/master
Commit: 4195c7b365f0bba71f5a8aec59bf32dd90cc1f20
Parents: ddb2ca9
Author: Ralph Goers <rg...@nextiva.com>
Authored: Wed Apr 20 05:06:50 2016 -0700
Committer: Ralph Goers <rg...@nextiva.com>
Committed: Wed Apr 20 05:06:57 2016 -0700

----------------------------------------------------------------------
 .../builder/api/ConfigurationBuilder.java       | 72 ++++++++++++++++++++
 .../impl/DefaultConfigurationBuilder.java       | 54 +++++++++++++--
 .../impl/DefaultLoggerComponentBuilder.java     | 29 ++++++++
 .../impl/DefaultRootLoggerComponentBuilder.java | 27 ++++++++
 .../PropertiesConfigurationBuilder.java         | 32 +++++++--
 .../appender/RandomAccessFileAppenderTests.java | 15 ++--
 ...cessFileAppenderLocationPropsTest.properties | 35 ++++++++++
 src/changes/changes.xml                         |  9 ++-
 8 files changed, 252 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4195c7b3/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/api/ConfigurationBuilder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/api/ConfigurationBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/api/ConfigurationBuilder.java
index f191365..4b4473d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/api/ConfigurationBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/api/ConfigurationBuilder.java
@@ -141,17 +141,44 @@ public interface ConfigurationBuilder<T extends Configuration> extends Builder<T
      * Returns a builder for creating Async Loggers.
      * @param name The name of the Logger.
      * @param level The logging Level to be assigned to the Logger.
+     * @param includeLocation If true include location information.
+     * @return A new LoggerComponentBuilder.
+     */
+    LoggerComponentBuilder newAsyncLogger(String name, Level level, boolean includeLocation);
+
+    /**
+     * Returns a builder for creating Async Loggers.
+     * @param name The name of the Logger.
+     * @param level The logging Level to be assigned to the Logger.
      * @return A new LoggerComponentBuilder.
      */
     LoggerComponentBuilder newAsyncLogger(String name, String level);
 
     /**
+     * Returns a builder for creating Async Loggers.
+     * @param name The name of the Logger.
+     * @param level The logging Level to be assigned to the Logger.
+     * @param includeLocation If true include location information.
+     * @return A new LoggerComponentBuilder.
+     */
+    LoggerComponentBuilder newAsyncLogger(String name, String level, boolean includeLocation);
+
+    /**
      * Returns a builder for creating the async root Logger.
      * @param level The logging Level to be assigned to the root Logger.
      * @return A new RootLoggerComponentBuilder.
      */
     RootLoggerComponentBuilder newAsyncRootLogger(Level level);
 
+
+    /**
+     * Returns a builder for creating the async root Logger.
+     * @param level The logging Level to be assigned to the root Logger.
+     * @param includeLocation If true include location information.
+     * @return A new RootLoggerComponentBuilder.
+     */
+    RootLoggerComponentBuilder newAsyncRootLogger(Level level, boolean includeLocation);
+
     /**
      * Returns a builder for creating the async root Logger.
      * @param level The logging Level to be assigned to the root Logger.
@@ -159,6 +186,15 @@ public interface ConfigurationBuilder<T extends Configuration> extends Builder<T
      */
     RootLoggerComponentBuilder newAsyncRootLogger(String level);
 
+
+    /**
+     * Returns a builder for creating the async root Logger.
+     * @param level The logging Level to be assigned to the root Logger.
+     * @param includeLocation If true include location information.
+     * @return A new RootLoggerComponentBuilder.
+     */
+    RootLoggerComponentBuilder newAsyncRootLogger(String level, boolean includeLocation);
+
     /**
      * Returns a builder for creating generic components.
      * @param <B> ComponentBuilder target type
@@ -232,11 +268,29 @@ public interface ConfigurationBuilder<T extends Configuration> extends Builder<T
      * Returns a builder for creating Loggers.
      * @param name The name of the Logger.
      * @param level The logging Level to be assigned to the Logger.
+     * @param includeLocation If true include location information.
+     * @return A new LoggerComponentBuilder.
+     */
+    LoggerComponentBuilder newLogger(String name, Level level, boolean includeLocation);
+
+    /**
+     * Returns a builder for creating Loggers.
+     * @param name The name of the Logger.
+     * @param level The logging Level to be assigned to the Logger.
      * @return A new LoggerComponentBuilder.
      */
     LoggerComponentBuilder newLogger(String name, String level);
 
     /**
+     * Returns a builder for creating Loggers.
+     * @param name The name of the Logger.
+     * @param level The logging Level to be assigned to the Logger.
+     * @param includeLocation If true include location information.
+     * @return A new LoggerComponentBuilder.
+     */
+    LoggerComponentBuilder newLogger(String name, String level, boolean includeLocation);
+
+    /**
      * Returns a builder for creating the root Logger.
      * @param level The logging Level to be assigned to the root Logger.
      * @return A new RootLoggerComponentBuilder.
@@ -246,13 +300,31 @@ public interface ConfigurationBuilder<T extends Configuration> extends Builder<T
     /**
      * Returns a builder for creating the root Logger.
      * @param level The logging Level to be assigned to the root Logger.
+     * @param includeLocation If true include location information.
+     * @return A new RootLoggerComponentBuilder.
+     */
+    RootLoggerComponentBuilder newRootLogger(Level level, boolean includeLocation);
+
+    /**
+     * Returns a builder for creating the root Logger.
+     * @param level The logging Level to be assigned to the root Logger.
+     *
      * @return A new RootLoggerComponentBuilder.
      */
     RootLoggerComponentBuilder newRootLogger(String level);
 
     /**
+     * Returns a builder for creating the root Logger.
+     * @param level The logging Level to be assigned to the root Logger.
+     *
+     * @return A new RootLoggerComponentBuilder.
+     */
+    RootLoggerComponentBuilder newRootLogger(String level, boolean includeLocation);
+
+    /**
      * Set the Advertiser Plugin name.
      * @param advertiser The Advertiser Plugin name.
+     * @param includeLocation If true include location information.
      * @return this builder instance.
      */
     ConfigurationBuilder<T> setAdvertiser(String advertiser);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4195c7b3/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java
index 6286820..8e4364f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java
@@ -203,22 +203,42 @@ public class DefaultConfigurationBuilder<T extends BuiltConfiguration> implement
 
     @Override
     public LoggerComponentBuilder newAsyncLogger(final String name, final Level level) {
-        return new DefaultLoggerComponentBuilder(this, name, level.toString(), "AsyncLogger");
+        return new DefaultLoggerComponentBuilder(this, name, level.toString(), "AsyncLogger", false);
+    }
+
+    @Override
+    public LoggerComponentBuilder newAsyncLogger(final String name, final Level level, boolean includeLocation) {
+        return new DefaultLoggerComponentBuilder(this, name, level.toString(), "AsyncLogger", includeLocation);
     }
 
     @Override
     public LoggerComponentBuilder newAsyncLogger(final String name, final String level) {
+        return new DefaultLoggerComponentBuilder(this, name, level, "AsyncLogger", false);
+    }
+
+    @Override
+    public LoggerComponentBuilder newAsyncLogger(final String name, final String level, boolean includeLocation) {
         return new DefaultLoggerComponentBuilder(this, name, level, "AsyncLogger");
     }
 
     @Override
     public RootLoggerComponentBuilder newAsyncRootLogger(final Level level) {
-        return new DefaultRootLoggerComponentBuilder(this, level.toString(), "AsyncRoot");
+        return new DefaultRootLoggerComponentBuilder(this, level.toString(), "AsyncRoot", false);
+    }
+
+    @Override
+    public RootLoggerComponentBuilder newAsyncRootLogger(final Level level, boolean includeLocation) {
+        return new DefaultRootLoggerComponentBuilder(this, level.toString(), "AsyncRoot", includeLocation);
     }
 
     @Override
     public RootLoggerComponentBuilder newAsyncRootLogger(final String level) {
-        return new DefaultRootLoggerComponentBuilder(this, level, "AsyncRoot");
+        return new DefaultRootLoggerComponentBuilder(this, level, "AsyncRoot", false);
+    }
+
+    @Override
+    public RootLoggerComponentBuilder newAsyncRootLogger(final String level, boolean includeLocation) {
+        return new DefaultRootLoggerComponentBuilder(this, level, "AsyncRoot", includeLocation);
     }
 
 
@@ -263,22 +283,42 @@ public class DefaultConfigurationBuilder<T extends BuiltConfiguration> implement
 
     @Override
     public LoggerComponentBuilder newLogger(final String name, final Level level) {
-        return new DefaultLoggerComponentBuilder(this, name, level.toString());
+        return new DefaultLoggerComponentBuilder(this, name, level.toString(), true);
+    }
+
+    @Override
+    public LoggerComponentBuilder newLogger(final String name, final Level level, boolean includeLocation) {
+        return new DefaultLoggerComponentBuilder(this, name, level.toString(), includeLocation);
     }
 
     @Override
     public LoggerComponentBuilder newLogger(final String name, final String level) {
-        return new DefaultLoggerComponentBuilder(this, name, level);
+        return new DefaultLoggerComponentBuilder(this, name, level, true);
+    }
+
+    @Override
+    public LoggerComponentBuilder newLogger(final String name, final String level, boolean includeLocation) {
+        return new DefaultLoggerComponentBuilder(this, name, level, includeLocation);
     }
 
     @Override
     public RootLoggerComponentBuilder newRootLogger(final Level level) {
-        return new DefaultRootLoggerComponentBuilder(this, level.toString());
+        return new DefaultRootLoggerComponentBuilder(this, level.toString(), true);
+    }
+
+    @Override
+    public RootLoggerComponentBuilder newRootLogger(final Level level, boolean includeLocation) {
+        return new DefaultRootLoggerComponentBuilder(this, level.toString(), includeLocation);
     }
 
     @Override
     public RootLoggerComponentBuilder newRootLogger(final String level) {
-        return new DefaultRootLoggerComponentBuilder(this, level);
+        return new DefaultRootLoggerComponentBuilder(this, level, true);
+    }
+
+    @Override
+    public RootLoggerComponentBuilder newRootLogger(final String level, boolean includeLocation) {
+        return new DefaultRootLoggerComponentBuilder(this, level, includeLocation);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4195c7b3/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultLoggerComponentBuilder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultLoggerComponentBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultLoggerComponentBuilder.java
index 8c5a331..37aba83 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultLoggerComponentBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultLoggerComponentBuilder.java
@@ -44,6 +44,20 @@ class DefaultLoggerComponentBuilder extends DefaultComponentAndConfigurationBuil
      * @param builder
      * @param name
      * @param level
+     * @param includeLocation
+     */
+    public DefaultLoggerComponentBuilder(final DefaultConfigurationBuilder<? extends Configuration> builder, final String name,
+            final String level, boolean includeLocation) {
+        super(builder, name, "Logger");
+        addAttribute("level", level);
+        addAttribute("includeLocation", includeLocation);
+    }
+
+    /**
+     * Configure a logger.
+     * @param builder
+     * @param name
+     * @param level
      * @param type
      */
     public DefaultLoggerComponentBuilder(final DefaultConfigurationBuilder<? extends Configuration> builder, final String name,
@@ -52,6 +66,21 @@ class DefaultLoggerComponentBuilder extends DefaultComponentAndConfigurationBuil
         addAttribute("level", level);
     }
 
+    /**
+     * Configure a logger.
+     * @param builder
+     * @param name
+     * @param level
+     * @param type
+     * @param includeLocation
+     */
+    public DefaultLoggerComponentBuilder(final DefaultConfigurationBuilder<? extends Configuration> builder, final String name,
+            final String level, final String type, boolean includeLocation) {
+        super(builder, name, type);
+        addAttribute("level", level);
+        addAttribute("includeLocation", includeLocation);
+    }
+
     @Override
     public LoggerComponentBuilder add(final AppenderRefComponentBuilder builder) {
         return addComponent(builder);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4195c7b3/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultRootLoggerComponentBuilder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultRootLoggerComponentBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultRootLoggerComponentBuilder.java
index 8d7a19b..dcf0b9b 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultRootLoggerComponentBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultRootLoggerComponentBuilder.java
@@ -42,6 +42,19 @@ class DefaultRootLoggerComponentBuilder extends DefaultComponentAndConfiguration
      * Configure the root logger.
      * @param builder
      * @param level
+     * @param includeLocation
+     */
+    public DefaultRootLoggerComponentBuilder(final DefaultConfigurationBuilder<? extends Configuration> builder,
+            final String level, final boolean includeLocation) {
+        super(builder, "", "Root");
+        addAttribute("level", level);
+        addAttribute("includeLocation", includeLocation);
+    }
+
+    /**
+     * Configure the root logger.
+     * @param builder
+     * @param level
      * @param type
      */
     public DefaultRootLoggerComponentBuilder(final DefaultConfigurationBuilder<? extends Configuration> builder,
@@ -50,6 +63,20 @@ class DefaultRootLoggerComponentBuilder extends DefaultComponentAndConfiguration
         addAttribute("level", level);
     }
 
+
+    /**
+     * Configure the root logger.
+     * @param builder
+     * @param level
+     * @param type
+     */
+    public DefaultRootLoggerComponentBuilder(final DefaultConfigurationBuilder<? extends Configuration> builder,
+            final String level, final String type, final boolean includeLocation) {
+        super(builder, "", type);
+        addAttribute("level", level);
+        addAttribute("includeLocation", includeLocation);
+    }
+
     @Override
     public RootLoggerComponentBuilder add(final AppenderRefComponentBuilder builder) {
         return addComponent(builder);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4195c7b3/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
index 5645ee2..14a061f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
@@ -203,20 +203,32 @@ public class PropertiesConfigurationBuilder extends ConfigurationBuilderFactory
 
     private LoggerComponentBuilder createLogger(final String key, final Properties properties) {
         final String name = (String) properties.remove(CONFIG_NAME);
+        final String location = (String) properties.remove("includeLocation");
         if (Strings.isEmpty(name)) {
             throw new ConfigurationException("No name attribute provided for Logger " + key);
         }
         final String level = (String) properties.remove("level");
         final String type = (String) properties.remove(CONFIG_TYPE);
         final LoggerComponentBuilder loggerBuilder;
+        boolean includeLocation;
         if (type != null) {
             if (type.equalsIgnoreCase("asyncLogger")) {
-                loggerBuilder = builder.newAsyncLogger(name, level);
+                if (location != null) {
+                    includeLocation = Boolean.parseBoolean(location);
+                    loggerBuilder = builder.newAsyncLogger(name, level, includeLocation);
+                } else {
+                    loggerBuilder = builder.newAsyncLogger(name, level);
+                }
             } else {
                 throw new ConfigurationException("Unknown Logger type " + type + " for Logger " + name);
             }
         } else {
-            loggerBuilder = builder.newLogger(name, level);
+            if (location != null) {
+                includeLocation = Boolean.parseBoolean(location);
+                loggerBuilder = builder.newLogger(name, level, includeLocation);
+            } else {
+                loggerBuilder = builder.newLogger(name, level);
+            }
         }
         addLoggersToComponent(loggerBuilder, properties);
         addFiltersToComponent(loggerBuilder, properties);
@@ -230,15 +242,27 @@ public class PropertiesConfigurationBuilder extends ConfigurationBuilderFactory
     private RootLoggerComponentBuilder createRootLogger(final Properties properties) {
         final String level = (String) properties.remove("level");
         final String type = (String) properties.remove(CONFIG_TYPE);
+        final String location = (String) properties.remove("includeLocation");
+        final boolean includeLocation;
         final RootLoggerComponentBuilder loggerBuilder;
         if (type != null) {
             if (type.equalsIgnoreCase("asyncRoot")) {
-                loggerBuilder = builder.newAsyncRootLogger(level);
+                if (location != null) {
+                    includeLocation = Boolean.parseBoolean(location);
+                    loggerBuilder = builder.newAsyncRootLogger(level, includeLocation);
+                } else {
+                    loggerBuilder = builder.newAsyncRootLogger(level);
+                }
             } else {
                 throw new ConfigurationException("Unknown Logger type for root logger" + type);
             }
         } else {
-            loggerBuilder = builder.newRootLogger(level);
+            if (location != null) {
+                includeLocation = Boolean.parseBoolean(location);
+                loggerBuilder = builder.newRootLogger(level, includeLocation);
+            } else {
+                loggerBuilder = builder.newRootLogger(level);
+            }
         }
         addLoggersToComponent(loggerBuilder, properties);
         return addFiltersToComponent(loggerBuilder, properties);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4195c7b3/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppenderTests.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppenderTests.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppenderTests.java
index c25f666..7f6f03d 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppenderTests.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppenderTests.java
@@ -42,14 +42,15 @@ import static org.junit.Assert.*;
 @RunWith(Parameterized.class)
 public class RandomAccessFileAppenderTests {
 
-    @Parameterized.Parameters(name = "{0}, locationEnabled={1}")
+    @Parameterized.Parameters(name = "{0}, locationEnabled={1}, type={2}")
     public static Collection<Object[]> data() {
         return Arrays.asList(
                 new Object[][]{
-                        { "RandomAccessFileAppenderTest", false },
-                        { "RandomAccessFileAppenderLocationTest", true },
-                        { "RollingRandomAccessFileAppenderTest", false },
-                        { "RollingRandomAccessFileAppenderLocationTest", true }
+                        { "RandomAccessFileAppenderTest", false, ".xml" },
+                        { "RandomAccessFileAppenderLocationTest", true, ".xml" },
+                        { "RollingRandomAccessFileAppenderTest", false, ".xml" },
+                        { "RollingRandomAccessFileAppenderLocationTest", true, ".xml" },
+                        { "RollingRandomAccessFileAppenderLocationPropsTest", false, ".properties" }
                 }
         );
     }
@@ -63,8 +64,8 @@ public class RandomAccessFileAppenderTests {
     private final File logFile;
     private final boolean locationEnabled;
 
-    public RandomAccessFileAppenderTests(final String testName, final boolean locationEnabled) {
-        this.init = new LoggerContextRule(testName + ".xml");
+    public RandomAccessFileAppenderTests(final String testName, final boolean locationEnabled, final String type) {
+        this.init = new LoggerContextRule(testName + type);
         this.logFile = new File("target", testName + ".log");
         this.files = new CleanFiles(this.logFile);
         this.locationEnabled = locationEnabled;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4195c7b3/log4j-core/src/test/resources/RollingRandomAccessFileAppenderLocationPropsTest.properties
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/resources/RollingRandomAccessFileAppenderLocationPropsTest.properties b/log4j-core/src/test/resources/RollingRandomAccessFileAppenderLocationPropsTest.properties
new file mode 100644
index 0000000..295031e
--- /dev/null
+++ b/log4j-core/src/test/resources/RollingRandomAccessFileAppenderLocationPropsTest.properties
@@ -0,0 +1,35 @@
+# 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.
+
+status = error
+name = PropertiesConfigTest
+
+appenders = rolling
+
+appender.rolling.type = RollingRandomAccessFile
+appender.rolling.name = RollingRandomAccessFile
+appender.rolling.fileName = target/RollingRandomAccessFileAppenderLocationPropsTest.log
+appender.rolling.filePattern = target/RollingProps/test-%d{MM-dd-yyyy}-%i.log.gz
+appender.rolling.append = false
+appender.rolling.immediateFlush = true;
+appender.rolling.layout.type = PatternLayout
+appender.rolling.layout.pattern = %d %p %c{1.} [%t] %X{aKey} %m %location %ex%n
+appender.rolling.policies.type = Policies
+appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
+
+rootLogger.level = info
+rootLogger.includeLocation = false
+rootLogger.appenderRefs = rolling
+rootLogger.appenderRef.rolling.ref = RollingRandomAccessFile

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4195c7b3/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 3239155..cb717ed 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -24,6 +24,12 @@
   </properties>
   <body>
     <release version="2.6" date="2016-MM-DD" description="GA Release 2.6">
+      <action issue="LOG4J2-1363" dev="rgoers" type="fix">
+        Properties Configuration did not support includeLocation attribute on Loggers.
+      </action>
+      <action issue="LOG4J2-1263" dev="rgoers" type="fix">
+        The ConfigurationSource was not saved for BuiltConfigurations so monitor interval had no effect.
+      </action>
       <action issue="LOG4J2-1369" dev="ggregory" type="fix" due-to="Alex Birch, Gary Gregory">
         "xz" compression results in plaintext, uncompressed files.
       </action>
@@ -1265,9 +1271,6 @@
       </action>
     </release>
     <release version="2.0-rc2" date="2014-06-21" description="Bug fixes and enhancements">
-      <action issue="LOG4J2-1263" dev="rgoers" type="fix">
-        The ConfigurationSource was not saved for BuiltConfigurations so monitor interval had no effect.
-      </action>
       <action issue="LOG4J2-675" dev="rpopma" type="add">
         RollingFile and RollingRandomAccessFile now write the layout footer before rollover.
       </action>