diff --git a/src/log4net.Tests/log4net.Tests.csproj b/src/log4net.Tests/log4net.Tests.csproj
index a6a0797..414b2a2 100644
--- a/src/log4net.Tests/log4net.Tests.csproj
+++ b/src/log4net.Tests/log4net.Tests.csproj
@@ -8,7 +8,6 @@
     <DefaultTargetSchema>IE50</DefaultTargetSchema>
     <DelaySign>false</DelaySign>
     <OutputType>Library</OutputType>
-    <OldToolsVersion>3.5</OldToolsVersion>
     <PublishUrl>publish\</PublishUrl>
     <Install>true</Install>
     <InstallFrom>Disk</InstallFrom>
@@ -29,6 +28,7 @@
     <OutputPath>bin\$(Configuration)</OutputPath>
     <Configurations>Debug;Release</Configurations>
     <Platforms>AnyCPU</Platforms>
+    <Deterministic>true</Deterministic>
     <!-- suppress analyzer mismatch warning -->
     <NoWarn>CS8032</NoWarn>
   </PropertyGroup>
diff --git a/src/log4net/log4net.csproj b/src/log4net/log4net.csproj
index be9355b..31f93b6 100644
--- a/src/log4net/log4net.csproj
+++ b/src/log4net/log4net.csproj
@@ -1,7 +1,7 @@
 ﻿<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
     <PackageId>log4net</PackageId>
-    <Version>2.0.15</Version>
+    <Version>2.0.16</Version>
     <Title>Apache log4net</Title>
     <Product>Apache log4net</Product>
     <Description>
@@ -24,7 +24,7 @@
     <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
     <PackageProjectUrl>https://logging.apache.org/log4net/</PackageProjectUrl>
     <PackageIcon>package-icon.png</PackageIcon>
-    <Copyright>Copyright 2004-2017 The Apache Software Foundation</Copyright>
+    <Copyright>Copyright 2004-2024 The Apache Software Foundation</Copyright>
     <PackageTags>logging log tracing logfiles</PackageTags>
     <RepositoryType>git</RepositoryType>
     <RepositoryUrl>https://github.com/apache/logging-log4net</RepositoryUrl>
@@ -41,7 +41,6 @@
     <DefaultTargetSchema>IE50</DefaultTargetSchema>
     <DelaySign>false</DelaySign>
     <OutputType>Library</OutputType>
-    <OldToolsVersion>3.5</OldToolsVersion>
     <PublishUrl>publish\</PublishUrl>
     <Install>true</Install>
     <InstallFrom>Disk</InstallFrom>
@@ -71,6 +70,7 @@
     <FileAlignment>4096</FileAlignment>
     <RegisterForComInterop>false</RegisterForComInterop>
     <RemoveIntegerChecks>false</RemoveIntegerChecks>
+    <Deterministic>true</Deterministic>
   </PropertyGroup>
   <PropertyGroup Condition="'$(TargetFramework)'=='net35-client'">
     <TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
diff --git a/src/site/xdoc/download_log4net.xml b/src/site/xdoc/download_log4net.xml
index 1ae3e4e..0a34309 100644
--- a/src/site/xdoc/download_log4net.xml
+++ b/src/site/xdoc/download_log4net.xml
@@ -36,14 +36,14 @@
 
     </section>
 
-    <section name="log4net 2.0.15">
+    <section name="log4net 2.0.16">
 
       <subsection name="Source">
         <table>
           <tr>
-            <td><a href="https://downloads.apache.org/logging/log4net/source/apache-log4net-source-2.0.15.zip">apache-log4net-source-2.0.15.zip</a></td>
-            <td><a href="https://downloads.apache.org/logging/log4net/source/apache-log4net-source-2.0.15.zip.sha512">sha512</a></td>
-            <td><a href="https://downloads.apache.org/logging/log4net/source/apache-log4net-source-2.0.15.zip.asc">pgp</a></td>
+            <td><a href="https://downloads.apache.org/logging/log4net/source/apache-log4net-source-2.0.16.zip">apache-log4net-source-2.0.16.zip</a></td>
+            <td><a href="https://downloads.apache.org/logging/log4net/source/apache-log4net-source-2.0.16.zip.sha512">sha512</a></td>
+            <td><a href="https://downloads.apache.org/logging/log4net/source/apache-log4net-source-2.0.16.zip.asc">pgp</a></td>
           </tr>
         </table>
       </subsection>
@@ -52,14 +52,14 @@
         <p>Binaries are available in a zip file or nupkg, which is also available from <a href="https://www.nuget.org/packages/log4net/">nuget.org</a></p>
         <table>
           <tr>
-            <td><a href="https://downloads.apache.org/logging/log4net/binaries/apache-log4net-binaries-2.0.15.zip">log4net-binaries-2.0.15.zip</a></td>
-            <td><a href="https://downloads.apache.org/logging/log4net/binaries/apache-log4net-binaries-2.0.15.zip.sha512">sha512</a></td>
-            <td><a href="https://downloads.apache.org/logging/log4net/binaries/apache-log4net-binaries-2.0.15.zip.asc">pgp</a></td>
+            <td><a href="https://downloads.apache.org/logging/log4net/binaries/apache-log4net-binaries-2.0.16.zip">log4net-binaries-2.0.16.zip</a></td>
+            <td><a href="https://downloads.apache.org/logging/log4net/binaries/apache-log4net-binaries-2.0.16.zip.sha512">sha512</a></td>
+            <td><a href="https://downloads.apache.org/logging/log4net/binaries/apache-log4net-binaries-2.0.16.zip.asc">pgp</a></td>
           </tr>
           <tr>
-            <td><a href="https://downloads.apache.org/logging/log4net/binaries/apache-log4net.2.0.15.nupkg">log4net-2.0.15.nupkg</a></td>
-            <td><a href="https://downloads.apache.org/logging/log4net/binaries/apache-log4net.2.0.15.nupkg.sha512">sha512</a></td>
-            <td><a href="https://downloads.apache.org/logging/log4net/binaries/apache-log4net.2.0.15.nupkg.asc">pgp</a></td>
+            <td><a href="https://downloads.apache.org/logging/log4net/binaries/apache-log4net.2.0.16.nupkg">log4net-2.0.16.nupkg</a></td>
+            <td><a href="https://downloads.apache.org/logging/log4net/binaries/apache-log4net.2.0.16.nupkg.sha512">sha512</a></td>
+            <td><a href="https://downloads.apache.org/logging/log4net/binaries/apache-log4net.2.0.16.nupkg.asc">pgp</a></td>
           </tr>
         </table>
       </subsection>
diff --git a/src/site/xdoc/release/release-notes.xml b/src/site/xdoc/release/release-notes.xml
index 08018c7..4bb166d 100644
--- a/src/site/xdoc/release/release-notes.xml
+++ b/src/site/xdoc/release/release-notes.xml
@@ -17,1940 +17,2225 @@
 -->
 <document>
 
-    <properties>
-        <author email="nicko at apache dot org">Nicko Cadell</author>
-        <title>Apache log4net: Release Notes</title>
-    </properties>
+  <properties>
+    <author email="nicko at apache dot org">Nicko Cadell</author>
+    <title>Apache log4net: Release Notes</title>
+  </properties>
 
-    <meta name="keywords" content="log4net release notes, log4net"/>
+  <meta name="keywords" content="log4net release notes, log4net"/>
 
-    <body>
+  <body>
 
-        <section id="main" name="Apache log4net&#x2122; Release Notes">
-            <section id="2.0.15" name="2.0.15">
-            Attention: .NET 3.5 Client Profile is <i>no longer supported</i>. I'm really sorry, I've tried
-            to keep as many of the legacy targets available as possible, but after spending another 4 or so 
-            hours trying to get net35-client to build on any machine, I've given up - as far as I'm aware,
-            this should only affect Windows XP clients. I'm afraid 2.0.14 was the end of the road for you.
+    <section id="main" name="Apache log4net&#x2122; Release Notes">
+      <section id="2.0.16" name="2.0.16">
+        Apache log4net 2.0.16 addresses reported issues:
+        <section id="2.0.16-bug" name="Bug fixes">
+          <ul>
+            <li>
+              <a href="https://github.com/apache/logging-log4net/pull/103">Support converting '.NET TP Worker' to the numeric thread ID on .NET 8+ (by @erikmav)</a>
+            </li>
+            <li>
+              <a href="https://github.com/apache/logging-log4net/pull/94">Fix typo in RemotingServer App.Config (by @craigdfrench)</a>
+            </li>
+            <li>
+              <a href="https://github.com/apache/logging-log4net/pull/105">Fix CodeQL Password in configuration file Rule False Positives (by @justinmichaels)</a>
+            </li>
+          </ul>
+        </section>
+        <section id="2.0.16-enhancements" name="Enhancements">
+          <ul>
+            <li>
+              <a href="https://github.com/apache/logging-log4net/pull/89">adding extension points for revising logged content (by @freeandnil)</a>
+            </li>
+            <li>
+              <a href="https://github.com/apache/logging-log4net/pull/91">SystemInfo.EntryAssemblyLocation writable to adjust location for config-files in unit test projects (by @freeandnil)</a>
+            </li>
+            <li>
+              <a href="https://github.com/apache/logging-log4net/pull/92">New locking model for single log file in native applications with managed parts (by @freeandnil)</a>
+            </li>
+            <li>
+              <a href="https://github.com/apache/logging-log4net/pull/93">Extension point for handling new lines in RemoteSysLogAppender added (by @freeandnil)</a>
+            </li>
+            <li>
+              <a href="https://github.com/apache/logging-log4net/pull/94">Defer creation of locking model to ActivateOptions() (by @freeandnil)</a>
+            </li>
+            <li>
+              <a href="https://github.com/apache/logging-log4net/pull/101">Add Peek() method to ThreadContextStack and LogicalThreadContextStack (by @andreycha)</a>
+            </li>
+            <li>
+              <a href="https://github.com/apache/logging-log4net/issues/111">Dropping support for older runtimes (by @fluffynuts and @freeandnil)</a>
+            </li>
+          </ul>
+        </section>
+      </section>
+      <section id="2.0.15" name="2.0.15">
+        Attention: .NET 3.5 Client Profile is <i>no longer supported</i>. I'm really sorry, I've tried
+        to keep as many of the legacy targets available as possible, but after spending another 4 or so
+        hours trying to get net35-client to build on any machine, I've given up - as far as I'm aware,
+        this should only affect Windows XP clients. I'm afraid 2.0.14 was the end of the road for you.
 
-            Apache log4net 2.0.15 addresses reported issues:
-              <section id="2.0.15-bug" name="Bug fixes">
-                <ul>
-                  <li>Improper usage of xml namespacing for netfx targets after a netstandard update (
-                    <a href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-685">LOG4NET-685</a>, 
-                    related <a href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-683">LOG4NET-683</a>)</li>
-                  <li>Locking hashtables during write in RenderMap calls to make them thread-safe (
-                    <a href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-646">LOG4NET-646</a>)</li>
-                  <li>An issue where RollingFilAppender would sometimes overwrite files instead of rolling them (
-                    <a href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-672">LOG4NET-672</a>)</li>
-                </ul>
-              </section>
-              <section id="2.0.15-enhancements" name="Enhancements">
-                <ul>
-                  <li><a href="https://github.com/apache/logging-log4net/pull/81">Enforce TLS1.2 in the ps1 scripts provided for dev use</a></li>  
-                  <li><a href="https://github.com/apache/logging-log4net/pull/80">Corrected links in README</a></li>
-                  <li><a href="https://github.com/apache/logging-log4net/pull/89">Open up the internals of LogEvent a bit for extension purposes</a></li>
-                  <li>Add information about FixFlags and performance to the BufferingAppender (and derivative) documentation</li>
-                </ul>
-              </section>
-            </section>
-            <section id="2.0.14" name="2.0.14">
-              Apache log4net 2.0.14 is a minor release to address some reported issues
-              and accept a pull request provided by a community member:
-              <section id="2.0.14-bug" name="Bug fixes">
-                <ul>
-                  <li><a href="https://github.com/apache/logging-log4net/pull/77">Pull request</a> by @NicholasNoise to address issues with logging via ado appender to PostgreSQL</li>
-                  <li>Community request to correctly handle null data in ReadOnlyPropertiesDictionary</li>
-                  <li><a href="https://github.com/apache/logging-log4net/pull/78">Pull request</a> by @erikma to use the numeric thread id for .net worker pool threads 
-                    (<a href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-680">LOG4NET-680</a>)</li>
-                  <li><a href="https://github.com/apache/logging-log4net/pull/79">Pull request</a> by @erikma to dispose of WindowsIdentity retrieved in TryGetCurrentUserName()
-                    (<a href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-671">LOG4NET-671</a>)</li>
-                </ul>
-              </section>
-            </section>            
-            <section id="2.0.13" name="2.0.13">
-              Apache log4net 2.0.13 is a minor release to address some reported issues
-              and accept some pull requests provided by community members:
-              <section id="2.0.13-bug" name="Bug fixes">
-                <ul>
-                  <li>Addresses issue [<a href="https://issues.apache.org/jira/browse/LOG4NET-583">LOG4NET-583</a>] with proposed solution by Emmo Emminghaus,
-                    namely to provide an unique mutex identifier for the file rolling logic.</li>
-                  <li>Accepts pull request <a href="https://github.com/apache/logging-log4net/pull/76">76</a> by @dschwartzni
-                    to allow the netstandard2.0 library to be used within net472 web services</li>
-                  <li>Accepts pull request <a href=" https://github.com/apache/logging-log4net/pull/18">18</a> by @dmarlow
-                    to update the xml layout mimicking log4j</li>
-                </ul>
-              </section>
-            </section>
-            <section id="2.0.12" name="2.0.12">
-              <p>
-              Apache log4net 2.0.12 is a minor fix release to address reported issues on
-              non-windows platforms.
-              </p>
-              <section id="2.0.12-bug" name="Bug Fixes">
-                <ul>
-                  <li>Addresses the issues reported in 
-                      [<a href="https://issues.apache.org/jira/browse/LOG4NET-652">LOG4NET-652</a>]
-                      and [<a href="https://issues.apache.org/jira/browse/LOG4NET-652">LOG4NET-653</a>] whereby
-                      logging could throw a PlatformNotSupported exception when the username
-                      is required within logs on non-Windows platforms. The implemented
-                      behavior is to fall back, where possible, on Environment.UserName
-                      or provide text that the facility is not supported.
-                  </li>
-                </ul>
-              </section>
-            </section>
-            <section id="2.0.11" name="2.0.11">
-                Apache log4net 2.0.11 fixes incorrect version strings within the released
-                binaries and contains some minor fixes to correctly dispose of StreamWriters
-                used during log flushing, thanks to community member @NicholasNoise
-            </section>
-            <section id="2.0.10" name="2.0.10">
-                <p>
-                    Apache log4net 2.0.10 improves <code>netstandard2.0</code> support
-                    thanks to community member @NicholasNoise.
-                </p>
-                <section id="2.0.10-bug" name="Bug Fixes">
-                    <ul>
-                        <li>
-                            [<a href="https://issues.apache.org/jira/browse/LOG4NET-575">LOG4NET-575</a>]
-                            Addresses CVE-2018-1285 by cherry-picking the fix from
-                            Dominik Psenner, reported by Karthik Balasundaram, as it already
-                            existed in the the develop branch
-                        </li>
-                    </ul>
-                </section>
-            </section>
+        Apache log4net 2.0.15 addresses reported issues:
+        <section id="2.0.15-bug" name="Bug fixes">
+          <ul>
+            <li>
+              Improper usage of xml namespacing for netfx targets after a netstandard update (
+              <a href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-685">LOG4NET-685</a>,
+              related <a href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-683">LOG4NET-683</a>)
+            </li>
+            <li>
+              Locking hashtables during write in RenderMap calls to make them thread-safe (
+              <a href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-646">LOG4NET-646</a>)
+            </li>
+            <li>
+              An issue where RollingFilAppender would sometimes overwrite files instead of rolling them (
+              <a href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-672">LOG4NET-672</a>)
+            </li>
+          </ul>
+        </section>
+        <section id="2.0.15-enhancements" name="Enhancements">
+          <ul>
+            <li>
+              <a href="https://github.com/apache/logging-log4net/pull/81">Enforce TLS1.2 in the ps1 scripts provided for dev use</a>
+            </li>
+            <li>
+              <a href="https://github.com/apache/logging-log4net/pull/80">Corrected links in README</a>
+            </li>
+            <li>
+              <a href="https://github.com/apache/logging-log4net/pull/89">Open up the internals of LogEvent a bit for extension purposes</a>
+            </li>
+            <li>Add information about FixFlags and performance to the BufferingAppender (and derivative) documentation</li>
+          </ul>
+        </section>
+      </section>
+      <section id="2.0.14" name="2.0.14">
+        Apache log4net 2.0.14 is a minor release to address some reported issues
+        and accept a pull request provided by a community member:
+        <section id="2.0.14-bug" name="Bug fixes">
+          <ul>
+            <li>
+              <a href="https://github.com/apache/logging-log4net/pull/77">Pull request</a> by @NicholasNoise to address issues with logging via ado appender to PostgreSQL
+            </li>
+            <li>Community request to correctly handle null data in ReadOnlyPropertiesDictionary</li>
+            <li>
+              <a href="https://github.com/apache/logging-log4net/pull/78">Pull request</a> by @erikma to use the numeric thread id for .net worker pool threads
+              (<a href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-680">LOG4NET-680</a>)
+            </li>
+            <li>
+              <a href="https://github.com/apache/logging-log4net/pull/79">Pull request</a> by @erikma to dispose of WindowsIdentity retrieved in TryGetCurrentUserName()
+              (<a href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-671">LOG4NET-671</a>)
+            </li>
+          </ul>
+        </section>
+      </section>
+      <section id="2.0.13" name="2.0.13">
+        Apache log4net 2.0.13 is a minor release to address some reported issues
+        and accept some pull requests provided by community members:
+        <section id="2.0.13-bug" name="Bug fixes">
+          <ul>
+            <li>
+              Addresses issue [<a href="https://issues.apache.org/jira/browse/LOG4NET-583">LOG4NET-583</a>] with proposed solution by Emmo Emminghaus,
+              namely to provide an unique mutex identifier for the file rolling logic.
+            </li>
+            <li>
+              Accepts pull request <a href="https://github.com/apache/logging-log4net/pull/76">76</a> by @dschwartzni
+              to allow the netstandard2.0 library to be used within net472 web services
+            </li>
+            <li>
+              Accepts pull request <a href=" https://github.com/apache/logging-log4net/pull/18">18</a> by @dmarlow
+              to update the xml layout mimicking log4j
+            </li>
+          </ul>
+        </section>
+      </section>
+      <section id="2.0.12" name="2.0.12">
+        <p>
+          Apache log4net 2.0.12 is a minor fix release to address reported issues on
+          non-windows platforms.
+        </p>
+        <section id="2.0.12-bug" name="Bug Fixes">
+          <ul>
+            <li>
+              Addresses the issues reported in
+              [<a href="https://issues.apache.org/jira/browse/LOG4NET-652">LOG4NET-652</a>]
+              and [<a href="https://issues.apache.org/jira/browse/LOG4NET-652">LOG4NET-653</a>] whereby
+              logging could throw a PlatformNotSupported exception when the username
+              is required within logs on non-Windows platforms. The implemented
+              behavior is to fall back, where possible, on Environment.UserName
+              or provide text that the facility is not supported.
+            </li>
+          </ul>
+        </section>
+      </section>
+      <section id="2.0.11" name="2.0.11">
+        Apache log4net 2.0.11 fixes incorrect version strings within the released
+        binaries and contains some minor fixes to correctly dispose of StreamWriters
+        used during log flushing, thanks to community member @NicholasNoise
+      </section>
+      <section id="2.0.10" name="2.0.10">
+        <p>
+          Apache log4net 2.0.10 improves <code>netstandard2.0</code> support
+          thanks to community member @NicholasNoise.
+        </p>
+        <section id="2.0.10-bug" name="Bug Fixes">
+          <ul>
+            <li>
+              [<a href="https://issues.apache.org/jira/browse/LOG4NET-575">LOG4NET-575</a>]
+              Addresses CVE-2018-1285 by cherry-picking the fix from
+              Dominik Psenner, reported by Karthik Balasundaram, as it already
+              existed in the the develop branch
+            </li>
+          </ul>
+        </section>
+      </section>
 
-            <section id="2.0.9" name="2.0.9">
-                <p>
-                    Apache log4net 2.0.9 adds <code>netstandard2.0</code> support
-                    and restructures the project to enable easier build as well as build
-                    at AppVeyer. Project files have been updated to the modern Sdk format.
-                </p>
-                <section id="2.0.9-bug" name="Bug Fixes">
-                    <ul>
-                        <li>[<a href="https://issues.apache.org/jira/browse/LOG4NET-559">LOG4NET-559</a>] Add null
-                            checkes to avoid issues thrown by custom appenders
-                        </li>
-                        <li>[<a href="https://issues.apache.org/jira/browse/LOG4NET-563">LOG4NET-563</a>] Site styling
-                            copied from log4j
-                        </li>
-                    </ul>
-                </section>
-            </section>
-            <section id="2.0.8" name="2.0.8">
-                <p>
-                    Apache log4net 2.0.8 fixes a
-                    <code>LockRecursionException</code>
-                    that could happen
-                    inside the <code>FileAppender</code> under certain
-                    circumstances. It also adds support for
-                    <code>LogicalThreadContext</code>
-                    to the .NET Standard
-                    build based on <code>AsyncLocal</code> rather than
-                    <code>CallContext</code>.
-                </p>
+      <section id="2.0.9" name="2.0.9">
+        <p>
+          Apache log4net 2.0.9 adds <code>netstandard2.0</code> support
+          and restructures the project to enable easier build as well as build
+          at AppVeyer. Project files have been updated to the modern Sdk format.
+        </p>
+        <section id="2.0.9-bug" name="Bug Fixes">
+          <ul>
+            <li>
+              [<a href="https://issues.apache.org/jira/browse/LOG4NET-559">LOG4NET-559</a>] Add null
+              checkes to avoid issues thrown by custom appenders
+            </li>
+            <li>
+              [<a href="https://issues.apache.org/jira/browse/LOG4NET-563">LOG4NET-563</a>] Site styling
+              copied from log4j
+            </li>
+          </ul>
+        </section>
+      </section>
+      <section id="2.0.8" name="2.0.8">
+        <p>
+          Apache log4net 2.0.8 fixes a
+          <code>LockRecursionException</code>
+          that could happen
+          inside the <code>FileAppender</code> under certain
+          circumstances. It also adds support for
+          <code>LogicalThreadContext</code>
+          to the .NET Standard
+          build based on <code>AsyncLocal</code> rather than
+          <code>CallContext</code>.
+        </p>
 
-                <section id="2.0.8-bug" name="Bug Fixes">
-                    <ul>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-466'>LOG4NET-466</a>] - &quot;LockRecursionException:
-                            A read lock may not be acquired with the write lock held in this mode.&quot; exception
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-550'>LOG4NET-550</a>] - Logging
-                            recursively from an Appender not supported for NET_4_0 and MONO_4_0
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-551'>LOG4NET-551</a>] -
-                            LockRecursionException when using File Appenders
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-554'>LOG4NET-554</a>] -
-                            LogicalThreadContext was removed in .NETStandard
-                        </li>
-                    </ul>
-                </section>
+        <section id="2.0.8-bug" name="Bug Fixes">
+          <ul>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-466'>LOG4NET-466</a>] - &quot;LockRecursionException:
+              A read lock may not be acquired with the write lock held in this mode.&quot; exception
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-550'>LOG4NET-550</a>] - Logging
+              recursively from an Appender not supported for NET_4_0 and MONO_4_0
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-551'>LOG4NET-551</a>] -
+              LockRecursionException when using File Appenders
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-554'>LOG4NET-554</a>] -
+              LogicalThreadContext was removed in .NETStandard
+            </li>
+          </ul>
+        </section>
 
-                <section id="2.0.8-new" name="New Features">
-                    <ul>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-553'>LOG4NET-553</a>] -
-                            DebugAppender
-                            configuration should give the possibility to disable outputting loggerName as category
-                        </li>
-                    </ul>
-                </section>
-            </section>
+        <section id="2.0.8-new" name="New Features">
+          <ul>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-553'>LOG4NET-553</a>] -
+              DebugAppender
+              configuration should give the possibility to disable outputting loggerName as category
+            </li>
+          </ul>
+        </section>
+      </section>
 
-            <section id="2.0.7" name="2.0.7">
-                <p>
-                    Apache log4net 2.0.7 fixes a glitch in nuget packaging and
-                    is otherwise identical to 2.0.6 (apart from the copyright
-                    year and assembly version). If you are not using the nuget
-                    package there is no reason to upgrade.
-                </p>
+      <section id="2.0.7" name="2.0.7">
+        <p>
+          Apache log4net 2.0.7 fixes a glitch in nuget packaging and
+          is otherwise identical to 2.0.6 (apart from the copyright
+          year and assembly version). If you are not using the nuget
+          package there is no reason to upgrade.
+        </p>
 
-                <section id="2.0.7-bug" name="Bug Fixes">
-                    <ul>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-540'>LOG4NET-540</a>] - nuget
-                            dependencies for .NET Standard leak into net46
-                        </li>
-                    </ul>
-                </section>
-            </section>
+        <section id="2.0.7-bug" name="Bug Fixes">
+          <ul>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-540'>LOG4NET-540</a>] - nuget
+              dependencies for .NET Standard leak into net46
+            </li>
+          </ul>
+        </section>
+      </section>
 
-            <section id="2.0.6" name="2.0.6">
+      <section id="2.0.6" name="2.0.6">
 
-                <p>
-                    The Apache log4net team is now responsible for the nuget
-                    package, we've changed the version number of this release
-                    to align the version numbers. Release 2.0.6 is supposed to
-                    be compatible with 1.2.15.
-                </p>
+        <p>
+          The Apache log4net team is now responsible for the nuget
+          package, we've changed the version number of this release
+          to align the version numbers. Release 2.0.6 is supposed to
+          be compatible with 1.2.15.
+        </p>
 
-                <p>
-                    The binary distributions no longer contain assemblies
-                    built for the .NET Framework 1.x or Mono 1.x - you can
-                    build those yourself using the source distribution.
-                </p>
+        <p>
+          The binary distributions no longer contain assemblies
+          built for the .NET Framework 1.x or Mono 1.x - you can
+          build those yourself using the source distribution.
+        </p>
 
-                <p>
-                    Starting with 2.0.6 .NET Core - or more precisely
-                    .NET Standard 1.3 - has become a supported platform. Please
-                    note that several features of log4net are not available
-                    when using the .NET Core version, see <a
-                        href="framework-support.html#netstandard-1.3">framework
-                    support
-                </a> for details.
-                </p>
+        <p>
+          Starting with 2.0.6 .NET Core - or more precisely
+          .NET Standard 1.3 - has become a supported platform. Please
+          note that several features of log4net are not available
+          when using the .NET Core version, see <a
+                        href="framework-support.html#netstandard-1.3">
+            framework
+            support
+          </a> for details.
+        </p>
 
-                <section id="2.0.6-bug" name="Bug Fixes">
-                    <ul>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-508'>LOG4NET-508</a>] - NAnt release
-                            build is not optimized
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-512'>LOG4NET-512</a>] - Thread
-                            safety
-                            issue in Hierarchy.cs
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-527'>LOG4NET-527</a>] - broken link
-                            on
-                            config-examples.html
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-529'>LOG4NET-529</a>] - Possible
-                            thread-safety bug in LoggingEvent
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-536'>LOG4NET-536</a>] - Can&#39;t
-                            build
-                            for NETCF-2.0
-                        </li>
-                    </ul>
-                </section>
-                <section id="2.0.6-enh" name="Improvements">
-                    <ul>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-530'>LOG4NET-530</a>] - Use UTC
-                            internally to avoid ambiguous timestamps
-                        </li>
-                    </ul>
-                </section>
+        <section id="2.0.6-bug" name="Bug Fixes">
+          <ul>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-508'>LOG4NET-508</a>] - NAnt release
+              build is not optimized
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-512'>LOG4NET-512</a>] - Thread
+              safety
+              issue in Hierarchy.cs
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-527'>LOG4NET-527</a>] - broken link
+              on
+              config-examples.html
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-529'>LOG4NET-529</a>] - Possible
+              thread-safety bug in LoggingEvent
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-536'>LOG4NET-536</a>] - Can&#39;t
+              build
+              for NETCF-2.0
+            </li>
+          </ul>
+        </section>
+        <section id="2.0.6-enh" name="Improvements">
+          <ul>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-530'>LOG4NET-530</a>] - Use UTC
+              internally to avoid ambiguous timestamps
+            </li>
+          </ul>
+        </section>
 
-                <section id="2.0.6-new" name="New Features">
-                    <ul>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-467'>LOG4NET-467</a>] - Is .NET
-                            Core,
-                            will be supported in the near future, or not
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-511'>LOG4NET-511</a>] - API to flush
-                            appenders
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-526'>LOG4NET-526</a>] - Add
-                            appSetting
-                            conversion pattern to PatternString
-                        </li>
-                    </ul>
-                </section>
-            </section>
+        <section id="2.0.6-new" name="New Features">
+          <ul>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-467'>LOG4NET-467</a>] - Is .NET
+              Core,
+              will be supported in the near future, or not
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-511'>LOG4NET-511</a>] - API to flush
+              appenders
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-526'>LOG4NET-526</a>] - Add
+              appSetting
+              conversion pattern to PatternString
+            </li>
+          </ul>
+        </section>
+      </section>
 
-            <section id="1.2.15" name="1.2.15">
-                <section id="1.2.15-bug" name="Bug Fixes">
-                    <ul>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-462'>LOG4NET-462</a>] -
-                            ReadOnlyPropertiesDictionary not thread safe
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-488'>LOG4NET-488</a>] - Fix tests
-                            build
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-489'>LOG4NET-489</a>] -
-                            AdoNetAppender
-                            fails after upgrade to 2.0.4
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-490'>LOG4NET-490</a>] -
-                            InterProcessLock
-                            Tests fail
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-493'>LOG4NET-493</a>] - Log4net
-                            1.2.14/ADO.NET appender throws exception when starting (1.2.13 with same config works fine)
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-494'>LOG4NET-494</a>] -
-                            ArgumentOutOfRange with SQLite
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-495'>LOG4NET-495</a>] - Error when
-                            BufferSize is &gt;1, parameter already defined
-                        </li>
-                    </ul>
-                </section>
-            </section>
+      <section id="1.2.15" name="1.2.15">
+        <section id="1.2.15-bug" name="Bug Fixes">
+          <ul>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-462'>LOG4NET-462</a>] -
+              ReadOnlyPropertiesDictionary not thread safe
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-488'>LOG4NET-488</a>] - Fix tests
+              build
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-489'>LOG4NET-489</a>] -
+              AdoNetAppender
+              fails after upgrade to 2.0.4
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-490'>LOG4NET-490</a>] -
+              InterProcessLock
+              Tests fail
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-493'>LOG4NET-493</a>] - Log4net
+              1.2.14/ADO.NET appender throws exception when starting (1.2.13 with same config works fine)
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-494'>LOG4NET-494</a>] -
+              ArgumentOutOfRange with SQLite
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-495'>LOG4NET-495</a>] - Error when
+              BufferSize is &gt;1, parameter already defined
+            </li>
+          </ul>
+        </section>
+      </section>
 
-            <section id="1.2.14" name="1.2.14">
-                <section id="1.2.14-bug" name="Bug Fixes">
-                    <ul>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-408'>LOG4NET-408</a>] - Correction
-                            on
-                            InterProcessLock
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-443'>LOG4NET-443</a>] -
-                            Logger.CallAppenders
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-447'>LOG4NET-447</a>] -
-                            MemoryAppender
-                            class is not thread safe
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-455'>LOG4NET-455</a>] -
-                            LogicalThreadContext does not flow correctly through async/await
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-479'>LOG4NET-479</a>] - Cannot
-                            compile
-                            log4net.vs2008
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-484'>LOG4NET-484</a>] -
-                            System.ObjectDisposedException with FileAppender+InterProcessLock
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-485'>LOG4NET-485</a>] -
-                            RollingFileAppender cannot be used by multiple process
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-486'>LOG4NET-486</a>] - Rolling File
-                            Appender with &#39;maxSizeRollBackups&#39; and &#39;datePattern&#39; does not detect
-                            existing
-                            logs initially
-                        </li>
-                    </ul>
-                </section>
+      <section id="1.2.14" name="1.2.14">
+        <section id="1.2.14-bug" name="Bug Fixes">
+          <ul>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-408'>LOG4NET-408</a>] - Correction
+              on
+              InterProcessLock
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-443'>LOG4NET-443</a>] -
+              Logger.CallAppenders
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-447'>LOG4NET-447</a>] -
+              MemoryAppender
+              class is not thread safe
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-455'>LOG4NET-455</a>] -
+              LogicalThreadContext does not flow correctly through async/await
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-479'>LOG4NET-479</a>] - Cannot
+              compile
+              log4net.vs2008
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-484'>LOG4NET-484</a>] -
+              System.ObjectDisposedException with FileAppender+InterProcessLock
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-485'>LOG4NET-485</a>] -
+              RollingFileAppender cannot be used by multiple process
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-486'>LOG4NET-486</a>] - Rolling File
+              Appender with &#39;maxSizeRollBackups&#39; and &#39;datePattern&#39; does not detect
+              existing
+              logs initially
+            </li>
+          </ul>
+        </section>
 
-                <section id="1.2.14-enh" name="Improvements">
-                    <ul>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-456'>LOG4NET-456</a>] - Include
-                            debug
-                            symbol files in release packages
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-457'>LOG4NET-457</a>] - SMTP
-                            Appender
-                            should trim leading and trailing separators from address fields
-                        </li>
-                    </ul>
-                </section>
+        <section id="1.2.14-enh" name="Improvements">
+          <ul>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-456'>LOG4NET-456</a>] - Include
+              debug
+              symbol files in release packages
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-457'>LOG4NET-457</a>] - SMTP
+              Appender
+              should trim leading and trailing separators from address fields
+            </li>
+          </ul>
+        </section>
 
-                <section id="1.2.14-new" name="New Features">
-                    <ul>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-473'>LOG4NET-473</a>] - Option for
-                            file
-                            extension in SmtpPickupDirAppender
-                        </li>
-                    </ul>
-                </section>
-            </section>
+        <section id="1.2.14-new" name="New Features">
+          <ul>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-473'>LOG4NET-473</a>] - Option for
+              file
+              extension in SmtpPickupDirAppender
+            </li>
+          </ul>
+        </section>
+      </section>
 
-            <section id="1.2.13" name="1.2.13">
+      <section id="1.2.13" name="1.2.13">
 
-                <section id="1.2.13-bug" name="Bug Fixes">
-                    <ul>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-132'>LOG4NET-132</a>] - Environment
-                            variables are mistakenly case sensitive on windows
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-376'>LOG4NET-376</a>] - Race
-                            condition
-                            in AbsoluteTimeDateFormatter
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-393'>LOG4NET-393</a>] - Using
-                            dynamic
-                            methods with log4net causes NullReferenceException in StackFrameItem
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-399'>LOG4NET-399</a>] - Does not
-                            build
-                            for Compact Framework 2.0
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-404'>LOG4NET-404</a>] - assemblies
-                            for
-                            .NET 3.5 are missing ILogExtensions
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-405'>LOG4NET-405</a>] - SmtpAppender
-                            encoding changes
-                        </li>
-                    </ul>
-
-                </section>
-
-                <section id="1.2.13-enh" name="Improvements">
-
-                    <ul>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-394'>LOG4NET-394</a>] - Lambda-based
-                            ILog-Extensions should catch errors
-                        </li>
-                    </ul>
-
-                </section>
-            </section>
-
-            <section id="1.2.12" name="1.2.12">
-
-                <p>
-                    The binary distributions no longer contain assemblies
-                    built for the Compact Framework 2.0 - you can build
-                    those yourself using the source distribution.
-                </p>
-
-                <section id="1.2.12-bug" name="Bug Fixes">
-                    <ul>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-148'>LOG4NET-148</a>] -
-                            ThreadContext
-                            uses LocalDataStore to store ThreadSpecific data instead should be using [ThreadStatic]
-                            variables.
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-178'>LOG4NET-178</a>] - Log4Net
-                            stops
-                            logging after appdomain recycle of ASP.NET2.0 application
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-202'>LOG4NET-202</a>] -
-                            AdoNetAppenderParameter.Size Property is not optional
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-218'>LOG4NET-218</a>] - Test
-                            StringFormatTest.TestFormatString fails
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-220'>LOG4NET-220</a>] - multiple
-                            users
-                            overwrite existing log file when RollingFileAppender is rolling over date and minimal
-                            locking is
-                            used
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-228'>LOG4NET-228</a>] -
-                            log4net.Util.HostName may throw System.Configuration.ConfigurationErrorsException in
-                            System.Net.Dns.GetHostName(). The exception should be ignored.
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-266'>LOG4NET-266</a>] -
-                            AdoNetAppender
-                            does not work on a IIS 7 website using Windows authentication
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-277'>LOG4NET-277</a>] - Registering
-                            a
-                            custom Object Renderer in configuration file
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-284'>LOG4NET-284</a>] - In a
-                            multithreaded application, duplicate messages are output.
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-294'>LOG4NET-294</a>] - Exception
-                            rendering object type [System.OutOfMemoryException]
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-317'>LOG4NET-317</a>] -
-                            LogicalThreadContext sometimes doesn&#39;t follow CallContext&#39;s logical thread
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-322'>LOG4NET-322</a>] - Conditional
-                            compilation symbols for .net4 Release
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-323'>LOG4NET-323</a>] -
-                            AbsoluteTimeDateFormatter caches string representation of now too aggressively
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-331'>LOG4NET-331</a>] -
-                            AdoNetAppender
-                            errors when writing Asp.net item when Request object is null
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-335'>LOG4NET-335</a>] - Lost the
-                            ability
-                            to monitor changes to logger config files when you call ConfigureAndWatch multiple times
-                            with
-                            different Config File Names - worked fine on 1.2.10.0
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-341'>LOG4NET-341</a>] -
-                            RemotingAppender
-                            Error
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-343'>LOG4NET-343</a>] -
-                            ArgumentOutOfRangeException in log4net hierarchy on &quot;.&quot; logger name
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-347'>LOG4NET-347</a>] - Log4net not
-                            working in an ASP.Net environment with medium trust
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-348'>LOG4NET-348</a>] -
-                            System.IndexOutOfRangeException when StackFrameLevel is greater then StackFrames length
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-352'>LOG4NET-352</a>] - CS0419
-                            during
-                            build with Mono &gt;2.6
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-360'>LOG4NET-360</a>] -
-                            EventLogAppender
-                            can corrupt the event log on Windows Vista and higher if the string is longer than 31839
-                            bytes
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-361'>LOG4NET-361</a>] -
-                            RollingLogFileAppender does not correctly initialize the backup index when style is date or
-                            composite
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-369'>LOG4NET-369</a>] -
-                            preserveLogFileNameExtension is not considered when rolling over time after an application
-                            restart
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-370'>LOG4NET-370</a>] -
-                            RemoteSyslogAppender doesn&#39;t properly handle newline in log message
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-371'>LOG4NET-371</a>] - Log with
-                            formatting doesn&#39;t call custom renderers (IObjectRenderer)
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-375'>LOG4NET-375</a>] - typo /
-                            misspelling in log message
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-378'>LOG4NET-378</a>] - Rolling log
-                            file
-                            is overwritten when application is restarted
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-379'>LOG4NET-379</a>] -
-                            NullReferenceException in FileAppender when file is not filled.
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-382'>LOG4NET-382</a>] -
-                            TargetInvocationException occurs because MESSAGE_SIZE fields in EventLogAppender are
-                            initialized
-                            in wrong order
-                        </li>
-                    </ul>
-                </section>
-
-                <section id="1.2.12-enh" name="Improvements">
-                    <ul>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-222'>LOG4NET-222</a>] - [PATCH]
-                            Improve
-                            AnsiColorTerminalAppender to support marking colors as Light
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-223'>LOG4NET-223</a>] - [PATCH]
-                            Improve
-                            AnsiColorTerminalAppender to support marking colors as Light
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-232'>LOG4NET-232</a>] - Use
-                            ReaderWriterLockSlim instead of ReaderWriterLock.
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-259'>LOG4NET-259</a>] - Log4Net does
-                            not
-                            create a new tab in Chainsaw
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-283'>LOG4NET-283</a>] -
-                            OnlyOnceErrorHandler is not subclass-friendly
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-292'>LOG4NET-292</a>] - Managed
-                            ColoredConsoleAppender for .NET2/Mono.
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-315'>LOG4NET-315</a>] - SmtpAppender
-                            -
-                            Add support for ignoring certificate errors
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-316'>LOG4NET-316</a>] - Provide a
-                            Layout
-                            Pattern that is re-evaluated on each use
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-318'>LOG4NET-318</a>] - log4net
-                            doesn&#39;t
-                            pass verification
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-334'>LOG4NET-334</a>] - Appender
-                            Faill
-                            over
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-354'>LOG4NET-354</a>] - E-mail
-                            encoding
-                            configuration setting for SmtpAppender
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-362'>LOG4NET-362</a>] - [PATCH]
-                            SystemInfo.AssemblyLocationInfo throws unhandled ArgumentException &quot;Absolute path
-                            required&quot;
-                            when exe is started via UNC path
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-386'>LOG4NET-386</a>] - Can&#39;t
-                            access
-                            ThreadContext properties
-                        </li>
-                    </ul>
-                </section>
-
-                <section id="1.2.12-new" name="New Features">
-                    <ul>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-290'>LOG4NET-290</a>] - Add
-                            Lambda-based
-                            ILog-Extensions (embedded log.IsEnabled)
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-342'>LOG4NET-342</a>] - Add a way to
-                            prevent silent failure
-                        </li>
-                    </ul>
-                </section>
-            </section>
-
-            <section id="1.2.11" name="1.2.11">
-                <p>
-                    log4net 1.2.11 is not only a bugfix release, it also
-                    adds support for Microsoft&#xae; .NET 4.0 as well as the client profiles
-                    of .NET 3.5 and .NET 4.0.
-                </p>
-
-                <p>
-                    Starting with this release log4net uses a new strong
-                    name key but we also provide a binary distribution using
-                    the "old" strong name key of log4net 1.2.10 and earlier.
-                    See <a href="faq.html#two-snks">the FAQ</a> for details.
-                </p>
-
-                <p>
-                    The binary distributions no longer contain assemblies
-                    built for the Compact Framework 1.0 or the Shared Source
-                    CLI - you can build those yourself using the source
-                    distribution.
-                </p>
-
-                <section id="1.2.11-breaking" name="Breaking Changes">
-                    <p>
-                        The signature of
-                        <code>ILoggerFactory.CreateLogger</code>
-                        has changed.
-                    </p>
-                </section>
-
-                <section id="1.2.11-bug" name="Bug Fixes">
-                    <ul>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-76'>LOG4NET-76</a>] -
-                            TextWriterAdapter
-                            is not thread safe
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-79'>LOG4NET-79</a>] -
-                            SecurityException
-                            thrown in LogicalThreadContextProperties GetProperties
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-81'>LOG4NET-81</a>] -
-                            LoggerRepositorySkeleton&#39;s OnConfigurationChanged method always raises its event with
-                            EventArgs.Empty instead of passing through its EventArgs parameter.
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-93'>LOG4NET-93</a>] - Typos for node
-                            name in tutorial, excess quote, invalid XML
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-94'>LOG4NET-94</a>] - Incorrect
-                            config
-                            file for ..\examples\net\1.0\Tutorials\ConsoleApp
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-95'>LOG4NET-95</a>] -
-                            Level.CompareTo()
-                            may result a wrong Value -&gt; sorting of Levels does not work
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-113'>LOG4NET-113</a>] -
-                            SystemInfo.GetTypeFromString() raises NotSupportedException
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-123'>LOG4NET-123</a>] -
-                            EnvironmentPatternConverter does not expand User or System level environment variables under
-                            Windows
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-126'>LOG4NET-126</a>] - Links on the
-                            log4net Examples page do not work, including the overview link explaining why the other
-                            links do
-                            not work
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-128'>LOG4NET-128</a>] - Either
-                            documentation is incorrect or a bug in SmtpAppender
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-129'>LOG4NET-129</a>] -
-                            EventLogAppender
-                            EventID parsing does not handle Active Properties properly
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-135'>LOG4NET-135</a>] - Bad example
-                            code
-                            in documentation
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-137'>LOG4NET-137</a>] -
-                            log4net.Filter.LevelMatchFilter does not work anymore
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-143'>LOG4NET-143</a>] - Invalid
-                            Repository Config Uri composition from &quot;log4net.Config&quot; application setting
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-146'>LOG4NET-146</a>] -
-                            System.NullReferenceException on FindAndRender object
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-158'>LOG4NET-158</a>] -
-                            XMLConfigurator.ConfigureAndWatch() leaks resources if called multiple times
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-167'>LOG4NET-167</a>] -
-                            ArrayOutOfBounds
-                            Exception in MemoryAppender.getEvents()
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-212'>LOG4NET-212</a>] - Threading
-                            bug in
-                            the PatternConverter.cs
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-214'>LOG4NET-214</a>] -
-                            EventLogAppender
-                            should also use config file to set EventId
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-215'>LOG4NET-215</a>] - Exception on
-                            Convert for return %class{1} name
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-229'>LOG4NET-229</a>] - Japanese
-                            characters get garbled with log4net.Layout.XmlLayoutSchemaLog4j
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-241'>LOG4NET-241</a>] - Issue
-                            tracking
-                            page does not link to project
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-242'>LOG4NET-242</a>] - Download
-                            page
-                            does not have link to KEYS file
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-243'>LOG4NET-243</a>] - broken link
-                            on
-                            http://logging.apache.org/log4net/release/example-apps.html
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-244'>LOG4NET-244</a>] -
-                            SmtpAppender.To
-                            Property has incorrect delimiter
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-257'>LOG4NET-257</a>] - Visual
-                            Studio
-                            2010 .NET 4.0 Application does not copy log4net lib to bin directory
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-265'>LOG4NET-265</a>] -
-                            RemoteFileAppender Tests fail on Windows 7
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-274'>LOG4NET-274</a>] - log4net
-                            doesn&#39;t
-                            log when running a .Net 4.0 Windows application built in Release mode
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-297'>LOG4NET-297</a>] -
-                            AppenderSkeleton.RequiresLayout docs and implementation don&#39;t match
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-300'>LOG4NET-300</a>] - FilterTest
-                            doesn&#39;t
-                            compile for .Net 2.0
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-301'>LOG4NET-301</a>] - Unit tests
-                            fail
-                            on a clean checkout on .NET 2.0 using NAnt
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-310'>LOG4NET-310</a>] -
-                            EventLogAppender&#39;s
-                            ActivateOptions throws SecurityException on Vista/Win2k3 and later when not run as
-                            administrator
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-311'>LOG4NET-311</a>] - MinimalLock
-                            and
-                            AppendToFile=false don&#39;t work together in trunk&#39;s FileAppender
-                        </li>
-                    </ul>
-                </section>
-
-                <section id="1.2.11-enh" name="Improvements">
-                    <ul>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-31'>LOG4NET-31</a>] - Allow user to
-                            pass
-                            in additional parameters to &lt;converter&gt; node via some kind of &lt;property&gt; tag
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-38'>LOG4NET-38</a>] -
-                            EventLogAppender:
-                            Add support for setting the Category on Event Log messages.
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-66'>LOG4NET-66</a>] -
-                            PreserveFileExtension with StaticFileName
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-77'>LOG4NET-77</a>] - A small
-                            improvement of log4net.Layout.Pattern.ExceptionPatternConverter - added &#39;Option&#39;
-                            propery
-                            support
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-88'>LOG4NET-88</a>] - support .NET
-                            2.0
-                            connectionStrings configuration section
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-96'>LOG4NET-96</a>] - Expose the
-                            Message, Exception, and ErrorCode properties of OnlyOnceErrorHandler.
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-97'>LOG4NET-97</a>] - Make Hierarchy&#39;s
-                            ILoggerFactory aware of the repository&#39;s LevelMap
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-98'>LOG4NET-98</a>] - Update header
-                            comment in files to be compliant with new Apache header requirements:
-                            http://www.apache.org/legal/src-headers.html for 11/1/2006 deadline
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-100'>LOG4NET-100</a>] -
-                            IPAddressConverter improvement for .NET 2 or .NET 3
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-106'>LOG4NET-106</a>] -
-                            TraceAppender :
-                            Add switch to disable using logger name as trace category
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-112'>LOG4NET-112</a>] - Add support
-                            to
-                            the UdpAppender for IP v6 remote addresses
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-131'>LOG4NET-131</a>] - Add Cc and
-                            Bcc
-                            support to SmtpAppender
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-141'>LOG4NET-141</a>] - Add
-                            CreateConnection method to AdoNetAppender to allow subclasses to have control of
-                            IDbConnection.
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-153'>LOG4NET-153</a>] - Make it
-                            easier
-                            to configure multiple appenders in code using BasicConfigurator
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-157'>LOG4NET-157</a>] - FAQ for
-                            getting
-                            the fully-qualified name of a class
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-164'>LOG4NET-164</a>] - using a
-                            named
-                            mutex for file appenders
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-170'>LOG4NET-170</a>] -
-                            Documentation
-                            improvement re: fixing and active properties
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-246'>LOG4NET-246</a>] - Make it
-                            possible
-                            to choose whether or not to watch configuration files specified using the &quot;log4net.Config&quot;
-                            appsetting key
-                        </li>
-                    </ul>
-
-                </section>
-                <section id="1.2.11-new" name="New Features">
-                    <ul>
-                        <li>The various static <code>Configure</code> methods of the <code>Configurator</code> classes
-                            now
-                            return collections of configuration messages rather than <code>void</code>.
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-59'>LOG4NET-59</a>] - add the
-                            ability to
-                            roll files based on universal time (UTC).
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-64'>LOG4NET-64</a>] - add the
-                            ability to
-                            preserve the log file name extension when rolling the log file.
-                        </li>
-                        <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-87'>LOG4NET-87</a>] - Support
-                            ASP.Net
-                            related PatternConverters to allow items from the HttpContext.Current.Session, Cache,
-                            Request,
-                            etc. to be captured.
-                            <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-92'>LOG4NET-92</a>] - Build for
-                                Compact Framework 2.0
-                            </li>
-                            <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-107'>LOG4NET-107</a>] - Added
-                                ExceptionEvaluator
-                            </li>
-                            <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-115'>LOG4NET-115</a>] - Expand
-                                UserAppDataPath in filename
-                            </li>
-                            <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-116'>LOG4NET-116</a>] - allow
-                                smtp
-                                to ssl authenticate and with certificates.
-                            </li>
-                            <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-154'>LOG4NET-154</a>] - Add a
-                                StackTracePatternConverter to display method calls leading up to log message
-                            </li>
-                            <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-155'>LOG4NET-155</a>] - Add
-                                TimeEvaluator
-                            </li>
-                            <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-168'>LOG4NET-168</a>] - New
-                                property
-                                ReplyTo address for the SmtpAppender required
-                            </li>
-                            <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-176'>LOG4NET-176</a>] -
-                                Buildable
-                                with VS 2008 and .NET FW 3.5
-                            </li>
-                            <li>[<a href='https://issues.apache.org/jira/browse/LOG4NET-233'>LOG4NET-233</a>] - Support
-                                .NET
-                                4.0 including Client Profile
-                            </li>
-                        </li>
-                    </ul>
-                </section>
-
-            </section>
-
-            <section id="1.2.10" name="1.2.10">
-
-                <section id="1.2.10-bug" name="Bug Fixes">
-                    <ul>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-21'>LOG4NET-21</a>] -
-                            RemotingAppender
-                            fails once NDC becomes empty
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-22'>LOG4NET-22</a>] - XmlLayout
-                            allows
-                            output of invalid control characters
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-23'>LOG4NET-23</a>] -
-                            example-apps.html
-                            links are off by one folder level
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-25'>LOG4NET-25</a>] -
-                            RollingFileAppender
-                            can fail if RollOverIfDateBoundaryCrossing required
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-28'>LOG4NET-28</a>] - AdoNetAppender
-                            does
-                            not support inserting NULL into columns
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-29'>LOG4NET-29</a>] -
-                            LevelMatchFilter
-                            should return Neutral when no match is found
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-32'>LOG4NET-32</a>] - AdoNetAppender
-                            losing first entry
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-35'>LOG4NET-35</a>] - Exception
-                            rendering
-                            ThreadContextStack if null value pushed into stack
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-36'>LOG4NET-36</a>] -
-                            System.Diagnostics.Trace may throw exception if AppDomain does not have config file
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-40'>LOG4NET-40</a>] -
-                            RollingFileAppender
-                            does not limit files to MaxSizeRollBackups when CountDirection is 1
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-41'>LOG4NET-41</a>] -
-                            RollingFileAppender
-                            roll over date fail
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-42'>LOG4NET-42</a>] - Serialised
-                            LoggingEvent does not preserve the Fix flags
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-43'>LOG4NET-43</a>] - Specifying an
-                            empty
-                            string as a property in the config file results in an error
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-44'>LOG4NET-44</a>] - XmlLayout emits
-                            all
-                            properties under a node named global-properties, rather than just properties.
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-49'>LOG4NET-49</a>] -
-                            CountingQuietTextWriter does not count strings written with WriteLine
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-50'>LOG4NET-50</a>] -
-                            Process.StartTime
-                            hangs on some systems
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-60'>LOG4NET-60</a>] - Bug in
-                            RollingFileAppender.cs causing failure to timely roll files on monthly interval
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-63'>LOG4NET-63</a>] - 1.2.9.0
-                            Documentation typos
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-65'>LOG4NET-65</a>] - Unhandled
-                            SecurityException exception for FileIOPermission while loading configuration file
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-67'>LOG4NET-67</a>] - CVE-2006-0743
-                            Security vulnerability in LocalSyslogAppender
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-69'>LOG4NET-69</a>] - Exception
-                            thrown
-                            when *Format methods are given a malformed format string
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-70'>LOG4NET-70</a>] - CoreDll.dll
-                            referenced with different capitalisation
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-73'>LOG4NET-73</a>] -
-                            ADONetAppender.ActivateOptions() leaks database connection when called multiple times
-                        </li>
-                    </ul>
-                </section>
-
-                <section id="1.2.10-new" name="New Features">
-                    <ul>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-11'>LOG4NET-11</a>] - Add Flush
-                            command
-                            to API
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-24'>LOG4NET-24</a>] - Programmatic
-                            flush
-                            of BufferingAppenderSkeleton buffer
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-37'>LOG4NET-37</a>] - Allow the
-                            RepositorySelector type to be specified using the AppSettings config
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-46'>LOG4NET-46</a>] - Support
-                            appenders
-                            that can output multiple events efficiently
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-51'>LOG4NET-51</a>] - WmiAppender
-                        </li>
-                    </ul>
-                </section>
-
-                <section id="1.2.10-enh" name="Improvements">
-                    <ul>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-3'>LOG4NET-3</a>] - Support per event
-                            patterns in FileAppender File name
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-13'>LOG4NET-13</a>] - Allow
-                            SMTPAppender
-                            to have replaceable parameters in Subject
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-15'>LOG4NET-15</a>] - Email high
-                            "importance" priority setting with SmtpAppender
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-17'>LOG4NET-17</a>] - Line-wrapping
-                            Appender Layouts
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-33'>LOG4NET-33</a>] - Ability to use
-                            global property to point to log4net configuration file
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-34'>LOG4NET-34</a>] - Allow xml
-                            config
-                            values to be set via XmlNodeType.CDATA or XmlNodeType.Text rather than just value="foo"
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-45'>LOG4NET-45</a>] - PluginAttribute
-                            does not allow plugin type to be specified as a Type, only as a string
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-52'>LOG4NET-52</a>] - Allow XML
-                            configurator to set properties of type Object
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-53'>LOG4NET-53</a>] - Allow
-                            repository
-                            properties to be set in the config file
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-56'>LOG4NET-56</a>] - Support
-                            rendering
-                            IEnumerator objects as well as ICollections
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-58'>LOG4NET-58</a>] - Support clean
-                            build
-                            on .NET 2.0
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-72'>LOG4NET-72</a>] - Performance of
-                            ILog.xxxFormat methods
-                        </li>
-                        <li>[<a href='http://issues.apache.org/jira/browse/LOG4NET-74'>LOG4NET-74</a>] - Change
-                            MemoryAppender member variables to protected
-                        </li>
-                    </ul>
-                </section>
-
-            </section>
-
-            <section id="1.2.9" name="1.2.9 Beta">
-
-                <section id="1.2.9-breaking" name="Breaking Changes">
-                    <h3>Renamed namespaces</h3>
-                    <p>
-                        Renamed namespace <span class="code">log4net.spi</span> to <span class="code">
-                        log4net.Core</span>.
-                        Renamed namespace <span class="code">log4net.helpers</span> to <span class="code">
-                        log4net.Util</span>.
-                    </p>
-                    <h3>Renamed config classes and attributes</h3>
-                    <p>
-                        In the <span class="code">log4net.Config</span> namespace the <span class="code">
-                        DOMConfigurator</span>,
-                        <span class="code">DOMConfiguratorAttribute</span>, <span class="code">DomainAttribute</span>,
-                        and <span class="code">AliasDomainAttribute</span> have been marked as obsolete. These types are
-                        still available and functional in this release.
-                    </p>
-                    <p>
-                        The <span class="code">XmlConfigurator</span> and
-                        <span class="code">XmlConfiguratorAttribute</span>
-                        types replace <span class="code">DOMConfigurator</span> and
-                        <span class="code">DOMConfiguratorAttribute</span>. The
-                        <span class="code">RepositoryAttribute</span>
-                        and <span class="code">AliasRepositoryAttribute</span> types replace
-                        <span class="code">DomainAttribute</span>
-                        and <span class="code">AliasDomainAttribute</span>.
-                    </p>
-                    <h3>Fixed pascal casing of type names</h3>
-                    <p>
-                        Renamed <span class="code">AdoNetAppender</span>, <span class="code">AspNetTraceAppender</span>,
-                        <span class="code">SmtpAppender</span>, <span class="code">Iso8601DateFormatter</span>,
-                        <span class="code">MdcFilter</span>, and <span class="code">NdcFilter</span>.
-                        Note that the config file type resolver is case insensitive so this is only a breaking change
-                        for code that programmatically creates a type that has been renamed.
-                    </p>
-                    <h3>Layouts changed to stream their output to a
-                        <span class="code">TextWriter</span>
-                    </h3>
-                    <p>
-                        Layouts have been changed to format their output to a
-                        <span class="code">TextWriter</span>
-                        rather than return a string. This increases performance and reduces temporary object creation.
-                    </p>
-                    <h3>C style string escapes no longer supported by config parser</h3>
-                    <p>
-                        The XML config parser no longer supports decoding C style escape sequences in strings.
-                        Previously sequences like <span class="code">\n</span> and
-                        <span class="code">\\</span>
-                        where decoded. Instead use the appropriate XML encodings as required.
-                    </p>
-                </section>
-
-                <section id="1.2.9-new" name="New Features">
-                    <h3>New CLI build</h3>
-                    <p>
-                        A new log4net assembly is built that targets all CLI 1.0 compatible runtimes.
-                        This build is essentially a common subset of the Mono 1.0 and .NET 1.0 builds.
-                        It is built using the MS .NET 1.0 compiler and libraries but does not use any
-                        platform specific APIs.
-                    </p>
-                    <p>
-                        This build is only available in release configuration and can be found at
-                        <span class="code">bin\cli\1.0\release</span>.
-                    </p>
-                    <h3>Logging contexts</h3>
-                    <p>
-                        Logging contexts can be used to record contextual data that is relevant to the current
-                        process. Logging contexts are both an extension of the concepts embodied in the
-                        <span class="code">MDC</span>
-                        and <span class="code">NDC</span> and a replacement for
-                        them. The <span class="code">MDC</span> and <span class="code">NDC</span> have been
-                        reimplemented to use the <span class="code">ThreadContext</span> as storage.
-                    </p>
-                    <p>
-                        The logging contexts provide a single unified view that cuts across different
-                        scopes within an application.
-                        The contexts are layered in the following order of narrowing scope:
-                        <span class="code">GlobalContext</span>, <span class="code">ThreadContext</span>,
-                        <span class="code">LogicalThreadContext</span>, and <span class="code">LoggingEvent</span>.
-                        Context values specified in a narrower scope hide the matching value in a wider scope.
-                    </p>
-                    <h3>
-                        <span class="code">PatternLayout</span>
-                        customization and long pattern names
-                    </h3>
-                    <p>
-                        The <span class="code">PatternLayout</span> now supports long pattern names.
-                        These pattern names are significantly more readable than the single character patterns.
-                    </p>
-                    <p>
-                        The <span class="code">PatternLayout</span> now supports custom patterns. New patterns
-                        can be defined in the config file:
-                    </p>
-                    <div class="syntax">
-                        <pre class="code">
-                            &lt;layout type=&quot;log4net.Layout.PatternLayout&quot;&gt;
-
-                            &lt;converter&gt;
-                            &lt;name value=&quot;myConverter&quot; /&gt;
-                            &lt;type value=&quot;TestApp.MyPatternConverter, TestApp&quot; /&gt;
-                            &lt;/converter&gt;
-
-                            &lt;conversionPattern value=&quot;%-5level %logger - %myConverter - %message%newline&quot; /&gt;
-                            &lt;/layout&gt;
-                        </pre>
-                    </div>
-                    <p>
-                        The above config defines a custom pattern called
-                        <span class="code">myConverter</span>
-                        which is bound to the
-                        <span class="code">TestApp.MyPatternConverter, TestApp</span>
-                        type. This type must extend the
-                        <span class="code">log4net.Util.PatternConverter</span>
-                        base class. The custom pattern can then be used in the pattern string.
-                    </p>
-                    <p>
-                        For full details see the SDK Reference entry: <a
-                            href="sdk/html/T_log4net_Layout_PatternLayout.htm">
-                        log4net.Layout.PatternLayout</a>.
-                    </p>
-                    <h3>
-                        <span class="code">PatternString</span>
-                        for pattern based configuration
-                    </h3>
-                    <p>
-                        A new pattern based type, <span class="code">PatternString</span>, can be used in
-                        the config file to set string properties using a pattern syntax. For example the
-                        File property of the FileAppender could be set as follows:
-                    </p>
-                    <div class="syntax">
-                        <pre class="code">
-                            &lt;file type=&quot;log4net.Util.PatternString&quot;&gt;
-
-                            &lt;converter&gt;
-                            &lt;name value=&quot;folder&quot; /&gt;
-                            &lt;type value=&quot;TestApp.SpecialFolderPatternConverter,TestApp&quot; /&gt;
-                            &lt;/converter&gt;
-
-                            &lt;conversionPattern value=&quot;%folder{LocalApplicationData}\log-file.txt&quot; /&gt;
-                            &lt;/file&gt;
-                        </pre>
-                    </div>
-                    <p>
-                        The code for the
-                        <span class="code">SpecialFolderPatternConverter</span>
-                        is as follows:
-                    </p>
-                    <div class="syntax">
-                        <pre class="code">
-                            public class SpecialFolderPatternConverter : log4net.Util.PatternConverter
-                            {
-                            override protected void Convert(System.IO.TextWriter writer, object state)
-                            {
-                            Environment.SpecialFolder specialFolder =
-                            (Environment.SpecialFolder)Enum.Parse(typeof(Environment.SpecialFolder), base.Option, true);
-
-                            writer.Write(Environment.GetFolderPath(specialFolder));
-                            }
-                            }
-                        </pre>
-                    </div>
-                    <p>
-                        For full details see the SDK Reference entry: <a
-                            href="sdk/html/T_log4net_Util_PatternString_htm">
-                        log4net.Util.PatternString</a>.
-                    </p>
-                    <h3>Loading configuration from a URI</h3>
-                    <p>
-                        The <span class="code">XmlConfigurator</span> methods now support loading the
-                        configuration data from a URI. Config can be loaded from any URI supported by the
-                        <span class="code">System.Net.WebRequest</span>
-                        class.
-                    </p>
-                    <h3>Support for No-Touch deployment</h3>
-                    <p>
-                        Log4net supports configuring No-Touch deployment applications using the
-                        <span class="code">XmlConfiguratorAttribute</span>. If a relative config file
-                        or extension is specified then this is resolved relative to the deployment
-                        URI.
-                    </p>
-                    <h3>Config file parser enhancements</h3>
-                    <p>
-                        The config file parser has been enhanced to support specifying the property subtype, or
-                        intermediate
-                        type,
-                        directly on the property element, for example:
-                    </p>
-                    <div class="syntax">
-                        <pre class="code">
-                            &lt;layout type=&quot;log4net.Layout.PatternLayout&quot; value=&quot;%message%newline&quot;
-                            /&gt;
-                        </pre>
-                    </div>
-                    <p>
-                        Implicit conversion will be attempted between the value string and the type specified,
-                        and then again between the type and the target property type.
-                    </p>
-                    <h3>.NET string formatting syntax</h3>
-                    <p>
-                        Added .NET <span class="code">String.Format</span> style formatting syntax methods to
-                        the <span class="code">ILog</span> interface. The new methods are:
-                        <span class="code">DebugFormat</span>, <span class="code">InfoFormat</span>,
-                        <span class="code">WarnFormat</span>,
-                        <span class="code">ErrorFormat</span>
-                        and <span class="code">FatalFormat</span>.
-                    </p>
-                    <h3>Customizable levels</h3>
-                    <p>
-                        Levels are defined by the repository <span class="code">LevelMap</span>. The defined
-                        levels, the relative ordering of levels and level display names can be configured on
-                        a per-repository basis.
-                    </p>
-                    <h3>Per-appender security contexts</h3>
-                    <p>
-                        Appenders that interact with controlled platform resources, e.g. files, can be
-                        configured to use a separate security context when accessing these resources.
-                        The calling thread may not have appropriate privileges to access the resource a
-                        custom <span class="code">SecurityContext</span> can be used to elevate the
-                        privileges of the appender. The
-                        <span class="code">WindowsSecurityContext</span>
-                        is used to specify alternative credentials on the Windows platform.
-                    </p>
-                    <h3>Added new appenders</h3>
-                    <dl>
-                        <dt>
-                            <span class="code">AnsiColorTerminalAppender</span>
-                        </dt>
-                        <dd>
-                            <p>
-                                The <span class="code">AnsiColorTerminalAppender</span> writes events to
-                                the application's ANSI terminal window. It can be configured to specify
-                                the text and background colors for different level events. Note that Console
-                                applications running on Windows do not have an ANSI terminal window and
-                                should use the <span class="code">ColoredConsoleAppender</span> instead.
-                            </p>
-                        </dd>
-                        <dt>
-                            <span class="code">LocalSyslogAppender</span>
-                        </dt>
-                        <dd>
-                            <p>
-                                Logs events to a local syslog service. This appender uses the POSIX libc syslog
-                                library functions. If these functions are not available on the local system then
-                                this appender will not work!
-                            </p>
-                        </dd>
-                        <dt>
-                            <span class="code">RemoteSyslogAppender</span>
-                        </dt>
-                        <dd>
-                            <p>
-                                The <span class="code">RemoteSyslogAppender</span> uses the BSD syslog protocol to
-                                log to a syslog daemon. The syslogd listens for for messages on UDP port 514.
-                            </p>
-                        </dd>
-                        <dt>
-                            <span class="code">TelnetAppender</span>
-                        </dt>
-                        <dd>
-                            <p>
-                                The <span class="code">TelnetAppender</span> accepts socket connections and streams
-                                logging messages back to the client. The output is provided in a telnet-friendly way
-                                so that a log can be monitored over a TCP/IP socket.
-                                This allows simple remote monitoring of application logging.
-                            </p>
-                        </dd>
-                    </dl>
-                    <h3>Added new <span class="code">LoggerMatchFilter</span> filter
-                    </h3>
-                    <p>
-                        Added <span class="code">LoggerMatchFilter</span> which matches a string against
-                        the event's logger name.
-                    </p>
-                    <h3>Pluggable file locking models for the
-                        <span class="code">FileAppender</span>
-                    </h3>
-                    <p>
-                        The <span class="code">FileAppender</span> (and by extension the
-                        <span class="code">RollingFileAppender</span>) now support pluggable file
-                        locking models. The default model, <span class="code">ExclusiveLock</span>,
-                        maintains the current exclusive file locking behavior. An alternative
-                        model, <span class="code">MinimalLock</span>, can be used to support writing to
-                        a single output file from multiple processes.
-                    </p>
-                    <p>
-                        For full details see the SDK Reference entry: <a
-                            href="sdk/html/T_log4net_Appender_FileAppender_LockingModel.htm">
-                        log4net.Appender.FileAppender.LockingModel</a>.
-                    </p>
-                    <h3>
-                        <span class="code">RollingFileAppender</span>
-                        roll once
-                    </h3>
-                    <p>
-                        The <span class="code">RollingFileAppender</span> now supports a new
-                        rolling style, <span class="code">Once</span>. In this mode the appender
-                        will roll the file once per run.
-                    </p>
-                    <h3>
-                        <span class="code">SmtpAppender</span>
-                        authentication
-                    </h3>
-                    <p>
-                        On the .NET 1.1 platform only, the <span class="code">SmtpAppender</span> supports
-                        authenticating
-                        against the mail server using either username and password or integrated NTLM authentication.
-                    </p>
-                    <h3>
-                        <span class="code">AdoNetAppender</span>
-                        ReconnectOnError
-                    </h3>
-                    <p>
-                        Added new configuration property to <span class="code">AdoNetAppender</span>.
-                        Setting <span class="code">ReconnectOnError</span> to
-                        <span class="code">true</span>
-                        will force the appender to attempt to reconnect to the database if the connection
-                        is lost.
-                    </p>
-                    <h3>
-                        <span class="code">UdpAppender</span>
-                        hostname support
-                    </h3>
-                    <p>
-                        The <span class="code">UdpAppender</span> config property
-                        <span class="code">RemoteAddress</span>
-                        can now be specified as a DNS hostname string. The hostname is resolved to an IP address.
-                    </p>
-                </section>
-
-                <section id="1.2.9-other" name="Other Changes">
-                    <h3>FxCop compliance</h3>
-                    <p>
-                        Updates to bring the internal code in line with the current FxCop rules.
-                    </p>
-                    <h3>Separate NUnit tests</h3>
-                    <p>
-                        Moved the NUnit tests into a separate project, <span class="code">log4net.Tests</span>.
-                    </p>
-                    <h3>Bug Fixes</h3>
-                    <dl>
-                        <dt>
-                            <span class="code">RemotingAppender</span>
-                        </dt>
-                        <dd>
-                            <p>
-                                Sends events from a <span class="code">ThreadPool</span> thread
-                                rather than the calling thread to prevent transfer,
-                                and potential loss, of the <span class="code">CallContext</span>.
-                            </p>
-                        </dd>
-                        <dt>
-                            <span class="code">RollingFileAppender</span>
-                        </dt>
-                        <dd>
-                            <p>
-                                Fixed date rolling period detection for non UTC timezones.
-                            </p>
-                        </dd>
-                        <dt>
-                            <span class="code">ColoredConsoleAppender</span>
-                        </dt>
-                        <dd>
-                            <p>
-                                Updated to support writing more than 30,000 chars in a single message.
-                                Fixed background color overspill if the console window needs to
-                                scroll the contents.
-                            </p>
-                        </dd>
-                    </dl>
-                </section>
-
-            </section>
-
-            <section id="1.2.0b8" name="1.2.0 Beta 8">
-                <h3>Changed assembly name to
-                    <span class="code">log4net</span>
-                </h3>
-                <p>
-                    The build output is now
-                    <span class="code">log4net.dll</span>
-                    for all frameworks. This is a breaking change.
-                </p>
-                <p>
-                    To resolve cross platform and cross version issues we have
-                    changed the log4net assembly to use a common name for all
-                    frameworks. The assembly friendly name is now <span class="code">log4net</span>.
-                    The builds for each framework can now be differentiated
-                    by the assembly title. This includes the name of the framework
-                    that the assembly was built on.
-                </p>
-                <h3>Combined Release and ReleaseStrong builds</h3>
-                <p>
-                    The Release and ReleaseStrong builds have been consolidated into
-                    a single build called Release. This Release build is strongly named.
-                </p>
-                <h3>New Appender: ColoredConsoleAppender</h3>
-                <p>
-                    The <span class="code">ColoredConsoleAppender</span> writes events to the
-                    application's console. It can be configured to specify the text and background
-                    colors for different level events.
-                </p>
-                <h3>New Appender: SmtpPickupDirAppender</h3>
-                <p>
-                    The <span class="code">SmtpPickupDirAppender</span> generates SMTP compliant
-                    messages and writes them to a local directory. These files can then be read
-                    by an SMTP agent (e.g. the IIS SMTP Agent) and delivered.
-                </p>
-                <h3>New Layout: XmlLayoutSchemaLog4j</h3>
-                <p>
-                    This new layout formats the logging events as XML which complies with
-                    the Apache log4j&#x2122; event dtd. This can be used to transfer log event from log4net
-                    to log4j. Currently the only appender that can communicate directly with
-                    log4j is the <span class="code">UdpAppender</span>.
-                </p>
-                <h3>New PatternLayout conversion characters</h3>
-                <p>
-                    Added support for capturing the current thread principal name and the
-                    app domain friendly name for each logging event.
-                </p>
-                <dl>
-                    <dt>%a</dt>
-                    <dd>
-                        Used to output the friendly name of the AppDomain where the
-                        logging event was generated.
-                    </dd>
-                    <dt>%u</dt>
-                    <dd>
-                        Used to output the user name for the currently active user
-                        (<span class="code">Principal.Identity.Name</span>).
-                    </dd>
-                </dl>
-                <h3>Types specified in the config file are now loaded ignoring case</h3>
-                <p>
-                    All types specified in the configuration files are now loaded
-                    using a case insensitive method.
-                </p>
-                <h3>Fine grained fixing for buffered events</h3>
-                <p>
-                    The <span class="code">LoggingEvent</span> now supports fine grained
-                    fixing of data that needs to be accessed outside the append context,
-                    e.g. when an event is buffered. The new
-                    <span class="code">Fix</span>
-                    property takes a combination of the
-                    <span class="code">FixFlags</span>
-                    enumeration values.
-                </p>
-                <h3>Code updated inline with FxCop 1.21</h3>
-                <p>
-                    In line with the FxCop 1.21 guidelines:
-                    Sealed utility classes. Added serialization security demand to GetObjectData.
-                    Renamed parameters.
-                </p>
-                <h3>EventLogAppender 32K Limit</h3>
-                <p>
-                    There is a limit of 32K characters in an EventLog message. Added a
-                    check that only logs the first 32000 characters from the rendered
-                    message.
-                </p>
-            </section>
-
-            <section id="1.2.0b7" name="1.2.0 Beta 7">
-                <h3>Updated to support the Microsoft .NET Framework 1.1 Final</h3>
-                <p>
-                    Updated to support the Microsoft .NET Framework 1.1 Final Beta (1.1.4322).
-                </p>
-                <h3>Features document</h3>
-                <p>
-                    Added a new document that covers the main features of log4net.
-                    See the
-                    <a href="features.html">features</a>
-                    document for more information.
-                </p>
-                <h3>Hierarchy disabled until it is configured</h3>
-                <p>
-                    The Hierarchy is now disabled until it has been configured.
-                    All messages logged to the Hierarchy before it has been
-                    configured will be ignored without an error message being
-                    written to the console.
-                </p>
-                <p>
-                    If you are configuring log4net programmatically (i.e. not using
-                    one of the built-in configurators) you must set the
-                    <span class="code">ILoggerRepository.Configured</span>
-                    property
-                    to <span class="code">true</span> once you have configured
-                    the repository.
-                </p>
-                <p>
-                    The no appenders defined for a logger message will no longer be
-                    displayed on the console by default. This message will only be
-                    displayed if internal debugging is enabled.
-                </p>
-                <h3>New examples in VisualBasic.NET, JScript and Managed C++</h3>
-                <p>
-                    New examples in VisualBasic.NET, JScript and Managed C++.
-                    TODO Link to document about examples.
-                </p>
-                <h3>Code and Documentation Updates</h3>
-                <p>
-                    Code fixes. Documentation and manual updates.
-                    See the ChangeLog for more information.
-                </p>
-                <h3>Added document with example appender configurations</h3>
-                <p>
-                    See the
-                    <a href="config-examples.html">Example Appender Configuration</a>
-                    document for more information.
-                </p>
-            </section>
-
-            <section id="1.2.0b6" name="1.2.0 Beta 6">
-                <h3>Added support for multiple frameworks</h3>
-                <p>
-                    log4net 1.2.0 beta 6 adds support for the the following frameworks:
-                </p>
-                <div class="table">
-                    <table cellspacing="0">
-                        <colgroup>
-                            <col style="text-align: left;"/>
-                        </colgroup>
-                        <tr>
-                            <th>
-                                Framework
-                            </th>
-                            <th>
-                                Website
-                            </th>
-                        </tr>
-                        <tr style="vertical-align: top;">
-                            <td>Microsoft .NET Framework 1.1 Final Beta (1.1.4322)</td>
-                            <td>
-                                <a href="http://msdn.microsoft.com/net">http://msdn.microsoft.com/net</a>
-                            </td>
-                        </tr>
-                        <tr style="vertical-align: top;">
-                            <td>Microsoft .NET Compact Framework 1.0 (1.0.5000)</td>
-                            <td>
-                                <a href="http://msdn.microsoft.com/vstudio/device/compactfx.asp">
-                                    http://msdn.microsoft.com/vstudio/device/compactfx.asp
-                                </a>
-                            </td>
-                        </tr>
-                        <tr style="vertical-align: top;">
-                            <td>Mono 0.23</td>
-                            <td>
-                                <a href="http://www.go-mono.org">http://www.go-mono.org</a>
-                            </td>
-                        </tr>
-                        <tr style="vertical-align: top;">
-                            <td>Microsoft Shared Source CLI 1.0</td>
-                            <td>
-                                <a href="http://msdn.microsoft.com/library/en-us/dndotnet/html/mssharsourcecli.asp">
-                                    http://msdn.microsoft.com/library/en-us/dndotnet/html/mssharsourcecli.asp
-                                </a>
-                            </td>
-                        </tr>
-                    </table>
-                </div>
-                <br/>
-                <p>
-                    Not all frameworks are created equal and some features have been excluded from
-                    some of the builds. See the <a href="framework-support.html">Framework Support</a> document for more
-                    information.
-                </p>
-                <h3>New build system using NAnt</h3>
-                <p>
-                    The new build system allows log4net to be built for all supported frameworks and
-                    in all build configurations in one go.
-                </p>
-                <h3>New source code &amp; distribution layout</h3>
-                <p>
-                    The source code &amp; distribution layout has been updated to support the new
-                    build environment and multiple target frameworks.
-                </p>
-                <h3>Removed DomainAttribute.UseDefaultDomain property</h3>
-                <p>
-                    Updated default behavior of <span class="code">DefaultRepositorySelector</span>. Assemblies
-                    are now by default placed into the default domain. To specify another domain,
-                    the <span class="code">DomainAttribute</span> must be used. This is the opposite behavior
-                    to what was previously available. If you were previously specifying the
-                    <span class="code">DomainAttribute.UseDefaultDomain</span>
-                    property then you should remove it, and if the default behavior is now
-                    sufficient, you do not need to specify the <span class="code">DomainAttribute</span> at all.
-                </p>
-                <h3>Updated configuration file parser</h3>
-                <p>
-                    Updated config file parser to use the element name as the property to set. Also
-                    removed <span class="code">&lt;object&gt;</span> tag, the type attribute can now be
-                    specified on the property element directly.
-                </p>
-                <p>
-                    For example:
-                </p>
-                <div class="syntax">
-                    <pre class="code">
-                        &lt;appender&gt;
-                        &lt;param name=&quot;Evaluator&quot;&gt;
-                        &lt;object type=&quot;log4net.spi.LevelEvaluator&quot;&gt;
-                        &lt;constructor&gt;
-                        &lt;param type=&quot;log4net.spi.Level&quot; value=&quot;DEBUG&quot;/&gt;
-                        &lt;/constructor&gt;
-                        &lt;/object&gt;
-                        &lt;/param&gt;
-                        &lt;/appender&gt;
-                    </pre>
-                </div>
-                <p>
-                    becomes:
-                </p>
-                <div class="syntax">
-                    <pre class="code">
-                        &lt;appender&gt;
-                        &lt;evaluator type=&quot;log4net.spi.LevelEvaluator&quot;&gt;
-                        &lt;threshold value=&quot;DEBUG&quot;/&gt;
-                        &lt;/evaluator&gt;
-                        &lt;/appender&gt;
-                    </pre>
-                </div>
-                <h3>Support for event ID</h3>
-                <p>
-                    The <span class="code">EventLogAppender</span> now supports setting the event ID in the
-                    event log, this is taken from the <span class="code">EventID</span> property from the per
-                    event <span class="code">Properties</span> map on the <span class="code">LoggingEvent</span>.
-                </p>
-                <h3>Updated ADONetAppender</h3>
-                <p/>
-                <ul>
-                    <li>
-                        Added support for prepared statements and stored procedures
-                    </li>
-                    <li>
-                        Added <span class="code">RawTimeStampLayout</span>to correctly convert the timestamps into
-                        database date time format
-                    </li>
-                    <li>
-                        Added <span class="code">ExceptionLayout</span> to render the exception data
-                    </li>
-                </ul>
-                <p/>
-                <h3>Support for front-end extension</h3>
-                <p>
-                    This allows the logging API to be wrapped or adapted for specific purposes. Two
-                    extension samples are included in the distribution:
-                </p>
-                <div class="table">
-                    <table cellspacing="0">
-                        <colgroup>
-                            <col style="width: 50%; text-align: left;"/>
-                            <col style="width: 50%; text-align: left;"/>
-                        </colgroup>
-                        <tr>
-                            <th>
-                                Extension
-                            </th>
-                            <th>
-                                Description
-                            </th>
-                        </tr>
-                        <tr style="vertical-align: top;">
-                            <td>log4net.Ext.Trace</td>
-                            <td>Adds trace logging methods</td>
-                        </tr>
-                        <tr style="vertical-align: top;">
-                            <td>log4net.Ext.EventID</td>
-                            <td>Adds additional eventId parameter to all methods</td>
-                        </tr>
-                    </table>
-                </div>
-                <p/>
-                <h3>Added ForwardingAppender</h3>
-                <p>Forwards events to multiple sub appenders after applying filter rules.</p>
-                <h3>Added BufferingForwardingAppender</h3>
-                <p>Forward events to sub appenders after buffering them.</p>
-                <h3>Added ASPNetTraceAppender</h3>
-                <p>Logs events to the ASP.NET trace system.</p>
-                <h3>Added NetSendAppender</h3>
-                <p>Delivers logging events using the Windows Messenger service.</p>
-                <h3>Added UdpAppender</h3>
-                <p>Sends logging events as connectionless UDP datagrams to a remote host or a
-                    multicast group.
-                </p>
-                <h3>Removed obsolete methods</h3>
-                <h3>Lots of updates to improve our compliance with FxCop</h3>
-                <h3>Improved SDK documentation</h3>
-            </section>
-
-            <section id="1.2.0b5" name="1.2.0 Beta 5">
-                <h3>Fixed Exception thrown when DOM Configurator called with a null XML
-                    Element.
-                </h3>
-                <p>This occurred if the configuration file did not have a log4net section defined.</p>
-                <h3>Made level lookup case insensitive</h3>
-                <h3>Prevented the Hierarchy's Threshold level from being set to a null reference</h3>
-            </section>
-
-            <section id="1.2.0b4" name="1.2.0 Beta 4">
-                <h3>Added event specific properties to the logging event object</h3>
-                <p>
-                    Appenders can add additional information to the events they are logging. The
-                    <span class="code">RemotingAppender</span>
-                    and the <span class="code">SMTPAppender</span> both add a 'hostname' property to the events.
-                    These properties can be accessed using the <span class="code">PatternLayout</span> with the
-                    %P{name} syntax.
-                </p>
-                <h3>Added a plugin framework</h3>
-                <p>An <span class="code">IPlugin</span> interface can be attached to any repository.
-                </p>
-                <h3>A new RemoteLoggingServerPlugin plugin acts as the server for the
-                    RemotingAppender
-                </h3>
-                <h3>Updated the core log4net framework to work in an environment with no
-                    permissions
-                </h3>
-                <p>Specific appenders still require additional permissions to log correctly</p>
-                <h3>Added support for domain aliasing using the AliasDomainAttribute</h3>
-                <p>This allows a parent assembly to take control of the logging domain for child
-                    assemblies.
-                </p>
-                <h3>Added events for repository creation, configuration change, configuration reset
-                    and repository shutdown
-                </h3>
-                <h3>Added LevelMap to the ILoggerRepository interface</h3>
-                <p>The mapping from level name to level object is now repository specific,
-                    therefore each repository can have independent mappings.
-                </p>
-                <h3>Moved hierarchy specific config file parser to new DOMHierarchyConfigurator class</h3>
-                <p>This is controlled by the <span class="code">Hierarchy</span> object and allows for better
-                    encapsulation.
-                </p>
-                <h3>Added OnlyFixPartialEventData property to the buffered appenders</h3>
-                <p>This setting causes slow settings to be ignored. This significantly improves the
-                    performance of the buffered appenders.
-                </p>
-                <h3>XML entity references are supported in the XML config file.</h3>
-                <h3>Added support for expanding environment variables in &lt;param&gt; values</h3>
-                <p>
-                    The environment variables must be specified as <span class="code">${FOO}</span> where
-                    <span class="code">FOO</span>
-                    is the name of the variable to expand.
-                </p>
-                <h3>Upgraded to use NUnit 2.0</h3>
-                <h3>File appenders can specify the encoding to use for the file</h3>
-                <h3>Added strong named configuration</h3>
-            </section>
-
-            <section id="1.2.0b3" name="1.2.0 Beta 3">
-                <h3>Added log4net.Ext.Trace extension</h3>
-                <p>This is a separate assembly that adds a trace level to log4net.</p>
-                <h3>The default log file output directory is now the application base directory not
-                    the current directory
-                </h3>
-                <h3>Added MemoryAppender</h3>
-                <p>Stores all the logging events in an in-memory buffer.</p>
-                <h3>Moved the Hierarchy implementation into a separate namespace</h3>
-                <p>
-                    The <span class="code">log4net.Repository.Hierarchy</span> namespace now contains all the
-                    code that is specific to the <span class="code">Hierarchy</span> implementation.
-                </p>
-                <h3>Refactored the DOMConfigurator and BasicConfigurator</h3>
-                <p>
-                    The <span class="code">Hierarchy</span> specific data schema and implementation could be has
-                    now been moved to the <span class="code">log4net.Repository.Hierarchy</span> namespace. The
-                    bootstrap code for these configurators remains in the
-                    <span class="code">log4net.Config</span>
-                    namespace.
-                </p>
-                <h3>Replaced the DOMConfiguratorAttribute UseExecutableDomain
-                    property with UseDefaultDomain
-                </h3>
-                <p>
-                    This change to the implementation of the <span class="code">DOMConfiguratorAttribute</span> should
-                    allow the configuration of multiple assemblies to be accomplished more easily,
-                    especially when developing web applications (ASP.NET).
-                </p>
-                <h3>A few good bug fixes!</h3>
-            </section>
-
-            <section id="1.2.0b2" name="1.2.0 Beta 2">
-                <h3>Added ADONetAppender</h3>
-                <p>Thanks to TechnologyOneCorp.com.</p>
-                <h3>Added TraceLogAssembly extensibility example</h3>
-                <h3>Lots of bug fixes</h3>
-            </section>
-
-            <section id="1.2.0b1" name="1.2.0 Beta 1">
-                <h3>Added 6 new examples</h3>
-                <h3>Split Category class into Logger and LogManager classes</h3>
-                <p>
-                    The instance methods from <span class="code">Category</span> have moved to the
-                    <span class="code">Logger</span>
-                    class. The static methods from <span class="code">Category</span> have moved to the
-                    <span class="code">LogManager</span>
-                    class. The <span class="code">Category</span> class still exists but for backward
-                    compatibility only. Changed interface <span class="code">ICategoryFactory</span> to
-                    <span class="code">ILoggerFactory</span>
-                    and the implementation class <span class="code">DefaultCategoryFactory</span> to <span class="code">
-                    DefaultLoggerFactory</span>.
-                </p>
-                <h3>Replaced Priority class with Level class</h3>
-                <p>
-                    The <span class="code">Priority</span> class has been replaced by the <span class="code">Level
-                </span> class.
-                    The <span class="code">Priority</span> class still exists for backward compatibility only.
-                    The <span class="code">Level</span> class implements a static pool of <span class="code">Level
-                </span> objects.
-                    The <span class="code">Level</span> class is sealed and serializable.
-                </p>
-                <h3>Added ILoggerRepository interface implemented by Hierarchy</h3>
-                <p>
-                    The <span class="code">Hierarchy</span> class implements the <span class="code">ILoggerRepository
-                </span> interface.
-                    This interface is used by the <span class="code">LogManager</span> class and therefore
-                    allows different implementations of <span class="code">ILoggerRepository</span> to be used.
-                </p>
-                <h3>Enhanced NUnit tests</h3>
-                <p>
-                    All the NUnit tests can be run using a single TestSuite: NUnitGUI
-                    log4net.LogManager+AllTests,log4net.dll.
-                </p>
-                <h3>Added support for serializing LoggingEvents</h3>
-                <p>
-                    The <span class="code">LoggingEvent</span> class is serializable. All local state is
-                    captured before serialization occurs. This now allows
-                    <span class="code">LoggingEvent</span>
-                    objects to be serialized between applications or machines.
-                </p>
-                <h3>Added RemotingAppender</h3>
-                <p>
-                    Delivers <span class="code">LoggingEvents</span> to a remote interface. This can be used to
-                    collect distributed logging into a single log file. There is an example
-                    remoting sink that receives the logging events, see
-                    <span class="code">examples\net\remoting\RemotingServer</span>
-                    for details.
-                </p>
-                <h3>Added support for rendering composite objects</h3>
-                <p>
-                    The <span class="code">IObjectRenderer</span> interface method <span class="code">DoRender</span> now
-                    takes a <span class="code">RendererMap</span> argument. This allows the renderer to use the
-                    appropriate renderer from the <span class="code">RendererMap</span> to render any nested
-                    objects.
-                </p>
-                <h3>Added support for rendering exceptions</h3>
-                <p>
-                    The <span class="code">DefaultRenderer</span> now has support for rendering exceptions to a
-                    string. This includes nested exceptions. The <span class="code">RendererMap</span> is now
-                    used to render exceptions in the <span class="code">LoggingEvent</span>. This allows the
-                    rendering of specific exceptions to be enhanced by specific renderers.
-                </p>
-                <h3>Added ITriggeringEventEvaluator interface</h3>
-                <p>
-                    This interface is used by <span class="code">SMTPAppender</span> and
-                    <span class="code">RemotingAppender</span>
-                    to determine if a <span class="code">LoggingEvent</span> meets a set of user defined
-                    criteria. These appenders use the interface to determine whether or not to
-                    deliver the current buffer of events to their listener. The interface is
-                    implemented by the <span class="code">LevelEvaluator</span> class, which triggers above a
-                    set level.
-                </p>
-                <h3>Added regex matching to the MDCFilter, NDCFilter and StringMatchFilter</h3>
-                <p>
-                    The <span class="code">MDCFilter</span>, <span class="code">NDCFilter</span> and
-                    <span class="code">StringMatchFilter</span>
-                    can now be configured to use regex matches in addition to substring matches.
-                    Set the <span class="code">RegexToMatch</span> property to use this feature.
-                </p>
-                <h3>Added XMLLayout</h3>
-                <p>
-                    emits an XML element for each <span class="code">LoggingEvent</span>. This allows logging
-                    events to be stored and manipulated as XML. The DTD for the XML emitted is in
-                    the
-                    <span class="code">log4net-events.dtd</span>
-                </p>
-                <h3>Added support for &lt;logger&gt; and &lt;level&gt; elements in the
-                    DOMConfigurator
-                </h3>
-                <p>
-                    As the <span class="code">Category</span> and <span class="code">Priority</span> classes have been
-                    replaced by the <span class="code">Logger</span> and <span class="code">Level</span> classes. The
-                    <span class="code">DOMConfigurator</span>
-                    has been updated to allow the <span class="code">&lt;logger&gt;</span> and
-                    <span class="code">&lt;level&gt;</span>
-                    elements to be used in place of the <span class="code">&lt;category&gt;</span> and
-                    <span class="code">&lt;priority&gt;</span>
-                    elements. The old elements are still accepted for backward compatibility.
-                </p>
-                <h3>Added Threshold property to Hierarchy</h3>
-                <p>
-                    Changed <span class="code">DisableXXX()</span> methods on <span class="code">Hierarchy</span> to a
-                    <span class="code">Threshold</span>
-                    property.
-                </p>
-                <h3>Added support for logging domains</h3>
-                <p>
-                    The <span class="code">LogManager</span> supports multiple logging domains. The
-                    <span class="code">LogManager</span>
-                    uses an instance of the <span class="code">IRepositorySelector</span> class to map from
-                    domains to <span class="code">ILoggerRepository</span> instances. The default implementation
-                    is to have a separate <span class="code">ILoggerRepository</span> for each domain. When a
-                    call is made to the static methods on <span class="code">LogManager</span> the domain can be
-                    specified (as a string) or the domain can be inferred automatically from the
-                    calling assembly. The default behavior is for each assembly loaded into the
-                    process to have its own domain and <span class="code">ILoggerRepository</span>. These can
-                    each be configured separately. This allows standalone assemblies to use log4net
-                    without conflicting with other modules in the process. The domain for the
-                    assembly is configured using metadata attributes defined on the assembly.
-                </p>
-                <h3>DOMConfigurator can set params to arbitrary objects</h3>
-                <p>
-                    Using a new <span class="code">&lt;object&gt;</span> element, params can now be set to any
-                    creatable object.
-                </p>
-            </section>
+        <section id="1.2.13-bug" name="Bug Fixes">
+          <ul>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-132'>LOG4NET-132</a>] - Environment
+              variables are mistakenly case sensitive on windows
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-376'>LOG4NET-376</a>] - Race
+              condition
+              in AbsoluteTimeDateFormatter
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-393'>LOG4NET-393</a>] - Using
+              dynamic
+              methods with log4net causes NullReferenceException in StackFrameItem
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-399'>LOG4NET-399</a>] - Does not
+              build
+              for Compact Framework 2.0
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-404'>LOG4NET-404</a>] - assemblies
+              for
+              .NET 3.5 are missing ILogExtensions
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-405'>LOG4NET-405</a>] - SmtpAppender
+              encoding changes
+            </li>
+          </ul>
 
         </section>
-    </body>
+
+        <section id="1.2.13-enh" name="Improvements">
+
+          <ul>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-394'>LOG4NET-394</a>] - Lambda-based
+              ILog-Extensions should catch errors
+            </li>
+          </ul>
+
+        </section>
+      </section>
+
+      <section id="1.2.12" name="1.2.12">
+
+        <p>
+          The binary distributions no longer contain assemblies
+          built for the Compact Framework 2.0 - you can build
+          those yourself using the source distribution.
+        </p>
+
+        <section id="1.2.12-bug" name="Bug Fixes">
+          <ul>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-148'>LOG4NET-148</a>] -
+              ThreadContext
+              uses LocalDataStore to store ThreadSpecific data instead should be using [ThreadStatic]
+              variables.
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-178'>LOG4NET-178</a>] - Log4Net
+              stops
+              logging after appdomain recycle of ASP.NET2.0 application
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-202'>LOG4NET-202</a>] -
+              AdoNetAppenderParameter.Size Property is not optional
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-218'>LOG4NET-218</a>] - Test
+              StringFormatTest.TestFormatString fails
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-220'>LOG4NET-220</a>] - multiple
+              users
+              overwrite existing log file when RollingFileAppender is rolling over date and minimal
+              locking is
+              used
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-228'>LOG4NET-228</a>] -
+              log4net.Util.HostName may throw System.Configuration.ConfigurationErrorsException in
+              System.Net.Dns.GetHostName(). The exception should be ignored.
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-266'>LOG4NET-266</a>] -
+              AdoNetAppender
+              does not work on a IIS 7 website using Windows authentication
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-277'>LOG4NET-277</a>] - Registering
+              a
+              custom Object Renderer in configuration file
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-284'>LOG4NET-284</a>] - In a
+              multithreaded application, duplicate messages are output.
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-294'>LOG4NET-294</a>] - Exception
+              rendering object type [System.OutOfMemoryException]
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-317'>LOG4NET-317</a>] -
+              LogicalThreadContext sometimes doesn&#39;t follow CallContext&#39;s logical thread
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-322'>LOG4NET-322</a>] - Conditional
+              compilation symbols for .net4 Release
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-323'>LOG4NET-323</a>] -
+              AbsoluteTimeDateFormatter caches string representation of now too aggressively
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-331'>LOG4NET-331</a>] -
+              AdoNetAppender
+              errors when writing Asp.net item when Request object is null
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-335'>LOG4NET-335</a>] - Lost the
+              ability
+              to monitor changes to logger config files when you call ConfigureAndWatch multiple times
+              with
+              different Config File Names - worked fine on 1.2.10.0
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-341'>LOG4NET-341</a>] -
+              RemotingAppender
+              Error
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-343'>LOG4NET-343</a>] -
+              ArgumentOutOfRangeException in log4net hierarchy on &quot;.&quot; logger name
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-347'>LOG4NET-347</a>] - Log4net not
+              working in an ASP.Net environment with medium trust
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-348'>LOG4NET-348</a>] -
+              System.IndexOutOfRangeException when StackFrameLevel is greater then StackFrames length
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-352'>LOG4NET-352</a>] - CS0419
+              during
+              build with Mono &gt;2.6
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-360'>LOG4NET-360</a>] -
+              EventLogAppender
+              can corrupt the event log on Windows Vista and higher if the string is longer than 31839
+              bytes
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-361'>LOG4NET-361</a>] -
+              RollingLogFileAppender does not correctly initialize the backup index when style is date or
+              composite
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-369'>LOG4NET-369</a>] -
+              preserveLogFileNameExtension is not considered when rolling over time after an application
+              restart
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-370'>LOG4NET-370</a>] -
+              RemoteSyslogAppender doesn&#39;t properly handle newline in log message
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-371'>LOG4NET-371</a>] - Log with
+              formatting doesn&#39;t call custom renderers (IObjectRenderer)
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-375'>LOG4NET-375</a>] - typo /
+              misspelling in log message
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-378'>LOG4NET-378</a>] - Rolling log
+              file
+              is overwritten when application is restarted
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-379'>LOG4NET-379</a>] -
+              NullReferenceException in FileAppender when file is not filled.
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-382'>LOG4NET-382</a>] -
+              TargetInvocationException occurs because MESSAGE_SIZE fields in EventLogAppender are
+              initialized
+              in wrong order
+            </li>
+          </ul>
+        </section>
+
+        <section id="1.2.12-enh" name="Improvements">
+          <ul>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-222'>LOG4NET-222</a>] - [PATCH]
+              Improve
+              AnsiColorTerminalAppender to support marking colors as Light
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-223'>LOG4NET-223</a>] - [PATCH]
+              Improve
+              AnsiColorTerminalAppender to support marking colors as Light
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-232'>LOG4NET-232</a>] - Use
+              ReaderWriterLockSlim instead of ReaderWriterLock.
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-259'>LOG4NET-259</a>] - Log4Net does
+              not
+              create a new tab in Chainsaw
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-283'>LOG4NET-283</a>] -
+              OnlyOnceErrorHandler is not subclass-friendly
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-292'>LOG4NET-292</a>] - Managed
+              ColoredConsoleAppender for .NET2/Mono.
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-315'>LOG4NET-315</a>] - SmtpAppender
+              -
+              Add support for ignoring certificate errors
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-316'>LOG4NET-316</a>] - Provide a
+              Layout
+              Pattern that is re-evaluated on each use
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-318'>LOG4NET-318</a>] - log4net
+              doesn&#39;t
+              pass verification
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-334'>LOG4NET-334</a>] - Appender
+              Faill
+              over
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-354'>LOG4NET-354</a>] - E-mail
+              encoding
+              configuration setting for SmtpAppender
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-362'>LOG4NET-362</a>] - [PATCH]
+              SystemInfo.AssemblyLocationInfo throws unhandled ArgumentException &quot;Absolute path
+              required&quot;
+              when exe is started via UNC path
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-386'>LOG4NET-386</a>] - Can&#39;t
+              access
+              ThreadContext properties
+            </li>
+          </ul>
+        </section>
+
+        <section id="1.2.12-new" name="New Features">
+          <ul>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-290'>LOG4NET-290</a>] - Add
+              Lambda-based
+              ILog-Extensions (embedded log.IsEnabled)
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-342'>LOG4NET-342</a>] - Add a way to
+              prevent silent failure
+            </li>
+          </ul>
+        </section>
+      </section>
+
+      <section id="1.2.11" name="1.2.11">
+        <p>
+          log4net 1.2.11 is not only a bugfix release, it also
+          adds support for Microsoft&#xae; .NET 4.0 as well as the client profiles
+          of .NET 3.5 and .NET 4.0.
+        </p>
+
+        <p>
+          Starting with this release log4net uses a new strong
+          name key but we also provide a binary distribution using
+          the "old" strong name key of log4net 1.2.10 and earlier.
+          See <a href="faq.html#two-snks">the FAQ</a> for details.
+        </p>
+
+        <p>
+          The binary distributions no longer contain assemblies
+          built for the Compact Framework 1.0 or the Shared Source
+          CLI - you can build those yourself using the source
+          distribution.
+        </p>
+
+        <section id="1.2.11-breaking" name="Breaking Changes">
+          <p>
+            The signature of
+            <code>ILoggerFactory.CreateLogger</code>
+            has changed.
+          </p>
+        </section>
+
+        <section id="1.2.11-bug" name="Bug Fixes">
+          <ul>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-76'>LOG4NET-76</a>] -
+              TextWriterAdapter
+              is not thread safe
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-79'>LOG4NET-79</a>] -
+              SecurityException
+              thrown in LogicalThreadContextProperties GetProperties
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-81'>LOG4NET-81</a>] -
+              LoggerRepositorySkeleton&#39;s OnConfigurationChanged method always raises its event with
+              EventArgs.Empty instead of passing through its EventArgs parameter.
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-93'>LOG4NET-93</a>] - Typos for node
+              name in tutorial, excess quote, invalid XML
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-94'>LOG4NET-94</a>] - Incorrect
+              config
+              file for ..\examples\net\1.0\Tutorials\ConsoleApp
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-95'>LOG4NET-95</a>] -
+              Level.CompareTo()
+              may result a wrong Value -&gt; sorting of Levels does not work
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-113'>LOG4NET-113</a>] -
+              SystemInfo.GetTypeFromString() raises NotSupportedException
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-123'>LOG4NET-123</a>] -
+              EnvironmentPatternConverter does not expand User or System level environment variables under
+              Windows
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-126'>LOG4NET-126</a>] - Links on the
+              log4net Examples page do not work, including the overview link explaining why the other
+              links do
+              not work
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-128'>LOG4NET-128</a>] - Either
+              documentation is incorrect or a bug in SmtpAppender
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-129'>LOG4NET-129</a>] -
+              EventLogAppender
+              EventID parsing does not handle Active Properties properly
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-135'>LOG4NET-135</a>] - Bad example
+              code
+              in documentation
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-137'>LOG4NET-137</a>] -
+              log4net.Filter.LevelMatchFilter does not work anymore
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-143'>LOG4NET-143</a>] - Invalid
+              Repository Config Uri composition from &quot;log4net.Config&quot; application setting
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-146'>LOG4NET-146</a>] -
+              System.NullReferenceException on FindAndRender object
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-158'>LOG4NET-158</a>] -
+              XMLConfigurator.ConfigureAndWatch() leaks resources if called multiple times
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-167'>LOG4NET-167</a>] -
+              ArrayOutOfBounds
+              Exception in MemoryAppender.getEvents()
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-212'>LOG4NET-212</a>] - Threading
+              bug in
+              the PatternConverter.cs
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-214'>LOG4NET-214</a>] -
+              EventLogAppender
+              should also use config file to set EventId
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-215'>LOG4NET-215</a>] - Exception on
+              Convert for return %class{1} name
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-229'>LOG4NET-229</a>] - Japanese
+              characters get garbled with log4net.Layout.XmlLayoutSchemaLog4j
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-241'>LOG4NET-241</a>] - Issue
+              tracking
+              page does not link to project
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-242'>LOG4NET-242</a>] - Download
+              page
+              does not have link to KEYS file
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-243'>LOG4NET-243</a>] - broken link
+              on
+              http://logging.apache.org/log4net/release/example-apps.html
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-244'>LOG4NET-244</a>] -
+              SmtpAppender.To
+              Property has incorrect delimiter
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-257'>LOG4NET-257</a>] - Visual
+              Studio
+              2010 .NET 4.0 Application does not copy log4net lib to bin directory
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-265'>LOG4NET-265</a>] -
+              RemoteFileAppender Tests fail on Windows 7
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-274'>LOG4NET-274</a>] - log4net
+              doesn&#39;t
+              log when running a .Net 4.0 Windows application built in Release mode
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-297'>LOG4NET-297</a>] -
+              AppenderSkeleton.RequiresLayout docs and implementation don&#39;t match
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-300'>LOG4NET-300</a>] - FilterTest
+              doesn&#39;t
+              compile for .Net 2.0
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-301'>LOG4NET-301</a>] - Unit tests
+              fail
+              on a clean checkout on .NET 2.0 using NAnt
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-310'>LOG4NET-310</a>] -
+              EventLogAppender&#39;s
+              ActivateOptions throws SecurityException on Vista/Win2k3 and later when not run as
+              administrator
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-311'>LOG4NET-311</a>] - MinimalLock
+              and
+              AppendToFile=false don&#39;t work together in trunk&#39;s FileAppender
+            </li>
+          </ul>
+        </section>
+
+        <section id="1.2.11-enh" name="Improvements">
+          <ul>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-31'>LOG4NET-31</a>] - Allow user to
+              pass
+              in additional parameters to &lt;converter&gt; node via some kind of &lt;property&gt; tag
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-38'>LOG4NET-38</a>] -
+              EventLogAppender:
+              Add support for setting the Category on Event Log messages.
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-66'>LOG4NET-66</a>] -
+              PreserveFileExtension with StaticFileName
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-77'>LOG4NET-77</a>] - A small
+              improvement of log4net.Layout.Pattern.ExceptionPatternConverter - added &#39;Option&#39;
+              propery
+              support
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-88'>LOG4NET-88</a>] - support .NET
+              2.0
+              connectionStrings configuration section
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-96'>LOG4NET-96</a>] - Expose the
+              Message, Exception, and ErrorCode properties of OnlyOnceErrorHandler.
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-97'>LOG4NET-97</a>] - Make Hierarchy&#39;s
+              ILoggerFactory aware of the repository&#39;s LevelMap
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-98'>LOG4NET-98</a>] - Update header
+              comment in files to be compliant with new Apache header requirements:
+              http://www.apache.org/legal/src-headers.html for 11/1/2006 deadline
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-100'>LOG4NET-100</a>] -
+              IPAddressConverter improvement for .NET 2 or .NET 3
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-106'>LOG4NET-106</a>] -
+              TraceAppender :
+              Add switch to disable using logger name as trace category
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-112'>LOG4NET-112</a>] - Add support
+              to
+              the UdpAppender for IP v6 remote addresses
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-131'>LOG4NET-131</a>] - Add Cc and
+              Bcc
+              support to SmtpAppender
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-141'>LOG4NET-141</a>] - Add
+              CreateConnection method to AdoNetAppender to allow subclasses to have control of
+              IDbConnection.
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-153'>LOG4NET-153</a>] - Make it
+              easier
+              to configure multiple appenders in code using BasicConfigurator
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-157'>LOG4NET-157</a>] - FAQ for
+              getting
+              the fully-qualified name of a class
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-164'>LOG4NET-164</a>] - using a
+              named
+              mutex for file appenders
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-170'>LOG4NET-170</a>] -
+              Documentation
+              improvement re: fixing and active properties
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-246'>LOG4NET-246</a>] - Make it
+              possible
+              to choose whether or not to watch configuration files specified using the &quot;log4net.Config&quot;
+              appsetting key
+            </li>
+          </ul>
+
+        </section>
+        <section id="1.2.11-new" name="New Features">
+          <ul>
+            <li>
+              The various static <code>Configure</code> methods of the <code>Configurator</code> classes
+              now
+              return collections of configuration messages rather than <code>void</code>.
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-59'>LOG4NET-59</a>] - add the
+              ability to
+              roll files based on universal time (UTC).
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-64'>LOG4NET-64</a>] - add the
+              ability to
+              preserve the log file name extension when rolling the log file.
+            </li>
+            <li>
+              [<a href='https://issues.apache.org/jira/browse/LOG4NET-87'>LOG4NET-87</a>] - Support
+              ASP.Net
+              related PatternConverters to allow items from the HttpContext.Current.Session, Cache,
+              Request,
+              etc. to be captured.
+              <li>
+                [<a href='https://issues.apache.org/jira/browse/LOG4NET-92'>LOG4NET-92</a>] - Build for
+                Compact Framework 2.0
+              </li>
+              <li>
+                [<a href='https://issues.apache.org/jira/browse/LOG4NET-107'>LOG4NET-107</a>] - Added
+                ExceptionEvaluator
+              </li>
+              <li>
+                [<a href='https://issues.apache.org/jira/browse/LOG4NET-115'>LOG4NET-115</a>] - Expand
+                UserAppDataPath in filename
+              </li>
+              <li>
+                [<a href='https://issues.apache.org/jira/browse/LOG4NET-116'>LOG4NET-116</a>] - allow
+                smtp
+                to ssl authenticate and with certificates.
+              </li>
+              <li>
+                [<a href='https://issues.apache.org/jira/browse/LOG4NET-154'>LOG4NET-154</a>] - Add a
+                StackTracePatternConverter to display method calls leading up to log message
+              </li>
+              <li>
+                [<a href='https://issues.apache.org/jira/browse/LOG4NET-155'>LOG4NET-155</a>] - Add
+                TimeEvaluator
+              </li>
+              <li>
+                [<a href='https://issues.apache.org/jira/browse/LOG4NET-168'>LOG4NET-168</a>] - New
+                property
+                ReplyTo address for the SmtpAppender required
+              </li>
+              <li>
+                [<a href='https://issues.apache.org/jira/browse/LOG4NET-176'>LOG4NET-176</a>] -
+                Buildable
+                with VS 2008 and .NET FW 3.5
+              </li>
+              <li>
+                [<a href='https://issues.apache.org/jira/browse/LOG4NET-233'>LOG4NET-233</a>] - Support
+                .NET
+                4.0 including Client Profile
+              </li>
+            </li>
+          </ul>
+        </section>
+
+      </section>
+
+      <section id="1.2.10" name="1.2.10">
+
+        <section id="1.2.10-bug" name="Bug Fixes">
+          <ul>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-21'>LOG4NET-21</a>] -
+              RemotingAppender
+              fails once NDC becomes empty
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-22'>LOG4NET-22</a>] - XmlLayout
+              allows
+              output of invalid control characters
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-23'>LOG4NET-23</a>] -
+              example-apps.html
+              links are off by one folder level
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-25'>LOG4NET-25</a>] -
+              RollingFileAppender
+              can fail if RollOverIfDateBoundaryCrossing required
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-28'>LOG4NET-28</a>] - AdoNetAppender
+              does
+              not support inserting NULL into columns
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-29'>LOG4NET-29</a>] -
+              LevelMatchFilter
+              should return Neutral when no match is found
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-32'>LOG4NET-32</a>] - AdoNetAppender
+              losing first entry
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-35'>LOG4NET-35</a>] - Exception
+              rendering
+              ThreadContextStack if null value pushed into stack
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-36'>LOG4NET-36</a>] -
+              System.Diagnostics.Trace may throw exception if AppDomain does not have config file
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-40'>LOG4NET-40</a>] -
+              RollingFileAppender
+              does not limit files to MaxSizeRollBackups when CountDirection is 1
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-41'>LOG4NET-41</a>] -
+              RollingFileAppender
+              roll over date fail
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-42'>LOG4NET-42</a>] - Serialised
+              LoggingEvent does not preserve the Fix flags
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-43'>LOG4NET-43</a>] - Specifying an
+              empty
+              string as a property in the config file results in an error
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-44'>LOG4NET-44</a>] - XmlLayout emits
+              all
+              properties under a node named global-properties, rather than just properties.
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-49'>LOG4NET-49</a>] -
+              CountingQuietTextWriter does not count strings written with WriteLine
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-50'>LOG4NET-50</a>] -
+              Process.StartTime
+              hangs on some systems
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-60'>LOG4NET-60</a>] - Bug in
+              RollingFileAppender.cs causing failure to timely roll files on monthly interval
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-63'>LOG4NET-63</a>] - 1.2.9.0
+              Documentation typos
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-65'>LOG4NET-65</a>] - Unhandled
+              SecurityException exception for FileIOPermission while loading configuration file
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-67'>LOG4NET-67</a>] - CVE-2006-0743
+              Security vulnerability in LocalSyslogAppender
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-69'>LOG4NET-69</a>] - Exception
+              thrown
+              when *Format methods are given a malformed format string
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-70'>LOG4NET-70</a>] - CoreDll.dll
+              referenced with different capitalisation
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-73'>LOG4NET-73</a>] -
+              ADONetAppender.ActivateOptions() leaks database connection when called multiple times
+            </li>
+          </ul>
+        </section>
+
+        <section id="1.2.10-new" name="New Features">
+          <ul>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-11'>LOG4NET-11</a>] - Add Flush
+              command
+              to API
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-24'>LOG4NET-24</a>] - Programmatic
+              flush
+              of BufferingAppenderSkeleton buffer
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-37'>LOG4NET-37</a>] - Allow the
+              RepositorySelector type to be specified using the AppSettings config
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-46'>LOG4NET-46</a>] - Support
+              appenders
+              that can output multiple events efficiently
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-51'>LOG4NET-51</a>] - WmiAppender
+            </li>
+          </ul>
+        </section>
+
+        <section id="1.2.10-enh" name="Improvements">
+          <ul>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-3'>LOG4NET-3</a>] - Support per event
+              patterns in FileAppender File name
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-13'>LOG4NET-13</a>] - Allow
+              SMTPAppender
+              to have replaceable parameters in Subject
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-15'>LOG4NET-15</a>] - Email high
+              "importance" priority setting with SmtpAppender
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-17'>LOG4NET-17</a>] - Line-wrapping
+              Appender Layouts
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-33'>LOG4NET-33</a>] - Ability to use
+              global property to point to log4net configuration file
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-34'>LOG4NET-34</a>] - Allow xml
+              config
+              values to be set via XmlNodeType.CDATA or XmlNodeType.Text rather than just value="foo"
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-45'>LOG4NET-45</a>] - PluginAttribute
+              does not allow plugin type to be specified as a Type, only as a string
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-52'>LOG4NET-52</a>] - Allow XML
+              configurator to set properties of type Object
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-53'>LOG4NET-53</a>] - Allow
+              repository
+              properties to be set in the config file
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-56'>LOG4NET-56</a>] - Support
+              rendering
+              IEnumerator objects as well as ICollections
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-58'>LOG4NET-58</a>] - Support clean
+              build
+              on .NET 2.0
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-72'>LOG4NET-72</a>] - Performance of
+              ILog.xxxFormat methods
+            </li>
+            <li>
+              [<a href='http://issues.apache.org/jira/browse/LOG4NET-74'>LOG4NET-74</a>] - Change
+              MemoryAppender member variables to protected
+            </li>
+          </ul>
+        </section>
+
+      </section>
+
+      <section id="1.2.9" name="1.2.9 Beta">
+
+        <section id="1.2.9-breaking" name="Breaking Changes">
+          <h3>Renamed namespaces</h3>
+          <p>
+            Renamed namespace <span class="code">log4net.spi</span> to <span class="code">
+              log4net.Core
+            </span>.
+            Renamed namespace <span class="code">log4net.helpers</span> to <span class="code">
+              log4net.Util
+            </span>.
+          </p>
+          <h3>Renamed config classes and attributes</h3>
+          <p>
+            In the <span class="code">log4net.Config</span> namespace the <span class="code">
+              DOMConfigurator
+            </span>,
+            <span class="code">DOMConfiguratorAttribute</span>, <span class="code">DomainAttribute</span>,
+            and <span class="code">AliasDomainAttribute</span> have been marked as obsolete. These types are
+            still available and functional in this release.
+          </p>
+          <p>
+            The <span class="code">XmlConfigurator</span> and
+            <span class="code">XmlConfiguratorAttribute</span>
+            types replace <span class="code">DOMConfigurator</span> and
+            <span class="code">DOMConfiguratorAttribute</span>. The
+            <span class="code">RepositoryAttribute</span>
+            and <span class="code">AliasRepositoryAttribute</span> types replace
+            <span class="code">DomainAttribute</span>
+            and <span class="code">AliasDomainAttribute</span>.
+          </p>
+          <h3>Fixed pascal casing of type names</h3>
+          <p>
+            Renamed <span class="code">AdoNetAppender</span>, <span class="code">AspNetTraceAppender</span>,
+            <span class="code">SmtpAppender</span>, <span class="code">Iso8601DateFormatter</span>,
+            <span class="code">MdcFilter</span>, and <span class="code">NdcFilter</span>.
+            Note that the config file type resolver is case insensitive so this is only a breaking change
+            for code that programmatically creates a type that has been renamed.
+          </p>
+          <h3>
+            Layouts changed to stream their output to a
+            <span class="code">TextWriter</span>
+          </h3>
+          <p>
+            Layouts have been changed to format their output to a
+            <span class="code">TextWriter</span>
+            rather than return a string. This increases performance and reduces temporary object creation.
+          </p>
+          <h3>C style string escapes no longer supported by config parser</h3>
+          <p>
+            The XML config parser no longer supports decoding C style escape sequences in strings.
+            Previously sequences like <span class="code">\n</span> and
+            <span class="code">\\</span>
+            where decoded. Instead use the appropriate XML encodings as required.
+          </p>
+        </section>
+
+        <section id="1.2.9-new" name="New Features">
+          <h3>New CLI build</h3>
+          <p>
+            A new log4net assembly is built that targets all CLI 1.0 compatible runtimes.
+            This build is essentially a common subset of the Mono 1.0 and .NET 1.0 builds.
+            It is built using the MS .NET 1.0 compiler and libraries but does not use any
+            platform specific APIs.
+          </p>
+          <p>
+            This build is only available in release configuration and can be found at
+            <span class="code">bin\cli\1.0\release</span>.
+          </p>
+          <h3>Logging contexts</h3>
+          <p>
+            Logging contexts can be used to record contextual data that is relevant to the current
+            process. Logging contexts are both an extension of the concepts embodied in the
+            <span class="code">MDC</span>
+            and <span class="code">NDC</span> and a replacement for
+            them. The <span class="code">MDC</span> and <span class="code">NDC</span> have been
+            reimplemented to use the <span class="code">ThreadContext</span> as storage.
+          </p>
+          <p>
+            The logging contexts provide a single unified view that cuts across different
+            scopes within an application.
+            The contexts are layered in the following order of narrowing scope:
+            <span class="code">GlobalContext</span>, <span class="code">ThreadContext</span>,
+            <span class="code">LogicalThreadContext</span>, and <span class="code">LoggingEvent</span>.
+            Context values specified in a narrower scope hide the matching value in a wider scope.
+          </p>
+          <h3>
+            <span class="code">PatternLayout</span>
+            customization and long pattern names
+          </h3>
+          <p>
+            The <span class="code">PatternLayout</span> now supports long pattern names.
+            These pattern names are significantly more readable than the single character patterns.
+          </p>
+          <p>
+            The <span class="code">PatternLayout</span> now supports custom patterns. New patterns
+            can be defined in the config file:
+          </p>
+          <div class="syntax">
+            <pre class="code">
+              &lt;layout type=&quot;log4net.Layout.PatternLayout&quot;&gt;
+
+              &lt;converter&gt;
+              &lt;name value=&quot;myConverter&quot; /&gt;
+              &lt;type value=&quot;TestApp.MyPatternConverter, TestApp&quot; /&gt;
+              &lt;/converter&gt;
+
+              &lt;conversionPattern value=&quot;%-5level %logger - %myConverter - %message%newline&quot; /&gt;
+              &lt;/layout&gt;
+            </pre>
+          </div>
+          <p>
+            The above config defines a custom pattern called
+            <span class="code">myConverter</span>
+            which is bound to the
+            <span class="code">TestApp.MyPatternConverter, TestApp</span>
+            type. This type must extend the
+            <span class="code">log4net.Util.PatternConverter</span>
+            base class. The custom pattern can then be used in the pattern string.
+          </p>
+          <p>
+            For full details see the SDK Reference entry: <a
+                            href="sdk/html/T_log4net_Layout_PatternLayout.htm">
+              log4net.Layout.PatternLayout
+            </a>.
+          </p>
+          <h3>
+            <span class="code">PatternString</span>
+            for pattern based configuration
+          </h3>
+          <p>
+            A new pattern based type, <span class="code">PatternString</span>, can be used in
+            the config file to set string properties using a pattern syntax. For example the
+            File property of the FileAppender could be set as follows:
+          </p>
+          <div class="syntax">
+            <pre class="code">
+              &lt;file type=&quot;log4net.Util.PatternString&quot;&gt;
+
+              &lt;converter&gt;
+              &lt;name value=&quot;folder&quot; /&gt;
+              &lt;type value=&quot;TestApp.SpecialFolderPatternConverter,TestApp&quot; /&gt;
+              &lt;/converter&gt;
+
+              &lt;conversionPattern value=&quot;%folder{LocalApplicationData}\log-file.txt&quot; /&gt;
+              &lt;/file&gt;
+            </pre>
+          </div>
+          <p>
+            The code for the
+            <span class="code">SpecialFolderPatternConverter</span>
+            is as follows:
+          </p>
+          <div class="syntax">
+            <pre class="code">
+              public class SpecialFolderPatternConverter : log4net.Util.PatternConverter
+              {
+              override protected void Convert(System.IO.TextWriter writer, object state)
+              {
+              Environment.SpecialFolder specialFolder =
+              (Environment.SpecialFolder)Enum.Parse(typeof(Environment.SpecialFolder), base.Option, true);
+
+              writer.Write(Environment.GetFolderPath(specialFolder));
+              }
+              }
+            </pre>
+          </div>
+          <p>
+            For full details see the SDK Reference entry: <a
+                            href="sdk/html/T_log4net_Util_PatternString_htm">
+              log4net.Util.PatternString
+            </a>.
+          </p>
+          <h3>Loading configuration from a URI</h3>
+          <p>
+            The <span class="code">XmlConfigurator</span> methods now support loading the
+            configuration data from a URI. Config can be loaded from any URI supported by the
+            <span class="code">System.Net.WebRequest</span>
+            class.
+          </p>
+          <h3>Support for No-Touch deployment</h3>
+          <p>
+            Log4net supports configuring No-Touch deployment applications using the
+            <span class="code">XmlConfiguratorAttribute</span>. If a relative config file
+            or extension is specified then this is resolved relative to the deployment
+            URI.
+          </p>
+          <h3>Config file parser enhancements</h3>
+          <p>
+            The config file parser has been enhanced to support specifying the property subtype, or
+            intermediate
+            type,
+            directly on the property element, for example:
+          </p>
+          <div class="syntax">
+            <pre class="code">
+              &lt;layout type=&quot;log4net.Layout.PatternLayout&quot; value=&quot;%message%newline&quot;
+              /&gt;
+            </pre>
+          </div>
+          <p>
+            Implicit conversion will be attempted between the value string and the type specified,
+            and then again between the type and the target property type.
+          </p>
+          <h3>.NET string formatting syntax</h3>
+          <p>
+            Added .NET <span class="code">String.Format</span> style formatting syntax methods to
+            the <span class="code">ILog</span> interface. The new methods are:
+            <span class="code">DebugFormat</span>, <span class="code">InfoFormat</span>,
+            <span class="code">WarnFormat</span>,
+            <span class="code">ErrorFormat</span>
+            and <span class="code">FatalFormat</span>.
+          </p>
+          <h3>Customizable levels</h3>
+          <p>
+            Levels are defined by the repository <span class="code">LevelMap</span>. The defined
+            levels, the relative ordering of levels and level display names can be configured on
+            a per-repository basis.
+          </p>
+          <h3>Per-appender security contexts</h3>
+          <p>
+            Appenders that interact with controlled platform resources, e.g. files, can be
+            configured to use a separate security context when accessing these resources.
+            The calling thread may not have appropriate privileges to access the resource a
+            custom <span class="code">SecurityContext</span> can be used to elevate the
+            privileges of the appender. The
+            <span class="code">WindowsSecurityContext</span>
+            is used to specify alternative credentials on the Windows platform.
+          </p>
+          <h3>Added new appenders</h3>
+          <dl>
+            <dt>
+              <span class="code">AnsiColorTerminalAppender</span>
+            </dt>
+            <dd>
+              <p>
+                The <span class="code">AnsiColorTerminalAppender</span> writes events to
+                the application's ANSI terminal window. It can be configured to specify
+                the text and background colors for different level events. Note that Console
+                applications running on Windows do not have an ANSI terminal window and
+                should use the <span class="code">ColoredConsoleAppender</span> instead.
+              </p>
+            </dd>
+            <dt>
+              <span class="code">LocalSyslogAppender</span>
+            </dt>
+            <dd>
+              <p>
+                Logs events to a local syslog service. This appender uses the POSIX libc syslog
+                library functions. If these functions are not available on the local system then
+                this appender will not work!
+              </p>
+            </dd>
+            <dt>
+              <span class="code">RemoteSyslogAppender</span>
+            </dt>
+            <dd>
+              <p>
+                The <span class="code">RemoteSyslogAppender</span> uses the BSD syslog protocol to
+                log to a syslog daemon. The syslogd listens for for messages on UDP port 514.
+              </p>
+            </dd>
+            <dt>
+              <span class="code">TelnetAppender</span>
+            </dt>
+            <dd>
+              <p>
+                The <span class="code">TelnetAppender</span> accepts socket connections and streams
+                logging messages back to the client. The output is provided in a telnet-friendly way
+                so that a log can be monitored over a TCP/IP socket.
+                This allows simple remote monitoring of application logging.
+              </p>
+            </dd>
+          </dl>
+          <h3>
+            Added new <span class="code">LoggerMatchFilter</span> filter
+          </h3>
+          <p>
+            Added <span class="code">LoggerMatchFilter</span> which matches a string against
+            the event's logger name.
+          </p>
+          <h3>
+            Pluggable file locking models for the
+            <span class="code">FileAppender</span>
+          </h3>
+          <p>
+            The <span class="code">FileAppender</span> (and by extension the
+            <span class="code">RollingFileAppender</span>) now support pluggable file
+            locking models. The default model, <span class="code">ExclusiveLock</span>,
+            maintains the current exclusive file locking behavior. An alternative
+            model, <span class="code">MinimalLock</span>, can be used to support writing to
+            a single output file from multiple processes.
+          </p>
+          <p>
+            For full details see the SDK Reference entry: <a
+                            href="sdk/html/T_log4net_Appender_FileAppender_LockingModel.htm">
+              log4net.Appender.FileAppender.LockingModel
+            </a>.
+          </p>
+          <h3>
+            <span class="code">RollingFileAppender</span>
+            roll once
+          </h3>
+          <p>
+            The <span class="code">RollingFileAppender</span> now supports a new
+            rolling style, <span class="code">Once</span>. In this mode the appender
+            will roll the file once per run.
+          </p>
+          <h3>
+            <span class="code">SmtpAppender</span>
+            authentication
+          </h3>
+          <p>
+            On the .NET 1.1 platform only, the <span class="code">SmtpAppender</span> supports
+            authenticating
+            against the mail server using either username and password or integrated NTLM authentication.
+          </p>
+          <h3>
+            <span class="code">AdoNetAppender</span>
+            ReconnectOnError
+          </h3>
+          <p>
+            Added new configuration property to <span class="code">AdoNetAppender</span>.
+            Setting <span class="code">ReconnectOnError</span> to
+            <span class="code">true</span>
+            will force the appender to attempt to reconnect to the database if the connection
+            is lost.
+          </p>
+          <h3>
+            <span class="code">UdpAppender</span>
+            hostname support
+          </h3>
+          <p>
+            The <span class="code">UdpAppender</span> config property
+            <span class="code">RemoteAddress</span>
+            can now be specified as a DNS hostname string. The hostname is resolved to an IP address.
+          </p>
+        </section>
+
+        <section id="1.2.9-other" name="Other Changes">
+          <h3>FxCop compliance</h3>
+          <p>
+            Updates to bring the internal code in line with the current FxCop rules.
+          </p>
+          <h3>Separate NUnit tests</h3>
+          <p>
+            Moved the NUnit tests into a separate project, <span class="code">log4net.Tests</span>.
+          </p>
+          <h3>Bug Fixes</h3>
+          <dl>
+            <dt>
+              <span class="code">RemotingAppender</span>
+            </dt>
+            <dd>
+              <p>
+                Sends events from a <span class="code">ThreadPool</span> thread
+                rather than the calling thread to prevent transfer,
+                and potential loss, of the <span class="code">CallContext</span>.
+              </p>
+            </dd>
+            <dt>
+              <span class="code">RollingFileAppender</span>
+            </dt>
+            <dd>
+              <p>
+                Fixed date rolling period detection for non UTC timezones.
+              </p>
+            </dd>
+            <dt>
+              <span class="code">ColoredConsoleAppender</span>
+            </dt>
+            <dd>
+              <p>
+                Updated to support writing more than 30,000 chars in a single message.
+                Fixed background color overspill if the console window needs to
+                scroll the contents.
+              </p>
+            </dd>
+          </dl>
+        </section>
+
+      </section>
+
+      <section id="1.2.0b8" name="1.2.0 Beta 8">
+        <h3>
+          Changed assembly name to
+          <span class="code">log4net</span>
+        </h3>
+        <p>
+          The build output is now
+          <span class="code">log4net.dll</span>
+          for all frameworks. This is a breaking change.
+        </p>
+        <p>
+          To resolve cross platform and cross version issues we have
+          changed the log4net assembly to use a common name for all
+          frameworks. The assembly friendly name is now <span class="code">log4net</span>.
+          The builds for each framework can now be differentiated
+          by the assembly title. This includes the name of the framework
+          that the assembly was built on.
+        </p>
+        <h3>Combined Release and ReleaseStrong builds</h3>
+        <p>
+          The Release and ReleaseStrong builds have been consolidated into
+          a single build called Release. This Release build is strongly named.
+        </p>
+        <h3>New Appender: ColoredConsoleAppender</h3>
+        <p>
+          The <span class="code">ColoredConsoleAppender</span> writes events to the
+          application's console. It can be configured to specify the text and background
+          colors for different level events.
+        </p>
+        <h3>New Appender: SmtpPickupDirAppender</h3>
+        <p>
+          The <span class="code">SmtpPickupDirAppender</span> generates SMTP compliant
+          messages and writes them to a local directory. These files can then be read
+          by an SMTP agent (e.g. the IIS SMTP Agent) and delivered.
+        </p>
+        <h3>New Layout: XmlLayoutSchemaLog4j</h3>
+        <p>
+          This new layout formats the logging events as XML which complies with
+          the Apache log4j&#x2122; event dtd. This can be used to transfer log event from log4net
+          to log4j. Currently the only appender that can communicate directly with
+          log4j is the <span class="code">UdpAppender</span>.
+        </p>
+        <h3>New PatternLayout conversion characters</h3>
+        <p>
+          Added support for capturing the current thread principal name and the
+          app domain friendly name for each logging event.
+        </p>
+        <dl>
+          <dt>%a</dt>
+          <dd>
+            Used to output the friendly name of the AppDomain where the
+            logging event was generated.
+          </dd>
+          <dt>%u</dt>
+          <dd>
+            Used to output the user name for the currently active user
+            (<span class="code">Principal.Identity.Name</span>).
+          </dd>
+        </dl>
+        <h3>Types specified in the config file are now loaded ignoring case</h3>
+        <p>
+          All types specified in the configuration files are now loaded
+          using a case insensitive method.
+        </p>
+        <h3>Fine grained fixing for buffered events</h3>
+        <p>
+          The <span class="code">LoggingEvent</span> now supports fine grained
+          fixing of data that needs to be accessed outside the append context,
+          e.g. when an event is buffered. The new
+          <span class="code">Fix</span>
+          property takes a combination of the
+          <span class="code">FixFlags</span>
+          enumeration values.
+        </p>
+        <h3>Code updated inline with FxCop 1.21</h3>
+        <p>
+          In line with the FxCop 1.21 guidelines:
+          Sealed utility classes. Added serialization security demand to GetObjectData.
+          Renamed parameters.
+        </p>
+        <h3>EventLogAppender 32K Limit</h3>
+        <p>
+          There is a limit of 32K characters in an EventLog message. Added a
+          check that only logs the first 32000 characters from the rendered
+          message.
+        </p>
+      </section>
+
+      <section id="1.2.0b7" name="1.2.0 Beta 7">
+        <h3>Updated to support the Microsoft .NET Framework 1.1 Final</h3>
+        <p>
+          Updated to support the Microsoft .NET Framework 1.1 Final Beta (1.1.4322).
+        </p>
+        <h3>Features document</h3>
+        <p>
+          Added a new document that covers the main features of log4net.
+          See the
+          <a href="features.html">features</a>
+          document for more information.
+        </p>
+        <h3>Hierarchy disabled until it is configured</h3>
+        <p>
+          The Hierarchy is now disabled until it has been configured.
+          All messages logged to the Hierarchy before it has been
+          configured will be ignored without an error message being
+          written to the console.
+        </p>
+        <p>
+          If you are configuring log4net programmatically (i.e. not using
+          one of the built-in configurators) you must set the
+          <span class="code">ILoggerRepository.Configured</span>
+          property
+          to <span class="code">true</span> once you have configured
+          the repository.
+        </p>
+        <p>
+          The no appenders defined for a logger message will no longer be
+          displayed on the console by default. This message will only be
+          displayed if internal debugging is enabled.
+        </p>
+        <h3>New examples in VisualBasic.NET, JScript and Managed C++</h3>
+        <p>
+          New examples in VisualBasic.NET, JScript and Managed C++.
+          TODO Link to document about examples.
+        </p>
+        <h3>Code and Documentation Updates</h3>
+        <p>
+          Code fixes. Documentation and manual updates.
+          See the ChangeLog for more information.
+        </p>
+        <h3>Added document with example appender configurations</h3>
+        <p>
+          See the
+          <a href="config-examples.html">Example Appender Configuration</a>
+          document for more information.
+        </p>
+      </section>
+
+      <section id="1.2.0b6" name="1.2.0 Beta 6">
+        <h3>Added support for multiple frameworks</h3>
+        <p>
+          log4net 1.2.0 beta 6 adds support for the the following frameworks:
+        </p>
+        <div class="table">
+          <table cellspacing="0">
+            <colgroup>
+              <col style="text-align: left;"/>
+            </colgroup>
+            <tr>
+              <th>
+                Framework
+              </th>
+              <th>
+                Website
+              </th>
+            </tr>
+            <tr style="vertical-align: top;">
+              <td>Microsoft .NET Framework 1.1 Final Beta (1.1.4322)</td>
+              <td>
+                <a href="http://msdn.microsoft.com/net">http://msdn.microsoft.com/net</a>
+              </td>
+            </tr>
+            <tr style="vertical-align: top;">
+              <td>Microsoft .NET Compact Framework 1.0 (1.0.5000)</td>
+              <td>
+                <a href="http://msdn.microsoft.com/vstudio/device/compactfx.asp">
+                  http://msdn.microsoft.com/vstudio/device/compactfx.asp
+                </a>
+              </td>
+            </tr>
+            <tr style="vertical-align: top;">
+              <td>Mono 0.23</td>
+              <td>
+                <a href="http://www.go-mono.org">http://www.go-mono.org</a>
+              </td>
+            </tr>
+            <tr style="vertical-align: top;">
+              <td>Microsoft Shared Source CLI 1.0</td>
+              <td>
+                <a href="http://msdn.microsoft.com/library/en-us/dndotnet/html/mssharsourcecli.asp">
+                  http://msdn.microsoft.com/library/en-us/dndotnet/html/mssharsourcecli.asp
+                </a>
+              </td>
+            </tr>
+          </table>
+        </div>
+        <br/>
+        <p>
+          Not all frameworks are created equal and some features have been excluded from
+          some of the builds. See the <a href="framework-support.html">Framework Support</a> document for more
+          information.
+        </p>
+        <h3>New build system using NAnt</h3>
+        <p>
+          The new build system allows log4net to be built for all supported frameworks and
+          in all build configurations in one go.
+        </p>
+        <h3>New source code &amp; distribution layout</h3>
+        <p>
+          The source code &amp; distribution layout has been updated to support the new
+          build environment and multiple target frameworks.
+        </p>
+        <h3>Removed DomainAttribute.UseDefaultDomain property</h3>
+        <p>
+          Updated default behavior of <span class="code">DefaultRepositorySelector</span>. Assemblies
+          are now by default placed into the default domain. To specify another domain,
+          the <span class="code">DomainAttribute</span> must be used. This is the opposite behavior
+          to what was previously available. If you were previously specifying the
+          <span class="code">DomainAttribute.UseDefaultDomain</span>
+          property then you should remove it, and if the default behavior is now
+          sufficient, you do not need to specify the <span class="code">DomainAttribute</span> at all.
+        </p>
+        <h3>Updated configuration file parser</h3>
+        <p>
+          Updated config file parser to use the element name as the property to set. Also
+          removed <span class="code">&lt;object&gt;</span> tag, the type attribute can now be
+          specified on the property element directly.
+        </p>
+        <p>
+          For example:
+        </p>
+        <div class="syntax">
+          <pre class="code">
+            &lt;appender&gt;
+            &lt;param name=&quot;Evaluator&quot;&gt;
+            &lt;object type=&quot;log4net.spi.LevelEvaluator&quot;&gt;
+            &lt;constructor&gt;
+            &lt;param type=&quot;log4net.spi.Level&quot; value=&quot;DEBUG&quot;/&gt;
+            &lt;/constructor&gt;
+            &lt;/object&gt;
+            &lt;/param&gt;
+            &lt;/appender&gt;
+          </pre>
+        </div>
+        <p>
+          becomes:
+        </p>
+        <div class="syntax">
+          <pre class="code">
+            &lt;appender&gt;
+            &lt;evaluator type=&quot;log4net.spi.LevelEvaluator&quot;&gt;
+            &lt;threshold value=&quot;DEBUG&quot;/&gt;
+            &lt;/evaluator&gt;
+            &lt;/appender&gt;
+          </pre>
+        </div>
+        <h3>Support for event ID</h3>
+        <p>
+          The <span class="code">EventLogAppender</span> now supports setting the event ID in the
+          event log, this is taken from the <span class="code">EventID</span> property from the per
+          event <span class="code">Properties</span> map on the <span class="code">LoggingEvent</span>.
+        </p>
+        <h3>Updated ADONetAppender</h3>
+        <p/>
+        <ul>
+          <li>
+            Added support for prepared statements and stored procedures
+          </li>
+          <li>
+            Added <span class="code">RawTimeStampLayout</span>to correctly convert the timestamps into
+            database date time format
+          </li>
+          <li>
+            Added <span class="code">ExceptionLayout</span> to render the exception data
+          </li>
+        </ul>
+        <p/>
+        <h3>Support for front-end extension</h3>
+        <p>
+          This allows the logging API to be wrapped or adapted for specific purposes. Two
+          extension samples are included in the distribution:
+        </p>
+        <div class="table">
+          <table cellspacing="0">
+            <colgroup>
+              <col style="width: 50%; text-align: left;"/>
+              <col style="width: 50%; text-align: left;"/>
+            </colgroup>
+            <tr>
+              <th>
+                Extension
+              </th>
+              <th>
+                Description
+              </th>
+            </tr>
+            <tr style="vertical-align: top;">
+              <td>log4net.Ext.Trace</td>
+              <td>Adds trace logging methods</td>
+            </tr>
+            <tr style="vertical-align: top;">
+              <td>log4net.Ext.EventID</td>
+              <td>Adds additional eventId parameter to all methods</td>
+            </tr>
+          </table>
+        </div>
+        <p/>
+        <h3>Added ForwardingAppender</h3>
+        <p>Forwards events to multiple sub appenders after applying filter rules.</p>
+        <h3>Added BufferingForwardingAppender</h3>
+        <p>Forward events to sub appenders after buffering them.</p>
+        <h3>Added ASPNetTraceAppender</h3>
+        <p>Logs events to the ASP.NET trace system.</p>
+        <h3>Added NetSendAppender</h3>
+        <p>Delivers logging events using the Windows Messenger service.</p>
+        <h3>Added UdpAppender</h3>
+        <p>
+          Sends logging events as connectionless UDP datagrams to a remote host or a
+          multicast group.
+        </p>
+        <h3>Removed obsolete methods</h3>
+        <h3>Lots of updates to improve our compliance with FxCop</h3>
+        <h3>Improved SDK documentation</h3>
+      </section>
+
+      <section id="1.2.0b5" name="1.2.0 Beta 5">
+        <h3>
+          Fixed Exception thrown when DOM Configurator called with a null XML
+          Element.
+        </h3>
+        <p>This occurred if the configuration file did not have a log4net section defined.</p>
+        <h3>Made level lookup case insensitive</h3>
+        <h3>Prevented the Hierarchy's Threshold level from being set to a null reference</h3>
+      </section>
+
+      <section id="1.2.0b4" name="1.2.0 Beta 4">
+        <h3>Added event specific properties to the logging event object</h3>
+        <p>
+          Appenders can add additional information to the events they are logging. The
+          <span class="code">RemotingAppender</span>
+          and the <span class="code">SMTPAppender</span> both add a 'hostname' property to the events.
+          These properties can be accessed using the <span class="code">PatternLayout</span> with the
+          %P{name} syntax.
+        </p>
+        <h3>Added a plugin framework</h3>
+        <p>
+          An <span class="code">IPlugin</span> interface can be attached to any repository.
+        </p>
+        <h3>
+          A new RemoteLoggingServerPlugin plugin acts as the server for the
+          RemotingAppender
+        </h3>
+        <h3>
+          Updated the core log4net framework to work in an environment with no
+          permissions
+        </h3>
+        <p>Specific appenders still require additional permissions to log correctly</p>
+        <h3>Added support for domain aliasing using the AliasDomainAttribute</h3>
+        <p>
+          This allows a parent assembly to take control of the logging domain for child
+          assemblies.
+        </p>
+        <h3>
+          Added events for repository creation, configuration change, configuration reset
+          and repository shutdown
+        </h3>
+        <h3>Added LevelMap to the ILoggerRepository interface</h3>
+        <p>
+          The mapping from level name to level object is now repository specific,
+          therefore each repository can have independent mappings.
+        </p>
+        <h3>Moved hierarchy specific config file parser to new DOMHierarchyConfigurator class</h3>
+        <p>
+          This is controlled by the <span class="code">Hierarchy</span> object and allows for better
+          encapsulation.
+        </p>
+        <h3>Added OnlyFixPartialEventData property to the buffered appenders</h3>
+        <p>
+          This setting causes slow settings to be ignored. This significantly improves the
+          performance of the buffered appenders.
+        </p>
+        <h3>XML entity references are supported in the XML config file.</h3>
+        <h3>Added support for expanding environment variables in &lt;param&gt; values</h3>
+        <p>
+          The environment variables must be specified as <span class="code">${FOO}</span> where
+          <span class="code">FOO</span>
+          is the name of the variable to expand.
+        </p>
+        <h3>Upgraded to use NUnit 2.0</h3>
+        <h3>File appenders can specify the encoding to use for the file</h3>
+        <h3>Added strong named configuration</h3>
+      </section>
+
+      <section id="1.2.0b3" name="1.2.0 Beta 3">
+        <h3>Added log4net.Ext.Trace extension</h3>
+        <p>This is a separate assembly that adds a trace level to log4net.</p>
+        <h3>
+          The default log file output directory is now the application base directory not
+          the current directory
+        </h3>
+        <h3>Added MemoryAppender</h3>
+        <p>Stores all the logging events in an in-memory buffer.</p>
+        <h3>Moved the Hierarchy implementation into a separate namespace</h3>
+        <p>
+          The <span class="code">log4net.Repository.Hierarchy</span> namespace now contains all the
+          code that is specific to the <span class="code">Hierarchy</span> implementation.
+        </p>
+        <h3>Refactored the DOMConfigurator and BasicConfigurator</h3>
+        <p>
+          The <span class="code">Hierarchy</span> specific data schema and implementation could be has
+          now been moved to the <span class="code">log4net.Repository.Hierarchy</span> namespace. The
+          bootstrap code for these configurators remains in the
+          <span class="code">log4net.Config</span>
+          namespace.
+        </p>
+        <h3>
+          Replaced the DOMConfiguratorAttribute UseExecutableDomain
+          property with UseDefaultDomain
+        </h3>
+        <p>
+          This change to the implementation of the <span class="code">DOMConfiguratorAttribute</span> should
+          allow the configuration of multiple assemblies to be accomplished more easily,
+          especially when developing web applications (ASP.NET).
+        </p>
+        <h3>A few good bug fixes!</h3>
+      </section>
+
+      <section id="1.2.0b2" name="1.2.0 Beta 2">
+        <h3>Added ADONetAppender</h3>
+        <p>Thanks to TechnologyOneCorp.com.</p>
+        <h3>Added TraceLogAssembly extensibility example</h3>
+        <h3>Lots of bug fixes</h3>
+      </section>
+
+      <section id="1.2.0b1" name="1.2.0 Beta 1">
+        <h3>Added 6 new examples</h3>
+        <h3>Split Category class into Logger and LogManager classes</h3>
+        <p>
+          The instance methods from <span class="code">Category</span> have moved to the
+          <span class="code">Logger</span>
+          class. The static methods from <span class="code">Category</span> have moved to the
+          <span class="code">LogManager</span>
+          class. The <span class="code">Category</span> class still exists but for backward
+          compatibility only. Changed interface <span class="code">ICategoryFactory</span> to
+          <span class="code">ILoggerFactory</span>
+          and the implementation class <span class="code">DefaultCategoryFactory</span> to <span class="code">
+            DefaultLoggerFactory
+          </span>.
+        </p>
+        <h3>Replaced Priority class with Level class</h3>
+        <p>
+          The <span class="code">Priority</span> class has been replaced by the <span class="code">
+            Level
+          </span> class.
+          The <span class="code">Priority</span> class still exists for backward compatibility only.
+          The <span class="code">Level</span> class implements a static pool of <span class="code">
+            Level
+          </span> objects.
+          The <span class="code">Level</span> class is sealed and serializable.
+        </p>
+        <h3>Added ILoggerRepository interface implemented by Hierarchy</h3>
+        <p>
+          The <span class="code">Hierarchy</span> class implements the <span class="code">
+            ILoggerRepository
+          </span> interface.
+          This interface is used by the <span class="code">LogManager</span> class and therefore
+          allows different implementations of <span class="code">ILoggerRepository</span> to be used.
+        </p>
+        <h3>Enhanced NUnit tests</h3>
+        <p>
+          All the NUnit tests can be run using a single TestSuite: NUnitGUI
+          log4net.LogManager+AllTests,log4net.dll.
+        </p>
+        <h3>Added support for serializing LoggingEvents</h3>
+        <p>
+          The <span class="code">LoggingEvent</span> class is serializable. All local state is
+          captured before serialization occurs. This now allows
+          <span class="code">LoggingEvent</span>
+          objects to be serialized between applications or machines.
+        </p>
+        <h3>Added RemotingAppender</h3>
+        <p>
+          Delivers <span class="code">LoggingEvents</span> to a remote interface. This can be used to
+          collect distributed logging into a single log file. There is an example
+          remoting sink that receives the logging events, see
+          <span class="code">examples\net\remoting\RemotingServer</span>
+          for details.
+        </p>
+        <h3>Added support for rendering composite objects</h3>
+        <p>
+          The <span class="code">IObjectRenderer</span> interface method <span class="code">DoRender</span> now
+          takes a <span class="code">RendererMap</span> argument. This allows the renderer to use the
+          appropriate renderer from the <span class="code">RendererMap</span> to render any nested
+          objects.
+        </p>
+        <h3>Added support for rendering exceptions</h3>
+        <p>
+          The <span class="code">DefaultRenderer</span> now has support for rendering exceptions to a
+          string. This includes nested exceptions. The <span class="code">RendererMap</span> is now
+          used to render exceptions in the <span class="code">LoggingEvent</span>. This allows the
+          rendering of specific exceptions to be enhanced by specific renderers.
+        </p>
+        <h3>Added ITriggeringEventEvaluator interface</h3>
+        <p>
+          This interface is used by <span class="code">SMTPAppender</span> and
+          <span class="code">RemotingAppender</span>
+          to determine if a <span class="code">LoggingEvent</span> meets a set of user defined
+          criteria. These appenders use the interface to determine whether or not to
+          deliver the current buffer of events to their listener. The interface is
+          implemented by the <span class="code">LevelEvaluator</span> class, which triggers above a
+          set level.
+        </p>
+        <h3>Added regex matching to the MDCFilter, NDCFilter and StringMatchFilter</h3>
+        <p>
+          The <span class="code">MDCFilter</span>, <span class="code">NDCFilter</span> and
+          <span class="code">StringMatchFilter</span>
+          can now be configured to use regex matches in addition to substring matches.
+          Set the <span class="code">RegexToMatch</span> property to use this feature.
+        </p>
+        <h3>Added XMLLayout</h3>
+        <p>
+          emits an XML element for each <span class="code">LoggingEvent</span>. This allows logging
+          events to be stored and manipulated as XML. The DTD for the XML emitted is in
+          the
+          <span class="code">log4net-events.dtd</span>
+        </p>
+        <h3>
+          Added support for &lt;logger&gt; and &lt;level&gt; elements in the
+          DOMConfigurator
+        </h3>
+        <p>
+          As the <span class="code">Category</span> and <span class="code">Priority</span> classes have been
+          replaced by the <span class="code">Logger</span> and <span class="code">Level</span> classes. The
+          <span class="code">DOMConfigurator</span>
+          has been updated to allow the <span class="code">&lt;logger&gt;</span> and
+          <span class="code">&lt;level&gt;</span>
+          elements to be used in place of the <span class="code">&lt;category&gt;</span> and
+          <span class="code">&lt;priority&gt;</span>
+          elements. The old elements are still accepted for backward compatibility.
+        </p>
+        <h3>Added Threshold property to Hierarchy</h3>
+        <p>
+          Changed <span class="code">DisableXXX()</span> methods on <span class="code">Hierarchy</span> to a
+          <span class="code">Threshold</span>
+          property.
+        </p>
+        <h3>Added support for logging domains</h3>
+        <p>
+          The <span class="code">LogManager</span> supports multiple logging domains. The
+          <span class="code">LogManager</span>
+          uses an instance of the <span class="code">IRepositorySelector</span> class to map from
+          domains to <span class="code">ILoggerRepository</span> instances. The default implementation
+          is to have a separate <span class="code">ILoggerRepository</span> for each domain. When a
+          call is made to the static methods on <span class="code">LogManager</span> the domain can be
+          specified (as a string) or the domain can be inferred automatically from the
+          calling assembly. The default behavior is for each assembly loaded into the
+          process to have its own domain and <span class="code">ILoggerRepository</span>. These can
+          each be configured separately. This allows standalone assemblies to use log4net
+          without conflicting with other modules in the process. The domain for the
+          assembly is configured using metadata attributes defined on the assembly.
+        </p>
+        <h3>DOMConfigurator can set params to arbitrary objects</h3>
+        <p>
+          Using a new <span class="code">&lt;object&gt;</span> element, params can now be set to any
+          creatable object.
+        </p>
+      </section>
+
+    </section>
+  </body>
 </document>
