Merge pull request #116 from apache/Feature/v2.0.16

Release notes for 2.0.16
diff --git a/.gitignore b/.gitignore
index ad029ec..32ccf02 100644
--- a/.gitignore
+++ b/.gitignore
@@ -244,3 +244,5 @@
 dotnetfx35.exe
 *.exe
 /src/Binaries/*
+
+local-tasks/*.generated.js
\ No newline at end of file
diff --git a/.zarro-defaults b/.zarro-defaults
index 43b612c..b7bbc30 100644
--- a/.zarro-defaults
+++ b/.zarro-defaults
@@ -15,3 +15,14 @@
 
 # specify what to build (prevents accidental build of any other sln)
 BUILD_INCLUDE=src/log4net.sln
+
+# using zarro's pack target, tell it what to pack
+PACK_INCLUDE_CSPROJ=log4net.csproj
+# the pack target increments the PackageVersion node in log4net.csproj
+# - setting this "truthy" propagates that change to the Version node
+PACK_SYNC_PROJECT_VERSION=1
+# all version changes should be manual, however, it's generally
+# accepted that the beta for, eg, 1.2.3 is 1.2.3-{date}-{sha}
+#  ie beta packages carry the main version of their intended
+#  release version
+PACK_INCREMENT_MINOR_ON_FIRST_RELEASE=0
diff --git a/local-tasks/build-site.js b/local-tasks/build-site.js
index d63d91c..ec35242 100644
--- a/local-tasks/build-site.js
+++ b/local-tasks/build-site.js
@@ -5,9 +5,9 @@
 // to you under the Apache License, Version 2.0 (the
 // "License"); you may not use this file except in compliance
 // with the License.  You may obtain a copy of the License at
-// 
+//
 //   http://www.apache.org/licenses/LICENSE-2.0
-// 
+//
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
 // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -16,32 +16,33 @@
 // under the License.
 
 const
-    gulp = requireModule("gulp"),
-    spawn = requireModule("spawn"),
-    env = requireModule("env"),
-    os = require("os"),
-    which = require("which");
+  gulp = requireModule("gulp"),
+  spawn = requireModule("spawn"),
+  env = requireModule("env"),
+  os = require("os"),
+  which = require("which");
 
 gulp.task("build-site", async () => {
-    let maven;
-    try {
-        maven = await which("mvn");
-    } catch (e) {
-        let extra;
-        switch (os.platform()) {
-            case "win32":
-                extra = "You may install maven via chocolatey (https://chocolatey.org)";
-                break;
-            case "darwin":
-                extra = "You may install maven via homebrew";
-                break;
-            default:
-                extra = "You should install maven with your package manager";
-                break;
-        }
-        throw new Error(`Unable to find mvn in your path. ${extra}`);
+  const { rm } = require("yafs");
+  let maven;
+  try {
+    maven = await which("mvn");
+  } catch (e) {
+    let extra;
+    switch (os.platform()) {
+      case "win32":
+        extra = "You may install maven via chocolatey (https://chocolatey.org)";
+        break;
+      case "darwin":
+        extra = "You may install maven via homebrew";
+        break;
+      default:
+        extra = "You should install maven with your package manager";
+        break;
     }
-
-    return spawn("mvn", [ "site" ]);
+    throw new Error(`Unable to find mvn in your path. ${ extra }`);
+  }
+  await rm("target");
+  return spawn("mvn", [ "site" ]);
 });
 
diff --git a/local-tasks/update-version-info.js b/local-tasks/update-version-info.ts
similarity index 81%
rename from local-tasks/update-version-info.js
rename to local-tasks/update-version-info.ts
index c1e0353..8c48510 100644
--- a/local-tasks/update-version-info.js
+++ b/local-tasks/update-version-info.ts
@@ -1,3 +1,4 @@
+/// <reference path="../node_modules/zarro/types.d.ts" />
 // Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
@@ -5,9 +6,9 @@
 // to you under the Apache License, Version 2.0 (the
 // "License"); you may not use this file except in compliance
 // with the License.  You may obtain a copy of the License at
-// 
+//
 //   http://www.apache.org/licenses/LICENSE-2.0
-// 
+//
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
 // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -16,22 +17,22 @@
 // under the License.
 
 const
-  gulp = requireModule("gulp");
+  gulp = requireModule<Gulp>("gulp");
 
 gulp.task("update-version-info", async () => {
   // the version as per the .csproj is the correct version, but there
   // are other places where the version string is set via [assembly]
   // attributes, so we need to re-align them all
   const
-    Git = require("simple-git/promise"),
-    readTextFile = requireModule("read-text-file"),
-    writeTextFile = requireModule("write-text-file"),
-    readCsProjVersion = requireModule("read-csproj-version"),
-    currentVersion = await readCsProjVersion("src/log4net/log4net.csproj"),
+    Git = require("simple-git"),
+    { readTextFile, writeTextFile } = require("yafs"),
+    { readProjectVersion } = requireModule<CsProjUtils>("csproj-utils"),
+    currentVersion = await readProjectVersion("src/log4net/log4net.csproj"),
     assemblyInfo = "src/log4net/AssemblyInfo.cs",
     assemblyVersionInfo = "src/log4net/AssemblyVersionInfo.cs",
     versionString = sanitiseVersion(currentVersion);
 
+
   await updateVersionsIn(assemblyInfo, versionString);
   await updateVersionsIn(assemblyVersionInfo, versionString);
 
@@ -43,9 +44,9 @@
   await git.commit(`:bookmark: update versioning to ${versionString}`);
 
   async function updateVersionsIn(
-    filePath,
-    newVersion
-  ) {
+    filePath: string,
+    newVersion: string
+  ): Promise<void> {
     const
       contents = await readTextFile(filePath),
       updated = contents
@@ -56,7 +57,7 @@
     await writeTextFile(filePath, updated);
   }
 
-  function sanitiseVersion(version) {
+  function sanitiseVersion(version: string): string {
     const parts = version.split(".");
     while (parts.length < 4) {
       parts.push("0");
diff --git a/log4net.build b/log4net.build
index 0bb50af..7172d4f 100644
--- a/log4net.build
+++ b/log4net.build
@@ -20,7 +20,7 @@
   <property name="log4net.basedir" value="." />
   <property name="project.build.config" value="debug" />
   <property name="project.build.package" value="false" />
-  <property name="package.version" value="2.0.15"/>
+  <property name="package.version" value="2.0.16"/>
 
   <!-- Include log4net helpers -->
   <include buildfile="${log4net.basedir}/log4net.include" />
diff --git a/log4net.shfbproj b/log4net.shfbproj
index d8e22eb..ae39e03 100644
--- a/log4net.shfbproj
+++ b/log4net.shfbproj
@@ -33,7 +33,7 @@
     <!-- SHFB properties -->
     <FrameworkVersion>.NET Framework 3.5</FrameworkVersion>
     <OutputPath>doc\sdk\net\4.0\</OutputPath>
-    <HtmlHelpName>log4net-sdk-2.0.15</HtmlHelpName>
+    <HtmlHelpName>log4net-sdk-2.0.16</HtmlHelpName>
     <Language>en-US</Language>
     <SyntaxFilters>Standard</SyntaxFilters>
     <SdkLinkTarget>Blank</SdkLinkTarget>
diff --git a/package-lock.json b/package-lock.json
index 1044a25..760e126 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15,10 +15,11 @@
         "gulp-zip": "^5.0.2",
         "npm-run-all": "^4.1.5",
         "rimraf": "^3.0.2",
-        "simple-git": "^3.16.0",
+        "simple-git": "^3.22.0",
+        "typescript": "^5.3.3",
         "which": "^2.0.2",
-        "yafs": "^1.5.0",
-        "zarro": "^1.169.0"
+        "yafs": "^1.36.0",
+        "zarro": "^1.170.0"
       }
     },
     "node_modules/@kwsites/file-exists": {
@@ -6597,9 +6598,9 @@
       }
     },
     "node_modules/simple-git": {
-      "version": "3.16.0",
-      "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.16.0.tgz",
-      "integrity": "sha512-zuWYsOLEhbJRWVxpjdiXl6eyAyGo/KzVW+KFhhw9MqEEJttcq+32jTWSGyxTdf9e/YCohxRE+9xpWFj9FdiJNw==",
+      "version": "3.22.0",
+      "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.22.0.tgz",
+      "integrity": "sha512-6JujwSs0ac82jkGjMHiCnTifvf1crOiY/+tfs/Pqih6iow7VrpNKRRNdWm6RtaXpvvv/JGNYhlUtLhGFqHF+Yw==",
       "dev": true,
       "dependencies": {
         "@kwsites/file-exists": "^1.1.1",
@@ -7386,6 +7387,19 @@
       "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
       "dev": true
     },
+    "node_modules/typescript": {
+      "version": "5.3.3",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
+      "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
+      "dev": true,
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
+      "engines": {
+        "node": ">=14.17"
+      }
+    },
     "node_modules/unbox-primitive": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
@@ -7912,9 +7926,9 @@
       }
     },
     "node_modules/zarro": {
-      "version": "1.169.0",
-      "resolved": "https://registry.npmjs.org/zarro/-/zarro-1.169.0.tgz",
-      "integrity": "sha512-2k89dREJ3XKVefgB7PoXZAjnrRZ8f9RwLLuo3SnXabb9PZb3P1fVCC5S3wjGNsD/LoG7CtI27AUOp3uWg+buhQ==",
+      "version": "1.170.0",
+      "resolved": "https://registry.npmjs.org/zarro/-/zarro-1.170.0.tgz",
+      "integrity": "sha512-cekgxDOEYWACTebzRtjTTv0R0aC7FJokoljciPqnKU+BOh9dvWar3K2ziR3xRXv8BZkhl63Rk9jfuR4elIasdg==",
       "dev": true,
       "dependencies": {
         "@octokit/rest": "^20.0.1",
@@ -13255,9 +13269,9 @@
       }
     },
     "simple-git": {
-      "version": "3.16.0",
-      "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.16.0.tgz",
-      "integrity": "sha512-zuWYsOLEhbJRWVxpjdiXl6eyAyGo/KzVW+KFhhw9MqEEJttcq+32jTWSGyxTdf9e/YCohxRE+9xpWFj9FdiJNw==",
+      "version": "3.22.0",
+      "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.22.0.tgz",
+      "integrity": "sha512-6JujwSs0ac82jkGjMHiCnTifvf1crOiY/+tfs/Pqih6iow7VrpNKRRNdWm6RtaXpvvv/JGNYhlUtLhGFqHF+Yw==",
       "dev": true,
       "requires": {
         "@kwsites/file-exists": "^1.1.1",
@@ -13907,6 +13921,12 @@
       "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
       "dev": true
     },
+    "typescript": {
+      "version": "5.3.3",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
+      "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
+      "dev": true
+    },
     "unbox-primitive": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
@@ -14353,9 +14373,9 @@
       }
     },
     "zarro": {
-      "version": "1.169.0",
-      "resolved": "https://registry.npmjs.org/zarro/-/zarro-1.169.0.tgz",
-      "integrity": "sha512-2k89dREJ3XKVefgB7PoXZAjnrRZ8f9RwLLuo3SnXabb9PZb3P1fVCC5S3wjGNsD/LoG7CtI27AUOp3uWg+buhQ==",
+      "version": "1.170.0",
+      "resolved": "https://registry.npmjs.org/zarro/-/zarro-1.170.0.tgz",
+      "integrity": "sha512-cekgxDOEYWACTebzRtjTTv0R0aC7FJokoljciPqnKU+BOh9dvWar3K2ziR3xRXv8BZkhl63Rk9jfuR4elIasdg==",
       "dev": true,
       "requires": {
         "@octokit/rest": "^20.0.1",
diff --git a/package.json b/package.json
index 5f06077..640be92 100644
--- a/package.json
+++ b/package.json
@@ -16,8 +16,10 @@
     "prepare-build-artifacts": "zarro @",
     "dump-env": "node -e \"console.log(process.env);\"",
     "release": "run-s update-version-info build-release prepare-build-artifacts build-site",
+    "release-beta": "cross-env DOTNET_CORE=1 VERSION_INCREMENT_STRATEGY=prerelease BUILD_CONFIGURATION=Release zarro release-nuget",
     "zarro": "zarro",
-    "update-version-info": "zarro @"
+    "update-version-info": "zarro @",
+    "this-is-an-example": "zarro @"
   },
   "repository": {
     "type": "git",
@@ -36,9 +38,10 @@
     "gulp-zip": "^5.0.2",
     "npm-run-all": "^4.1.5",
     "rimraf": "^3.0.2",
-    "simple-git": "^3.16.0",
+    "simple-git": "^3.22.0",
+    "typescript": "^5.3.3",
     "which": "^2.0.2",
-    "yafs": "^1.5.0",
-    "zarro": "^1.169.0"
+    "yafs": "^1.36.0",
+    "zarro": "^1.170.0"
   }
 }
diff --git a/pom.xml b/pom.xml
index f1787c1..96d4cdc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,4 +1,5 @@
 <!--
+}
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
@@ -20,7 +21,7 @@
   <groupId>log4net</groupId>
   <artifactId>apache-log4net</artifactId>
   <packaging>pom</packaging>
-  <version>2.0.15</version>
+  <version>2.0.16</version>
   <name>Apache log4net</name>
   <description>Logging framework for Microsoft .NET Framework.</description>
   <url>http://logging.apache.org/log4net/</url>
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.sln b/src/log4net.sln
index ad2070a..7e7716a 100644
--- a/src/log4net.sln
+++ b/src/log4net.sln
@@ -36,6 +36,15 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "log4net-681", "integration-testing\log4net-681\log4net-681.csproj", "{A4F9E417-2250-4075-9118-B4FF1C58B6C5}"
 EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".config", ".config", "{78CDAF4E-3F9F-4D00-A494-FFAE30E7EF0E}"
+	ProjectSection(SolutionItems) = preProject
+		..\.asf.yaml = ..\.asf.yaml
+		..\.gitignore = ..\.gitignore
+		..\.zarro-defaults = ..\.zarro-defaults
+		..\package.json = ..\package.json
+		..\pom.xml = ..\pom.xml
+	EndProjectSection
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
diff --git a/src/log4net/AssemblyInfo.cs b/src/log4net/AssemblyInfo.cs
index a767ff7..2cae3b9 100644
--- a/src/log4net/AssemblyInfo.cs
+++ b/src/log4net/AssemblyInfo.cs
@@ -55,77 +55,77 @@
 //
 
 #if (CLI_1_0)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-.CLI 1.0")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-.CLI 1.0")]
 [assembly: AssemblyTitle("Apache log4net for CLI 1.0 Compatible Frameworks")]
 #elif (NET_1_0)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-.NET 1.0")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-.NET 1.0")]
 [assembly: AssemblyTitle("Apache log4net for .NET Framework 1.0")]
 #elif (NET_1_1)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-.NET 1.1")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-.NET 1.1")]
 [assembly: AssemblyTitle("Apache log4net for .NET Framework 1.1")]
 #elif (NET_4_5)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-.NET 4.5")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-.NET 4.5")]
 [assembly: AssemblyTitle("Apache log4net for .NET Framework 4.5")]
 #elif (NET_4_0)
 #if CLIENT_PROFILE
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-.NET 4.0 CP")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-.NET 4.0 CP")]
 [assembly: AssemblyTitle("Apache log4net for .NET Framework 4.0 Client Profile")]
 #else
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-.NET 4.0")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-.NET 4.0")]
 [assembly: AssemblyTitle("Apache log4net for .NET Framework 4.0")]
 #endif // Client Profile
 #elif (NET_3_5)
 #if CLIENT_PROFILE
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-.NET 3.5 CP")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-.NET 3.5 CP")]
 [assembly: AssemblyTitle("Apache log4net for .NET Framework 3.5 Client Profile")]
 #else
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-.NET 3.5")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-.NET 3.5")]
 [assembly: AssemblyTitle("Apache log4net for .NET Framework 3.5")]
 #endif // Client Profile
 #elif (NET_2_0)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-.NET 2.0")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-.NET 2.0")]
 [assembly: AssemblyTitle("Apache log4net for .NET Framework 2.0")]
 #elif (NETCF_1_0)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-.NETCF 1.0")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-.NETCF 1.0")]
 [assembly: AssemblyTitle("Apache log4net for .NET Compact Framework 1.0")]
 #elif (NETCF_2_0)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-.NETCF 2.0")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-.NETCF 2.0")]
 [assembly: AssemblyTitle("Apache log4net for .NET Compact Framework 2.0")]
 #elif (MONO_1_0)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-Mono 1.0")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-Mono 1.0")]
 [assembly: AssemblyTitle("Apache log4net for Mono 1.0")]
 #elif (MONO_2_0)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-Mono 2.0")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-Mono 2.0")]
 [assembly: AssemblyTitle("Apache log4net for Mono 2.0")]
 #elif (MONO_3_5)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-Mono 3.5")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-Mono 3.5")]
 [assembly: AssemblyTitle("Apache log4net for Mono 3.5")]
 #elif (MONO_4_0)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-Mono 4.0")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-Mono 4.0")]
 [assembly: AssemblyTitle("Apache log4net for Mono 4.0")]
 #elif (SSCLI_1_0)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-SSCLI 1.0")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-SSCLI 1.0")]
 [assembly: AssemblyTitle("Apache log4net for Shared Source CLI 1.0")]
 #elif (NET)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-.NET")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-.NET")]
 [assembly: AssemblyTitle("Apache log4net for .NET Framework")]
 #elif (NETSTANDARD1_3)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-.NET Standard 1.3")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-.NET Standard 1.3")]
 [assembly: AssemblyTitle("Apache log4net for .NET Standard 1.3")]
 #elif (NETSTANDARD2_0)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-.NET Standard 2.0")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-.NET Standard 2.0")]
 [assembly: AssemblyTitle("Apache log4net for .NET Standard 2.0")]
 #elif (NETCF)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-.NETCF")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-.NETCF")]
 [assembly: AssemblyTitle("Apache log4net for .NET Compact Framework")]
 #elif (MONO)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-Mono")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-Mono")]
 [assembly: AssemblyTitle("Apache log4net for Mono")]
 #elif (SSCLI)
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0-SSCLI")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0-SSCLI")]
 [assembly: AssemblyTitle("Apache log4net for Shared Source CLI")]
 #else
-[assembly: AssemblyInformationalVersionAttribute("2.0.15.0")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.16.0")]
 [assembly: AssemblyTitle("Apache log4net")]
 #endif
 
diff --git a/src/log4net/AssemblyVersionInfo.cs b/src/log4net/AssemblyVersionInfo.cs
index 1c27d57..14524de 100644
--- a/src/log4net/AssemblyVersionInfo.cs
+++ b/src/log4net/AssemblyVersionInfo.cs
@@ -28,11 +28,11 @@
 // You can specify all the values or you can default the Revision and Build Numbers 
 // by using the '*' as shown below:
 
-[assembly: System.Reflection.AssemblyVersion("2.0.15.0")]
+[assembly: System.Reflection.AssemblyVersion("2.0.16.0")]
 
 #if !NETCF
 #if !SSCLI
-[assembly: System.Reflection.AssemblyFileVersion("2.0.15.0")]
+[assembly: System.Reflection.AssemblyFileVersion("2.0.16.0")]
 #endif
 #endif
 
diff --git a/src/log4net/log4net.csproj b/src/log4net/log4net.csproj
index 2c9e4a4..61dfe5a 100644
--- a/src/log4net/log4net.csproj
+++ b/src/log4net/log4net.csproj
@@ -1,7 +1,8 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
     <PackageId>log4net</PackageId>
-    <Version>2.0.15</Version>
+    <Version>2.0.16</Version>
+    <PackageVersion>2.0.16</PackageVersion>
     <Title>Apache log4net</Title>
     <Product>Apache log4net</Product>
     <Description>
@@ -24,7 +25,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 +42,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 +71,7 @@
     <FileAlignment>4096</FileAlignment>
     <RegisterForComInterop>false</RegisterForComInterop>
     <RemoveIntegerChecks>false</RemoveIntegerChecks>
+    <Deterministic>true</Deterministic>
   </PropertyGroup>
   <PropertyGroup Condition="'$(TargetFramework)'=='net40-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..928b200 100644
--- a/src/site/xdoc/release/release-notes.xml
+++ b/src/site/xdoc/release/release-notes.xml
@@ -17,1940 +17,2222 @@
 -->
 <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>
+          </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>