Merge branch 'develop' into feature/RollingFileAppender-NG
diff --git a/.editorconfig b/.editorconfig
index 299b86f..ab255d9 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,5 +1,20 @@
 # see http://EditorConfig.org
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 root = true
 
 [*]
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 73a8c09..e4cea57 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,3 +1,19 @@
+<!---
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
 # Contributing
 
 You have found a bug or you have an idea for a cool new feature? Contributing code is a great way to give something back to the open source community. Before you dig right into the code there are a few guidelines that we need contributors to follow so that we can have a chance of keeping on top of things.
@@ -154,4 +170,3 @@
 * [Contributor License Agreement](https://www.apache.org/licenses/#clas)
 * [General GitHub documentation](https://help.github.com/)
 * [GitHub pull request documentation](https://help.github.com/send-pull-requests/)
-
diff --git a/KEYS.md b/KEYS.md
index f2ffbea..2feec48 100644
--- a/KEYS.md
+++ b/KEYS.md
@@ -1,3 +1,19 @@
+<!---
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
 # Introduction
 
 This file contains the PGP keys of various Apache developers. These keys are primarily used for code signing. These keys can be verified using any OpenPGP compatible system, for example, http://www.gnupg.org.
@@ -125,7 +141,7 @@
 sig 3        E2D774DF 2005-07-22  Sylvain Wallez <sylvain@apache.org>
 sig 3        E04F9A89 2005-07-22  Roy T. Fielding <fielding@gbiv.com>
 sig 3        015AFC8A 2005-07-22  Bertrand Delacretaz <bdelacretaz@apache.org>
-sig 3        87315C31 2005-07-23  Raphaël Luta <raphael.luta@aptiwan.com>
+sig 3        87315C31 2005-07-23  Raphaël Luta <raphael.luta@aptiwan.com>
 sig 3        E41EDC7E 2005-07-24  Carsten Ziegeler <cziegeler@apache.org>
 sig 3        F39B3750 2005-07-24  Colm MacCarthaigh <colm@stdlib.net>
 sig          1CD4861F 2005-07-25  Eran Chinthaka <chinthaka@apache.org>
@@ -173,7 +189,7 @@
 sig 3        CC78C893 2005-07-22  Rich Bowen <rbowen@rcbowen.com>
 sig 3        E2D774DF 2005-07-22  Sylvain Wallez <sylvain@apache.org>
 sig 3        E04F9A89 2005-07-22  Roy T. Fielding <fielding@gbiv.com>
-sig 3        87315C31 2005-07-23  Raphaël Luta <raphael.luta@aptiwan.com>
+sig 3        87315C31 2005-07-23  Raphaël Luta <raphael.luta@aptiwan.com>
 sig 3        E41EDC7E 2005-07-24  Carsten Ziegeler <cziegeler@apache.org>
 sig 3        F39B3750 2005-07-24  Colm MacCarthaigh <colm@stdlib.net>
 sig          1CD4861F 2005-07-25  Eran Chinthaka <chinthaka@apache.org>
@@ -213,7 +229,7 @@
 sig 3        CC78C893 2005-07-22  Rich Bowen <rbowen@rcbowen.com>
 sig 3        E2D774DF 2005-07-22  Sylvain Wallez <sylvain@apache.org>
 sig 3        E04F9A89 2005-07-22  Roy T. Fielding <fielding@gbiv.com>
-sig 3        87315C31 2005-07-23  Raphaël Luta <raphael.luta@aptiwan.com>
+sig 3        87315C31 2005-07-23  Raphaël Luta <raphael.luta@aptiwan.com>
 sig 3        E41EDC7E 2005-07-24  Carsten Ziegeler <cziegeler@apache.org>
 sig 3        F39B3750 2005-07-24  Colm MacCarthaigh <colm@stdlib.net>
 sig          1CD4861F 2005-07-25  Eran Chinthaka <chinthaka@apache.org>
@@ -747,4 +763,3 @@
 =+mAI
 -----END PGP PUBLIC KEY BLOCK-----
 ```
-
diff --git a/README.md b/README.md
index a83d4fc..677e61d 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,19 @@
+<!---
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
 # Introduction
 
 Apache log4net is a sub project of the Apache Logging Services project. Apache log4net graduated from the Apache Incubator in February 2007. Please visit the official [website](http://logging.apache.org/log4net) for additional information.
@@ -9,4 +25,3 @@
 # Contributing
 
 Please read the contributing guidelines before starting to work on a patch, writing issues or file a pull request. The contributing guidelines are available [here](CONTRIBUTING.md).
-
diff --git a/ReleaseInstructions.md b/ReleaseInstructions.md
index 487babe..f6a0de4 100644
--- a/ReleaseInstructions.md
+++ b/ReleaseInstructions.md
@@ -1,3 +1,19 @@
+<!---
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
 # Important remark
 
 Note that we invest a great deal of effort into automating the release process by building a continuous delivery pipeline that runs on Jenkins. Further we have moved our codebase from SVN over to GIT and therefore large parts of this howto are no longer up do date!
@@ -99,17 +115,17 @@
 
 RAT Report:
   http://stefan.samaflost.de/staging/log4net-2.0.6/rat-report.html
- 
+
 Nuget Package:
   https://www.myget.org/feed/log4net-test/package/nuget/log4net
- 
+
 Votes, please. This vote will close in 72 hours, 1000 GMT 24-Dec 2016
- 
+
  [ ] +1 Release these artifacts
  [ ] +0 OK, but...
  [ ] -0 OK, but really should fix...
  [ ] -1 I oppose this release because...
- 
+
 Thanks!
 ```
 * If the vote doesn't pass, adapt trunk and start over with tagging the next release candidate
@@ -146,4 +162,3 @@
 # Post-Release Cleanup
 
 * Delete all artifacts of old releases from <https://dist.apache.org/repos/dist/release/logging/log4net>
-
diff --git a/buildtools/docker/build-builder-mono-2.0.sh b/buildtools/docker/build-builder-mono-2.0.sh
index 89433a5..e052c65 100755
--- a/buildtools/docker/build-builder-mono-2.0.sh
+++ b/buildtools/docker/build-builder-mono-2.0.sh
@@ -1,5 +1,20 @@
 #!/bin/bash
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 MY_PATH="`dirname \"$0\"`"              # relative
 MY_PATH="`( cd \"$MY_PATH\" && pwd )`"  # absolutized and normalized
 if [ -z "$MY_PATH" ] ; then
@@ -9,4 +24,3 @@
 fi
 
 $MY_PATH/build.sh "builder-mono-2.0"
-
diff --git a/buildtools/docker/build-builder-mono-3.5.sh b/buildtools/docker/build-builder-mono-3.5.sh
index 6d5b311..19d67d7 100755
--- a/buildtools/docker/build-builder-mono-3.5.sh
+++ b/buildtools/docker/build-builder-mono-3.5.sh
@@ -1,5 +1,20 @@
 #!/bin/bash
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 MY_PATH="`dirname \"$0\"`"              # relative
 MY_PATH="`( cd \"$MY_PATH\" && pwd )`"  # absolutized and normalized
 if [ -z "$MY_PATH" ] ; then
@@ -9,4 +24,3 @@
 fi
 
 $MY_PATH/build.sh "builder-mono-3.5"
-
diff --git a/buildtools/docker/build-builder-mono-4.0.sh b/buildtools/docker/build-builder-mono-4.0.sh
index b4fb616..14fd841 100755
--- a/buildtools/docker/build-builder-mono-4.0.sh
+++ b/buildtools/docker/build-builder-mono-4.0.sh
@@ -1,5 +1,20 @@
 #!/bin/bash
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 MY_PATH="`dirname \"$0\"`"              # relative
 MY_PATH="`( cd \"$MY_PATH\" && pwd )`"  # absolutized and normalized
 if [ -z "$MY_PATH" ] ; then
@@ -9,4 +24,3 @@
 fi
 
 $MY_PATH/build.sh "builder-mono-4.0"
-
diff --git a/buildtools/docker/build-builder-netstandard-1.3.sh b/buildtools/docker/build-builder-netstandard-1.3.sh
index f1fc772..1766680 100755
--- a/buildtools/docker/build-builder-netstandard-1.3.sh
+++ b/buildtools/docker/build-builder-netstandard-1.3.sh
@@ -1,5 +1,20 @@
 #!/bin/bash
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 MY_PATH="`dirname \"$0\"`"              # relative
 MY_PATH="`( cd \"$MY_PATH\" && pwd )`"  # absolutized and normalized
 if [ -z "$MY_PATH" ] ; then
@@ -20,4 +35,3 @@
 fi
 
 docker build --build-arg JENKINS_UID=$JENKINS_UID --build-arg JENKINS_GID=$JENKINS_GID --tag $NAME:latest $MY_PATH/$NAME
-
diff --git a/buildtools/docker/build.sh b/buildtools/docker/build.sh
index 854746a..92f89b6 100755
--- a/buildtools/docker/build.sh
+++ b/buildtools/docker/build.sh
@@ -1,5 +1,20 @@
 #!/bin/bash
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 MY_PATH="`dirname \"$0\"`"              # relative
 MY_PATH="`( cd \"$MY_PATH\" && pwd )`"  # absolutized and normalized
 if [ -z "$MY_PATH" ] ; then
@@ -9,4 +24,3 @@
 fi
 
 docker build --tag $1:latest $MY_PATH/$1
-
diff --git a/buildtools/docker/builder-mono-2.0/Dockerfile b/buildtools/docker/builder-mono-2.0/Dockerfile
index 39014e2..6f64e55 100644
--- a/buildtools/docker/builder-mono-2.0/Dockerfile
+++ b/buildtools/docker/builder-mono-2.0/Dockerfile
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 # Name of container
 FROM ubuntu:16.04
 
@@ -10,4 +25,3 @@
 
 # install dependencies
 RUN apt-get update && apt-get install -y nant git mono-complete mono-reference-assemblies-2.0
-
diff --git a/buildtools/docker/builder-mono-3.5/Dockerfile b/buildtools/docker/builder-mono-3.5/Dockerfile
index adecc33..d93948a 100644
--- a/buildtools/docker/builder-mono-3.5/Dockerfile
+++ b/buildtools/docker/builder-mono-3.5/Dockerfile
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 # Name of container: docker-ubuntu-latest-nant
 FROM ubuntu:16.04
 
@@ -10,4 +25,3 @@
 
 # install nant
 RUN apt-get update && apt-get install -y nant git mono-complete mono-reference-assemblies-2.0 mono-reference-assemblies-3.5
-
diff --git a/buildtools/docker/builder-mono-4.0/Dockerfile b/buildtools/docker/builder-mono-4.0/Dockerfile
index 8de952c..2c6d0bf 100644
--- a/buildtools/docker/builder-mono-4.0/Dockerfile
+++ b/buildtools/docker/builder-mono-4.0/Dockerfile
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 # Name of container: docker-ubuntu-latest-nant
 FROM ubuntu:16.04
 
@@ -10,4 +25,3 @@
 
 # install nant
 RUN apt-get update && apt-get install -y nant git mono-complete mono-reference-assemblies-4.0
-
diff --git a/buildtools/docker/builder-netstandard-1.3/Dockerfile b/buildtools/docker/builder-netstandard-1.3/Dockerfile
index 6e43e81..7245ca1 100644
--- a/buildtools/docker/builder-netstandard-1.3/Dockerfile
+++ b/buildtools/docker/builder-netstandard-1.3/Dockerfile
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 FROM microsoft/dotnet:2-sdk-jessie
 
 # define arguments passed in as environment variables
diff --git a/buildtools/docker/cleanup-containers.sh b/buildtools/docker/cleanup-containers.sh
index 59ed689..0eb24bd 100755
--- a/buildtools/docker/cleanup-containers.sh
+++ b/buildtools/docker/cleanup-containers.sh
@@ -1,5 +1,19 @@
 #!/bin/bash
- 
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 docker stop $(docker ps -a -q)
 docker rm $(docker ps -a -q)
-
diff --git a/buildtools/docker/cleanup-images.sh b/buildtools/docker/cleanup-images.sh
index c0e0796..5400698 100755
--- a/buildtools/docker/cleanup-images.sh
+++ b/buildtools/docker/cleanup-images.sh
@@ -1,6 +1,20 @@
 #!/bin/bash
- 
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 docker stop $(docker ps -a -q)
 docker rm $(docker ps -a -q)
 docker rmi $(docker images -a -q)
-
diff --git a/buildtools/docker/cleanup.py b/buildtools/docker/cleanup.py
index c5534ef..f0832bb 100755
--- a/buildtools/docker/cleanup.py
+++ b/buildtools/docker/cleanup.py
@@ -1,5 +1,20 @@
 #!/bin/bash
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 MY_PATH="`dirname \"$0\"`"              # relative
 MY_PATH="`( cd \"$MY_PATH\" && pwd )`"  # absolutized and normalized
 if [ -z "$MY_PATH" ] ; then
@@ -9,5 +24,4 @@
 fi
 
 $MY_PATH/cleanup-containers.sh
-$MY_PATH/cleanup-images.sh 
-
+$MY_PATH/cleanup-images.sh
diff --git a/buildtools/docker/run-builder-mono-2.0.sh b/buildtools/docker/run-builder-mono-2.0.sh
index 348d5ea..53f5c22 100755
--- a/buildtools/docker/run-builder-mono-2.0.sh
+++ b/buildtools/docker/run-builder-mono-2.0.sh
@@ -1,5 +1,20 @@
 #!/bin/bash
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 MY_PATH="`dirname \"$0\"`"              # relative
 MY_PATH="`( cd \"$MY_PATH\" && pwd )`"  # absolutized and normalized
 if [ -z "$MY_PATH" ] ; then
@@ -9,4 +24,3 @@
 fi
 
 $MY_PATH/run.sh "builder-mono-2.0"
-
diff --git a/buildtools/docker/run-builder-mono-3.5.sh b/buildtools/docker/run-builder-mono-3.5.sh
index 4ecc006..1414b2a 100755
--- a/buildtools/docker/run-builder-mono-3.5.sh
+++ b/buildtools/docker/run-builder-mono-3.5.sh
@@ -1,5 +1,20 @@
 #!/bin/bash
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 MY_PATH="`dirname \"$0\"`"              # relative
 MY_PATH="`( cd \"$MY_PATH\" && pwd )`"  # absolutized and normalized
 if [ -z "$MY_PATH" ] ; then
@@ -9,4 +24,3 @@
 fi
 
 $MY_PATH/run.sh "builder-mono-3.5"
-
diff --git a/buildtools/docker/run-builder-mono-4.0.sh b/buildtools/docker/run-builder-mono-4.0.sh
index a9153b7..55da687 100755
--- a/buildtools/docker/run-builder-mono-4.0.sh
+++ b/buildtools/docker/run-builder-mono-4.0.sh
@@ -1,5 +1,20 @@
 #!/bin/bash
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 MY_PATH="`dirname \"$0\"`"              # relative
 MY_PATH="`( cd \"$MY_PATH\" && pwd )`"  # absolutized and normalized
 if [ -z "$MY_PATH" ] ; then
@@ -9,4 +24,3 @@
 fi
 
 $MY_PATH/run.sh "builder-mono-4.0"
-
diff --git a/buildtools/docker/run-builder-netstandard-1.3.sh b/buildtools/docker/run-builder-netstandard-1.3.sh
index f97f54b..ca65c1c 100755
--- a/buildtools/docker/run-builder-netstandard-1.3.sh
+++ b/buildtools/docker/run-builder-netstandard-1.3.sh
@@ -1,5 +1,20 @@
 #!/bin/bash
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 MY_PATH="`dirname \"$0\"`"              # relative
 MY_PATH="`( cd \"$MY_PATH\" && pwd )`"  # absolutized and normalized
 if [ -z "$MY_PATH" ] ; then
@@ -15,4 +30,3 @@
 fi
 
 $MY_PATH/run.sh "builder-netstandard-1.3" $WORKING_DIR
-
diff --git a/buildtools/docker/run.sh b/buildtools/docker/run.sh
index 873c09d..da44219 100755
--- a/buildtools/docker/run.sh
+++ b/buildtools/docker/run.sh
@@ -1,5 +1,20 @@
 #!/bin/bash
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 MY_PATH="`dirname \"$0\"`"              # relative
 MY_PATH="`( cd \"$MY_PATH\" && pwd )`"  # absolutized and normalized
 if [ -z "$MY_PATH" ] ; then
@@ -14,4 +29,3 @@
 fi
 
 docker run -it --rm -e UID=$(id -u) -u $(id -u):$(id -g) -v $WORKING_DIR:/home/user -w /home/user -e USERNAME=$USERNAME -e USER=$USER -e USERID=$UID $1:latest /bin/bash
-
diff --git a/pom.xml b/pom.xml
index 36c4c2b..8fd42b0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -157,8 +157,6 @@
             <!-- really README files -->
             <exclude>*.snk*</exclude>
             <exclude>tests/lib/prerequisites.txt</exclude>
-            <exclude>CONTRIBUTING.md</exclude>
-            <exclude>ReleaseInstructions.txt</exclude>
 
 	    <!-- can't have comments in JSON -->
 	    <exclude>**/*.json</exclude>
@@ -172,7 +170,7 @@
         <reportSets>
           <reportSet>
             <reports>
-              <report>cim</report>	
+              <report>cim</report>
               <report>scm</report>
               <report>license</report>
               <report>project-team</report>
@@ -260,5 +258,5 @@
       <id>logging.site</id>
       <url>file:///${user.dir}/target/site-deploy</url>
     </site>
-  </distributionManagement> 
+  </distributionManagement>
 </project>
diff --git a/src/Core/Level.cs b/src/Core/Level.cs
index 4bcb263..34901ea 100644
--- a/src/Core/Level.cs
+++ b/src/Core/Level.cs
@@ -503,8 +503,7 @@
 		public readonly static Level Off = new Level(int.MaxValue, "OFF");
 
 		/// <summary>
-		/// The <see cref="Emergency" /> level designates very severe error events.
-		/// System unusable, emergencies.
+		/// The <see cref="Log4Net_Debug" /> is only used to debug internals of log4net.
 		/// </summary>
 		public readonly static Level Log4Net_Debug = new Level(120000, "log4net:DEBUG");
 
diff --git a/src/site/xdoc/release/framework-support.xml b/src/site/xdoc/release/framework-support.xml
index f8e25b8..15a42ae 100644
--- a/src/site/xdoc/release/framework-support.xml
+++ b/src/site/xdoc/release/framework-support.xml
@@ -1,10 +1,10 @@
 <?xml version="1.0" ?>
 <!--
-Licensed to the Apache Software Foundation (ASF) under one or more 
+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. 
+this work for additional information regarding copyright ownership.
 The ASF licenses this file to you under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with 
+(the "License"); you may 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
@@ -26,7 +26,7 @@
 
     <body>
         <section id="main" name="Apache log4net&#x2122; Supported Frameworks">
-        
+
             <section id="summary" name="Summary of .NET frameworks supported by log4net">
                 <p>
                     log4net is built on a number of different frameworks. Each new version of the frameworks add
@@ -48,7 +48,7 @@
                 <p>
                     log4net is regularly built by its developers on the following frameworks:
                 </p>
-                
+
                 <div class="table">
                     <table>
                         <colgroup>
@@ -148,10 +148,10 @@
                     </table>
                 </div>
                 <p>
-                    For most of these frameworks a log4net assembly targeting the framework is supplied.  Although it's 
-                    perfectly possible to use the .NET Framework 3.5 version of log4net on the .NET Framework 4.0, having 
-                    an assembly that really targets a specific framework allows us to use features in that framework that 
-                    are not available in other frameworks or remove features from log4net that are not supported in a 
+                    For most of these frameworks a log4net assembly targeting the framework is supplied.  Although it's
+                    perfectly possible to use the .NET Framework 3.5 version of log4net on the .NET Framework 4.0, having
+                    an assembly that really targets a specific framework allows us to use features in that framework that
+                    are not available in other frameworks or remove features from log4net that are not supported in a
                     specific framework.
                 </p>
                 <p>
@@ -162,10 +162,10 @@
                   release.
                 </p>
             </section>
-            
+
             <section id="appenders" name="Appenders">
                 <p>
-                    The appenders available to each framework depend on the functionality of the 
+                    The appenders available to each framework depend on the functionality of the
                     framework and the platform it runs on:
                 </p>
                 <div class="table">
@@ -599,7 +599,7 @@
                     </table>
                 </div>
             </section>
-            
+
             <section id="notes" name="Framework Specific Notes">
                 <section id="netstandard-1.3" name=".NET Core 1.0 / .NET Standard 1.3">
                     <p>
@@ -641,37 +641,37 @@
                         none
                     </p>
                 </section>
-                
+
                 <section id="net1.1" name="Microsoft .NET Framework 1.1">
                     <p>
                         none
                     </p>
                 </section>
-                
+
                 <section id="net2.0" name="Microsoft .NET Framework 2.0">
                     <p>
                         none
                     </p>
                 </section>
-                
+
                 <section id="net3.5" name="Microsoft .NET Framework 3.5">
                     <p>
                         none
                     </p>
                 </section>
-                
+
                 <section id="net4.0" name="Microsoft .NET Framework 4.0">
                     <p>
                         none
                     </p>
                 </section>
-                
+
                 <section id="net4.5" name="Microsoft .NET Framework 4.5">
                     <p>
                         none
                     </p>
                 </section>
-                
+
                 <section id="netcp3.5" name="Microsoft .NET Framework 3.5 Client Profile">
                     <p>
                         As of log4net 1.2.11 this version is identical
@@ -679,7 +679,7 @@
                         ASP.NET specific appenders and patterns.
                     </p>
                 </section>
-                
+
                 <section id="netcp4.0" name="Microsoft .NET Framework 4.0 Client Profile">
                     <p>
                         As of log4net 1.2.11 this version is identical
@@ -687,16 +687,16 @@
                         ASP.NET specific appenders and patterns.
                     </p>
                 </section>
-                
+
                 <section id="netcf1.0" name="Microsoft .NET Compact Framework 1.0">
                             <h4>Assembly attributes</h4>
                             <p>
-                                The .NET Compact Framework 1.0 does not support retrieving assembly level 
-                                attributes, therefore all log4net configuration attributes were removed from 
+                                The .NET Compact Framework 1.0 does not support retrieving assembly level
+                                attributes, therefore all log4net configuration attributes were removed from
                                 the .NET Compact Framework 1.0 version of log4net.
                             </p>
                             <p>
-                                For Smart-device applications, the log4net system can be configured by passing 
+                                For Smart-device applications, the log4net system can be configured by passing
                                 the location of the log4net configuration file to the
                                 <span class="code">log4net.Config.XmlConfigurator.Configure(FileInfo)</span>
                                 method in the entry point of the application.
@@ -713,7 +713,7 @@
         /// &lt;summary&gt;
         /// Application entry point.
         /// &lt;/summary&gt;
-        public static void Main() 
+        public static void Main()
         {
             // Uncomment the next line to enable log4net internal debugging
             // log4net.Util.LogLog.InternalDebugging = true;
@@ -723,21 +723,21 @@
             log4net.Config.XmlConfigurator.Configure(new FileInfo(@"\config.log4net"));
 
             ...
-            
+
             // This will shutdown the log4net system
             log4net.LogManager.Shutdown();
         }
     }
-}                        
+}
                             </pre>
                             <h4>Notification events</h4>
                             <p>
-                                The .NET Compact Framework 1.0 does not support notification events during the 
-                                application shutdown, therefore log4net cannot automatically hook the 
+                                The .NET Compact Framework 1.0 does not support notification events during the
+                                application shutdown, therefore log4net cannot automatically hook the
                                 application shutdown notification.
                             </p>
                             <p>
-                                Applications will need to programmatically shutdown the log4net system during 
+                                Applications will need to programmatically shutdown the log4net system during
                                 the application's shutdown using the
                                 <span class="code">log4net.LogManager.Shutdown()</span>
                                 method in order to prevent losing logging events.
@@ -749,9 +749,9 @@
                                 <span class="code">System.IO.FileSystemWatcher</span>
                                 class. As a result, the
                                 <span class="code">XmlConfiguratorAttribute.Watch</span>
-                                property and the 
+                                property and the
                                 <span class="code">XmlConfigurator.ConfigureAndWatch</span>
-                                methods are not available. Watching changes to the log4net configuration 
+                                methods are not available. Watching changes to the log4net configuration
                                 file is not supported on the .NET Compact Framework 1.0.
                             </p>
                             <h4>UserName</h4>
@@ -759,7 +759,7 @@
                                 The .NET Compact Framework 1.0 does not support the
                                 <span class="code">System.Security.Principal.WindowsIdentity</span> class.
                                 This is used to capture the current thread's user identity. Therefore
-                                the <span class="code">LoggingEvent.UserName</span> property will return the value 
+                                the <span class="code">LoggingEvent.UserName</span> property will return the value
                                 <span class="code">"NOT AVAILABLE"</span>.
                             </p>
                             <h4>Identity</h4>
@@ -767,25 +767,25 @@
                                 The .NET Compact Framework 1.0 does not support the
                                 <span class="code">System.Security.Principal.IPrincipal</span> interface.
                                 This is used to capture the current thread's user identity. Therefore
-                                the <span class="code">LoggingEvent.Identity</span> property will return the value 
+                                the <span class="code">LoggingEvent.Identity</span> property will return the value
                                 <span class="code">"NOT AVAILABLE"</span>.
                             </p>
                             <h4>Environment variables</h4>
                             <p>
-                                The .NET Compact Framework 1.0 does not support retrieving environment 
-                                variables, therefore it's not possible to substitute environment variables in 
+                                The .NET Compact Framework 1.0 does not support retrieving environment
+                                variables, therefore it's not possible to substitute environment variables in
                                 parameter values when using the .NET Compact Framework 1.0 version of log4net.
                             </p>
                             <h4>Serialization</h4>
                             <p>
-                                The .NET Compact Framework 1.0 does not support serialization, therefore none of 
+                                The .NET Compact Framework 1.0 does not support serialization, therefore none of
                                 the log4net classes in the .NET Compact Framework 1.0 version are serializable.
                             </p>
                             <h4>LoggingEvent.Domain</h4>
                             <p>
                                 The .NET Compact Framework 1.0 does not support AppDomain functionality. The
                                 friendly name for the current AppDomain is stored in the <span class="code">LoggingEvent.Domain</span>
-                                property and is accessed using the <span class="code">%a</span> pattern of the 
+                                property and is accessed using the <span class="code">%a</span> pattern of the
                                 <span class="code">PatternLayout</span>. On the .NET Compact Framework 1.0 this
                                 value is generated by taking the file name for the application's primary module.
                             </p>
@@ -797,11 +797,11 @@
                 </section>
                 <section id="mono" name="Mono">
                     <p>
-                        There are 2 separate builds of log4net for mono; Mono 1.0, built using the C# compiler in a mode 
-                        which is compatible with the CLI 1.0 language specification, and; Mono 2.0, built using the .NET 
+                        There are 2 separate builds of log4net for mono; Mono 1.0, built using the C# compiler in a mode
+                        which is compatible with the CLI 1.0 language specification, and; Mono 2.0, built using the .NET
                         2.0 extensions to the C# language.
                     </p>
-                
+
                     <section id="mono1.0" name="Mono 1.0">
                         <p>
                             none
@@ -822,9 +822,9 @@
                             none
                         </p>
                     </section>
-                    
+
                 </section>
-                
+
                 <section id="sscli1.0" name="Microsoft Shared Source CLI 1.0">
                             <h4>FileSystemWatcher</h4>
                             <p>
@@ -832,9 +832,9 @@
                                 <span class="code">System.IO.FileSystemWatcher</span>
                                 class. As a result, the
                                 <span class="code">XmlConfiguratorAttribute.Watch</span>
-                                property and the 
+                                property and the
                                 <span class="code">XmlConfigurator.ConfigureAndWatch</span>
-                                methods are not available. Watching changes to the log4net configuration 
+                                methods are not available. Watching changes to the log4net configuration
                                 file is not supported on SSCLI 1.0.
                             </p>
                             <h4>UserName</h4>
@@ -842,7 +842,7 @@
                                 SSCLI 1.0 does not support the
                                 <span class="code">System.Security.Principal.WindowsIdentity</span> class.
                                 This is used to capture the current thread's user identity. Therefore
-                                the <span class="code">LoggingEvent.UserName</span> property will return the value 
+                                the <span class="code">LoggingEvent.UserName</span> property will return the value
                                 <span class="code">"NOT AVAILABLE"</span>.
                             </p>
                             <h4>Identity</h4>
@@ -850,11 +850,11 @@
                                 SSCLI 1.0 does not support the
                                 <span class="code">System.Security.Principal.IPrincipal</span> interface.
                                 This is used to capture the current thread's user identity. Therefore
-                                the <span class="code">LoggingEvent.Identity</span> property will return the value 
+                                the <span class="code">LoggingEvent.Identity</span> property will return the value
                                 <span class="code">"NOT AVAILABLE"</span>.
                             </p>
                 </section>
-                
+
                 <section id="cli1.0" name="CLI 1.0 Compatible">
                     <p>
                         This build of log4net is designed to run on any ECMA CLI 1.0 compatible runtime.
@@ -874,10 +874,10 @@
                         debugging information has not been standardized.
                     </p>
                 </section>
-                
+
             </section>
-            
+
         </section>
-        
+
     </body>
 </document>
diff --git a/src/site/xdoc/release/manual/introduction.xml b/src/site/xdoc/release/manual/introduction.xml
index c03451a..674635d 100644
--- a/src/site/xdoc/release/manual/introduction.xml
+++ b/src/site/xdoc/release/manual/introduction.xml
@@ -1,10 +1,10 @@
 <?xml version="1.0" ?>
 <!--
-Licensed to the Apache Software Foundation (ASF) under one or more 
+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. 
+this work for additional information regarding copyright ownership.
 The ASF licenses this file to you under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with 
+(the "License"); you may 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
@@ -33,51 +33,51 @@
                 <p>
                     The log4net framework is based on Apache log4j&#x2122;, see <a href="http://logging.apache.org/log4j/">
                         http://logging.apache.org/log4j/</a> for more information on log4j.
-                    The log4net framework, source code, binaries, documentation, examples and related 
-                    materials are published under the terms of the 
-                    <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>, 
+                    The log4net framework, source code, binaries, documentation, examples and related
+                    materials are published under the terms of the
+                    <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>,
                     a copy of which has been included with this distribution in the LICENSE.txt file.
                 </p>
                 <p>
-                    This document is an introduction to the log4net API, its unique features and 
-                    design rationale. Log4net is an open source project based on the work of many 
-                    authors. It allows the developer to control which log statements are output 
-                    with arbitrary granularity. It is fully configurable at runtime using external 
+                    This document is an introduction to the log4net API, its unique features and
+                    design rationale. Log4net is an open source project based on the work of many
+                    authors. It allows the developer to control which log statements are output
+                    with arbitrary granularity. It is fully configurable at runtime using external
                     configuration files.
                 </p>
                 <p>
-                    Almost every large application includes its own logging or tracing API. 
-                    Inserting log statements into code is a low-tech method for debugging it. It 
-                    may also be the only way because debuggers are not always available or 
-                    applicable. This is usually the case for multithreaded applications and 
+                    Almost every large application includes its own logging or tracing API.
+                    Inserting log statements into code is a low-tech method for debugging it. It
+                    may also be the only way because debuggers are not always available or
+                    applicable. This is usually the case for multithreaded applications and
                     distributed applications at large.
                 </p>
                 <p>
-                    Once an application has been deployed it may not be possible to utilize 
-                    development and debugging tools. An administrator can use effective logging 
+                    Once an application has been deployed it may not be possible to utilize
+                    development and debugging tools. An administrator can use effective logging
                     systems to diagnose and fix many configuration issues.
                 </p>
                 <p>
-                    Experience indicates that logging is an important component of the development 
-                    cycle. It offers several advantages. It provides precise <i>context</i> about the 
-                    execution of the application. Once inserted into the code, the generation of 
-                    logging output requires no human intervention. Moreover, log output can be 
-                    saved in persistent medium to be studied at a later time. In addition to its 
-                    use in the development cycle, a sufficiently rich logging package can also be 
+                    Experience indicates that logging is an important component of the development
+                    cycle. It offers several advantages. It provides precise <i>context</i> about the
+                    execution of the application. Once inserted into the code, the generation of
+                    logging output requires no human intervention. Moreover, log output can be
+                    saved in persistent medium to be studied at a later time. In addition to its
+                    use in the development cycle, a sufficiently rich logging package can also be
                     viewed as an auditing tool.
                 </p>
                 <p>
-                    Logging does have its drawbacks. It can slow down an application. If too 
-                    verbose, it can cause scrolling blindness. To alleviate these concerns, log4net 
-                    is designed to be reliable, fast and extensible. Since logging is rarely the 
-                    main focus of an application, the log4net API strives to be simple to 
+                    Logging does have its drawbacks. It can slow down an application. If too
+                    verbose, it can cause scrolling blindness. To alleviate these concerns, log4net
+                    is designed to be reliable, fast and extensible. Since logging is rarely the
+                    main focus of an application, the log4net API strives to be simple to
                     understand and to use.
                 </p>
             </section>
-            
+
             <section id="frameworks" name="Frameworks">
                 <p>
-                    Log4net is available for several frameworks. For each supported framework an 
+                    Log4net is available for several frameworks. For each supported framework an
                     assembly targeting that framework is built:
                 </p>
                 <ul>
@@ -100,46 +100,46 @@
                     <li>CLI 1.0 Compatible</li>
                 </ul>
                 <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> 
+                    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>
             </section>
-            
+
             <section id="loggers" name="Loggers and Appenders">
                 <p>
-                    Log4net has three main components: <i>loggers</i>, <i>appenders</i> and <i>layouts</i>. 
-                    These three types of components work together to enable developers to log 
-                    messages according to message type and level, and to control at runtime how 
+                    Log4net has three main components: <i>loggers</i>, <i>appenders</i> and <i>layouts</i>.
+                    These three types of components work together to enable developers to log
+                    messages according to message type and level, and to control at runtime how
                     these messages are formatted and where they are reported. These components are
                     helped by <i>filters</i> that control the actions of the appender and
                     <i>object renderers</i> that turn objects into strings.
                 </p>
-                
+
                 <section id="hierarchy" name="Logger hierarchy">
                     <p>
                         The first and foremost advantage of any logging API over plain
                         <span class="code">System.Console.WriteLine</span>
-                        resides in its ability to disable certain log statements while allowing others 
-                        to print unhindered. This capability assumes that the logging space, that is, 
-                        the space of all possible logging statements, is categorized according to some 
+                        resides in its ability to disable certain log statements while allowing others
+                        to print unhindered. This capability assumes that the logging space, that is,
+                        the space of all possible logging statements, is categorized according to some
                         developer-chosen criteria.
                     </p>
                     <p>
-                        Loggers are named entities. Logger names are case-sensitive and they follow the 
+                        Loggers are named entities. Logger names are case-sensitive and they follow the
                         following hierarchical naming rule:
                     </p>
                     <dl class="rule">
                         <dt>Named Hierarchy</dt>
                         <dd>
                             <p>
-                                A logger is said to be an <i>ancestor</i> of another logger if its name 
-                                followed by a dot is a prefix of the <i>descendant</i> logger name. A logger is 
-                                said to be a <i>parent</i> of a <i>child</i> logger if there are no ancestors 
+                                A logger is said to be an <i>ancestor</i> of another logger if its name
+                                followed by a dot is a prefix of the <i>descendant</i> logger name. A logger is
+                                said to be a <i>parent</i> of a <i>child</i> logger if there are no ancestors
                                 between itself and the descendant logger.
                             </p>
                             <p>
-                                The hierarchy works very much in the same way as the namespace and class 
+                                The hierarchy works very much in the same way as the namespace and class
                                 hierarchy in .NET. This is very convenient as we shall soon see.
                             </p>
                         </dd>
@@ -153,11 +153,11 @@
                         is a parent of
                         <span class="code">"System.Text"</span>
                         and an ancestor of
-                        <span class="code">"System.Text.StringBuilder"</span>. This naming scheme 
+                        <span class="code">"System.Text.StringBuilder"</span>. This naming scheme
                         should be familiar to most developers.
                     </p>
                     <p>
-                        The <i>root</i> logger resides at the top of the logger hierarchy. It is exceptional 
+                        The <i>root</i> logger resides at the top of the logger hierarchy. It is exceptional
                         in three ways:
                     </p>
                     <ol>
@@ -173,7 +173,7 @@
                         <span class="code">log4net.LogManager</span>
                         class. The
                         <span class="code">GetLogger</span>
-                        methods take the name of the desired logger as a parameter. They are listed 
+                        methods take the name of the desired logger as a parameter. They are listed
                         below:
                     </p>
                     <source language="C#"><![CDATA[
@@ -190,7 +190,7 @@
                         <span class="code">GetLogger</span>
                         methods that takes a
                         <span class="code">Type</span>
-                        parameter uses the fully qualified type name as the name of the logger to 
+                        parameter uses the fully qualified type name as the name of the logger to
                         retrieve.
                     </p>
                     <p>
@@ -198,7 +198,7 @@
                         <span class="code">GetLogger</span>
                         methods return an
                         <span class="code">ILog</span>
-                        interface. That is the representation of the <i>Logger</i> passed back to the 
+                        interface. That is the representation of the <i>Logger</i> passed back to the
                         developer. The
                         <span class="code">ILog</span>
                         interface is defined below:
@@ -214,28 +214,28 @@
         bool IsWarnEnabled { get; }
         bool IsErrorEnabled { get; }
         bool IsFatalEnabled { get; }
-        
+
         /* Log a message object */
         void Debug(object message);
         void Info(object message);
         void Warn(object message);
         void Error(object message);
         void Fatal(object message);
-        
+
         /* Log a message object and exception */
         void Debug(object message, Exception t);
         void Info(object message, Exception t);
         void Warn(object message, Exception t);
         void Error(object message, Exception t);
         void Fatal(object message, Exception t);
-        
+
         /* Log a message string using the System.String.Format syntax */
         void DebugFormat(string format, params object[] args);
         void InfoFormat(string format, params object[] args);
         void WarnFormat(string format, params object[] args);
         void ErrorFormat(string format, params object[] args);
         void FatalFormat(string format, params object[] args);
-        
+
         /* Log a message string using the System.String.Format syntax */
         void DebugFormat(IFormatProvider provider, string format, params object[] args);
         void InfoFormat(IFormatProvider provider, string format, params object[] args);
@@ -273,26 +273,26 @@
                         </li>
                     </ul>
                     <p>
-                        If a given logger is not assigned a level, then it inherits one from its 
+                        If a given logger is not assigned a level, then it inherits one from its
                         closest ancestor with an assigned level. More formally:
                     </p>
                     <dl class="rule">
                         <dt>Level Inheritance</dt>
                         <dd>
                             <p>
-                                The <i>inherited level</i> for a given logger <i>X</i>, is equal to the first 
-                                non-null level in the logger hierarchy, starting at <i>X</i> and proceeding 
+                                The <i>inherited level</i> for a given logger <i>X</i>, is equal to the first
+                                non-null level in the logger hierarchy, starting at <i>X</i> and proceeding
                                 upwards in the hierarchy towards the <i>root</i> logger.
                             </p>
                         </dd>
                     </dl>
                     <p>
-                        To ensure that all loggers can eventually inherit a level, the <i>root</i> logger 
+                        To ensure that all loggers can eventually inherit a level, the <i>root</i> logger
                         always has an assigned level. The default value for the <i>root</i> logger is
                         <span class="code">DEBUG</span>.
                     </p>
                     <p>
-                        Below are four tables with various assigned level values and the resulting 
+                        Below are four tables with various assigned level values and the resulting
                         inherited levels according to the above rule.
                     </p>
                     <p> </p>
@@ -329,7 +329,7 @@
                         </table>
                     </div>
                     <p>
-                        In <i>Example 1</i> above, only the <i>root</i> logger is assigned a level. This level 
+                        In <i>Example 1</i> above, only the <i>root</i> logger is assigned a level. This level
                         value,
                         <span class="code">Proot</span>, is inherited by the other loggers
                         <span class="code">X</span>,
@@ -371,7 +371,7 @@
                         </table>
                     </div>
                     <p>
-                        In <i>Example 2</i> above, all loggers have an assigned level value. There is 
+                        In <i>Example 2</i> above, all loggers have an assigned level value. There is
                         no need for level inheritance.
                     </p>
                     <p> </p>
@@ -472,7 +472,7 @@
                         having an assigned level.
                     </p>
                     <p>
-                        Logging requests are made by invoking one of the printing methods of a logger 
+                        Logging requests are made by invoking one of the printing methods of a logger
                         instance (through the <span class="code">log4net.ILog</span>). These printing methods are
                         <span class="code">Debug</span>,
                         <span class="code">Info</span>,
@@ -481,7 +481,7 @@
                         <span class="code">Fatal</span>.
                     </p>
                     <p>
-                        By definition, the printing method determines the level of a logging request. 
+                        By definition, the printing method determines the level of a logging request.
                         For example, if
                         <span class="code">log</span>
                         is a logger instance, then the statement
@@ -489,29 +489,29 @@
                         is a logging request of level <span class="code">INFO</span>.
                     </p>
                     <p>
-                        A logging request is said to be <i>enabled</i> if its level is higher than or 
-                        equal to the level of its logger. Otherwise, the request is said to be <i>disabled</i>. 
-                        A logger without an assigned level will inherit one from the hierarchy. This 
+                        A logging request is said to be <i>enabled</i> if its level is higher than or
+                        equal to the level of its logger. Otherwise, the request is said to be <i>disabled</i>.
+                        A logger without an assigned level will inherit one from the hierarchy. This
                         rule is summarized below.
                     </p>
                     <dl class="rule">
                         <dt>Basic Selection Rule</dt>
                         <dd>
                             <p>
-                                A log request of level <i>L</i> in a logger with (either assigned or inherited, 
+                                A log request of level <i>L</i> in a logger with (either assigned or inherited,
                                 whichever is appropriate) level <i>K</i>, is enabled if <i>L &gt;= K</i>.
                             </p>
                         </dd>
                     </dl>
                     <p>
-                        This rule is at the heart of log4net. It assumes that levels are ordered. For 
+                        This rule is at the heart of log4net. It assumes that levels are ordered. For
                         the standard levels, we have
                         <span class="code">DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; FATAL</span>.
                     </p>
                     <p>
                         Calling the
                         <span class="code">log4net.LogManager.GetLogger</span>
-                        method with the same name will always return a reference to the exact same 
+                        method with the same name will always return a reference to the exact same
                         logger object.
                     </p>
                     <p>
@@ -527,41 +527,41 @@
                         refer to <i>exactly</i> the same logger object.
                     </p>
                     <p>
-                        Thus, it is possible to configure a logger and then to retrieve the same 
-                        instance somewhere else in the code without passing around references. In 
-                        fundamental contradiction to biological parenthood, where parents always 
-                        precede their children, log4net loggers can be created and configured in any 
-                        order. In particular, a "parent" logger will find and link to its descendants 
+                        Thus, it is possible to configure a logger and then to retrieve the same
+                        instance somewhere else in the code without passing around references. In
+                        fundamental contradiction to biological parenthood, where parents always
+                        precede their children, log4net loggers can be created and configured in any
+                        order. In particular, a "parent" logger will find and link to its descendants
                         even if it is instantiated after them.
                     </p>
                     <p>
-                        Configuration of the log4net environment is typically done at application 
-                        initialization. The preferred way is by reading a configuration file. This 
+                        Configuration of the log4net environment is typically done at application
+                        initialization. The preferred way is by reading a configuration file. This
                         approach will be discussed shortly.
                     </p>
                     <p>
-                        Log4net makes it easy to name loggers by <i>software component</i>. This can be 
-                        accomplished by statically instantiating a logger in each class, with the 
-                        logger name equal to the fully qualified name of the class. This is a useful 
-                        and straightforward method of defining loggers. As the log output bears the 
-                        name of the generating logger, this naming strategy makes it easy to identify 
-                        the origin of a log message. However, this is only one possible, albeit common, 
-                        strategy for naming loggers. Log4net does not restrict the possible set of 
+                        Log4net makes it easy to name loggers by <i>software component</i>. This can be
+                        accomplished by statically instantiating a logger in each class, with the
+                        logger name equal to the fully qualified name of the class. This is a useful
+                        and straightforward method of defining loggers. As the log output bears the
+                        name of the generating logger, this naming strategy makes it easy to identify
+                        the origin of a log message. However, this is only one possible, albeit common,
+                        strategy for naming loggers. Log4net does not restrict the possible set of
                         loggers. The developer is free to name the loggers as desired.
                     </p>
                     <p>
-                        Nevertheless, naming loggers after the class where they are located seems to be 
-                        the best strategy known so far. It is simple an obvious to the developers where 
-                        each log message came from. Most importantly it leverages the design of the 
-                        application to produce the design of the logger hierarchy. Hopefully some 
+                        Nevertheless, naming loggers after the class where they are located seems to be
+                        the best strategy known so far. It is simple an obvious to the developers where
+                        each log message came from. Most importantly it leverages the design of the
+                        application to produce the design of the logger hierarchy. Hopefully some
                         thought has gone into the design of the application.
                     </p>
                 </section>
-                
+
                 <section id="appenders" name="Appenders">
                     <p>
-                        The ability to selectively enable or disable logging requests based on their 
-                        logger is only part of the picture. Log4net allows logging requests to print to 
+                        The ability to selectively enable or disable logging requests based on their
+                        logger is only part of the picture. Log4net allows logging requests to print to
                         multiple destinations. In log4net speak, an output destination is called an <i>appender</i>.
                         Appenders must implement the <span class="code">log4net.Appenders.IAppender</span>
                         interface.
@@ -580,7 +580,7 @@
                             <tr>
                                 <td><a href="../sdk/html/T_log4net_Appender_AdoNetAppender.htm">log4net.Appender.AdoNetAppender</a></td>
                                 <td>
-                                    Writes logging events to a database using either prepared statements or stored 
+                                    Writes logging events to a database using either prepared statements or stored
                                     procedures.
                                 </td>
                             </tr>
@@ -593,7 +593,7 @@
                             <tr>
                                 <td><a href="../sdk/html/T_log4net_Appender_AspNetTraceAppender.htm">log4net.Appender.AspNetTraceAppender</a></td>
                                 <td>
-                                    Writes logging events to the ASP trace context. These can then be rendered at 
+                                    Writes logging events to the ASP trace context. These can then be rendered at
                                     the end of the ASP page or on the ASP trace page.
                                 </td>
                             </tr>
@@ -606,7 +606,7 @@
                             <tr>
                                 <td><a href="../sdk/html/T_log4net_Appender_ColoredConsoleAppender.htm">log4net.Appender.ColoredConsoleAppender</a></td>
                                 <td>
-                                    Writes logging events to the application's Console. The events may go to either 
+                                    Writes logging events to the application's Console. The events may go to either
                                     the standard our stream or the standard error stream. The events may have configurable
                                     text and background colors defined for each level.
                                 </td>
@@ -614,7 +614,7 @@
                             <tr>
                                 <td><a href="../sdk/html/T_log4net_Appender_ConsoleAppender.htm">log4net.Appender.ConsoleAppender</a></td>
                                 <td>
-                                    Writes logging events to the application's Console. The events may go to either 
+                                    Writes logging events to the application's Console. The events may go to either
                                     the standard our stream or the standard error stream.
                                 </td>
                             </tr>
@@ -657,15 +657,15 @@
                             <tr>
                                 <td><a href="../sdk/html/T_log4net_Appender_NetSendAppender.htm">log4net.Appender.NetSendAppender</a></td>
                                 <td>
-                                    Writes logging events to the Windows Messenger service. These messages are 
+                                    Writes logging events to the Windows Messenger service. These messages are
                                     displayed in a dialog on a users terminal.
                                 </td>
                             </tr>
                             <tr>
                                 <td><a href="../sdk/html/T_log4net_Appender_OutputDebugStringAppender.htm">log4net.Appender.OutputDebugStringAppender</a></td>
                                 <td>
-                                    Writes logging events to the debugger. If the application has no 
-                                    debugger, the system debugger displays the string. If the application has no 
+                                    Writes logging events to the debugger. If the application has no
+                                    debugger, the system debugger displays the string. If the application has no
                                     debugger and the system debugger is not active, the message is ignored.
                                 </td>
                             </tr>
@@ -684,8 +684,8 @@
                             <tr>
                                 <td><a href="../sdk/html/T_log4net_Appender_RollingFileAppender.htm">log4net.Appender.RollingFileAppender</a></td>
                                 <td>
-                                    Writes logging events to a file in the file system. The RollingFileAppender can 
-                                    be configured to log to multiple files based upon date or file size 
+                                    Writes logging events to a file in the file system. The RollingFileAppender can
+                                    be configured to log to multiple files based upon date or file size
                                     constraints.
                                 </td>
                             </tr>
@@ -718,7 +718,7 @@
                             <tr>
                                 <td><a href="../sdk/html/T_log4net_Appender_UdpAppender.htm">log4net.Appender.UdpAppender</a></td>
                                 <td>
-                                    Sends logging events as connectionless UDP datagrams to a remote host or a 
+                                    Sends logging events as connectionless UDP datagrams to a remote host or a
                                     multicast group using a UdpClient.
                                 </td>
                             </tr>
@@ -729,16 +729,16 @@
                     </p>
                     <p>
                         <strong>
-                            Each enabled logging request for a given logger will be forwarded to all 
+                            Each enabled logging request for a given logger will be forwarded to all
                             the appenders in that logger as well as the appenders higher in the hierarchy.
                         </strong>
-                        In other words, appenders are inherited additively from the logger hierarchy. 
-                        For example, if a console appender is added to the <i>root</i> logger, then all 
-                        enabled logging requests will at least print on the console. If in addition a 
-                        file appender is added to a logger, say <i>X</i>, then enabled logging requests 
-                        for <i>X</i> and <i>X</i>'s children will print on a file <i>and</i> on the 
-                        console. It is possible to override this default behavior so that appender 
-                        accumulation is no longer additive by setting the additivity flag on the logger 
+                        In other words, appenders are inherited additively from the logger hierarchy.
+                        For example, if a console appender is added to the <i>root</i> logger, then all
+                        enabled logging requests will at least print on the console. If in addition a
+                        file appender is added to a logger, say <i>X</i>, then enabled logging requests
+                        for <i>X</i> and <i>X</i>'s children will print on a file <i>and</i> on the
+                        console. It is possible to override this default behavior so that appender
+                        accumulation is no longer additive by setting the additivity flag on the logger
                         to
                         <span class="code">false</span>.
                     </p>
@@ -749,15 +749,15 @@
                         <dt>Appender Additivity</dt>
                         <dd>
                             <p>
-                                The output of a log statement of logger <i>X</i> will go to all the appenders 
-                                in <i>X</i> and its ancestors. This is the meaning of the term "appender 
+                                The output of a log statement of logger <i>X</i> will go to all the appenders
+                                in <i>X</i> and its ancestors. This is the meaning of the term "appender
                                 additivity".
                             </p>
                             <p>
-                                However, if an ancestor of logger <i>X</i>, say <i>Y</i>, has the additivity 
+                                However, if an ancestor of logger <i>X</i>, say <i>Y</i>, has the additivity
                                 flag set to
-                                <span class="code">false</span>, then <i>X</i>'s output will be directed to all 
-                                the appenders in <i>X</i> and it's ancestors up to and including <i>Y</i> but 
+                                <span class="code">false</span>, then <i>X</i>'s output will be directed to all
+                                the appenders in <i>X</i> and it's ancestors up to and including <i>Y</i> but
                                 not the appenders in any of the ancestors of <i>Y</i>.
                             </p>
                             <p>
@@ -825,28 +825,28 @@
                                 <td>none</td>
                                 <td>true</td>
                                 <td>A-sec</td>
-                                <td>Only appenders of "security" because the additivity flag in "security" is set 
+                                <td>Only appenders of "security" because the additivity flag in "security" is set
                                     to
                                     <span class="code">false</span>.</td>
                             </tr>
                         </table>
                     </div>
                 </section>
-                
+
                 <section id="filters" name="Filters">
                     <p>
-                        Appenders can filter the events that are delivered to them. The filters can be 
-                        specified in the configuration to allow fine control of the events that are 
+                        Appenders can filter the events that are delivered to them. The filters can be
+                        specified in the configuration to allow fine control of the events that are
                         logged through different appenders.
                     </p>
                     <p>
                         The simplest form of control is to specify a
                         <span class="code">Threshold</span>
-                        on the appender. This works by logging only the events that have a level that 
+                        on the appender. This works by logging only the events that have a level that
                         is greater than or equal to the threshold.
                     </p>
                     <p>
-                        More complex and custom event filtering can be done using the filter chain 
+                        More complex and custom event filtering can be done using the filter chain
                         defined on each appender. Filters must implement the
                         <span class="code">log4net.Filter.IFilter</span> interface.
                     </p>
@@ -900,20 +900,20 @@
                         </table>
                     </div>
                     <p>
-                        The filters can be configured to either accept or reject the event based upon 
+                        The filters can be configured to either accept or reject the event based upon
                         the match.
                     </p>
                 </section>
-                
+
                 <section id="layouts" name="Layouts">
                     <p>
-                        More often than not, users wish to customize not only the output destination 
-                        but also the output format. This is accomplished by associating a <i>layout</i> 
-                        with an appender. The layout is responsible for formatting the logging request 
-                        according to the user's wishes, whereas an appender takes care of sending the 
+                        More often than not, users wish to customize not only the output destination
+                        but also the output format. This is accomplished by associating a <i>layout</i>
+                        with an appender. The layout is responsible for formatting the logging request
+                        according to the user's wishes, whereas an appender takes care of sending the
                         formatted output to its destination. The
-                        <span class="code">PatternLayout</span>, part of the standard log4net 
-                        distribution, lets the user specify the output format according to conversion 
+                        <span class="code">PatternLayout</span>, part of the standard log4net
+                        distribution, lets the user specify the output format according to conversion
                         patterns similar to the C language
                         <span class="code">printf</span>
                         function.
@@ -926,10 +926,10 @@
                     <source language="text"><![CDATA[
 176 [main] INFO  Com.Foo.Bar - Located nearest gas station.]]></source>
                     <p>
-                        The first field is the number of milliseconds elapsed since the start of the 
-                        program. The second field is the thread making the log request. The third field 
-                        is the level of the log statement. The fourth field is the name of the logger 
-                        associated with the log request. The text after the '-' is the message of the 
+                        The first field is the number of milliseconds elapsed since the start of the
+                        program. The second field is the thread making the log request. The third field
+                        is the level of the log statement. The fourth field is the name of the logger
+                        associated with the log request. The text after the '-' is the message of the
                         statement.
                     </p>
                     <p>
@@ -946,14 +946,14 @@
                             <tr>
                                 <td><a href="../sdk/html/T_log4net_Layout_ExceptionLayout.htm">log4net.Layout.ExceptionLayout</a></td>
                                 <td>
-                                    Renders the exception text from the logging 
+                                    Renders the exception text from the logging
                                     event.
                                 </td>
                             </tr>
                             <tr>
                                 <td><a href="../sdk/html/T_log4net_Layout_PatternLayout.htm">log4net.Layout.PatternLayout</a></td>
                                 <td>
-                                    Formats the logging event according to a flexible 
+                                    Formats the logging event according to a flexible
                                     set of formatting flags.
                                 </td>
                             </tr>
@@ -1023,7 +1023,7 @@
                         <span class="code">ErrorFormat</span> and <span class="code">FatalFormat</span> methods.
                     </p>
                 </section>
-                
+
             </section>
 
         </section>