Merge branch 'develop' into feature/RollingFileAppender-NG
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..299b86f
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,17 @@
+# see http://EditorConfig.org
+
+root = true
+
+[*]
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = tab
+indent_size = 4
+charset = utf-8
+
+[*.{json,yml}]
+indent_style = space
+indent_size = 2
+
+[*.{cgi,sh}]
+end_of_line = lf
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index d6d5c24..73a8c09 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,53 +1,157 @@
-Contributing to Apache log4net
-======================
+# 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.
+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.
 
-Getting Started
----------------
+## Code of conduct
 
-+ Make sure you have a [JIRA account](https://issues.apache.org/jira/).
-+ Make sure you have a [GitHub account](https://github.com/signup/free).
-+ If you're planning to implement a new feature it makes sense to discuss you're changes on the [dev list](https://logging.apache.org/log4net/mail-lists.html) first. This way you can make sure you're not wasting your time on something that isn't considered to be in Apache log4net's scope.
-+ Submit a ticket for your issue, assuming one does not already exist.
-  + Clearly describe the issue including steps to reproduce when it is a bug.
-  + Make sure you fill in the earliest version that you know has the issue.
-+ Fork the repository on GitHub.
+### Our pledge
 
-Making Changes
---------------
+In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
 
-+ Create a topic branch from where you want to base your work (this is usually the master/trunk branch).
-+ Make commits of logical units.
-+ Respect the original code style:
-  + Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change.
-  + Check for unnecessary whitespace with git diff --check before committing.
-+ Make sure your commit messages are in the proper format. Your commit message should contain the key of the JIRA issue.
-+ Make sure you have added the necessary tests for your changes.
-+ Run all the tests with `nant` inside the `tests` directory to assure nothing else was accidentally broken.
+### Our standards
 
-Making Trivial Changes
-----------------------
+Examples of behavior that contributes to creating a positive environment include:
 
-For changes of a trivial nature to comments and documentation, it is not always necessary to create a new ticket in JIRA.
-In this case, it is appropriate to start the first line of a commit with '(doc)' instead of a ticket number.
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards each other
 
-Submitting Changes
-------------------
+Examples of unacceptable behavior by participants include:
 
-+ Sign the [Contributor License Agreement][cla] if you haven't already.
-+ Push your changes to a topic branch in your fork of the repository.
-+ Submit a pull request to the repository in the apache organization.
-+ Update your JIRA ticket and include a link to the pull request in the ticket.
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
 
-Additional Resources
---------------------
+### Our responsibilities
 
-+ [Apache log4net JIRA project page](https://issues.apache.org/jira/browse/LOG4NET)
-+ [Contributor License Agreement][cla]
-+ [General GitHub documentation](https://help.github.com/)
-+ [GitHub pull request documentation](https://help.github.com/send-pull-requests/)
+Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
 
-[cla]:https://www.apache.org/licenses/#clas
+Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available [here](http://contributor-covenant.org/version/1/4).
+
+## Mailing lists
+
+The major part of discussion happens on the mailing lists. The mailing lists are documented [here](https://logging.apache.org/log4net/mail-lists.html).
+
+## Issues
+
+Please use the official JIRA issue tracker. It can be found [here](https://issues.apache.org/jira/projects/LOG4NET/). Even though it is possible to track issues on GitHub we prefer to have them all there. To add, update or comment on issues you will need a [JIRA account](https://issues.apache.org/jira/secure/Signup!default.jspa).
+
+Check if there exists already another issue that matches your situation. Only write a new issue if you cannot find any. Doing so the maintainers of the project spend less time in managing issues and therefore have more time to actually work on the issues.
+
+Please backup your issues with as much information as you have. The more screenshots, logfiles or steps to reproduce a bug there are, the easier it is to track down the actual culprit.
+
+Please try to be as clear as possible when submitting a new issue or updating an existing issue. Consider yourself to be a story teller and you are telling your story to someone who has never even heard of it. The easier it is to follow the story, the better it is to the reader of the story and the more likely it is that a reader of the story will invest time to work on it. The less time the reader of an issue spends with figuring out what an issue is about, the more time he has to fix the issue.
+
+When an issue is about a regression, please try to find out in which release the regression was introduced. This again greatly helps the maintainers to hunt down the actual culprit.
+
+Often it is wise to write to one of the mailing lists about a problem before you file an issue. You reach a much larger audience by sending an email to one of the mailing list and therefore it is more likely for you to receive helpful feedback faster. Further the maintainers of the project are subscribed to those mailing lists too and they can guide you on what to do next.
+
+## Patches
+
+There are many ways to contribute changes to the codebase. One is to file a pull request on GitHub, another is to attach a patch to a JIRA issue. While both work fine, pull requests provide ways to review modifications and are built and tested automatically. Therefore we prefer code contributions to go through GitHub pull requests. This can be done by following these steps:
+
+* Make sure you have a [Github account](https://github.com/signup/free).
+* If you're planning to implement a new feature, it makes sense to discuss the changes first on the [development mailing list](https://logging.apache.org/log4net/mail-lists.html). This way you can make sure you are not wasting your time on something that isn't considered to be in Apache Log4Net's scope.
+* Eventually file a new ticket if there is and assign an the issue to you to make clear that you are working on it.
+* Fork the repository on GitHub.
+* If the modifications will take a considerable amount of time, it could make sense to create a feature branch that branches from `develop`. This allows you to separate your modifications from future modifications in the ´develop´ branch.
+* Make your modifications in the form of commits. Please read the section about commit messages for further information about how commit messages should be written.
+* Please check for unnecessary whitespace with git diff --check before committing.
+* Make sure you write tests for your changes!
+* Please note that not all targets can be built on a single machine and therefore only a subset of the actual targets can be built and tested easily on the machine of a developer. The good thing is, all branches and pull requests are built by the continuous deployment pipeline. Please continue reading [that section](#continuous-deployment-pipeline) for further information.
+
+### Contributor license agreement
+
+It is ok to contribute trivial patches without signing a contributor license agreement. Patches are considered to be trivial if they could be repeated trivially by anyone. Non trivial modifications however require you to sign a contributor license agreement. More information about this topic can be found [here](https://www.apache.org/licenses/#clas).
+
+### Code style
+
+Respect the original code style and whitespace rules. If you think that a file needs whitespace cleanup do so in separate commits.
+
+* Run all the tests with `nant` inside the `tests` directory to assure nothing else was accidentally broken. Please note that not all targets can be built on a single machine and therefore only a subset of the actual targets is built and tested.
+
+### Commit messages
+
+Each commit should be an atomar modification and the commit message is the story that backs it up. The commit message explains the changes that the commit is about. This story greatly helps to understand what a modification is about, why it is there and can include further considerations and decisions that would not fit into the codebase as comments. Doing this further allows easier reviews of a modification. The easier reviews are, the faster they can be completed and the more time is spent with actually fixing stuff rather than only trying to understand a modification.
+
+A commit messages first line represents the summary. The summary should start with the module where the modification is made and the issue(s) a modification is made should be appended to the summary. Any line in a commit message should not exceed about 80 characters. If you would like to provide more information to the commit, add an empty line after the summary and write more about the modification.
+
+If you have a hard time to write a summary, your commit is probably too large and you should consider to split up your modifications into several commits, each doing more atomar modifications.
+
+The following are good examples of great commit messages:
+
+```
+Readme: add documentation to new methods [LOG4NET-404]
+
+The following methods are now well documented:
+* method1
+* method2
+* method3
+```
+
+```
+Submodule1: removed a few trailing whitespaces and fixed a typo in a comment
+```
+
+```
+RollingFileAppender: fixed rolling to work on Sundays [LOG4NET-404]
+
+This patch fixes a race condition that happened only on Sundays. In that case
+the rolling did not work and an internal error log message "Error writing the
+log message" was written.
+
+We considered fixing the race condition by injecting a strategy class but
+did not implement that because it was too much effort for this easy fix.
+
+Note that the fix has a performance impact of 0.1ms each time a log message
+is written.
+```
+
+### Pull requests
+
+Pull requests are typically a set of commits. As with commit messages, a pull request should have a one liner summary and a longer description explaining what the pull request is about, what it improves and how it does so. If possible, back it up with background information and considerations that the author had thought about but decided to implement otherwise.
+
+### Continuous deployment pipeline
+
+We use Jenkins to build our codebase and the pipeline configuration is checked in into the repository codebase. The job can be found [here](https://builds.apache.org/job/logging-log4net).
+
+#### Branches
+
+All branches are built and tested automatically by our continuous deployment pipeline. Some branches however have a special meaning to the pipeline. All branches build and test assemblies and further provide the built artifacts as downloadable resources.
+
+#### Branch: master
+
+A commit on the master branch triggers the pipeline to publish the codebase as a release. This updates the site, publishes the assemblies, ..
+
+__REMARK: this part of the pipeline is still work in progress.__
+
+#### Branch: release/$version
+
+A commit on a release branch triggers the pipeline to publish the codebase as a release candidate. This gives the possibility to review and do the last few steps to get a release done. Typical changes made in this branch are updates of the version tags.
+
+__REMARK: this part of the pipeline is still work in progress.__
+
+#### Pull requests
+
+Pull requests are built and tested automatically by our continuous deployment pipeline. All pull request build jobs are listed [here](https://builds.apache.org/job/logging-log4net/view/change-requests/). When a build passes, the built assemblies can be downloaded from the Jenkins job. Use this feature to test your changes against our build server.
+
+# Additional resources
+
+* [Log4Net mailing lists](https://logging.apache.org/log4net/mail-lists.html)
+* [Apache log4net JIRA project page](https://issues.apache.org/jira/projects/LOG4NET)
+* [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 b/KEYS.md
similarity index 84%
rename from KEYS
rename to KEYS.md
index d8de123..f2ffbea 100644
--- a/KEYS
+++ b/KEYS.md
@@ -1,29 +1,67 @@
-This file contains the PGP keys of various Apache developers.
-These keys are primarily used for code signing.
+# Introduction
 
-These keys can be verified using any OpenPGP compatible system,
-for example, http://www.gnupg.org.
+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.
 
-Developers: To add key information use:
-  gpg --list-keys UID
-  gpg --export -a UID
+# Add keys
 
-(Where UID is your email address)
+This information is for the developers. To add your key information use the following shell script by setting the variables NAME and EMAIL to your name and email respectively:
 
-The original source of this file is
-https://svn.apache.org/repos/asf/logging/log4net/trunk/KEYS
+```
+#!/bin/bash
 
-User: To import this key file into your keyring use:
-  gpg --import KEYS
+# put your name and email address here
+NAME="your name"
+EMAIL="your@email"
 
+# add heading
+cat <<EOT >> KEYS.md
+## $NAME $EMAIL
 
+\`\`\`
+EOT
 
+# export key information
+gpg --list-keys $EMAIL >> KEYS.md
 
+# add spacer
+cat <<EOT >> KEYS.md
+\`\`\`
 
+\`\`\`
+EOT
+
+# export key
+gpg --export -a $EMAIL >> KEYS.md
+
+# add ending
+cat <<EOT >> KEYS.md
+\`\`\`
+
+EOT
+
+# done
+```
+
+The original source of this file is https://git-wip-us.apache.org/repos/asf?p=logging-log4net.git;a=blob;f=KEYS.md;hb=refs/heads/master
+
+# Import
+
+This information is for the user. To import this key file into your keyring use:
+
+```
+  gpg --import KEYS.md
+```
+
+# Keys
+
+## Nicko Cadell <nicko@apache.org>
+
+```
 pub   1024D/914A4D28 2005-03-07
 uid                  Nicko Cadell <nicko@apache.org>
 sub   2048g/6923CBDA 2005-03-07
-
+```
+```
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.4.0 (MingW32)
 
@@ -54,7 +92,11 @@
 oQ==
 =4aNz
 -----END PGP PUBLIC KEY BLOCK-----
+```
 
+## Stefan Bodewig <bodewig@apache.org>
+
+```
 pub   1024D/5F6B8B72 2001-05-28
 uid                  Stefan Bodewig <bodewig@apache.org>
 sig 3        5F6B8B72 2001-05-28  Stefan Bodewig <bodewig@apache.org>
@@ -197,7 +239,8 @@
 sig          40581837 2007-05-08  Nick Kew <nick@webthing.com>
 sub   1024g/24774157 2001-05-28
 sig          5F6B8B72 2001-05-28  Stefan Bodewig <bodewig@apache.org>
-
+```
+```
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.4.2 (GNU/Linux)
 
@@ -600,3 +643,108 @@
 b0zPjKjGuiwdKSnkFbNcFS3g
 =UxMc
 -----END PGP PUBLIC KEY BLOCK-----
+```
+
+## Dominik Psenner <dpsenner@apache.org>
+
+```
+pub   2048R/5497A907 2016-08-21
+uid                  Dominik Psenner <dpsenner@apache.org>
+uid                  Dominik Psenner <dpsenner@gmail.com>
+sub   2048R/09136DF3 2016-08-21 [expires: 2018-07-20]
+sub   4096R/E0CB19D9 2017-07-20
+sub   4096R/693D1B26 2017-07-20
+```
+
+```
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1
+
+mQENBFe6Da8BCADnJA/g6+Mu4L3ozKKZuKisrRLxu4D5S5d3XkryoQUK7NVaqz/t
+CdQu3xOsLxAIH0TTXBvzgLnj70YPqguGTh0nrIgaZ4JtLpH1UVnhhlkg6q801+tY
+YUFOysH0rmqCjjQU4LHZQBmp2W/3EY2qRJ+KvSB9dhk/Shk3oTXXE4PiBZlrE1Ir
+cfZGfj7b1LKrX08oELmnIqr6B7LNNx4U61xLSLKL+ZN6p/T9pgrwR9gqAdfgYZGU
+kDInxIiQzGPbmCWWqcCn5xJIOl1/W90jraY2oeqPCvJOIiRgGniFmBIWwsV7MPeZ
+j8e9LoU1xGz3E49cF6UpH92UD1dDuSvagpwPABEBAAG0JURvbWluaWsgUHNlbm5l
+ciA8ZHBzZW5uZXJAYXBhY2hlLm9yZz6JATgEEwECACIFAle6GpoCGwMGCwkIBwMC
+BhUIAgkKCwQWAgMBAh4BAheAAAoJEBd0XvVUl6kH1OwIALKaM4bCKXMXut2hYuhl
+ahfGAHFoQ5pZUMPMVj/9m0TjkvZMaUBdby1xfOkBJrTo5StcLkT3BkZLP5mDC/dd
+qmFkFnocWMZcFOcGJC9vFZyJ+kmZ7cwOFxXCizRcH8ugvbDmKqYBuzYPc+dSh+fi
+N5vJ4irifKdCYSgIsUSASq0J7zwGtyKOEfmevBxt8QYl9ukcFMK7YNKGowtok/ax
+GBmpw87gFfgVgBTBscYleKpYNDWj0Wu+HjB2Ddv86YzIsXNMlhZLZQGBS8cP+yss
+gDhsohU29xfkCJBEvz71iZYtqjnJDW52XPcKlbQ2RFptvBTz5AbPpJxO4jm69DIT
+vqeIRgQQEQIABgUCV9B6hwAKCRBJx+PRtGkxjE3NAKDGTx9p8lOHxVrxSWZ9gmE2
+eMBi3gCdHajbnizD7jrDm5C5R33ZCx2p+46IRgQQEQgABgUCWXIG2AAKCRCiEVrh
+X2uLcjVFAKDYFvfCk94Kc0fcIvLmjlH8ftbabQCeIaRAnaVrjUFaf5EyW5aPMsmA
+/cu0JERvbWluaWsgUHNlbm5lciA8ZHBzZW5uZXJAZ21haWwuY29tPokBOAQTAQIA
+IgUCV7oNrwIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQF3Re9VSXqQfD
+dggAnR9CyKOG6xLTA16msQ+upuuOsr/yZujsyPSx7t2ltoPQIDd7sgPJmfNMlw0n
+Wnw5jpEwjQ3dpLrqkY5+0AVqa8aYEqWzO2IEx3DLF7RQ54GnnXZ33yEW1lKYiuki
+M0LvAMJhmqwfjGlubUAcHIsneMh891RJ97WplQvsE5NTfXworWN3cLbP8/92RTK5
+Qt7etIq7co0NBfssS6U/MgZ/H6RDMYScqJCtmhbfl/4uPz3hFTZeNRp0Yi3GMb7w
+ECPljfxwq21iCVgBtzskF6lH+yQrYHff2Myn1n72uQadwqfdEQcz57hy584ITJRg
+YSjwAygUcBt1I6eHxDoW6QpZ0ohGBBARAgAGBQJX0HqHAAoJEEnH49G0aTGM9AMA
+oKiPriUbOZUl/qEvLVuP8j+zOlGUAKDIx+i56R0wvfn2kBMpZrwfF97n0YhGBBAR
+CAAGBQJZcgbYAAoJEKIRWuFfa4tyQIkAnRN60rSIfvvQUy1PE6ypph/AWxXVAKDA
+8crBHiHAJ78A3SsDRkmVCHmWrrkBDQRXug7QAQgA1ziqoCkK4vPfjGnX12iPyk9f
+qR8tUEgfA44gmyRPY6hwOK1u6tQ3k0/untY0s50cXYc0h4UVNDNw7H8arcG68QXl
+3agC/qp4AWCWflnqIequq9xRvLYC73hTk7T0oM/jS4Dm4AililwUYLxBWsNkHRJX
+WjfWpZ+clSgJobv0OXaCQdaW6erbw4q1v7KsNTMaMZqGqh8r4D96HCGDLtHxuiW1
+uskRILg888dYA5dAc7IMWSGh/cDQ0ypa4m22m8BbjyZu+ADVtKL0oH+AdiPKuGsK
+zM/G9A5pzQH3VnaZderZco/QC6SG72VyV4B4RAWG5Rx3uSiXtnKqTXt2f0pZ5QAR
+AQABiQElBBgBAgAPAhsMBQJZcSJPBQkDmEb3AAoJEBd0XvVUl6kHu+QH/RxXeAdL
+lFezlroFy3IFz//McD1drLZbDBExWW8zRR3FY5YFUFl7hOApd84nQMMFSPiFQZfe
+OtL7RC3nfyDdF+2IJceOW8Xs8SBf0OgN3E8qdS3oueLZkrLOkb1wzNl4riFQQYFd
+NrU9DlV5Cia7im+aSD+Hw7LnNQt83p8qIjry9Wu/KIolwM120S+BVVO939KoRCkM
+MMmPyMfxq3F4ssly3l/x5oy9Jkgzo+bJLPL0JYNDGAFGxNWoFnlsyheyzc+dYEgt
+KdMZTj9noznmtkJbF5b1iIYv/hsYFVLMOoFzQcspQZYYL9nMKAjUoG/Wbw5VFFu8
+RYNEVr74foMberW5Ag0EWXEcZgEQAOlNWBm5GzEH26jNa2bzzCT44DASuiuGHYl8
+XpP8r8Ppgqiadw6CXjdRglTOWR8dS4F7bH7xd4kyF0cx59GggO4zLiuCVXriYOof
+rZvM/ZuU3UwxHKmGU2lgp00iHQWWH9ZBOBJRM7OMQrqMnrJbCSJNzmy+oZqFexkU
+px8Va4tU/1CxlEyevVFdUaX4FFiqBe3/u5AhoyLcTbYd8+f+hWIX8vBwdns/2/Cq
+noFNDUC+okZBDjzlJj9Wg2ou6wyjmku9sCsc8G1Fk378n0NbZN4lSH25EhkwsgJl
+IeSONt2EFICMhz99tCwGoD+qjSzMSBaMjLPnD0v3+adpRJ9Lq1A7TnOjwst+5KE0
+d8vOipXgGGyiSAK4nrfoREbIdZDcnWZSTVAI8oR+kWXv3cVJ8VBsVjT0qzIkXIkx
+5+uKmp2tffxUn2xuxhs5KjmGFKwcD/S2dCJc9VDMSXPObBT6BKIopmEQUhGPvZzy
+OUaZ/Var33lMgsVTXrUxDb82J0q8kMqK5vd88RrMibCaUc73qMDRFbvRReAwOYli
+fu/ppGGH9wlxe4Y+qA0I5UZqEmwpvOtpA4lHor++hVumZ+lASnzqW2D80AdCH5MQ
+K3Uvm7wha1UD16Unogeleuqvcif6jcJPZ/UVImfGE0fJJsIQhjsine6Igqz/M4LJ
+Fw/AVsCjABEBAAGJAz4EGAECAAkFAllxHGYCGwICKQkQF3Re9VSXqQfBXSAEGQEC
+AAYFAllxHGYACgkQ0x17iuDLGdlz4g//Q0dkvtNUFLrKRYJJ+G6NaepUxv6FERoa
+OjcMrmui4nGWFdXgdYLQsQiwNAXKCGsYx1Xd2dGfTcb7SUiOyKBUDFiotYzJ9I4y
+WYYupdDaYNw2AQHV29nFUaqqHBHSA9BSikuAphuhUtLJebYxvCQHplP7J5l0/Sm1
+/YSelzU+WGoaP1yky2K73QCbQd26oWuE6gMLAppDVp1bZ31dv1BCUeFBgR40+W77
+rP8OCofRXdZmVe5pIK1CtU/HZKGTz7KV2HG+lQ6x6U5Jlgit24QP+I+HHfVERArx
+gU8dk4qZIPv7kWu/Vqz3AvED4BE6BRds91pT/xvEgNJUjn3CJ+Tpp7n+ZS095A8x
+hGSOLOMjO2F/YtulemXituO2BZRlsT6QpWuz0Bi83aR2Bryps13HnPpACUamnTg2
+O3Ugy3ARPkVyBngBi7rbgA/BAPJ6RRYFcPyhBonTR/kjR2hRokLGMn3ZyMOH+cK2
+WnqphEKgQaNFE9rYyVaMcbZShs/4rJ65ezBR81f1o58rnxg9N18L6PpSxLTAOPlj
+iePMIyLf0WreHz0eXmqj6J7vI8w6zmwRRNocjaGC9tvKl4335zxHaT+O9LWTvXf6
+Svsg0pI0mAcjJ7AS8/wTG44H68tRW00ab08seS49kuOWFjq9vI7C5fLgndh4hYcj
+vpgZB7fU0bjvyggAwP/CYQ+spSF2+0w2fssjbOiG8WPogIkSeY/lgN7Mts6+p6Qh
+5+2l/T2wx6g6HjoeeEUjWtUeLzf8RGH4b1qK0AemWciiqV26jJ5byMCRP7oUZ/IY
+DbCa2v0QlSxvSvpOTJRFdHcndYhddz5d5oHSjWZQPkwmvs7DgBMlUn7dW9oFRS++
+3jD96zzqYrVQ4Y7kpYBHwZKKcEDfI7piVu6Pgq4nvc13nX8NXRk34XWlqr5LUtJu
+qeSdnoGv91EfizmcisE3a28ysYuvJP93ygmNJb1MMHKOTaCW87c/KzyOTaTHWP72
+9Ri1y3dsKGCx0HTPUEfm4nxg0C+27SxLOriALrkCDQRZcRyhARAAt3ipcvhpWJOI
+SDtggFMebtMiGsvRxZHqaXl8ywJY5zT91pRv0J/r0sOQ/FwKMeahZLLlH/43L8hH
+XKxC0xxTzH9fs2AhBJ3dIVmLIAvqDnFe8KpZCyMXPrxIrNYXVs73GpsxMaHd9EPr
+Nz3ctka9lqVCb9J0G4YzrIeRAwPdtmf1vMXrBBvYDHHIIpSjzerNxHzz18usqLrV
+svovK37RY3Lh5fYzQ2LYcTv1hCeObnWPAeHt1/yGaoWu0TMTe5EoafIauAeqOsRk
+x8cgvzQIv4vpx2VO4o9sanamhb2FcEc/NvQa+xXmsGw8mESFbZl8mdlPvDGBLObP
+pcmGiy0E4QoHJIk1UJ4WLGnaCNes50nbecKq/pHTZyDywvGTD6XZCfulT97PXrt+
+no2eisgPla1BV6RzScxKgZnJRIqfLOMAVVek9nOYT+hOVOnHDhtxYQymyLgSF7dj
+FjhARpIlCPj99etQTdX5GXoxfug9rRTPHmx2SQBN2/QWXFjO2HnoM0QpfedOSeOK
+YWoQxB1t3y/xnelSbxyt4U7KSdPwcYevZBJrlwDkueLIB52cEUq1NKdpB7zQM9zt
+uqg+UBUDaxZ5LZLqKNaHxmCALz5r1Hr6z0bkUE/BUhCmICPZtNNaB1LT8Hd5tugF
+eEwZJEEt0V+tmw+q2za5o/y6iCAYKAkAEQEAAYkBHwQYAQIACQUCWXEcoQIbDAAK
+CRAXdF71VJepB9+IB/9Ns9FLAR3JajDyQfOgR7oIeuuxuaeZRj4rq4Gr/8arOUGm
+ezhr1Jprhf9Bw+qbjOTaIWgHugQfowEBmUjby9H2dVvRN/vNigG0Woehlx3FguST
+BVKtMHPdgNwAimp/kecr7jynaCFidnD31u1Sf7qcuR1wsCtpmh8MMJYsHmcG5LDP
++7PmXEYzVNVGYJ/OPG4a+AKDE57dtzTIugD1UX3exUVwBMgYFRWb5MFyZvi3Xycl
+PDZMFr6jmS8W5k8SZkmEhh6pZMJjdvhRpGCpUPgLBvJq2T5l2qF1j/UKDhviw7+a
+1puEBtn6goB/sLwFwQJH3mmyHyYDQ1CX+39ypC+O
+=+mAI
+-----END PGP PUBLIC KEY BLOCK-----
+```
+
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a83d4fc
--- /dev/null
+++ b/README.md
@@ -0,0 +1,12 @@
+# 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.
+
+# Documentation
+
+For the latest documentation see the log4net web site at <http://logging.apache.org/log4net>.
+
+# 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/README.txt b/README.txt
deleted file mode 100644
index ce2bfb0..0000000
--- a/README.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Project Status
-==============
-
-Apache log4net is a sub project of the Apache Logging Services project. 
-Apache log4net graduated from the Apache Incubator in February 2007.
-Web site: http://logging.apache.org/log4net
-
-
-Documentation
-=============
-
-For local documentation, which is correct for this release see:
-doc/index.html
-
-For the latest documentation see the log4net web site at:
-http://logging.apache.org/log4net
-
-Contributing
-============
-
-log4net development happens on the log4net dev mailing list, see
-<https://logging.apache.org/log4net/mail-lists.html>.  Please join the
-mailing list and discuss bigger changes before working on them.
-
-For bigger changes we must ask you to sign a Contributor License
-Agreement <http://www.apache.org/licenses/#clas>.
-
-github pull requests are one way to contribute, but our real issue
-tracker is JIRA <https://issues.apache.org/jira/browse/LOG4NET>.
-
diff --git a/ReleaseInstructions.md b/ReleaseInstructions.md
new file mode 100644
index 0000000..487babe
--- /dev/null
+++ b/ReleaseInstructions.md
@@ -0,0 +1,149 @@
+# 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!
+
+# Introduction
+
+This document is a work in progress and was created in parallel to the release of Apache log4net 1.2.11 and adapted for 2.0.6.
+
+# Requirements
+
+* make sure you have all the required software around. For the 2.0.6 release this meant
+  * you may need a couple of Windows or Linux boxes in order to be able to build all target frameworks.
+  * Things you need
+    * A Subversion command line client
+    * [NAnt 0.92 or better](http://nant.sourceforge.net/). Make sure to unblock the ZIP before you extract it.
+    * Some recent version of a Java runtime environment (Java5 at minimum)
+    * Apache Maven 3.x http://maven.apache.org/. You may want to set some environment variables like Path (to include Maven's and NAnt's bin directories), M2_HOME and JAVA_HOME to make things easier.
+    * .NET Framework 3.5SP1 and SDK 2.0; As of October 2011 this is available from [here](http://msdn.microsoft.com/en-us/netframework/)
+    * .NET Framework and SDK 4.0; As of October 2011 this is available from [here](http://msdn.microsoft.com/en-us/netframework/)
+    * .NET Core Developer Kit available from https://www.microsoft.com/net/core
+    * Mono available from [here](http://www.mono-project.com/download/). Unfortunately NAnt 0.92 has issues with Mono that is too recent, I used a Ubuntu 14.04 installation and installed NAnt and Mono via the Ubuntu Debian packages. It comes with Mono 3.2.8.
+    * Sandcastle Help File Builder with its Dependencies. As of November 2015 this is available from [here](https://github.com/EWSoftware/SHFB). Install Html Help 1 Compiler by follwoing the instructions during the SGFB installation. It may tell you there'd already be a newer version but SHFB needs this installation anyway.
+* Make sure your PGP key is in <https://svn.apache.org/repos/asf/logging/log4net/trunk/KEYS> and copy that file to <https://dist.apache.org/repos/dist/release/logging/log4net/>. You should also upload your key to the keyservers.
+* Make sure you have decrypted `old-log4net.snk.gpg` to `old-log4net.snk`
+
+# Preparing the Stage
+
+* Make sure the correct version number (2.0.6 right now) is in all
+  the required places.  [yes, there is a lot of duplication]
+
+  * `log4net.build`: `<property name="package.version" value="2.0.6"/>`
+  * `pom.xml`: `<version>2.0.6</version>`
+  * `log4net.nuspec`: `<version>2.0.6</version>`
+  * `log4net.shfbproj`: `<HtmlHelpName>log4net-sdk-2.0.6</HtmlHelpName>`
+  * `src/AssemblyInfo.cs`: many, many AssemblyInformationalVersionAttribute
+  * `src/AssemblyVersionInfo.cpp` as well as `.cs`, `.vb` and `.js` - twice in each file. These files also hold the assembly's copyright statement.  Make sure it includes the current year.
+  * `src/Log4netAssemblyInfo.cs`: `public const string Version = "2.0.6"`
+  * `src/site/xdocs/download_log4net.xml`: many times
+  * `netstandard/log4net/project.json`: "version": "2.0.6",
+  * `netstandard/log4net.tests/project.json`: "version": "2.0.6",
+* Create the site using "nant generate-site" in order to create the RAT report as a side-effect and fix all files that don't have the proper license header.
+* Make sure NOTICE corresponds to the general format of, in particular, check that {latest} is the current year.
+```
+Apache log4net
+Copyright 2004-{latest} The Apache Software Foundation
+
+This product includes software developed by
+The Apache Software Foundation (http://www.apache.org/).
+```
+* Update the release notes
+  * go to the Roadmap View in JIRA <https://issues.apache.org/jira/browse/LOG4NET#selectedTab=com.atlassian.jira.plugin.system.project%3Aroadmap-panel>
+  * follow the Release Notes link for the release you are going to create
+  * Copy the text to `src/site/xdocs/release/release-notes.xml` in a new section for the new release and massage it to your liking.
+
+# Create the Release
+
+* Tag the source tree that makes up the release
+```
+  $ svn cp -r 1775235 \
+        https://svn.apache.org/repos/asf/logging/log4net/trunk \
+        https://svn.apache.org/repos/asf/logging/log4net/tags/2.0.6RC1
+```
+* Create a fresh working copy of the new tag on the Linux box and copy `old-log4net.snk` to the root directory.
+* Run `nant`
+* zip up the bin/mono directory and copy it to the Windows machine
+* Create a fresh working copy of the new tag on the Windows box and copy `old-log4net.snk` as well as `nuget.exe` to the root directory.
+* Extract the contents of the Mono zip to `bin/mono`
+* Run `nant`
+* Run SHFB
+* Run `nant package`
+* Sign the distribution files, I used:
+```
+  $ for i in log4net?2.0.6*; do \
+        md5sum $i > $i.md5 \
+        sha1sum $i > $i.sha1 \
+        sha256sum $i > $i.sha256 \
+        gpg --detach-sign --armor $i; done
+```
+* Commit the distribution files to dest area of the svn dist repository, i.e to <https://dist.apache.org/repos/dist/dev/logging/log4net>
+* Also create a `README.html` based on the release-notes.
+* Publish the site build somewhere convenient for you; `home.apache.org` is a good option
+* If you've got set up a myget feed, publish the nuget package
+* call for a vote on the log4net-dev list.  It may be a good idea to copy the general list of Logging Services in order to reach more PMC members. The following is based on the template used in Commons
+```
+log4net 2.0.6 RC1 is available for review here:
+  https://dist.apache.org/repos/dist/dev/logging/log4net (revision 17495)
+
+Details of changes since 1.2.15 are in the release notes:
+  http://stefan.samaflost.de/staging/log4net-2.0.6/release/release-notes.html
+
+I have tested this with Mono and several .NET frameworks using NAnt.
+
+The tag is here:
+  https://svn.apache.org/repos/asf/logging/log4net/tags/2.0.6RC1
+  (revision 1775236)
+
+Site:
+  http://stefan.samaflost.de/staging/log4net-2.0.6/
+
+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
+* Once the vote passes:
+
+# Publish the Release
+
+* svn mv the ZIPs, hashes and signatures to <https://dist.apache.org/repos/dist/release/logging/log4net/source> and <https://dist.apache.org/repos/dist/release/logging/log4net/binaries> respectively. You can do so using a local working copy of <https://dist.apache.org/repos/dist> which tends to be huge, so check out selectively or using svnmucc.
+* create a file `README.html` holding just the latest news from `release-notes.html` and svn commit it to <https://dist.apache.org/repos/dist/release/logging/log4net>
+* create a svn tag for the release from the release candidate tag that has been accepted
+```
+  $ svn cp -m "1.2.14 release has been accepted" \
+        https://svn.apache.org/repos/asf/logging/log4net/tags/1.2.14RC1 \
+        https://svn.apache.org/repos/asf/logging/log4net/tags/1.2.14
+```
+* publish the nuget package
+* wait for the mirrors to catch up before proceeding, this takes several hours
+
+# Announce the Release
+
+* publish the website by copying it to <https://svn.apache.org/repos/infra/websites/production/logging/content/log4net> by convention create a directory named after the release, e.g. copy site to <https://svn.apache.org/repos/infra/websites/production/logging/content/log4net/log4net-1.2.14>
+* Ensure line-feeds are consistent and that the cgi script has the svn:executable property set.
+* Change the `.htaccess` files and 2.x/2.0.x symlinks in <https://svn.apache.org/repos/infra/websites/production/logging/content/log4net> so they point at your new directory.
+* Copy `download_log4net.html` file from the new directory to <https://svn.apache.org/repos/infra/websites/production/logging/content/log4net>
+* Send an announcement mail at least to using your user@apache.org email address. PGP sign the announcement email.
+  * log4net-dev@logging.apache.org
+  * log4net-user@logging.apache.org
+  * general@logging.apache.org
+  * announce@apache.org
+* Mark the version as released in JIRA and create a new version for the next release if necessary
+* Add the new version to the DOAP file at <https://svn.apache.org/repos/asf/logging/log4net/doap_log4net.rdf>
+* Add the new version to the reporter tool <https://reporter.apache.org/addrelease.html?logging>
+
+# Post-Release Cleanup
+
+* Delete all artifacts of old releases from <https://dist.apache.org/repos/dist/release/logging/log4net>
+
diff --git a/ReleaseInstructions.txt b/ReleaseInstructions.txt
deleted file mode 100644
index 28aa9f5..0000000
--- a/ReleaseInstructions.txt
+++ /dev/null
@@ -1,269 +0,0 @@
-THIS DOCUMENT NEEDS TO BE ADAPTED NOW WE'VE MOVED TO GIT
-
-This document is a work in progress and was created in parallel to the
-release of Apache log4net 1.2.11 and adapted for 2.0.6.
-
-Prereqs
-=======
-
-* make sure you have all the required software around.  For the 2.0.6
-  release this meant
-
-  - you may need a couple of Windows or Linux boxes in order to be
-    able to build all target frameworks.
-
-  - Things you need
-
-    o a Subversion command line client
-
-    o NAnt 0.92 or better http://nant.sourceforge.net/
-
-      Make sure to unblock the ZIP before you extract it.
-
-    o Some recent version of a Java runtime environment (Java5 at
-      minimum)
-
-    o Apache Maven 3.x http://maven.apache.org/
-
-      You may want to set some environment variables like Path (to
-      include Maven's and NAnt's bin directories), M2_HOME and
-      JAVA_HOME to make things easier.
-
-    o .NET Framework 3.5SP1 and SDK 2.0
-
-      As of October 2011 this is available from
-      <http://msdn.microsoft.com/en-us/netframework/>
-
-    o .NET Framework and SDK 4.0
-
-      As of October 2011 this is available from
-      <http://msdn.microsoft.com/en-us/netframework/>
-
-    o .NET Core Developer Kit available from https://www.microsoft.com/net/core
-
-    o Mono available from http://www.mono-project.com/download/
-
-      Unfortunately NAnt 0.92 has issues with Mono that is too recent,
-      I used a Ubuntu 14.04 installation and installed NAnt and Mono
-      via the Ubuntu Debian packages. It comes with Mono 3.2.8.
-
-    o Sandcastle Help File Builder with its Dependencies
-
-      As of November 2015 this is available from
-      <https://github.com/EWSoftware/SHFB>
-
-      Install Html Help 1 Compiler by follwoing the instructions
-      during the SGFB installation. It may tell you there'd already be
-      a newer version but SHFB needs this installation anyway.
-
-* Make sure your PGP key is in
-  <https://svn.apache.org/repos/asf/logging/log4net/trunk/KEYS> and
-  copy that file to
-  https://dist.apache.org/repos/dist/release/logging/log4net/ .
-
-  You should also upload your key to the keyservers.
-
-* Make sure you have decrypted old-log4net.snk.gpg to old-log4net.snk
-
-Preparing the Stage
-===================
-
-* Make sure the correct version number (2.0.6 right now) is in all
-  the required places.  [yes, there is a lot of duplication]
-
-  - log4net.build: <property name="package.version" value="2.0.6"/>
-  - pom.xml: <version>2.0.6</version>
-  - log4net.nuspec: <version>2.0.6</version>
-  - log4net.shfbproj: <HtmlHelpName>log4net-sdk-2.0.6</HtmlHelpName>
-  - src/AssemblyInfo.cs: many, many AssemblyInformationalVersionAttribute
-  - src/AssemblyVersionInfo.cpp as well as .cs, .vb and .js - twice in
-    each file
-    These files also hold the assembly's copyright statement.  Make
-    sure it includes the current year.
-  - src/Log4netAssemblyInfo.cs: public const string Version = "2.0.6"
-  - src/site/xdocs/download_log4net.xml - many times
-  - netstandard/log4net/project.json -  "version": "2.0.6",
-  - netstandard/log4net.tests/project.json -  "version": "2.0.6",
-
-* Create the site using "nant generate-site" in order to create the
-  RAT report as a side-effect and fix all files that don't have the
-  proper license header.
-
-* Make sure NOTICE corresponds to the general format of
-
-  ,----
-  |Apache log4net
-  |Copyright 2004-{latest} The Apache Software Foundation
-  |
-  |This product includes software developed by
-  |The Apache Software Foundation (http://www.apache.org/).
-  `----
-
-  in particular, check that {latest} is the current year.
-
-* Update the release notes
-
-  - go to the Roadmap View in JIRA
-    <https://issues.apache.org/jira/browse/LOG4NET#selectedTab=com.atlassian.jira.plugin.system.project%3Aroadmap-panel>
-
-  - follow the Release Notes link for the release you are going to
-    create
-
-  - Copy the text to src/site/xdocs/release/release-notes.xml in a new
-    section for the new release and massage it to your liking.
-
-Create the Release
-==================
-
-* Tag the source tree that makes up the release
-
-  $ svn cp -r 1775235 \
-        https://svn.apache.org/repos/asf/logging/log4net/trunk \
-        https://svn.apache.org/repos/asf/logging/log4net/tags/2.0.6RC1
-
-* Create a fresh working copy of the new tag on the Linux box and copy
-  old-log4net.snk to the root directory.
-
-* Run "nant"
-
-* zip up the bin/mono directory and copy it to the Windows machine
-
-* Create a fresh working copy of the new tag on the Windows box and copy
-  old-log4net.snk as well as nuget.exe to the root directory.
-
-* Extract the contents of the Mono zip to bin/mono
-
-* Run "nant"
-
-* Run SHFB
-
-* Run "nant package"
-
-* sign the distribution files, I used
-
-  $ for i in log4net?2.0.6*; do \
-        md5sum $i > $i.md5 \
-        sha1sum $i > $i.sha1 \
-        sha256sum $i > $i.sha256 \
-        gpg --detach-sign --armor $i; done
-
-* commit the distribution files to dest area of the svn dist
-  repository, i.e to
-  https://dist.apache.org/repos/dist/dev/logging/log4net
-  also create a README.html based on the release-notes.
-
-* publish the site build somewhere convenient for you -
-  home.apache.org is a good option
-
-* if you've got set up a myget feed, publish the nuget package
-
-* call for a vote on the log4net-dev list.  It may be a good idea to
-  copy the general list of Logging Services in order to reach more PMC
-  members.
-
-  The following is based on the template used in Commons
-
-  ,----
-  | log4net 2.0.6 RC1 is available for review here:
-  |   https://dist.apache.org/repos/dist/dev/logging/log4net
-  |   (revision 17495)
-  | 
-  | Details of changes since 1.2.15 are in the release notes:
-  |   http://stefan.samaflost.de/staging/log4net-2.0.6/release/release-notes.html
-  | 
-  | I have tested this with Mono and several .NET frameworks using NAnt.
-  | 
-  | The tag is here:
-  |   https://svn.apache.org/repos/asf/logging/log4net/tags/2.0.6RC1
-  |   (revision 1775236)
-  | 
-  | Site:
-  |   http://stefan.samaflost.de/staging/log4net-2.0.6/
-  | 
-  | 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
-
-* Once the vote passes:
-
-Publish the Release
-===================
-
-* svn mv the ZIPs, hashes and signatures to
-  https://dist.apache.org/repos/dist/release/logging/log4net/source and
-  https://dist.apache.org/repos/dist/release/logging/log4net/binaries
-  respectively.
-  You can do so using a local working copy of
-  https://dist.apache.org/repos/dist - which tends to be huge, so
-  check out selectively - or using svnmucc.
-
-* create a file README.html holding just the latest news from
-  release-notes.html and svn commit it to
-  https://dist.apache.org/repos/dist/release/logging/log4net
-
-* create a svn tag for the release from the release candidate tag that
-  has been accepted
-
-  $ svn cp -m "1.2.14 release has been accepted" \
-        https://svn.apache.org/repos/asf/logging/log4net/tags/1.2.14RC1 \
-        https://svn.apache.org/repos/asf/logging/log4net/tags/1.2.14
-
-* publish the nuget package
-
-* wait for the mirrors to catch up before proceeding, this takes
-  several hours
-
-Announce the Release
-====================
-
-* publish the website by copying it to
-  https://svn.apache.org/repos/infra/websites/production/logging/content/log4net
-  by convention create a directory named after the release, e.g. copy
-  site to
-  https://svn.apache.org/repos/infra/websites/production/logging/content/log4net/log4net-1.2.14
-  Ensure line-feeds are consistent and that the cgi script has the
-  svn:executable property set.
-  Change the .htaccess files and 2.x/2.0.x symlinks in
-  https://svn.apache.org/repos/infra/websites/production/logging/content/log4net
-  so they point at your new directory.
-  Copy the download_log4net.html file from the new directory to
-  https://svn.apache.org/repos/infra/websites/production/logging/content/log4net
-
-* send an announcement mail at least to
-
-  log4net-dev@logging.apache.org
-  log4net-user@logging.apache.org
-  general@logging.apache.org
-  announce@apache.org
-
-  using your @apache.org email address.  PGP sign the announcement mail.
-
-* mark the version as released in JIRA and create a new version for
-  the next release if necessary
-
-* Add the new version to the DOAP file at
-  https://svn.apache.org/repos/asf/logging/log4net/doap_log4net.rdf
-
-* Add the new version to the reporter tool
-  https://reporter.apache.org/addrelease.html?logging
-
-Post-Release Cleanup
-====================
-
-* Delete all artifacts of old releases from
-  https://dist.apache.org/repos/dist/release/logging/log4net
diff --git a/examples/mono/1.0/Performance/NotLogging/cs/src/AssemblyInfo.cs b/examples/mono/1.0/Performance/NotLogging/cs/src/AssemblyInfo.cs
index b278ed8..872c53f 100644
--- a/examples/mono/1.0/Performance/NotLogging/cs/src/AssemblyInfo.cs
+++ b/examples/mono/1.0/Performance/NotLogging/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net performance test - NotLogging")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - NotLogging")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/mono/1.0/Performance/NotLogging/cs/src/NotLogging.cs b/examples/mono/1.0/Performance/NotLogging/cs/src/NotLogging.cs
index 0501ef9..1b6ff70 100644
--- a/examples/mono/1.0/Performance/NotLogging/cs/src/NotLogging.cs
+++ b/examples/mono/1.0/Performance/NotLogging/cs/src/NotLogging.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -17,7 +17,7 @@
 //
 #endregion
 
-namespace NotLogging 
+namespace NotLogging
 {
 	using System;
 	using System.Collections;
@@ -28,7 +28,7 @@
 	using log4net.Repository;
 	using log4net.Repository.Hierarchy;
 
-	public class NotLogging 
+	public class NotLogging
 	{
 		#region Init Code
 
@@ -44,9 +44,9 @@
 
 
 		static readonly ILog[] LOG_ARRAY = new ILog[] {
-														  SHORT_LOG, 
-														  MEDIUM_LOG, 
-														  LONG_LOG, 
+														  SHORT_LOG,
+														  MEDIUM_LOG,
+														  LONG_LOG,
 														  INEXISTENT_SHORT_LOG,
 														  INEXISTENT_MEDIUM_LOG,
 														  INEXISTENT_LONG_LOG};
@@ -63,13 +63,13 @@
 																	  new ComplexMessage_MemberGuard_Bare(),
 																	  new ComplexMessage_LocalGuard_Bare()};
 
-		private static void Usage() 
+		private static void Usage()
 		{
 			System.Console.WriteLine(
-				"Usage: NotLogging <true|false> <runLength>" + Environment.NewLine +
-				"\t true indicates shipped code" + Environment.NewLine +
-				"\t false indicates code in development" + Environment.NewLine +
-				"\t runLength is an int representing the run length of loops"  + Environment.NewLine +
+				"Usage: NotLogging <true|false> <runLength>" + Environment.NewLine
+				"\t true indicates shipped code" + Environment.NewLine
+				"\t false indicates code in development" + Environment.NewLine
+				"\t runLength is an int representing the run length of loops"  + Environment.NewLine
 				"\t We suggest that runLength be at least 1000000 (1 million).");
 			Environment.Exit(1);
 		}
@@ -79,32 +79,32 @@
 		/// Program wide initialization method
 		/// </summary>
 		/// <param name="args"></param>
-		private static int ProgramInit(String[] args) 
+		private static int ProgramInit(String[] args)
 		{
 			int runLength = 0;
 
-			try 
+			try
 			{
-				runLength = int.Parse(args[1]);      
+				runLength = int.Parse(args[1]);
 			}
-			catch(Exception e) 
+			catch(Exception e)
 			{
 				System.Console.Error.WriteLine(e);
 				Usage();
-			}      
-    
+			}
+
 			ConsoleAppender appender = new ConsoleAppender(new SimpleLayout());
-	    
-			if("false" == args[0]) 
+
+			if("false" == args[0])
 			{
 				// nothing to do
-			} 
-			else if ("true" == args[0]) 
+			}
+			else if ("true" == args[0])
 			{
 				System.Console.WriteLine("Flagging as shipped code.");
 				((Hierarchy)LogManager.GetRepository()).Threshold = log4net.Core.Level.Warn;
-			} 
-			else 
+			}
+			else
 			{
 				Usage();
 			}
@@ -114,22 +114,22 @@
 			((Hierarchy)LogManager.GetRepository()).Root.AddAppender(appender);
 
 			return runLength;
-		}    
-	  
+		}
+
 		#endregion
 
 		/// <summary>
 		/// The main entry point for the application.
 		/// </summary>
 		[STAThread]
-		static void Main(string[] argv) 
+		static void Main(string[] argv)
 		{
-			if (System.Diagnostics.Debugger.IsAttached) 
+			if (System.Diagnostics.Debugger.IsAttached)
 			{
 				WARM_UP_CYCLES = 0;
 				argv = new string[] { "false", "2" };
 			}
-			if(argv.Length != 2) 
+			if(argv.Length != 2)
 			{
 				Usage();
 			}
@@ -139,11 +139,11 @@
 			System.Console.WriteLine();
 			System.Console.Write("Warming Up...");
 
-			if (WARM_UP_CYCLES > 0) 
+			if (WARM_UP_CYCLES > 0)
 			{
-				foreach(ILog logger in LOG_ARRAY) 
+				foreach(ILog logger in LOG_ARRAY)
 				{
-					foreach(TimedTest timedTest in TIMED_TESTS) 
+					foreach(TimedTest timedTest in TIMED_TESTS)
 					{
 						timedTest.Run(logger, WARM_UP_CYCLES);
 					}
@@ -154,7 +154,7 @@
 
 			// Calculate maximum description length
 			int maxDescLen = 0;
-			foreach(TimedTest timedTest in TIMED_TESTS) 
+			foreach(TimedTest timedTest in TIMED_TESTS)
 			{
 				maxDescLen = Math.Max(maxDescLen, timedTest.Description.Length);
 			}
@@ -164,10 +164,10 @@
 
 			ArrayList averageData = new ArrayList();
 
-			foreach(TimedTest timedTest in TIMED_TESTS) 
+			foreach(TimedTest timedTest in TIMED_TESTS)
 			{
 				double total = 0;
-				foreach(ILog logger in LOG_ARRAY) 
+				foreach(ILog logger in LOG_ARRAY)
 				{
 					delta = timedTest.Run(logger, runLength);
 					System.Console.WriteLine(string.Format(formatString, timedTest.Description, delta, ((Logger)logger.Logger).Name));
@@ -182,7 +182,7 @@
 			System.Console.WriteLine("Averages:");
 			System.Console.WriteLine();
 
-			foreach(object[] pair in averageData) 
+			foreach(object[] pair in averageData)
 			{
 				string avgFormatString = "{0,-"+(maxDescLen+1)+"} {1,9:G} ticks.";
 				System.Console.WriteLine(string.Format(avgFormatString, ((TimedTest)pair[0]).Description, ((double)pair[1])));
@@ -190,7 +190,7 @@
 		}
 	}
 
-	abstract class TimedTest 
+	abstract class TimedTest
 	{
 		abstract public double Run(ILog log, long runLength);
 		abstract public string Description {get;}
@@ -198,12 +198,12 @@
 
 	#region Tests calling Debug(string)
 
-	class SimpleMessage_Bare : TimedTest 
+	class SimpleMessage_Bare : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
 				log.Debug("msg");
 			}
@@ -212,39 +212,39 @@
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "log.Debug(\"msg\");"; }
 		}
 	}
-	class ComplexMessage_MethodGuard_Bare : TimedTest 
+	class ComplexMessage_MethodGuard_Bare : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
-				if(log.IsDebugEnabled) 
+				if(log.IsDebugEnabled)
 				{
 					log.Debug("msg" + i + "msg");
 				}
-			}    
+			}
 			DateTime after = DateTime.Now;
 			TimeSpan diff = after - before;
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "if(log.IsDebugEnabled) log.Debug(\"msg\" + i + \"msg\");"; }
 		}
 	}
-	class ComplexMessage_Bare : TimedTest 
+	class ComplexMessage_Bare : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
 				log.Debug("msg" + i + "msg");
 			}
@@ -253,7 +253,7 @@
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "log.Debug(\"msg\" + i + \"msg\");"; }
 		}
@@ -263,12 +263,12 @@
 
 	#region Tests calling Debug(new object[] { ... })
 
-	class SimpleMessage_Array : TimedTest 
+	class SimpleMessage_Array : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
 				log.Debug(new object[] { "msg" });
 			}
@@ -277,39 +277,39 @@
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "log.Debug(new object[] { \"msg\" });"; }
 		}
 	}
-	class ComplexMessage_MethodGuard_Array : TimedTest 
+	class ComplexMessage_MethodGuard_Array : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
-				if(log.IsDebugEnabled) 
+				if(log.IsDebugEnabled)
 				{
 					log.Debug(new object[] { "msg" , i , "msg" });
 				}
-			}    
+			}
 			DateTime after = DateTime.Now;
 			TimeSpan diff = after - before;
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "if(log.IsDebugEnabled) log.Debug(new object[] { \"msg\" , i , \"msg\" });"; }
 		}
 	}
-	class ComplexMessage_Array : TimedTest 
+	class ComplexMessage_Array : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
 				log.Debug(new object[] { "msg" , i , "msg" });
 			}
@@ -318,7 +318,7 @@
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "log.Debug(new object[] { \"msg\" , i , \"msg\" });"; }
 		}
@@ -328,54 +328,54 @@
 
 	#region Tests calling Debug(string) (using class members)
 
-	class ComplexMessage_MemberGuard_Bare : TimedTest 
+	class ComplexMessage_MemberGuard_Bare : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			return (new Impl(log)).Run(runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "if(m_isEnabled) m_log.Debug(\"msg\" + i + \"msg\");"; }
 		}
 
-		class Impl 
+		class Impl
 		{
 			private readonly ILog m_log;
 			private readonly bool m_isEnabled;
 
-			public Impl(ILog log) 
+			public Impl(ILog log)
 			{
 				m_log = log;
 				m_isEnabled = m_log.IsDebugEnabled;
 			}
 
-			public double Run(long runLength) 
+			public double Run(long runLength)
 			{
 
 				DateTime before = DateTime.Now;
-				for(int i = 0; i < runLength; i++) 
+				for(int i = 0; i < runLength; i++)
 				{
-					if(m_isEnabled) 
+					if(m_isEnabled)
 					{
 						m_log.Debug("msg" + i + "msg");
 					}
-				}    
+				}
 				DateTime after = DateTime.Now;
 				TimeSpan diff = after - before;
 				return ((double)diff.Ticks)/((double)runLength);
 			}
 		}
 	}
-	class SimpleMessage_LocalGuard_Bare : TimedTest 
+	class SimpleMessage_LocalGuard_Bare : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			bool isEnabled = log.IsDebugEnabled;
 
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
 				if (isEnabled) log.Debug("msg");
 			}
@@ -384,17 +384,17 @@
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "if (isEnabled) log.Debug(\"msg\");"; }
 		}
 	}
-	class SimpleMessage_MethodGuard_Bare : TimedTest 
+	class SimpleMessage_MethodGuard_Bare : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
 				if (log.IsDebugEnabled) log.Debug("msg");
 			}
@@ -403,32 +403,32 @@
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "if (log.IsDebugEnabled) log.Debug(\"msg\");"; }
 		}
 	}
-	class ComplexMessage_LocalGuard_Bare : TimedTest 
+	class ComplexMessage_LocalGuard_Bare : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			bool isEnabled = log.IsDebugEnabled;
 
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
 				if(isEnabled) log.Debug("msg" + i + "msg");
-			}    
+			}
 			DateTime after = DateTime.Now;
 			TimeSpan diff = after - before;
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "if (isEnabled) log.Debug(\"msg\" + i + \"msg\");"; }
 		}
 	}
-	#endregion 
+	#endregion
 
 }
diff --git a/examples/mono/1.0/Repository/SharedModule/cs/src/AssemblyInfo.cs b/examples/mono/1.0/Repository/SharedModule/cs/src/AssemblyInfo.cs
index ee75642..47fd3d2 100644
--- a/examples/mono/1.0/Repository/SharedModule/cs/src/AssemblyInfo.cs
+++ b/examples/mono/1.0/Repository/SharedModule/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net SharedModule")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - SharedModule")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/mono/1.0/Repository/SharedModule/cs/src/Math.cs b/examples/mono/1.0/Repository/SharedModule/cs/src/Math.cs
index 64211dc..e18d269 100644
--- a/examples/mono/1.0/Repository/SharedModule/cs/src/Math.cs
+++ b/examples/mono/1.0/Repository/SharedModule/cs/src/Math.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/examples/mono/1.0/Repository/SimpleApp/cs/src/AssemblyInfo.cs b/examples/mono/1.0/Repository/SimpleApp/cs/src/AssemblyInfo.cs
index cc3415d..f22f11d 100644
--- a/examples/mono/1.0/Repository/SimpleApp/cs/src/AssemblyInfo.cs
+++ b/examples/mono/1.0/Repository/SimpleApp/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net SimpleApp")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - SimpleApp")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/mono/1.0/Repository/SimpleApp/cs/src/EntryPoint.cs b/examples/mono/1.0/Repository/SimpleApp/cs/src/EntryPoint.cs
index a2a9f35..71dd756 100644
--- a/examples/mono/1.0/Repository/SimpleApp/cs/src/EntryPoint.cs
+++ b/examples/mono/1.0/Repository/SimpleApp/cs/src/EntryPoint.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -20,8 +20,8 @@
 // Configure logging for this assembly using the 'SimpleApp.exe.log4net' file
 [assembly: log4net.Config.XmlConfigurator(ConfigFileExtension="log4net", Watch=true)]
 
-// The following alias attribute can be used to capture the logging 
-// repository for the 'SimpleModule' assembly. Without specifying this 
+// The following alias attribute can be used to capture the logging
+// repository for the 'SimpleModule' assembly. Without specifying this
 // attribute the logging configuration for the 'SimpleModule' assembly
 // will be read from the 'SimpleModule.dll.log4net' file. When this
 // attribute is specified the configuration will be shared with this
diff --git a/examples/mono/1.0/Repository/SimpleModule/cs/src/AssemblyInfo.cs b/examples/mono/1.0/Repository/SimpleModule/cs/src/AssemblyInfo.cs
index 1c32a35..21ec7f1 100644
--- a/examples/mono/1.0/Repository/SimpleModule/cs/src/AssemblyInfo.cs
+++ b/examples/mono/1.0/Repository/SimpleModule/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net SimpleModule")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - SimpleModule")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/mono/1.0/Repository/SimpleModule/cs/src/Math.cs b/examples/mono/1.0/Repository/SimpleModule/cs/src/Math.cs
index 3c01a79..0b4a0c0 100644
--- a/examples/mono/1.0/Repository/SimpleModule/cs/src/Math.cs
+++ b/examples/mono/1.0/Repository/SimpleModule/cs/src/Math.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -17,7 +17,7 @@
 //
 #endregion
 
-// We want this assembly to have a seperate logging repository to the 
+// We want this assembly to have a seperate logging repository to the
 // rest of the application. We will configure this repository seperatly.
 [assembly: log4net.Config.Repository("SimpleModule")]
 
diff --git a/examples/mono/1.0/Tutorials/ConsoleApp/cs/src/AssemblyInfo.cs b/examples/mono/1.0/Tutorials/ConsoleApp/cs/src/AssemblyInfo.cs
index 5d78024..283e151 100644
--- a/examples/mono/1.0/Tutorials/ConsoleApp/cs/src/AssemblyInfo.cs
+++ b/examples/mono/1.0/Tutorials/ConsoleApp/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net ConsoleApp")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - TestApp")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/mono/1.0/Tutorials/ConsoleApp/cs/src/LoggingExample.cs b/examples/mono/1.0/Tutorials/ConsoleApp/cs/src/LoggingExample.cs
index d1c53d1..a58ea2e 100644
--- a/examples/mono/1.0/Tutorials/ConsoleApp/cs/src/LoggingExample.cs
+++ b/examples/mono/1.0/Tutorials/ConsoleApp/cs/src/LoggingExample.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -70,7 +70,7 @@
 			{
 				log.Warn("This should have an NDC message");
 
-				// Set a Mapped Diagnostic Context value  
+				// Set a Mapped Diagnostic Context value
 				log4net.MDC.Set("auth", "auth-none");
 				log.Warn("This should have an MDC message for the key 'auth'");
 
diff --git a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/AsyncAppender.cs b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/AsyncAppender.cs
index 2682757..41f8d3e 100644
--- a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/AsyncAppender.cs
+++ b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/AsyncAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -44,7 +44,7 @@
 			set { m_name = value; }
 		}
 
-		public void ActivateOptions() 
+		public void ActivateOptions()
 		{
 		}
 
@@ -103,7 +103,7 @@
 
 		#region IAppenderAttachable Members
 
-		public void AddAppender(IAppender newAppender) 
+		public void AddAppender(IAppender newAppender)
 		{
 			if (newAppender == null)
 			{
@@ -111,7 +111,7 @@
 			}
 			lock(this)
 			{
-				if (m_appenderAttachedImpl == null) 
+				if (m_appenderAttachedImpl == null)
 				{
 					m_appenderAttachedImpl = new log4net.Util.AppenderAttachedImpl();
 				}
@@ -129,7 +129,7 @@
 					{
 						return AppenderCollection.EmptyCollection;
 					}
-					else 
+					else
 					{
 						return m_appenderAttachedImpl.Appenders;
 					}
@@ -137,7 +137,7 @@
 			}
 		}
 
-		public IAppender GetAppender(string name) 
+		public IAppender GetAppender(string name)
 		{
 			lock(this)
 			{
@@ -150,11 +150,11 @@
 			}
 		}
 
-		public void RemoveAllAppenders() 
+		public void RemoveAllAppenders()
 		{
 			lock(this)
 			{
-				if (m_appenderAttachedImpl != null) 
+				if (m_appenderAttachedImpl != null)
 				{
 					m_appenderAttachedImpl.RemoveAllAppenders();
 					m_appenderAttachedImpl = null;
@@ -162,11 +162,11 @@
 			}
 		}
 
-		public IAppender RemoveAppender(IAppender appender) 
+		public IAppender RemoveAppender(IAppender appender)
 		{
 			lock(this)
 			{
-				if (appender != null && m_appenderAttachedImpl != null) 
+				if (appender != null && m_appenderAttachedImpl != null)
 				{
 					return m_appenderAttachedImpl.RemoveAppender(appender);
 				}
@@ -174,7 +174,7 @@
 			return null;
 		}
 
-		public IAppender RemoveAppender(string name) 
+		public IAppender RemoveAppender(string name)
 		{
 			lock(this)
 			{
diff --git a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/FastDbAppender.cs b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/FastDbAppender.cs
index 4bfdd0d..bb56a4e 100644
--- a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/FastDbAppender.cs
+++ b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/FastDbAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -64,7 +64,7 @@
 			set { m_connectionString = value; }
 		}
 
-		public virtual void ActivateOptions() 
+		public virtual void ActivateOptions()
 		{
 		}
 
@@ -146,31 +146,31 @@
 			command.CommandText = "INSERT INTO [LogTable] ([Time],[Logger],[Level],[Thread],[Message]) VALUES (@Time,@Logger,@Level,@Thread,@Message)";
 
 			IDbDataParameter param;
-			
+
 			// @Time
 			param = command.CreateParameter();
 			param.ParameterName = "@Time";
 			param.DbType = DbType.DateTime;
 			command.Parameters.Add(param);
-			
+
 			// @Logger
 			param = command.CreateParameter();
 			param.ParameterName = "@Logger";
 			param.DbType = DbType.String;
 			command.Parameters.Add(param);
-			
+
 			// @Level
 			param = command.CreateParameter();
 			param.ParameterName = "@Level";
 			param.DbType = DbType.String;
 			command.Parameters.Add(param);
-			
+
 			// @Thread
 			param = command.CreateParameter();
 			param.ParameterName = "@Thread";
 			param.DbType = DbType.String;
 			command.Parameters.Add(param);
-			
+
 			// @Message
 			param = command.CreateParameter();
 			param.ParameterName = "@Message";
diff --git a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/FireEventAppender.cs b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/FireEventAppender.cs
index e0be018..b7087f6 100644
--- a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/FireEventAppender.cs
+++ b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/FireEventAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -73,9 +73,9 @@
 			set { m_fixFlags = value; }
 		}
 
-		override protected void Append(LoggingEvent loggingEvent) 
+		override protected void Append(LoggingEvent loggingEvent)
 		{
-			// Because we the LoggingEvent may be used beyond the lifetime 
+			// Because we the LoggingEvent may be used beyond the lifetime
 			// of the Append() method we must fix any volatile data in the event
 			loggingEvent.Fix = this.Fix;
 
@@ -85,6 +85,6 @@
 			{
 				handler(this, new MessageLoggedEventArgs(loggingEvent));
 			}
-		} 
+		}
 	}
 }
diff --git a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/MessageBoxAppender.cs b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/MessageBoxAppender.cs
index 0877ea4..855a948 100644
--- a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/MessageBoxAppender.cs
+++ b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/MessageBoxAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -55,7 +55,7 @@
 			set { m_titleLayout = value; }
 		}
 
-		override protected void Append(LoggingEvent loggingEvent) 
+		override protected void Append(LoggingEvent loggingEvent)
 		{
 			MessageBoxIcon messageBoxIcon = MessageBoxIcon.Information;
 
@@ -81,7 +81,7 @@
 			}
 
 			MessageBox.Show(message, title, MessageBoxButtons.OK, messageBoxIcon);
-		} 
+		}
 
 		public override void ActivateOptions()
 		{
diff --git a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/MessageObjectExpanderAppender.cs b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/MessageObjectExpanderAppender.cs
index 56e5ddb..c33a5ee 100644
--- a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/MessageObjectExpanderAppender.cs
+++ b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/MessageObjectExpanderAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/MsmqAppender.cs b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/MsmqAppender.cs
index 4c12b55..41fdf39 100644
--- a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/MsmqAppender.cs
+++ b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/MsmqAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -55,7 +55,7 @@
 			set { m_labelLayout = value; }
 		}
 
-		override protected void Append(LoggingEvent loggingEvent) 
+		override protected void Append(LoggingEvent loggingEvent)
 		{
 			if (m_queue == null)
 			{
diff --git a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternFileAppender.cs b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternFileAppender.cs
index 6e6c3c0..65cad5d 100644
--- a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternFileAppender.cs
+++ b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternFileAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -56,14 +56,14 @@
 			set { m_encoding = value; }
 		}
 
-		public SecurityContext SecurityContext 
+		public SecurityContext SecurityContext
 		{
 			get { return m_securityContext; }
 			set { m_securityContext = value; }
 		}
 
-		override public void ActivateOptions() 
-		{	
+		override public void ActivateOptions()
+		{
 			base.ActivateOptions();
 
 			if (m_securityContext == null)
@@ -72,7 +72,7 @@
 			}
 		}
 
-		override protected void Append(LoggingEvent loggingEvent) 
+		override protected void Append(LoggingEvent loggingEvent)
 		{
 			try
 			{
diff --git a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppender.cs b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppender.cs
index 08f074b..347ab15 100644
--- a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppender.cs
+++ b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -24,63 +24,63 @@
 
 namespace SampleAppendersApp.Appender
 {
-    /// <summary>
-    /// 
-    /// </summary>
-    /// <example>
-    /// <code>
-    /// <![CDATA[
-    ///   <appender name="PatternLayoutAdoNetAppender" type="ConsoleApplication1.PatternLayoutAdoNetAppender, ConsoleApplication1">
-    ///   <connectionType value="log4net.Tests.Appender.AdoNet.Log4NetConnection, log4net.Tests" />
-    ///   <connectionString value="..." />
-    ///   <commandText value="INSERT INTO Log4Net (CustomValue1, CustomValue2) VALUES (@CustomValue1, @CustsomValue2)" />
-    ///   <converter>
-    ///    <name value="echo" />
-    ///     <type value="ConsoleApplication1.EchoConverter, ConsoleApplication1" />
-    ///   </converter>
-    ///   <converter>
-    ///     <name value="reverse" />
-    ///     <type value="ConsoleApplication1.ReverseConverter, ConsoleApplication1" />
-    ///   </converter>
-    ///   <patternLayoutParameter>
-    ///     <parameterName value="@CustomValue1"/>
-    ///     <dbType value="String" />
-    ///     <conversionPattern value="%echo{Hello World}" />
-    ///   </patternLayoutParameter>
-    ///   <patternLayoutParameter>
-    ///     <parameterName value="@CustomValue2"/>
-    ///     <dbType value="String" />
-    ///     <conversionPattern value="%reverse{Goodbye}" />
-    ///   </patternLayoutParameter>
-    ///   </appender>
-    /// ]]>
-    /// </code>
-    /// </example>
-    public class PatternLayoutAdoNetAppender : AdoNetAppender
-    {
-        private readonly ArrayList m_converters = new ArrayList();
+	/// <summary>
+	///
+	/// </summary>
+	/// <example>
+	/// <code>
+	/// <![CDATA[
+	///   <appender name="PatternLayoutAdoNetAppender" type="ConsoleApplication1.PatternLayoutAdoNetAppender, ConsoleApplication1">
+	///   <connectionType value="log4net.Tests.Appender.AdoNet.Log4NetConnection, log4net.Tests" />
+	///   <connectionString value="..." />
+	///   <commandText value="INSERT INTO Log4Net (CustomValue1, CustomValue2) VALUES (@CustomValue1, @CustsomValue2)" />
+	///   <converter>
+	///    <name value="echo" />
+	///     <type value="ConsoleApplication1.EchoConverter, ConsoleApplication1" />
+	///   </converter>
+	///   <converter>
+	///     <name value="reverse" />
+	///     <type value="ConsoleApplication1.ReverseConverter, ConsoleApplication1" />
+	///   </converter>
+	///   <patternLayoutParameter>
+	///     <parameterName value="@CustomValue1"/>
+	///     <dbType value="String" />
+	///     <conversionPattern value="%echo{Hello World}" />
+	///   </patternLayoutParameter>
+	///   <patternLayoutParameter>
+	///     <parameterName value="@CustomValue2"/>
+	///     <dbType value="String" />
+	///     <conversionPattern value="%reverse{Goodbye}" />
+	///   </patternLayoutParameter>
+	///   </appender>
+	/// ]]>
+	/// </code>
+	/// </example>
+	public class PatternLayoutAdoNetAppender : AdoNetAppender
+	{
+		private readonly ArrayList m_converters = new ArrayList();
 
-        public void AddConverter(ConverterInfo converterInfo)
-        {
-            m_converters.Add(converterInfo);
-        }
+		public void AddConverter(ConverterInfo converterInfo)
+		{
+			m_converters.Add(converterInfo);
+		}
 
-        public void AddPatternLayoutParameter(PatternLayoutAdoNetAppenderParameter parameter)
-        {
-            PatternLayout patternLayout = new PatternLayout(parameter.ConversionPattern);
-            addConveters(patternLayout);
-            patternLayout.ActivateOptions();
+		public void AddPatternLayoutParameter(PatternLayoutAdoNetAppenderParameter parameter)
+		{
+			PatternLayout patternLayout = new PatternLayout(parameter.ConversionPattern);
+			addConveters(patternLayout);
+			patternLayout.ActivateOptions();
 
-            parameter.Layout = new Layout2RawLayoutAdapter(patternLayout);
-            m_parameters.Add(parameter);
-        }
+			parameter.Layout = new Layout2RawLayoutAdapter(patternLayout);
+			m_parameters.Add(parameter);
+		}
 
-        private void addConveters(PatternLayout patternLayout)
-        {
-            foreach (ConverterInfo conveterInfo in m_converters)
-            {
-                patternLayout.AddConverter(conveterInfo);
-            }
-        }
-    }
+		private void addConveters(PatternLayout patternLayout)
+		{
+			foreach (ConverterInfo conveterInfo in m_converters)
+			{
+				patternLayout.AddConverter(conveterInfo);
+			}
+		}
+	}
 }
\ No newline at end of file
diff --git a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppenderParameter.cs b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppenderParameter.cs
index 6cf95ff..05f618b 100644
--- a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppenderParameter.cs
+++ b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppenderParameter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,14 +21,14 @@
 
 namespace SampleAppendersApp.Appender
 {
-    public class PatternLayoutAdoNetAppenderParameter : AdoNetAppenderParameter
-    {
-        private string conversionPattern;
+	public class PatternLayoutAdoNetAppenderParameter : AdoNetAppenderParameter
+	{
+		private string conversionPattern;
 
-        public string ConversionPattern
-        {
-            get { return conversionPattern; }
-            set { conversionPattern = value; }
-        }
-    }
+		public string ConversionPattern
+		{
+			get { return conversionPattern; }
+			set { conversionPattern = value; }
+		}
+	}
 }
diff --git a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/SimpleSmtpAppender.cs b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/SimpleSmtpAppender.cs
index 18235c0..66efcc6 100644
--- a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/SimpleSmtpAppender.cs
+++ b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/SimpleSmtpAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -38,27 +38,27 @@
 	public class SimpleSmtpAppender : AppenderSkeleton
 	{
 		public SimpleSmtpAppender()
-		{	
+		{
 		}
 
-		public string To 
+		public string To
 		{
 			get { return m_to; }
 			set { m_to = value; }
 		}
 
-		public string From 
+		public string From
 		{
 			get { return m_from; }
 			set { m_from = value; }
 		}
 
-		public PatternLayout Subject 
+		public PatternLayout Subject
 		{
 			get { return m_subjectLayout; }
 			set { m_subjectLayout = value; }
 		}
-  
+
 		public string SmtpHost
 		{
 			get { return m_smtpHost; }
@@ -67,10 +67,10 @@
 
 		#region Override implementation of AppenderSkeleton
 
-		override protected void Append(LoggingEvent loggingEvent) 
+		override protected void Append(LoggingEvent loggingEvent)
 		{
-			try 
-			{	  
+			try
+			{
 				StringWriter writer = new StringWriter(System.Globalization.CultureInfo.InvariantCulture);
 
 				string t = Layout.Header;
@@ -110,11 +110,11 @@
 				}
 
 				SmtpMail.Send(mailMessage);
-			} 
-			catch(Exception e) 
+			}
+			catch(Exception e)
 			{
 				ErrorHandler.Error("Error occurred while sending e-mail notification.", e);
-			}		
+			}
 		}
 
 		override protected bool RequiresLayout
diff --git a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/AssemblyInfo.cs b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/AssemblyInfo.cs
index 67b8653..758497d 100644
--- a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/AssemblyInfo.cs
+++ b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net SampleAppendersApp")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - SampleAppendersApp")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/LoggingExample.cs b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/LoggingExample.cs
index 2b22711..c822f9a 100644
--- a/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/LoggingExample.cs
+++ b/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/LoggingExample.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/examples/net/2.0/Appenders/WmiAppender/cs/src/AssemblyInfo.cs b/examples/net/2.0/Appenders/WmiAppender/cs/src/AssemblyInfo.cs
index 16c39de..afff699 100644
--- a/examples/net/2.0/Appenders/WmiAppender/cs/src/AssemblyInfo.cs
+++ b/examples/net/2.0/Appenders/WmiAppender/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -35,29 +35,29 @@
 #endif
 
 [assembly: AssemblyProduct("log4net")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/net/2.0/Appenders/WmiAppender/cs/src/IWmiBoundEvent.cs b/examples/net/2.0/Appenders/WmiAppender/cs/src/IWmiBoundEvent.cs
index 0ccd376..3fe3ef7 100644
--- a/examples/net/2.0/Appenders/WmiAppender/cs/src/IWmiBoundEvent.cs
+++ b/examples/net/2.0/Appenders/WmiAppender/cs/src/IWmiBoundEvent.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/examples/net/2.0/Appenders/WmiAppender/cs/src/WmiAppender.cs b/examples/net/2.0/Appenders/WmiAppender/cs/src/WmiAppender.cs
index a239883..041701c 100644
--- a/examples/net/2.0/Appenders/WmiAppender/cs/src/WmiAppender.cs
+++ b/examples/net/2.0/Appenders/WmiAppender/cs/src/WmiAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -37,7 +37,7 @@
 	/// each <see cref="LoggingEvent"/>.
 	/// </para>
 	/// <para>
-	/// By default this appender fires <see cref="WmiLoggingEvent"/> objects, however 
+	/// By default this appender fires <see cref="WmiLoggingEvent"/> objects, however
 	/// this can be overridden by specifying a custom <see cref="Layout"/> or by setting
 	/// the <see cref="LoggingEvent"/>.<see cref="LoggingEvent.MessageObject"/> to an
 	/// <see cref="IEvent"/> instance.
@@ -107,7 +107,7 @@
 		/// The name uniquely identifies the appender.
 		/// </para>
 		/// </remarks>
-		public string Name 
+		public string Name
 		{
 			get { return m_name; }
 			set { m_name = value; }
@@ -117,11 +117,11 @@
 		/// Gets or sets the threshold <see cref="Level"/> of this appender.
 		/// </summary>
 		/// <value>
-		/// The threshold <see cref="Level"/> of the appender. 
+		/// The threshold <see cref="Level"/> of the appender.
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// All log events with lower level than the threshold level are ignored 
+		/// All log events with lower level than the threshold level are ignored
 		/// by the appender.
 		/// </para>
 		/// <para>
@@ -130,7 +130,7 @@
 		/// string, such as "DEBUG", "INFO" and so on.
 		/// </para>
 		/// </remarks>
-		public Level Threshold 
+		public Level Threshold
 		{
 			get { return m_threshold; }
 			set { m_threshold = value; }
@@ -161,18 +161,18 @@
 		/// The default value is a <see cref="OnlyOnceErrorHandler"/>.
 		/// </para>
 		/// </remarks>
-		public IErrorHandler ErrorHandler 
+		public IErrorHandler ErrorHandler
 		{
 			get { return m_errorHandler; }
-			set 
+			set
 			{
-				if (value == null) 
+				if (value == null)
 				{
 					// We do not throw exception here since the cause is probably a
 					// bad config file.
 					log4net.Util.LogLog.Warn(GetType(), "WmiAppender: You have tried to set a null error-handler.");
-				} 
-				else 
+				}
+				else
 				{
 					m_errorHandler = value;
 				}
@@ -190,7 +190,7 @@
 		/// method will create a default <see cref="WmiLayout"/> instance.
 		/// </para>
 		/// </remarks>
-		public void ActivateOptions() 
+		public void ActivateOptions()
 		{
 			if (m_layout == null)
 			{
@@ -247,7 +247,7 @@
 		/// <summary>
 		/// Checks if the message level is below this appender's threshold.
 		/// </summary>
-		private bool IsAsSevereAsThreshold(Level level) 
+		private bool IsAsSevereAsThreshold(Level level)
 		{
 			return ((m_threshold == null) || level >= m_threshold);
 		}
diff --git a/examples/net/2.0/Appenders/WmiAppender/cs/src/WmiInstaller.cs b/examples/net/2.0/Appenders/WmiAppender/cs/src/WmiInstaller.cs
index 03bb865..3964d33 100644
--- a/examples/net/2.0/Appenders/WmiAppender/cs/src/WmiInstaller.cs
+++ b/examples/net/2.0/Appenders/WmiAppender/cs/src/WmiInstaller.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/examples/net/2.0/Appenders/WmiAppender/cs/src/WmiLayout.cs b/examples/net/2.0/Appenders/WmiAppender/cs/src/WmiLayout.cs
index eaf51d8..810cd73 100644
--- a/examples/net/2.0/Appenders/WmiAppender/cs/src/WmiLayout.cs
+++ b/examples/net/2.0/Appenders/WmiAppender/cs/src/WmiLayout.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -32,7 +32,7 @@
 		/// <returns>an instrumentation event that can be fired</returns>
 		/// <remarks>
 		/// <para>
-		/// If the <see cref="LoggingEvent.MessageObject"/> of the 
+		/// If the <see cref="LoggingEvent.MessageObject"/> of the
 		/// <paramref name="loggingEvent" /> is an <see cref="IEvent"/> then
 		/// that instance is returned. If the instance also implements the
 		/// <see cref="IWmiBoundEvent"/> interface then the <see cref="IWmiBoundEvent.Bind"/>
@@ -40,7 +40,7 @@
 		/// parameter.
 		/// </para>
 		/// <para>
-		/// If the <see cref="LoggingEvent.MessageObject"/> of the 
+		/// If the <see cref="LoggingEvent.MessageObject"/> of the
 		/// <paramref name="loggingEvent" /> is not an <see cref="IEvent"/>
 		/// then the <see cref="CreateEvent"/> method will be called
 		/// to create an appropriate instrumentation event object.
@@ -78,7 +78,7 @@
 		/// instance using the data from the <paramref name="loggingEvent" />.
 		/// </para>
 		/// <para>
-		/// Subclasses should override this method to return their own custom 
+		/// Subclasses should override this method to return their own custom
 		/// instrumentation event object.
 		/// </para>
 		/// </remarks>
diff --git a/examples/net/2.0/Appenders/WmiAppender/cs/src/WmiLoggingEvent.cs b/examples/net/2.0/Appenders/WmiAppender/cs/src/WmiLoggingEvent.cs
index 72efdc8..68802d5 100644
--- a/examples/net/2.0/Appenders/WmiAppender/cs/src/WmiLoggingEvent.cs
+++ b/examples/net/2.0/Appenders/WmiAppender/cs/src/WmiLoggingEvent.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/examples/net/2.0/Extensibility/EventIDLogApp/cs/src/AssemblyInfo.cs b/examples/net/2.0/Extensibility/EventIDLogApp/cs/src/AssemblyInfo.cs
index 04c4115..f525fe8 100644
--- a/examples/net/2.0/Extensibility/EventIDLogApp/cs/src/AssemblyInfo.cs
+++ b/examples/net/2.0/Extensibility/EventIDLogApp/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net extensibility test - EventIDLogApp")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - EventIDLogApp")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/net/2.0/Extensibility/EventIDLogApp/cs/src/EventIDLogApp.cs b/examples/net/2.0/Extensibility/EventIDLogApp/cs/src/EventIDLogApp.cs
index 4406a90..05846f6 100644
--- a/examples/net/2.0/Extensibility/EventIDLogApp/cs/src/EventIDLogApp.cs
+++ b/examples/net/2.0/Extensibility/EventIDLogApp/cs/src/EventIDLogApp.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/examples/net/2.0/Extensibility/TraceLogApp/cs/src/AssemblyInfo.cs b/examples/net/2.0/Extensibility/TraceLogApp/cs/src/AssemblyInfo.cs
index f0acd13..3ea8dc4 100644
--- a/examples/net/2.0/Extensibility/TraceLogApp/cs/src/AssemblyInfo.cs
+++ b/examples/net/2.0/Extensibility/TraceLogApp/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net extensibility test - TraceLogApp")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - TraceLogApp")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/net/2.0/Extensibility/TraceLogApp/cs/src/TraceLogApp.cs b/examples/net/2.0/Extensibility/TraceLogApp/cs/src/TraceLogApp.cs
index 633343f..2fda462 100644
--- a/examples/net/2.0/Extensibility/TraceLogApp/cs/src/TraceLogApp.cs
+++ b/examples/net/2.0/Extensibility/TraceLogApp/cs/src/TraceLogApp.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/AssemblyInfo.cs b/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/AssemblyInfo.cs
index 441569d..bbb175b 100644
--- a/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/AssemblyInfo.cs
+++ b/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net SampleLayoutsApp")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - SampleLayoutsApp")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/Layout/ForwardingLayout.cs b/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/Layout/ForwardingLayout.cs
index 1727bae..cb45880 100644
--- a/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/Layout/ForwardingLayout.cs
+++ b/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/Layout/ForwardingLayout.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -54,13 +54,13 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// <para>
@@ -100,7 +100,7 @@
 		}
 
 		/// <summary>
-		/// The content type output by this layout. 
+		/// The content type output by this layout.
 		/// </summary>
 		/// <value>The content type is <c>"text/plain"</c></value>
 		/// <remarks>
@@ -115,13 +115,13 @@
 		/// </remarks>
 		virtual public string ContentType
 		{
-			get 
+			get
 			{
 				if (m_nestedLayout != null)
 				{
 					return m_nestedLayout.ContentType;
 				}
-				return "text/plain"; 
+				return "text/plain";
 			}
 		}
 
@@ -137,8 +137,8 @@
 		/// </remarks>
 		virtual public string Header
 		{
-			get 
-			{ 
+			get
+			{
 				if (m_nestedLayout != null)
 				{
 					return m_nestedLayout.Header;
@@ -159,8 +159,8 @@
 		/// </remarks>
 		virtual public string Footer
 		{
-			get 
-			{ 
+			get
+			{
 				if (m_nestedLayout != null)
 				{
 					return m_nestedLayout.Footer;
@@ -185,10 +185,10 @@
 		/// value is <c>true</c>, this layout does not handle the exception.
 		/// </para>
 		/// </remarks>
-		virtual public bool IgnoresException 
-		{ 
-			get 
-			{ 
+		virtual public bool IgnoresException
+		{
+			get
+			{
 				if (m_nestedLayout != null)
 				{
 					return m_nestedLayout.IgnoresException;
diff --git a/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelConversionPattern.cs b/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelConversionPattern.cs
index d4d729d..2717f0c 100644
--- a/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelConversionPattern.cs
+++ b/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelConversionPattern.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,21 +21,21 @@
 
 namespace SampleLayoutsApp.Layout
 {
-    public class LevelConversionPattern
-    {
-        private Level level;
-        private string conversionPattern;
+	public class LevelConversionPattern
+	{
+		private Level level;
+		private string conversionPattern;
 
-        public Level Level
-        {
-            get { return level; }
-            set { level = value; }
-        }
+		public Level Level
+		{
+			get { return level; }
+			set { level = value; }
+		}
 
-        public string ConversionPattern
-        {
-            get { return conversionPattern; }
-            set { conversionPattern = value; }
-        }
-    }
+		public string ConversionPattern
+		{
+			get { return conversionPattern; }
+			set { conversionPattern = value; }
+		}
+	}
 }
\ No newline at end of file
diff --git a/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelPatternLayout.cs b/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelPatternLayout.cs
index 2176b91..de2a34d 100644
--- a/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelPatternLayout.cs
+++ b/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelPatternLayout.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -24,27 +24,27 @@
 
 namespace SampleLayoutsApp.Layout
 {
-    public class LevelPatternLayout : PatternLayout
-    {
-        private readonly Hashtable m_levelToPatternLayout = new Hashtable();
+	public class LevelPatternLayout : PatternLayout
+	{
+		private readonly Hashtable m_levelToPatternLayout = new Hashtable();
 
-        public override void Format(TextWriter writer, LoggingEvent loggingEvent)
-        {
-            PatternLayout patternLayout = m_levelToPatternLayout[loggingEvent.Level] as PatternLayout;
+		public override void Format(TextWriter writer, LoggingEvent loggingEvent)
+		{
+			PatternLayout patternLayout = m_levelToPatternLayout[loggingEvent.Level] as PatternLayout;
 
-            if (patternLayout == null)
-            {
-                base.Format(writer, loggingEvent);
-            }
-            else
-            {
-                patternLayout.Format(writer, loggingEvent);
-            }
-        }
+			if (patternLayout == null)
+			{
+				base.Format(writer, loggingEvent);
+			}
+			else
+			{
+				patternLayout.Format(writer, loggingEvent);
+			}
+		}
 
-        public void AddLevelConversionPattern(LevelConversionPattern levelLayout)
-        {
-            m_levelToPatternLayout[levelLayout.Level] = new PatternLayout(levelLayout.ConversionPattern);
-        }
-    }
+		public void AddLevelConversionPattern(LevelConversionPattern levelLayout)
+		{
+			m_levelToPatternLayout[levelLayout.Level] = new PatternLayout(levelLayout.ConversionPattern);
+		}
+	}
 }
diff --git a/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/Layout/LineWrappingLayout.cs b/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/Layout/LineWrappingLayout.cs
index de4f3f1..5195ebd 100644
--- a/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/Layout/LineWrappingLayout.cs
+++ b/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/Layout/LineWrappingLayout.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/LoggingExample.cs b/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/LoggingExample.cs
index c0df309..2cf66de 100644
--- a/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/LoggingExample.cs
+++ b/examples/net/2.0/Layouts/SampleLayoutsApp/cs/src/LoggingExample.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/examples/net/2.0/Performance/NotLogging/cs/src/AssemblyInfo.cs b/examples/net/2.0/Performance/NotLogging/cs/src/AssemblyInfo.cs
index b278ed8..872c53f 100644
--- a/examples/net/2.0/Performance/NotLogging/cs/src/AssemblyInfo.cs
+++ b/examples/net/2.0/Performance/NotLogging/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net performance test - NotLogging")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - NotLogging")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/net/2.0/Performance/NotLogging/cs/src/NotLogging.cs b/examples/net/2.0/Performance/NotLogging/cs/src/NotLogging.cs
index 8b51d80..163e5a4 100644
--- a/examples/net/2.0/Performance/NotLogging/cs/src/NotLogging.cs
+++ b/examples/net/2.0/Performance/NotLogging/cs/src/NotLogging.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -17,7 +17,7 @@
 //
 #endregion
 
-namespace NotLogging 
+namespace NotLogging
 {
 	using System;
 	using System.Collections;
@@ -28,7 +28,7 @@
 	using log4net.Repository;
 	using log4net.Repository.Hierarchy;
 
-	public class NotLogging 
+	public class NotLogging
 	{
 		#region Init Code
 
@@ -44,9 +44,9 @@
 
 
 		static readonly ILog[] LOG_ARRAY = new ILog[] {
-														  SHORT_LOG, 
-														  MEDIUM_LOG, 
-														  LONG_LOG, 
+														  SHORT_LOG,
+														  MEDIUM_LOG,
+														  LONG_LOG,
 														  INEXISTENT_SHORT_LOG,
 														  INEXISTENT_MEDIUM_LOG,
 														  INEXISTENT_LONG_LOG};
@@ -63,13 +63,13 @@
 																	  new ComplexMessage_MemberGuard_Bare(),
 																	  new ComplexMessage_LocalGuard_Bare()};
 
-		private static void Usage() 
+		private static void Usage()
 		{
 			System.Console.WriteLine(
-				"Usage: NotLogging <true|false> <runLength>" + Environment.NewLine +
-				"\t true indicates shipped code" + Environment.NewLine +
-				"\t false indicates code in development" + Environment.NewLine +
-				"\t runLength is an int representing the run length of loops"  + Environment.NewLine +
+				"Usage: NotLogging <true|false> <runLength>" + Environment.NewLine
+				"\t true indicates shipped code" + Environment.NewLine
+				"\t false indicates code in development" + Environment.NewLine
+				"\t runLength is an int representing the run length of loops"  + Environment.NewLine
 				"\t We suggest that runLength be at least 1000000 (1 million).");
 			Environment.Exit(1);
 		}
@@ -79,35 +79,35 @@
 		/// Program wide initialization method
 		/// </summary>
 		/// <param name="args"></param>
-		private static int ProgramInit(String[] args) 
+		private static int ProgramInit(String[] args)
 		{
 			int runLength = 0;
 
-			try 
+			try
 			{
-				runLength = int.Parse(args[1]);      
+				runLength = int.Parse(args[1]);
 			}
-			catch(Exception e) 
+			catch(Exception e)
 			{
 				System.Console.Error.WriteLine(e);
 				Usage();
-			}      
-    
+			}
+
 			ConsoleAppender appender = new ConsoleAppender();
 			appender.Layout = new SimpleLayout();
 			((SimpleLayout)appender.Layout).ActivateOptions();
 			appender.ActivateOptions();
-	    
-			if("false" == args[0]) 
+
+			if("false" == args[0])
 			{
 				// nothing to do
-			} 
-			else if ("true" == args[0]) 
+			}
+			else if ("true" == args[0])
 			{
 				System.Console.WriteLine("Flagging as shipped code.");
 				((Hierarchy)LogManager.GetRepository()).Threshold = log4net.Core.Level.Warn;
-			} 
-			else 
+			}
+			else
 			{
 				Usage();
 			}
@@ -117,22 +117,22 @@
 			((Hierarchy)LogManager.GetRepository()).Root.AddAppender(appender);
 
 			return runLength;
-		}    
-	  
+		}
+
 		#endregion
 
 		/// <summary>
 		/// The main entry point for the application.
 		/// </summary>
 		[STAThread]
-		static void Main(string[] argv) 
+		static void Main(string[] argv)
 		{
-			if (System.Diagnostics.Debugger.IsAttached) 
+			if (System.Diagnostics.Debugger.IsAttached)
 			{
 				WARM_UP_CYCLES = 0;
 				argv = new string[] { "false", "2" };
 			}
-			if(argv.Length != 2) 
+			if(argv.Length != 2)
 			{
 				Usage();
 			}
@@ -142,11 +142,11 @@
 			System.Console.WriteLine();
 			System.Console.Write("Warming Up...");
 
-			if (WARM_UP_CYCLES > 0) 
+			if (WARM_UP_CYCLES > 0)
 			{
-				foreach(ILog logger in LOG_ARRAY) 
+				foreach(ILog logger in LOG_ARRAY)
 				{
-					foreach(TimedTest timedTest in TIMED_TESTS) 
+					foreach(TimedTest timedTest in TIMED_TESTS)
 					{
 						timedTest.Run(logger, WARM_UP_CYCLES);
 					}
@@ -157,7 +157,7 @@
 
 			// Calculate maximum description length
 			int maxDescLen = 0;
-			foreach(TimedTest timedTest in TIMED_TESTS) 
+			foreach(TimedTest timedTest in TIMED_TESTS)
 			{
 				maxDescLen = Math.Max(maxDescLen, timedTest.Description.Length);
 			}
@@ -167,10 +167,10 @@
 
 			ArrayList averageData = new ArrayList();
 
-			foreach(TimedTest timedTest in TIMED_TESTS) 
+			foreach(TimedTest timedTest in TIMED_TESTS)
 			{
 				double total = 0;
-				foreach(ILog logger in LOG_ARRAY) 
+				foreach(ILog logger in LOG_ARRAY)
 				{
 					delta = timedTest.Run(logger, runLength);
 					System.Console.WriteLine(string.Format(formatString, timedTest.Description, delta, ((Logger)logger.Logger).Name));
@@ -185,7 +185,7 @@
 			System.Console.WriteLine("Averages:");
 			System.Console.WriteLine();
 
-			foreach(object[] pair in averageData) 
+			foreach(object[] pair in averageData)
 			{
 				string avgFormatString = "{0,-"+(maxDescLen+1)+"} {1,9:G} ticks.";
 				System.Console.WriteLine(string.Format(avgFormatString, ((TimedTest)pair[0]).Description, ((double)pair[1])));
@@ -193,7 +193,7 @@
 		}
 	}
 
-	abstract class TimedTest 
+	abstract class TimedTest
 	{
 		abstract public double Run(ILog log, long runLength);
 		abstract public string Description {get;}
@@ -201,12 +201,12 @@
 
 	#region Tests calling Debug(string)
 
-	class SimpleMessage_Bare : TimedTest 
+	class SimpleMessage_Bare : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
 				log.Debug("msg");
 			}
@@ -215,39 +215,39 @@
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "log.Debug(\"msg\");"; }
 		}
 	}
-	class ComplexMessage_MethodGuard_Bare : TimedTest 
+	class ComplexMessage_MethodGuard_Bare : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
-				if(log.IsDebugEnabled) 
+				if(log.IsDebugEnabled)
 				{
 					log.Debug("msg" + i + "msg");
 				}
-			}    
+			}
 			DateTime after = DateTime.Now;
 			TimeSpan diff = after - before;
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "if(log.IsDebugEnabled) log.Debug(\"msg\" + i + \"msg\");"; }
 		}
 	}
-	class ComplexMessage_Bare : TimedTest 
+	class ComplexMessage_Bare : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
 				log.Debug("msg" + i + "msg");
 			}
@@ -256,7 +256,7 @@
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "log.Debug(\"msg\" + i + \"msg\");"; }
 		}
@@ -266,12 +266,12 @@
 
 	#region Tests calling Debug(new object[] { ... })
 
-	class SimpleMessage_Array : TimedTest 
+	class SimpleMessage_Array : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
 				log.Debug(new object[] { "msg" });
 			}
@@ -280,39 +280,39 @@
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "log.Debug(new object[] { \"msg\" });"; }
 		}
 	}
-	class ComplexMessage_MethodGuard_Array : TimedTest 
+	class ComplexMessage_MethodGuard_Array : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
-				if(log.IsDebugEnabled) 
+				if(log.IsDebugEnabled)
 				{
 					log.Debug(new object[] { "msg" , i , "msg" });
 				}
-			}    
+			}
 			DateTime after = DateTime.Now;
 			TimeSpan diff = after - before;
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "if(log.IsDebugEnabled) log.Debug(new object[] { \"msg\" , i , \"msg\" });"; }
 		}
 	}
-	class ComplexMessage_Array : TimedTest 
+	class ComplexMessage_Array : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
 				log.Debug(new object[] { "msg" , i , "msg" });
 			}
@@ -321,7 +321,7 @@
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "log.Debug(new object[] { \"msg\" , i , \"msg\" });"; }
 		}
@@ -331,54 +331,54 @@
 
 	#region Tests calling Debug(string) (using class members)
 
-	class ComplexMessage_MemberGuard_Bare : TimedTest 
+	class ComplexMessage_MemberGuard_Bare : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			return (new Impl(log)).Run(runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "if(m_isEnabled) m_log.Debug(\"msg\" + i + \"msg\");"; }
 		}
 
-		class Impl 
+		class Impl
 		{
 			private readonly ILog m_log;
 			private readonly bool m_isEnabled;
 
-			public Impl(ILog log) 
+			public Impl(ILog log)
 			{
 				m_log = log;
 				m_isEnabled = m_log.IsDebugEnabled;
 			}
 
-			public double Run(long runLength) 
+			public double Run(long runLength)
 			{
 
 				DateTime before = DateTime.Now;
-				for(int i = 0; i < runLength; i++) 
+				for(int i = 0; i < runLength; i++)
 				{
-					if(m_isEnabled) 
+					if(m_isEnabled)
 					{
 						m_log.Debug("msg" + i + "msg");
 					}
-				}    
+				}
 				DateTime after = DateTime.Now;
 				TimeSpan diff = after - before;
 				return ((double)diff.Ticks)/((double)runLength);
 			}
 		}
 	}
-	class SimpleMessage_LocalGuard_Bare : TimedTest 
+	class SimpleMessage_LocalGuard_Bare : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			bool isEnabled = log.IsDebugEnabled;
 
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
 				if (isEnabled) log.Debug("msg");
 			}
@@ -387,17 +387,17 @@
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "if (isEnabled) log.Debug(\"msg\");"; }
 		}
 	}
-	class SimpleMessage_MethodGuard_Bare : TimedTest 
+	class SimpleMessage_MethodGuard_Bare : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
 				if (log.IsDebugEnabled) log.Debug("msg");
 			}
@@ -406,32 +406,32 @@
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "if (log.IsDebugEnabled) log.Debug(\"msg\");"; }
 		}
 	}
-	class ComplexMessage_LocalGuard_Bare : TimedTest 
+	class ComplexMessage_LocalGuard_Bare : TimedTest
 	{
-		override public double Run(ILog log, long runLength) 
+		override public double Run(ILog log, long runLength)
 		{
 			bool isEnabled = log.IsDebugEnabled;
 
 			DateTime before = DateTime.Now;
-			for(int i = 0; i < runLength; i++) 
+			for(int i = 0; i < runLength; i++)
 			{
 				if(isEnabled) log.Debug("msg" + i + "msg");
-			}    
+			}
 			DateTime after = DateTime.Now;
 			TimeSpan diff = after - before;
 			return ((double)diff.Ticks)/((double)runLength);
 		}
 
-		override public string Description 
+		override public string Description
 		{
 			get { return "if (isEnabled) log.Debug(\"msg\" + i + \"msg\");"; }
 		}
 	}
-	#endregion 
+	#endregion
 
 }
diff --git a/examples/net/2.0/Remoting/RemotingClient/cs/src/AssemblyInfo.cs b/examples/net/2.0/Remoting/RemotingClient/cs/src/AssemblyInfo.cs
index 32ade26..762360b 100644
--- a/examples/net/2.0/Remoting/RemotingClient/cs/src/AssemblyInfo.cs
+++ b/examples/net/2.0/Remoting/RemotingClient/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net RemotingClient")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - RemotingClient")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/net/2.0/Remoting/RemotingClient/cs/src/RemotingClient.cs b/examples/net/2.0/Remoting/RemotingClient/cs/src/RemotingClient.cs
index c98ed39..5016468 100644
--- a/examples/net/2.0/Remoting/RemotingClient/cs/src/RemotingClient.cs
+++ b/examples/net/2.0/Remoting/RemotingClient/cs/src/RemotingClient.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/examples/net/2.0/Remoting/RemotingServer/cs/src/AssemblyInfo.cs b/examples/net/2.0/Remoting/RemotingServer/cs/src/AssemblyInfo.cs
index 56c2d00..703fc08 100644
--- a/examples/net/2.0/Remoting/RemotingServer/cs/src/AssemblyInfo.cs
+++ b/examples/net/2.0/Remoting/RemotingServer/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net RemotingServer")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - RemotingServer")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/net/2.0/Remoting/RemotingServer/cs/src/RemotingServer.cs b/examples/net/2.0/Remoting/RemotingServer/cs/src/RemotingServer.cs
index c5203f9..78ef338 100644
--- a/examples/net/2.0/Remoting/RemotingServer/cs/src/RemotingServer.cs
+++ b/examples/net/2.0/Remoting/RemotingServer/cs/src/RemotingServer.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/examples/net/2.0/Repository/SharedModule/cs/src/AssemblyInfo.cs b/examples/net/2.0/Repository/SharedModule/cs/src/AssemblyInfo.cs
index ee75642..47fd3d2 100644
--- a/examples/net/2.0/Repository/SharedModule/cs/src/AssemblyInfo.cs
+++ b/examples/net/2.0/Repository/SharedModule/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net SharedModule")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - SharedModule")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/net/2.0/Repository/SharedModule/cs/src/Math.cs b/examples/net/2.0/Repository/SharedModule/cs/src/Math.cs
index 12586b9..f7c30dc 100644
--- a/examples/net/2.0/Repository/SharedModule/cs/src/Math.cs
+++ b/examples/net/2.0/Repository/SharedModule/cs/src/Math.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/examples/net/2.0/Repository/SimpleApp/cs/src/AssemblyInfo.cs b/examples/net/2.0/Repository/SimpleApp/cs/src/AssemblyInfo.cs
index cc3415d..f22f11d 100644
--- a/examples/net/2.0/Repository/SimpleApp/cs/src/AssemblyInfo.cs
+++ b/examples/net/2.0/Repository/SimpleApp/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net SimpleApp")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - SimpleApp")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/net/2.0/Repository/SimpleApp/cs/src/EntryPoint.cs b/examples/net/2.0/Repository/SimpleApp/cs/src/EntryPoint.cs
index 8e55eef..4b384ed 100644
--- a/examples/net/2.0/Repository/SimpleApp/cs/src/EntryPoint.cs
+++ b/examples/net/2.0/Repository/SimpleApp/cs/src/EntryPoint.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -20,8 +20,8 @@
 // Configure logging for this assembly using the 'SimpleApp.exe.log4net' file
 [assembly: log4net.Config.XmlConfigurator(ConfigFileExtension="log4net", Watch=true)]
 
-// The following alias attribute can be used to capture the logging 
-// repository for the 'SimpleModule' assembly. Without specifying this 
+// The following alias attribute can be used to capture the logging
+// repository for the 'SimpleModule' assembly. Without specifying this
 // attribute the logging configuration for the 'SimpleModule' assembly
 // will be read from the 'SimpleModule.dll.log4net' file. When this
 // attribute is specified the configuration will be shared with this
diff --git a/examples/net/2.0/Repository/SimpleModule/cs/src/AssemblyInfo.cs b/examples/net/2.0/Repository/SimpleModule/cs/src/AssemblyInfo.cs
index 1c32a35..21ec7f1 100644
--- a/examples/net/2.0/Repository/SimpleModule/cs/src/AssemblyInfo.cs
+++ b/examples/net/2.0/Repository/SimpleModule/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net SimpleModule")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - SimpleModule")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/net/2.0/Repository/SimpleModule/cs/src/Math.cs b/examples/net/2.0/Repository/SimpleModule/cs/src/Math.cs
index 1ac71d1..1dc5f91 100644
--- a/examples/net/2.0/Repository/SimpleModule/cs/src/Math.cs
+++ b/examples/net/2.0/Repository/SimpleModule/cs/src/Math.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -17,7 +17,7 @@
 //
 #endregion
 
-// We want this assembly to have a seperate logging repository to the 
+// We want this assembly to have a seperate logging repository to the
 // rest of the application. We will configure this repository seperatly.
 [assembly: log4net.Config.Repository("SimpleModule")]
 
diff --git a/examples/net/2.0/Tutorials/ConsoleApp/cs/src/AssemblyInfo.cs b/examples/net/2.0/Tutorials/ConsoleApp/cs/src/AssemblyInfo.cs
index d54589c..7fa9c05 100644
--- a/examples/net/2.0/Tutorials/ConsoleApp/cs/src/AssemblyInfo.cs
+++ b/examples/net/2.0/Tutorials/ConsoleApp/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net ConsoleApp")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - ConsoleApp")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/net/2.0/Tutorials/ConsoleApp/cs/src/LoggingExample.cs b/examples/net/2.0/Tutorials/ConsoleApp/cs/src/LoggingExample.cs
index d1c53d1..a58ea2e 100644
--- a/examples/net/2.0/Tutorials/ConsoleApp/cs/src/LoggingExample.cs
+++ b/examples/net/2.0/Tutorials/ConsoleApp/cs/src/LoggingExample.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -70,7 +70,7 @@
 			{
 				log.Warn("This should have an NDC message");
 
-				// Set a Mapped Diagnostic Context value  
+				// Set a Mapped Diagnostic Context value
 				log4net.MDC.Set("auth", "auth-none");
 				log.Warn("This should have an MDC message for the key 'auth'");
 
diff --git a/examples/net/2.0/Tutorials/WebApp/cs/src/AssemblyInfo.cs b/examples/net/2.0/Tutorials/WebApp/cs/src/AssemblyInfo.cs
index 3880373..ebefb42 100644
--- a/examples/net/2.0/Tutorials/WebApp/cs/src/AssemblyInfo.cs
+++ b/examples/net/2.0/Tutorials/WebApp/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,23 +29,23 @@
 [assembly: AssemblyDescription("log4net WebApp")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - WebApp")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //        When specifying the KeyFile, the location of the KeyFile should be
@@ -53,7 +53,7 @@
 //        directory is dependent on whether you are working with a local or web project.
 //        For local projects, the project output directory is defined as
 //       <Project Directory>\obj\<Configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //        For web projects, the project output directory is defined as
 //       %HOMEPATH%\VSWebCache\<Machine Name>\<Project Directory>\obj\<Configuration>.
diff --git a/examples/net/2.0/Tutorials/WebApp/cs/src/AssemblyVersionInfo.cs b/examples/net/2.0/Tutorials/WebApp/cs/src/AssemblyVersionInfo.cs
index 2c98bcf..ad80283 100644
--- a/examples/net/2.0/Tutorials/WebApp/cs/src/AssemblyVersionInfo.cs
+++ b/examples/net/2.0/Tutorials/WebApp/cs/src/AssemblyVersionInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,11 +21,11 @@
 // Version information for an assembly consists of the following four values:
 //
 //      Major Version
-//      Minor Version 
+//      Minor Version
 //      Build Number
 //      Revision
 //
-// You can specify all the values or you can default the Revision and Build Numbers 
+// 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("1.2.0.30714")]
diff --git a/examples/net/2.0/Tutorials/WebApp/cs/src/Global.asax.cs b/examples/net/2.0/Tutorials/WebApp/cs/src/Global.asax.cs
index b3d9384..0a93c34 100644
--- a/examples/net/2.0/Tutorials/WebApp/cs/src/Global.asax.cs
+++ b/examples/net/2.0/Tutorials/WebApp/cs/src/Global.asax.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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 @@
 // Load the configuration from the 'WebApp.dll.log4net' file
 [assembly: log4net.Config.XmlConfigurator(ConfigFileExtension="log4net", Watch=true)]
 
-namespace WebApp 
+namespace WebApp
 {
 	/// <summary>
 	/// Summary description for Global.
@@ -36,15 +36,15 @@
 		public Global()
 		{
 			InitializeComponent();
-		}	
-		
+		}
+
 		#region Web Form Designer generated code
 		/// <summary>
 		/// Required method for Designer support - do not modify
 		/// the contents of this method with the code editor.
 		/// </summary>
 		private void InitializeComponent()
-		{    
+		{
 		}
 		#endregion
 	}
diff --git a/examples/net/2.0/Tutorials/WebApp/cs/src/WebForm1.aspx.cs b/examples/net/2.0/Tutorials/WebApp/cs/src/WebForm1.aspx.cs
index a4908f3..345cb8c 100644
--- a/examples/net/2.0/Tutorials/WebApp/cs/src/WebForm1.aspx.cs
+++ b/examples/net/2.0/Tutorials/WebApp/cs/src/WebForm1.aspx.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -56,7 +56,7 @@
 
 		protected SimpleModule.Math m_MathAdd = new SimpleModule.Math();
 		protected SharedModule.Math m_MathSub = new SharedModule.Math();
-	
+
 		private void Page_Load(object sender, System.EventArgs e)
 		{
 			// Put user code to initialize the page here
@@ -81,13 +81,13 @@
 			txtSub2.Text = "0";
 			txtSub3.Text = "0";
 		}
-		
+
 		/// <summary>
 		/// Required method for Designer support - do not modify
 		/// the contents of this method with the code editor.
 		/// </summary>
 		private void InitializeComponent()
-		{    
+		{
 			this.btnCalcAdd.Click += new System.EventHandler(this.btnCalcAdd_Click);
 			this.btnCalcSub.Click += new System.EventHandler(this.btnCalcSub_Click);
 			this.Load += new System.EventHandler(this.Page_Load);
@@ -101,7 +101,7 @@
 			int result = m_MathAdd.Add(int.Parse(txtAdd1.Text), int.Parse(txtAdd2.Text));
 
 			if (log.IsInfoEnabled) log.Info("result=[" + result + "]");
-			
+
 			txtAdd3.Text = result.ToString();
 		}
 
@@ -112,7 +112,7 @@
 			int result = m_MathSub.Subtract(int.Parse(txtSub1.Text), int.Parse(txtSub2.Text));
 
 			if (log.IsInfoEnabled) log.Info("result=[" + result + "]");
-			
+
 			txtSub3.Text = result.ToString();
 		}
 	}
diff --git a/examples/netcf/1.0/Tutorials/ConsoleApp/cs/src/AssemblyInfo.cs b/examples/netcf/1.0/Tutorials/ConsoleApp/cs/src/AssemblyInfo.cs
index 5d78024..283e151 100644
--- a/examples/netcf/1.0/Tutorials/ConsoleApp/cs/src/AssemblyInfo.cs
+++ b/examples/netcf/1.0/Tutorials/ConsoleApp/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net ConsoleApp")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - TestApp")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/netcf/1.0/Tutorials/ConsoleApp/cs/src/EntryPoint.cs b/examples/netcf/1.0/Tutorials/ConsoleApp/cs/src/EntryPoint.cs
index d4d8b20..ce4dfb8 100644
--- a/examples/netcf/1.0/Tutorials/ConsoleApp/cs/src/EntryPoint.cs
+++ b/examples/netcf/1.0/Tutorials/ConsoleApp/cs/src/EntryPoint.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -34,7 +34,7 @@
 	/// </para>
 	/// <para>
 	/// The .NET Compact Framework does not support hooking up the <c>AppDomain.ProcessExit</c>
-	/// and <c>AppDomain.DomainUnload</c> events, so log4net must be shutdown manually to 
+	/// and <c>AppDomain.DomainUnload</c> events, so log4net must be shutdown manually to
 	/// free all resources.
 	/// </para>
 	/// </remarks>
@@ -43,7 +43,7 @@
 		/// <summary>
 		/// Application entry point.
 		/// </summary>
-		public static void Main() 
+		public static void Main()
 		{
 			// Uncomment the next line to enable log4net internal debugging
 			// log4net.helpers.LogLog.InternalDebugging = true;
@@ -60,7 +60,7 @@
 			if (log.IsInfoEnabled) log.Info("Application [ConsoleApp] Start");
 
 			// Invoke static LogEvents method on LoggingExample class
-			LoggingExample.LogEvents(); 
+			LoggingExample.LogEvents();
 
 			Console.Write("Press Enter to exit...");
 			Console.ReadLine();
diff --git a/examples/netcf/1.0/Tutorials/ConsoleApp/cs/src/LoggingExample.cs b/examples/netcf/1.0/Tutorials/ConsoleApp/cs/src/LoggingExample.cs
index 16acb08..abb2a71 100644
--- a/examples/netcf/1.0/Tutorials/ConsoleApp/cs/src/LoggingExample.cs
+++ b/examples/netcf/1.0/Tutorials/ConsoleApp/cs/src/LoggingExample.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -22,7 +22,7 @@
 	using System;
 
 	/// <summary>
-	/// Illustrates using log4net to conditionally log events, and 
+	/// Illustrates using log4net to conditionally log events, and
 	/// using log4net to log exceptions, ...
 	/// </summary>
 	public class LoggingExample
@@ -57,7 +57,7 @@
 			{
 				log.Warn("This should have an NDC message");
 
-				// Set a Mapped Diagnostic Context value  
+				// Set a Mapped Diagnostic Context value
 				log4net.MDC.Set("auth", "auth-none");
 				log.Warn("This should have an MDC message for the key 'auth'");
 
diff --git a/examples/sscli/1.0/Repository/SharedModule/cs/src/AssemblyInfo.cs b/examples/sscli/1.0/Repository/SharedModule/cs/src/AssemblyInfo.cs
index 9c40818..0b9f84a 100644
--- a/examples/sscli/1.0/Repository/SharedModule/cs/src/AssemblyInfo.cs
+++ b/examples/sscli/1.0/Repository/SharedModule/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net SharedModule")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - SharedModule")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/sscli/1.0/Repository/SharedModule/cs/src/Math.cs b/examples/sscli/1.0/Repository/SharedModule/cs/src/Math.cs
index 64211dc..e18d269 100644
--- a/examples/sscli/1.0/Repository/SharedModule/cs/src/Math.cs
+++ b/examples/sscli/1.0/Repository/SharedModule/cs/src/Math.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/examples/sscli/1.0/Repository/SimpleApp/cs/src/AssemblyInfo.cs b/examples/sscli/1.0/Repository/SimpleApp/cs/src/AssemblyInfo.cs
index 6dbb861..9f6aec3 100644
--- a/examples/sscli/1.0/Repository/SimpleApp/cs/src/AssemblyInfo.cs
+++ b/examples/sscli/1.0/Repository/SimpleApp/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net SimpleApp")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - SimpleApp")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/sscli/1.0/Repository/SimpleApp/cs/src/EntryPoint.cs b/examples/sscli/1.0/Repository/SimpleApp/cs/src/EntryPoint.cs
index a0b5acf..cdc1224 100644
--- a/examples/sscli/1.0/Repository/SimpleApp/cs/src/EntryPoint.cs
+++ b/examples/sscli/1.0/Repository/SimpleApp/cs/src/EntryPoint.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -20,8 +20,8 @@
 // Configure logging for this assembly using the 'SimpleApp.exe.log4net' file
 [assembly: log4net.Config.XmlConfigurator(ConfigFileExtension="log4net")]
 
-// The following alias attribute can be used to capture the logging 
-// repository for the 'SimpleModule' assembly. Without specifying this 
+// The following alias attribute can be used to capture the logging
+// repository for the 'SimpleModule' assembly. Without specifying this
 // attribute the logging configuration for the 'SimpleModule' assembly
 // will be read from the 'SimpleModule.dll.log4net' file. When this
 // attribute is specified the configuration will be shared with this
diff --git a/examples/sscli/1.0/Repository/SimpleModule/cs/src/AssemblyInfo.cs b/examples/sscli/1.0/Repository/SimpleModule/cs/src/AssemblyInfo.cs
index 62cdc65..ce7dc02 100644
--- a/examples/sscli/1.0/Repository/SimpleModule/cs/src/AssemblyInfo.cs
+++ b/examples/sscli/1.0/Repository/SimpleModule/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net SimpleModule")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net - SimpleModule")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/examples/sscli/1.0/Repository/SimpleModule/cs/src/Math.cs b/examples/sscli/1.0/Repository/SimpleModule/cs/src/Math.cs
index c199bc6..613a5d7 100644
--- a/examples/sscli/1.0/Repository/SimpleModule/cs/src/Math.cs
+++ b/examples/sscli/1.0/Repository/SimpleModule/cs/src/Math.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -17,7 +17,7 @@
 //
 #endregion
 
-// We want this assembly to have a seperate logging repository to the 
+// We want this assembly to have a seperate logging repository to the
 // rest of the application. We will configure this repository seperatly.
 [assembly: log4net.Config.Repository("SimpleModule")]
 
diff --git a/extensions/net/1.0/log4net.Ext.EventID/cs/src/AssemblyInfo.cs b/extensions/net/1.0/log4net.Ext.EventID/cs/src/AssemblyInfo.cs
index 952a350..a76c65e 100644
--- a/extensions/net/1.0/log4net.Ext.EventID/cs/src/AssemblyInfo.cs
+++ b/extensions/net/1.0/log4net.Ext.EventID/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net EventID Extension")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net.Ext.EventID")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/extensions/net/1.0/log4net.Ext.EventID/cs/src/EventIDLogImpl.cs b/extensions/net/1.0/log4net.Ext.EventID/cs/src/EventIDLogImpl.cs
index 8edd7f8..8482e51 100644
--- a/extensions/net/1.0/log4net.Ext.EventID/cs/src/EventIDLogImpl.cs
+++ b/extensions/net/1.0/log4net.Ext.EventID/cs/src/EventIDLogImpl.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/extensions/net/1.0/log4net.Ext.EventID/cs/src/EventIDLogManager.cs b/extensions/net/1.0/log4net.Ext.EventID/cs/src/EventIDLogManager.cs
index a5d2798..ab6b092 100644
--- a/extensions/net/1.0/log4net.Ext.EventID/cs/src/EventIDLogManager.cs
+++ b/extensions/net/1.0/log4net.Ext.EventID/cs/src/EventIDLogManager.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -63,7 +63,7 @@
 		/// </remarks>
 		/// <param name="name">The fully qualified logger name to look for</param>
 		/// <returns>The logger found, or null</returns>
-		public static IEventIDLog Exists(string name) 
+		public static IEventIDLog Exists(string name)
 		{
 			return Exists(Assembly.GetCallingAssembly(), name);
 		}
@@ -79,7 +79,7 @@
 		/// <param name="domain">the domain to lookup in</param>
 		/// <param name="name">The fully qualified logger name to look for</param>
 		/// <returns>The logger found, or null</returns>
-		public static IEventIDLog Exists(string domain, string name) 
+		public static IEventIDLog Exists(string domain, string name)
 		{
 			return WrapLogger(LoggerManager.Exists(domain, name));
 		}
@@ -95,7 +95,7 @@
 		/// <param name="assembly">the assembly to use to lookup the domain</param>
 		/// <param name="name">The fully qualified logger name to look for</param>
 		/// <returns>The logger found, or null</returns>
-		public static IEventIDLog Exists(Assembly assembly, string name) 
+		public static IEventIDLog Exists(Assembly assembly, string name)
 		{
 			return WrapLogger(LoggerManager.Exists(assembly, name));
 		}
@@ -146,7 +146,7 @@
 		/// parameter. If the named logger already exists, then the
 		/// existing instance will be returned. Otherwise, a new instance is
 		/// created.</para>
-		/// 
+		///
 		/// <para>By default, loggers do not have a set level but inherit
 		/// it from the hierarchy. This is one of the central features of
 		/// log4net.</para>
@@ -166,7 +166,7 @@
 		/// parameter. If the named logger already exists, then the
 		/// existing instance will be returned. Otherwise, a new instance is
 		/// created.</para>
-		/// 
+		///
 		/// <para>By default, loggers do not have a set level but inherit
 		/// it from the hierarchy. This is one of the central features of
 		/// log4net.</para>
@@ -187,7 +187,7 @@
 		/// parameter. If the named logger already exists, then the
 		/// existing instance will be returned. Otherwise, a new instance is
 		/// created.</para>
-		/// 
+		///
 		/// <para>By default, loggers do not have a set level but inherit
 		/// it from the hierarchy. This is one of the central features of
 		/// log4net.</para>
@@ -198,7 +198,7 @@
 		public static IEventIDLog GetLogger(Assembly assembly, string name)
 		{
 			return WrapLogger(LoggerManager.GetLogger(assembly, name));
-		}	
+		}
 
 		/// <summary>
 		/// Shorthand for <see cref="M:LogManager.GetLogger(string)"/>.
@@ -206,10 +206,10 @@
 		/// <remarks>
 		/// Get the logger for the fully qualified name of the type specified.
 		/// </remarks>
-		/// <param name="type">The full name of <paramref name="type"/> will 
+		/// <param name="type">The full name of <paramref name="type"/> will
 		/// be used as the name of the logger to retrieve.</param>
 		/// <returns>the logger with the name specified</returns>
-		public static IEventIDLog GetLogger(Type type) 
+		public static IEventIDLog GetLogger(Type type)
 		{
 			return GetLogger(Assembly.GetCallingAssembly(), type.FullName);
 		}
@@ -221,10 +221,10 @@
 		/// Get the logger for the fully qualified name of the type specified.
 		/// </remarks>
 		/// <param name="domain">the domain to lookup in</param>
-		/// <param name="type">The full name of <paramref name="type"/> will 
+		/// <param name="type">The full name of <paramref name="type"/> will
 		/// be used as the name of the logger to retrieve.</param>
 		/// <returns>the logger with the name specified</returns>
-		public static IEventIDLog GetLogger(string domain, Type type) 
+		public static IEventIDLog GetLogger(string domain, Type type)
 		{
 			return WrapLogger(LoggerManager.GetLogger(domain, type));
 		}
@@ -236,10 +236,10 @@
 		/// Get the logger for the fully qualified name of the type specified.
 		/// </remarks>
 		/// <param name="assembly">the assembly to use to lookup the domain</param>
-		/// <param name="type">The full name of <paramref name="type"/> will 
+		/// <param name="type">The full name of <paramref name="type"/> will
 		/// be used as the name of the logger to retrieve.</param>
 		/// <returns>the logger with the name specified</returns>
-		public static IEventIDLog GetLogger(Assembly assembly, Type type) 
+		public static IEventIDLog GetLogger(Assembly assembly, Type type)
 		{
 			return WrapLogger(LoggerManager.GetLogger(assembly, type));
 		}
diff --git a/extensions/net/1.0/log4net.Ext.EventID/cs/src/IEventIDLog.cs b/extensions/net/1.0/log4net.Ext.EventID/cs/src/IEventIDLog.cs
index fb275bb..a173b7b 100644
--- a/extensions/net/1.0/log4net.Ext.EventID/cs/src/IEventIDLog.cs
+++ b/extensions/net/1.0/log4net.Ext.EventID/cs/src/IEventIDLog.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/extensions/net/1.0/log4net.Ext.MarshalByRef/cs/src/AssemblyInfo.cs b/extensions/net/1.0/log4net.Ext.MarshalByRef/cs/src/AssemblyInfo.cs
index a8055dd..59b2a95 100644
--- a/extensions/net/1.0/log4net.Ext.MarshalByRef/cs/src/AssemblyInfo.cs
+++ b/extensions/net/1.0/log4net.Ext.MarshalByRef/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net MarshalByRef Extension")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net.Ext.MarshalByRef")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/extensions/net/1.0/log4net.Ext.MarshalByRef/cs/src/MarshalByRefLogImpl.cs b/extensions/net/1.0/log4net.Ext.MarshalByRef/cs/src/MarshalByRefLogImpl.cs
index feb5b90..c29b00d 100644
--- a/extensions/net/1.0/log4net.Ext.MarshalByRef/cs/src/MarshalByRefLogImpl.cs
+++ b/extensions/net/1.0/log4net.Ext.MarshalByRef/cs/src/MarshalByRefLogImpl.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -82,17 +82,17 @@
 
 		#region Implementation of ILog
 
-		public void Debug(object message) 
+		public void Debug(object message)
 		{
 			Logger.Log(ThisDeclaringType, m_levelDebug, message, null);
 		}
 
-		public void Debug(object message, Exception t) 
+		public void Debug(object message, Exception t)
 		{
 			Logger.Log(ThisDeclaringType, m_levelDebug, message, t);
 		}
 
-		public void DebugFormat(string format, params object[] args) 
+		public void DebugFormat(string format, params object[] args)
 		{
 			if (IsDebugEnabled)
 			{
@@ -100,7 +100,7 @@
 			}
 		}
 
-		public void DebugFormat(string format, object arg0) 
+		public void DebugFormat(string format, object arg0)
 		{
 			if (IsDebugEnabled)
 			{
@@ -108,7 +108,7 @@
 			}
 		}
 
-		public void DebugFormat(string format, object arg0, object arg1) 
+		public void DebugFormat(string format, object arg0, object arg1)
 		{
 			if (IsDebugEnabled)
 			{
@@ -116,7 +116,7 @@
 			}
 		}
 
-		public void DebugFormat(string format, object arg0, object arg1, object arg2) 
+		public void DebugFormat(string format, object arg0, object arg1, object arg2)
 		{
 			if (IsDebugEnabled)
 			{
@@ -124,7 +124,7 @@
 			}
 		}
 
-		public void DebugFormat(IFormatProvider provider, string format, params object[] args) 
+		public void DebugFormat(IFormatProvider provider, string format, params object[] args)
 		{
 			if (IsDebugEnabled)
 			{
@@ -132,17 +132,17 @@
 			}
 		}
 
-		public void Info(object message) 
+		public void Info(object message)
 		{
 			Logger.Log(ThisDeclaringType, m_levelInfo, message, null);
 		}
-  
-		public void Info(object message, Exception t) 
+
+		public void Info(object message, Exception t)
 		{
 			Logger.Log(ThisDeclaringType, m_levelInfo, message, t);
 		}
 
-		public void InfoFormat(string format, params object[] args) 
+		public void InfoFormat(string format, params object[] args)
 		{
 			if (IsInfoEnabled)
 			{
@@ -150,7 +150,7 @@
 			}
 		}
 
-		public void InfoFormat(string format, object arg0) 
+		public void InfoFormat(string format, object arg0)
 		{
 			if (IsInfoEnabled)
 			{
@@ -158,7 +158,7 @@
 			}
 		}
 
-		public void InfoFormat(string format, object arg0, object arg1) 
+		public void InfoFormat(string format, object arg0, object arg1)
 		{
 			if (IsInfoEnabled)
 			{
@@ -166,7 +166,7 @@
 			}
 		}
 
-		public void InfoFormat(string format, object arg0, object arg1, object arg2) 
+		public void InfoFormat(string format, object arg0, object arg1, object arg2)
 		{
 			if (IsInfoEnabled)
 			{
@@ -174,7 +174,7 @@
 			}
 		}
 
-		public void InfoFormat(IFormatProvider provider, string format, params object[] args) 
+		public void InfoFormat(IFormatProvider provider, string format, params object[] args)
 		{
 			if (IsInfoEnabled)
 			{
@@ -182,17 +182,17 @@
 			}
 		}
 
-		public void Warn(object message) 
+		public void Warn(object message)
 		{
 			Logger.Log(ThisDeclaringType, m_levelWarn, message, null);
 		}
-  
-		public void Warn(object message, Exception t) 
+
+		public void Warn(object message, Exception t)
 		{
 			Logger.Log(ThisDeclaringType, m_levelWarn, message, t);
 		}
 
-		public void WarnFormat(string format, params object[] args) 
+		public void WarnFormat(string format, params object[] args)
 		{
 			if (IsWarnEnabled)
 			{
@@ -200,7 +200,7 @@
 			}
 		}
 
-		public void WarnFormat(string format, object arg0) 
+		public void WarnFormat(string format, object arg0)
 		{
 			if (IsWarnEnabled)
 			{
@@ -208,7 +208,7 @@
 			}
 		}
 
-		public void WarnFormat(string format, object arg0, object arg1) 
+		public void WarnFormat(string format, object arg0, object arg1)
 		{
 			if (IsWarnEnabled)
 			{
@@ -216,7 +216,7 @@
 			}
 		}
 
-		public void WarnFormat(string format, object arg0, object arg1, object arg2) 
+		public void WarnFormat(string format, object arg0, object arg1, object arg2)
 		{
 			if (IsWarnEnabled)
 			{
@@ -224,7 +224,7 @@
 			}
 		}
 
-		public void WarnFormat(IFormatProvider provider, string format, params object[] args) 
+		public void WarnFormat(IFormatProvider provider, string format, params object[] args)
 		{
 			if (IsWarnEnabled)
 			{
@@ -232,17 +232,17 @@
 			}
 		}
 
-		public void Error(object message) 
+		public void Error(object message)
 		{
 			Logger.Log(ThisDeclaringType, m_levelError, message, null);
 		}
 
-		public void Error(object message, Exception t) 
+		public void Error(object message, Exception t)
 		{
 			Logger.Log(ThisDeclaringType, m_levelError, message, t);
 		}
 
-		public void ErrorFormat(string format, params object[] args) 
+		public void ErrorFormat(string format, params object[] args)
 		{
 			if (IsErrorEnabled)
 			{
@@ -250,7 +250,7 @@
 			}
 		}
 
-		public void ErrorFormat(string format, object arg0) 
+		public void ErrorFormat(string format, object arg0)
 		{
 			if (IsErrorEnabled)
 			{
@@ -258,7 +258,7 @@
 			}
 		}
 
-		public void ErrorFormat(string format, object arg0, object arg1) 
+		public void ErrorFormat(string format, object arg0, object arg1)
 		{
 			if (IsErrorEnabled)
 			{
@@ -266,7 +266,7 @@
 			}
 		}
 
-		public void ErrorFormat(string format, object arg0, object arg1, object arg2) 
+		public void ErrorFormat(string format, object arg0, object arg1, object arg2)
 		{
 			if (IsErrorEnabled)
 			{
@@ -274,7 +274,7 @@
 			}
 		}
 
-		public void ErrorFormat(IFormatProvider provider, string format, params object[] args) 
+		public void ErrorFormat(IFormatProvider provider, string format, params object[] args)
 		{
 			if (IsErrorEnabled)
 			{
@@ -282,17 +282,17 @@
 			}
 		}
 
-		public void Fatal(object message) 
+		public void Fatal(object message)
 		{
 			Logger.Log(ThisDeclaringType, m_levelFatal, message, null);
 		}
-  
-		public void Fatal(object message, Exception t) 
+
+		public void Fatal(object message, Exception t)
 		{
 			Logger.Log(ThisDeclaringType, m_levelFatal, message, t);
 		}
 
-		public void FatalFormat(string format, params object[] args) 
+		public void FatalFormat(string format, params object[] args)
 		{
 			if (IsFatalEnabled)
 			{
@@ -300,7 +300,7 @@
 			}
 		}
 
-		public void FatalFormat(string format, object arg0) 
+		public void FatalFormat(string format, object arg0)
 		{
 			if (IsFatalEnabled)
 			{
@@ -308,7 +308,7 @@
 			}
 		}
 
-		public void FatalFormat(string format, object arg0, object arg1) 
+		public void FatalFormat(string format, object arg0, object arg1)
 		{
 			if (IsFatalEnabled)
 			{
@@ -316,7 +316,7 @@
 			}
 		}
 
-		public void FatalFormat(string format, object arg0, object arg1, object arg2) 
+		public void FatalFormat(string format, object arg0, object arg1, object arg2)
 		{
 			if (IsFatalEnabled)
 			{
@@ -324,7 +324,7 @@
 			}
 		}
 
-		public void FatalFormat(IFormatProvider provider, string format, params object[] args) 
+		public void FatalFormat(IFormatProvider provider, string format, params object[] args)
 		{
 			if (IsFatalEnabled)
 			{
@@ -336,7 +336,7 @@
 		{
 			get { return Logger.IsEnabledFor(m_levelDebug); }
 		}
-  
+
 		public bool IsInfoEnabled
 		{
 			get { return Logger.IsEnabledFor(m_levelInfo); }
diff --git a/extensions/net/1.0/log4net.Ext.MarshalByRef/cs/src/MarshalByRefLogManager.cs b/extensions/net/1.0/log4net.Ext.MarshalByRef/cs/src/MarshalByRefLogManager.cs
index b88692c..5450794 100644
--- a/extensions/net/1.0/log4net.Ext.MarshalByRef/cs/src/MarshalByRefLogManager.cs
+++ b/extensions/net/1.0/log4net.Ext.MarshalByRef/cs/src/MarshalByRefLogManager.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -66,7 +66,7 @@
 		/// </remarks>
 		/// <param name="name">The fully qualified logger name to look for</param>
 		/// <returns>The logger found, or null</returns>
-		public static ILog Exists(string name) 
+		public static ILog Exists(string name)
 		{
 			return Exists(Assembly.GetCallingAssembly(), name);
 		}
@@ -82,7 +82,7 @@
 		/// <param name="domain">the domain to lookup in</param>
 		/// <param name="name">The fully qualified logger name to look for</param>
 		/// <returns>The logger found, or null</returns>
-		public static ILog Exists(string domain, string name) 
+		public static ILog Exists(string domain, string name)
 		{
 			return WrapLogger(LoggerManager.Exists(domain, name));
 		}
@@ -98,7 +98,7 @@
 		/// <param name="assembly">the assembly to use to lookup the domain</param>
 		/// <param name="name">The fully qualified logger name to look for</param>
 		/// <returns>The logger found, or null</returns>
-		public static ILog Exists(Assembly assembly, string name) 
+		public static ILog Exists(Assembly assembly, string name)
 		{
 			return WrapLogger(LoggerManager.Exists(assembly, name));
 		}
@@ -149,7 +149,7 @@
 		/// parameter. If the named logger already exists, then the
 		/// existing instance will be returned. Otherwise, a new instance is
 		/// created.</para>
-		/// 
+		///
 		/// <para>By default, loggers do not have a set level but inherit
 		/// it from the hierarchy. This is one of the central features of
 		/// log4net.</para>
@@ -169,7 +169,7 @@
 		/// parameter. If the named logger already exists, then the
 		/// existing instance will be returned. Otherwise, a new instance is
 		/// created.</para>
-		/// 
+		///
 		/// <para>By default, loggers do not have a set level but inherit
 		/// it from the hierarchy. This is one of the central features of
 		/// log4net.</para>
@@ -190,7 +190,7 @@
 		/// parameter. If the named logger already exists, then the
 		/// existing instance will be returned. Otherwise, a new instance is
 		/// created.</para>
-		/// 
+		///
 		/// <para>By default, loggers do not have a set level but inherit
 		/// it from the hierarchy. This is one of the central features of
 		/// log4net.</para>
@@ -201,7 +201,7 @@
 		public static ILog GetLogger(Assembly assembly, string name)
 		{
 			return WrapLogger(LoggerManager.GetLogger(assembly, name));
-		}	
+		}
 
 		/// <summary>
 		/// Shorthand for <see cref="M:LogManager.GetLogger(string)"/>.
@@ -209,10 +209,10 @@
 		/// <remarks>
 		/// Get the logger for the fully qualified name of the type specified.
 		/// </remarks>
-		/// <param name="type">The full name of <paramref name="type"/> will 
+		/// <param name="type">The full name of <paramref name="type"/> will
 		/// be used as the name of the logger to retrieve.</param>
 		/// <returns>the logger with the name specified</returns>
-		public static ILog GetLogger(Type type) 
+		public static ILog GetLogger(Type type)
 		{
 			return GetLogger(Assembly.GetCallingAssembly(), type.FullName);
 		}
@@ -224,10 +224,10 @@
 		/// Get the logger for the fully qualified name of the type specified.
 		/// </remarks>
 		/// <param name="domain">the domain to lookup in</param>
-		/// <param name="type">The full name of <paramref name="type"/> will 
+		/// <param name="type">The full name of <paramref name="type"/> will
 		/// be used as the name of the logger to retrieve.</param>
 		/// <returns>the logger with the name specified</returns>
-		public static ILog GetLogger(string domain, Type type) 
+		public static ILog GetLogger(string domain, Type type)
 		{
 			return WrapLogger(LoggerManager.GetLogger(domain, type));
 		}
@@ -239,10 +239,10 @@
 		/// Get the logger for the fully qualified name of the type specified.
 		/// </remarks>
 		/// <param name="assembly">the assembly to use to lookup the domain</param>
-		/// <param name="type">The full name of <paramref name="type"/> will 
+		/// <param name="type">The full name of <paramref name="type"/> will
 		/// be used as the name of the logger to retrieve.</param>
 		/// <returns>the logger with the name specified</returns>
-		public static ILog GetLogger(Assembly assembly, Type type) 
+		public static ILog GetLogger(Assembly assembly, Type type)
 		{
 			return WrapLogger(LoggerManager.GetLogger(assembly, type));
 		}
diff --git a/extensions/net/1.0/log4net.Ext.Trace/cs/src/AssemblyInfo.cs b/extensions/net/1.0/log4net.Ext.Trace/cs/src/AssemblyInfo.cs
index 5607beb..1a73858 100644
--- a/extensions/net/1.0/log4net.Ext.Trace/cs/src/AssemblyInfo.cs
+++ b/extensions/net/1.0/log4net.Ext.Trace/cs/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 using System.Runtime.CompilerServices;
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -29,29 +29,29 @@
 [assembly: AssemblyDescription("log4net Trace Extension")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyProduct("log4net.Ext.Trace")]
-[assembly: AssemblyCulture("")]		
+[assembly: AssemblyCulture("")]
 
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/extensions/net/1.0/log4net.Ext.Trace/cs/src/ITraceLog.cs b/extensions/net/1.0/log4net.Ext.Trace/cs/src/ITraceLog.cs
index d5b107c..da5e4fd 100644
--- a/extensions/net/1.0/log4net.Ext.Trace/cs/src/ITraceLog.cs
+++ b/extensions/net/1.0/log4net.Ext.Trace/cs/src/ITraceLog.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -27,7 +27,7 @@
 	{
 		void Trace(object message);
 		void Trace(object message, Exception t);
-		void TraceFormat(string format, params object[] args); 
+		void TraceFormat(string format, params object[] args);
 		bool IsTraceEnabled { get; }
 	}
 }
diff --git a/extensions/net/1.0/log4net.Ext.Trace/cs/src/TraceLogImpl.cs b/extensions/net/1.0/log4net.Ext.Trace/cs/src/TraceLogImpl.cs
index 7c86594..09b5d34 100644
--- a/extensions/net/1.0/log4net.Ext.Trace/cs/src/TraceLogImpl.cs
+++ b/extensions/net/1.0/log4net.Ext.Trace/cs/src/TraceLogImpl.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -36,12 +36,12 @@
 		/// The default value for the TRACE level
 		/// </summary>
 		private readonly static Level s_defaultLevelTrace = new Level(20000, "TRACE");
-		
+
 		/// <summary>
 		/// The current value for the TRACE level
 		/// </summary>
 		private Level m_levelTrace;
-		
+
 
 		public TraceLogImpl(ILogger logger) : base(logger)
 		{
diff --git a/extensions/net/1.0/log4net.Ext.Trace/cs/src/TraceLogManager.cs b/extensions/net/1.0/log4net.Ext.Trace/cs/src/TraceLogManager.cs
index 0299407..1d4ad38 100644
--- a/extensions/net/1.0/log4net.Ext.Trace/cs/src/TraceLogManager.cs
+++ b/extensions/net/1.0/log4net.Ext.Trace/cs/src/TraceLogManager.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -63,7 +63,7 @@
 		/// </remarks>
 		/// <param name="name">The fully qualified logger name to look for</param>
 		/// <returns>The logger found, or null</returns>
-		public static ITraceLog Exists(string name) 
+		public static ITraceLog Exists(string name)
 		{
 			return Exists(Assembly.GetCallingAssembly(), name);
 		}
@@ -79,7 +79,7 @@
 		/// <param name="domain">the domain to lookup in</param>
 		/// <param name="name">The fully qualified logger name to look for</param>
 		/// <returns>The logger found, or null</returns>
-		public static ITraceLog Exists(string domain, string name) 
+		public static ITraceLog Exists(string domain, string name)
 		{
 			return WrapLogger(LoggerManager.Exists(domain, name));
 		}
@@ -95,7 +95,7 @@
 		/// <param name="assembly">the assembly to use to lookup the domain</param>
 		/// <param name="name">The fully qualified logger name to look for</param>
 		/// <returns>The logger found, or null</returns>
-		public static ITraceLog Exists(Assembly assembly, string name) 
+		public static ITraceLog Exists(Assembly assembly, string name)
 		{
 			return WrapLogger(LoggerManager.Exists(assembly, name));
 		}
@@ -146,7 +146,7 @@
 		/// parameter. If the named logger already exists, then the
 		/// existing instance will be returned. Otherwise, a new instance is
 		/// created.</para>
-		/// 
+		///
 		/// <para>By default, loggers do not have a set level but inherit
 		/// it from the hierarchy. This is one of the central features of
 		/// log4net.</para>
@@ -166,7 +166,7 @@
 		/// parameter. If the named logger already exists, then the
 		/// existing instance will be returned. Otherwise, a new instance is
 		/// created.</para>
-		/// 
+		///
 		/// <para>By default, loggers do not have a set level but inherit
 		/// it from the hierarchy. This is one of the central features of
 		/// log4net.</para>
@@ -187,7 +187,7 @@
 		/// parameter. If the named logger already exists, then the
 		/// existing instance will be returned. Otherwise, a new instance is
 		/// created.</para>
-		/// 
+		///
 		/// <para>By default, loggers do not have a set level but inherit
 		/// it from the hierarchy. This is one of the central features of
 		/// log4net.</para>
@@ -198,7 +198,7 @@
 		public static ITraceLog GetLogger(Assembly assembly, string name)
 		{
 			return WrapLogger(LoggerManager.GetLogger(assembly, name));
-		}	
+		}
 
 		/// <summary>
 		/// Shorthand for <see cref="M:LogManager.GetLogger(string)"/>.
@@ -206,10 +206,10 @@
 		/// <remarks>
 		/// Get the logger for the fully qualified name of the type specified.
 		/// </remarks>
-		/// <param name="type">The full name of <paramref name="type"/> will 
+		/// <param name="type">The full name of <paramref name="type"/> will
 		/// be used as the name of the logger to retrieve.</param>
 		/// <returns>the logger with the name specified</returns>
-		public static ITraceLog GetLogger(Type type) 
+		public static ITraceLog GetLogger(Type type)
 		{
 			return GetLogger(Assembly.GetCallingAssembly(), type.FullName);
 		}
@@ -221,10 +221,10 @@
 		/// Get the logger for the fully qualified name of the type specified.
 		/// </remarks>
 		/// <param name="domain">the domain to lookup in</param>
-		/// <param name="type">The full name of <paramref name="type"/> will 
+		/// <param name="type">The full name of <paramref name="type"/> will
 		/// be used as the name of the logger to retrieve.</param>
 		/// <returns>the logger with the name specified</returns>
-		public static ITraceLog GetLogger(string domain, Type type) 
+		public static ITraceLog GetLogger(string domain, Type type)
 		{
 			return WrapLogger(LoggerManager.GetLogger(domain, type));
 		}
@@ -236,10 +236,10 @@
 		/// Get the logger for the fully qualified name of the type specified.
 		/// </remarks>
 		/// <param name="assembly">the assembly to use to lookup the domain</param>
-		/// <param name="type">The full name of <paramref name="type"/> will 
+		/// <param name="type">The full name of <paramref name="type"/> will
 		/// be used as the name of the logger to retrieve.</param>
 		/// <returns>the logger with the name specified</returns>
-		public static ITraceLog GetLogger(Assembly assembly, Type type) 
+		public static ITraceLog GetLogger(Assembly assembly, Type type)
 		{
 			return WrapLogger(LoggerManager.GetLogger(assembly, type));
 		}
diff --git a/netstandard/log4net.tests/ApplicationException.cs b/netstandard/log4net.tests/ApplicationException.cs
index 695eeb8..30bfe37 100644
--- a/netstandard/log4net.tests/ApplicationException.cs
+++ b/netstandard/log4net.tests/ApplicationException.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,7 +21,7 @@
 
 namespace log4net.Tests
 {
-    public class ApplicationException : Exception
-    {
-    }
+	public class ApplicationException : Exception
+	{
+	}
 }
diff --git a/netstandard/log4net.tests/CompatibilityExtensions.cs b/netstandard/log4net.tests/CompatibilityExtensions.cs
index 47ce22f..a634ed0 100644
--- a/netstandard/log4net.tests/CompatibilityExtensions.cs
+++ b/netstandard/log4net.tests/CompatibilityExtensions.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -24,15 +24,15 @@
 
 namespace log4net
 {
-    internal static class CompatibilityExtensions
-    {
-        public static void Close(this Mutex mutex) => mutex.Dispose();
-        public static void Close(this Stream stream) => stream.Dispose();
-        public static void Close(this StreamReader streamReader) => streamReader.Dispose();
+	internal static class CompatibilityExtensions
+	{
+		public static void Close(this Mutex mutex) => mutex.Dispose();
+		public static void Close(this Stream stream) => stream.Dispose();
+		public static void Close(this StreamReader streamReader) => streamReader.Dispose();
 
-        public static ConstructorInfo GetConstructor(this Type type, BindingFlags bindingAttr, object binder, Type[] types, object[] modifiers)
-        {
-            return type.GetConstructor(types);
-        }
-    }
+		public static ConstructorInfo GetConstructor(this Type type, BindingFlags bindingAttr, object binder, Type[] types, object[] modifiers)
+		{
+			return type.GetConstructor(types);
+		}
+	}
 }
diff --git a/netstandard/log4net.tests/ExpectedExceptionAttribute.cs b/netstandard/log4net.tests/ExpectedExceptionAttribute.cs
index d51c05c..771922a 100644
--- a/netstandard/log4net.tests/ExpectedExceptionAttribute.cs
+++ b/netstandard/log4net.tests/ExpectedExceptionAttribute.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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,60 +26,60 @@
 
 namespace NUnit.Framework
 {
-    /// <summary>
-    /// A simple ExpectedExceptionAttribute
-    /// </summary>
-    [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
-    public class ExpectedExceptionAttribute : NUnitAttribute, IWrapTestMethod
-    {
-        private readonly Type _expectedExceptionType;
+	/// <summary>
+	/// A simple ExpectedExceptionAttribute
+	/// </summary>
+	[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
+	public class ExpectedExceptionAttribute : NUnitAttribute, IWrapTestMethod
+	{
+		private readonly Type _expectedExceptionType;
 
-        public ExpectedExceptionAttribute(Type type)
-        {
-            _expectedExceptionType = type;
-        }
+		public ExpectedExceptionAttribute(Type type)
+		{
+			_expectedExceptionType = type;
+		}
 
-        public TestCommand Wrap(TestCommand command)
-        {
-            return new ExpectedExceptionCommand(command, _expectedExceptionType);
-        }
+		public TestCommand Wrap(TestCommand command)
+		{
+			return new ExpectedExceptionCommand(command, _expectedExceptionType);
+		}
 
-        private class ExpectedExceptionCommand : DelegatingTestCommand
-        {
-            private readonly Type _expectedType;
+		private class ExpectedExceptionCommand : DelegatingTestCommand
+		{
+			private readonly Type _expectedType;
 
-            public ExpectedExceptionCommand(TestCommand innerCommand, Type expectedType)
-                : base(innerCommand)
-            {
-                _expectedType = expectedType;
-            }
+			public ExpectedExceptionCommand(TestCommand innerCommand, Type expectedType)
+				: base(innerCommand)
+			{
+				_expectedType = expectedType;
+			}
 
-            public override TestResult Execute(TestExecutionContext context)
-            {
-                Type caughtType = null;
+			public override TestResult Execute(TestExecutionContext context)
+			{
+				Type caughtType = null;
 
-                try
-                {
-                    innerCommand.Execute(context);
-                }
-                catch (Exception ex)
-                {
-                    if (ex is NUnitException)
-                        ex = ex.InnerException;
-                    caughtType = ex.GetType();
-                }
+				try
+				{
+					innerCommand.Execute(context);
+				}
+				catch (Exception ex)
+				{
+					if (ex is NUnitException)
+						ex = ex.InnerException;
+					caughtType = ex.GetType();
+				}
 
-                if (caughtType == _expectedType)
-                    context.CurrentResult.SetResult(ResultState.Success);
-                else if (caughtType != null)
-                    context.CurrentResult.SetResult(ResultState.Failure,
-                        string.Format("Expected {0} but got {1}", _expectedType.Name, caughtType.Name));
-                else
-                    context.CurrentResult.SetResult(ResultState.Failure,
-                        string.Format("Expected {0} but no exception was thrown", _expectedType.Name));
+				if (caughtType == _expectedType)
+					context.CurrentResult.SetResult(ResultState.Success);
+				else if (caughtType != null)
+					context.CurrentResult.SetResult(ResultState.Failure,
+						string.Format("Expected {0} but got {1}", _expectedType.Name, caughtType.Name));
+				else
+					context.CurrentResult.SetResult(ResultState.Failure,
+						string.Format("Expected {0} but no exception was thrown", _expectedType.Name));
 
-                return context.CurrentResult;
-            }
-        }
-    }
+				return context.CurrentResult;
+			}
+		}
+	}
 }
diff --git a/netstandard/log4net/CompatibilityExtensions.cs b/netstandard/log4net/CompatibilityExtensions.cs
index c0a9076..48957f2 100644
--- a/netstandard/log4net/CompatibilityExtensions.cs
+++ b/netstandard/log4net/CompatibilityExtensions.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -31,23 +31,23 @@
 
 namespace log4net
 {
-    internal static class CompatibilityExtensions
-    {
-        public static void Close(this Mutex mutex) => mutex.Dispose();
-        public static void Close(this Socket socket) => socket.Dispose();
-        public static void Close(this Stream stream) => stream.Dispose();
-        public static void Close(this StreamWriter streamWriter) => streamWriter.Dispose();
-        public static void Close(this UdpClient client) => client.Dispose();
-        public static void Close(this WebResponse response) => response.Dispose();
-        public static void Close(this XmlWriter xmlWriter) => xmlWriter.Dispose();
+	internal static class CompatibilityExtensions
+	{
+		public static void Close(this Mutex mutex) => mutex.Dispose();
+		public static void Close(this Socket socket) => socket.Dispose();
+		public static void Close(this Stream stream) => stream.Dispose();
+		public static void Close(this StreamWriter streamWriter) => streamWriter.Dispose();
+		public static void Close(this UdpClient client) => client.Dispose();
+		public static void Close(this WebResponse response) => response.Dispose();
+		public static void Close(this XmlWriter xmlWriter) => xmlWriter.Dispose();
 
-        public static Attribute[] GetCustomAttributes(this Type type, Type other, bool inherit) => type.GetTypeInfo().GetCustomAttributes(other, inherit).ToArray();
-        public static bool IsAssignableFrom(this Type type, Type other) => type.GetTypeInfo().IsAssignableFrom(other.GetTypeInfo());
-        public static bool IsSubclassOf(this Type type, Type t) => type.GetTypeInfo().IsSubclassOf(t);
+		public static Attribute[] GetCustomAttributes(this Type type, Type other, bool inherit) => type.GetTypeInfo().GetCustomAttributes(other, inherit).ToArray();
+		public static bool IsAssignableFrom(this Type type, Type other) => type.GetTypeInfo().IsAssignableFrom(other.GetTypeInfo());
+		public static bool IsSubclassOf(this Type type, Type t) => type.GetTypeInfo().IsSubclassOf(t);
 
-        public static string ToLower(this string s, CultureInfo cultureInfo) => cultureInfo.TextInfo.ToLower(s);
-        public static string ToUpper(this string s, CultureInfo cultureInfo) => cultureInfo.TextInfo.ToUpper(s);
-    }
+		public static string ToLower(this string s, CultureInfo cultureInfo) => cultureInfo.TextInfo.ToLower(s);
+		public static string ToUpper(this string s, CultureInfo cultureInfo) => cultureInfo.TextInfo.ToUpper(s);
+	}
 }
 
 #endif
diff --git a/src/Appender/AdoNetAppender.cs b/src/Appender/AdoNetAppender.cs
index 061aece..530d875 100644
--- a/src/Appender/AdoNetAppender.cs
+++ b/src/Appender/AdoNetAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -38,8 +38,8 @@
 	/// <remarks>
 	/// <para>
 	/// <see cref="AdoNetAppender"/> appends logging events to a table within a
-	/// database. The appender can be configured to specify the connection 
-	/// string by setting the <see cref="ConnectionString"/> property. 
+	/// database. The appender can be configured to specify the connection
+	/// string by setting the <see cref="ConnectionString"/> property.
 	/// The connection type (provider) can be specified by setting the <see cref="ConnectionType"/>
 	/// property. For more information on database connection strings for
 	/// your specific database see <a href="http://www.connectionstrings.com/">http://www.connectionstrings.com/</a>.
@@ -69,13 +69,13 @@
 	/// <example>
 	/// An example of a SQL Server table that could be logged to:
 	/// <code lang="SQL">
-	/// CREATE TABLE [dbo].[Log] ( 
+	/// CREATE TABLE [dbo].[Log] (
 	///   [ID] [int] IDENTITY (1, 1) NOT NULL ,
 	///   [Date] [datetime] NOT NULL ,
 	///   [Thread] [varchar] (255) NOT NULL ,
 	///   [Level] [varchar] (20) NOT NULL ,
 	///   [Logger] [varchar] (255) NOT NULL ,
-	///   [Message] [varchar] (4000) NOT NULL 
+	///   [Message] [varchar] (4000) NOT NULL
 	/// ) ON [PRIMARY]
 	/// </code>
 	/// </example>
@@ -126,7 +126,7 @@
 	{
 		#region Public Instance Constructors
 
-		/// <summary> 
+		/// <summary>
 		/// Initializes a new instance of the <see cref="AdoNetAppender" /> class.
 		/// </summary>
 		/// <remarks>
@@ -146,7 +146,7 @@
 		#region Public Instance Properties
 
 		/// <summary>
-		/// Gets or sets the database connection string that is used to connect to 
+		/// Gets or sets the database connection string that is used to connect to
 		/// the database.
 		/// </summary>
 		/// <value>
@@ -214,19 +214,19 @@
 		/// <example>Use the OLE DB Provider. This is the default value.
 		/// <code>System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</code>
 		/// </example>
-		/// <example>Use the MS SQL Server Provider. 
+		/// <example>Use the MS SQL Server Provider.
 		/// <code>System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</code>
 		/// </example>
-		/// <example>Use the ODBC Provider. 
+		/// <example>Use the ODBC Provider.
 		/// <code>Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral</code>
-		/// This is an optional package that you can download from 
-		/// <a href="http://msdn.microsoft.com/downloads">http://msdn.microsoft.com/downloads</a> 
+		/// This is an optional package that you can download from
+		/// <a href="http://msdn.microsoft.com/downloads">http://msdn.microsoft.com/downloads</a>
 		/// search for <b>ODBC .NET Data Provider</b>.
 		/// </example>
-		/// <example>Use the Oracle Provider. 
+		/// <example>Use the Oracle Provider.
 		/// <code>System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</code>
-		/// This is an optional package that you can download from 
-		/// <a href="http://msdn.microsoft.com/downloads">http://msdn.microsoft.com/downloads</a> 
+		/// This is an optional package that you can download from
+		/// <a href="http://msdn.microsoft.com/downloads">http://msdn.microsoft.com/downloads</a>
 		/// search for <b>.NET Managed Provider for Oracle</b>.
 		/// </example>
 		public string ConnectionType
@@ -272,7 +272,7 @@
 		/// <remarks>
 		/// <para>
 		/// This value may be either <see cref="System.Data.CommandType.Text"/> (<c>System.Data.CommandType.Text</c>) to specify
-		/// that the <see cref="CommandText"/> is a prepared statement to execute, 
+		/// that the <see cref="CommandText"/> is a prepared statement to execute,
 		/// or <see cref="System.Data.CommandType.StoredProcedure"/> (<c>System.Data.CommandType.StoredProcedure</c>) to specify that the
 		/// <see cref="CommandText"/> property is the name of a stored procedure
 		/// to execute.
@@ -336,7 +336,7 @@
 		/// </summary>
 		/// <value>
 		/// <c>true</c> if the appender should try to reconnect to the database after an
-		/// error has occurred, otherwise <c>false</c>. The default value is <c>false</c>, 
+		/// error has occurred, otherwise <c>false</c>. The default value is <c>false</c>,
 		/// i.e. not to try to reconnect.
 		/// </value>
 		/// <remarks>
@@ -351,7 +351,7 @@
 		/// <note>
 		/// When the appender attempts to connect to the database there may be a
 		/// delay of up to the connection timeout specified in the connection string.
-		/// This delay will block the calling application's thread. 
+		/// This delay will block the calling application's thread.
 		/// Until the connection can be reestablished this potential delay may occur multiple times.
 		/// </note>
 		/// </remarks>
@@ -372,10 +372,10 @@
 		/// The underlying <see cref="IDbConnection" />.
 		/// </value>
 		/// <remarks>
-		/// <see cref="AdoNetAppender" /> creates a <see cref="IDbConnection" /> to insert 
-		/// logging events into a database.  Classes deriving from <see cref="AdoNetAppender" /> 
-		/// can use this property to get or set this <see cref="IDbConnection" />.  Use the 
-		/// underlying <see cref="IDbConnection" /> returned from <see cref="Connection" /> if 
+		/// <see cref="AdoNetAppender" /> creates a <see cref="IDbConnection" /> to insert
+		/// logging events into a database.  Classes deriving from <see cref="AdoNetAppender" />
+		/// can use this property to get or set this <see cref="IDbConnection" />.  Use the
+		/// underlying <see cref="IDbConnection" /> returned from <see cref="Connection" /> if
 		/// you require access beyond that which <see cref="AdoNetAppender" /> provides.
 		/// </remarks>
 		protected IDbConnection Connection
@@ -394,13 +394,13 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
@@ -599,7 +599,7 @@
 		/// </summary>
 		/// <param name="logEvent">The event being logged.</param>
 		/// <remarks>
-		/// This method can be overridden by subclasses to provide 
+		/// This method can be overridden by subclasses to provide
 		/// more control over the format of the database statement.
 		/// </remarks>
 		/// <returns>
@@ -690,7 +690,7 @@
 		/// <remarks>
 		/// <para>
 		/// Gets the Type of the ADO.NET provider to use to connect to the
-		/// database. This method resolves the type specified in the 
+		/// database. This method resolves the type specified in the
 		/// <see cref="ConnectionType"/> property.
 		/// </para>
 		/// <para>
@@ -718,7 +718,7 @@
 
 		/// <summary>
 		/// Connects to the database.
-		/// </summary>		
+		/// </summary>
 		private void InitializeDatabaseConnection()
 		{
 			string connectionStringContext = "Unable to determine connection string context.";
@@ -923,7 +923,7 @@
 		/// enumeration. See <see cref="IDataParameter.DbType"/>.
 		/// </para>
 		/// <para>
-		/// This property is optional. If not specified the ADO.NET provider 
+		/// This property is optional. If not specified the ADO.NET provider
 		/// will attempt to infer the type from the value.
 		/// </para>
 		/// </remarks>
@@ -949,7 +949,7 @@
 		/// The maximum number of digits used to represent the Value.
 		/// </para>
 		/// <para>
-		/// This property is optional. If not specified the ADO.NET provider 
+		/// This property is optional. If not specified the ADO.NET provider
 		/// will attempt to infer the precision from the value.
 		/// </para>
 		/// </remarks>
@@ -971,7 +971,7 @@
 		/// The number of decimal places to which Value is resolved.
 		/// </para>
 		/// <para>
-		/// This property is optional. If not specified the ADO.NET provider 
+		/// This property is optional. If not specified the ADO.NET provider
 		/// will attempt to infer the scale from the value.
 		/// </para>
 		/// </remarks>
@@ -993,7 +993,7 @@
 		/// The maximum size, in bytes, of the data within the column.
 		/// </para>
 		/// <para>
-		/// This property is optional. If not specified the ADO.NET provider 
+		/// This property is optional. If not specified the ADO.NET provider
 		/// will attempt to infer the size from the value.
 		/// </para>
 		/// <para>
@@ -1008,8 +1008,8 @@
 		}
 
 		/// <summary>
-		/// Gets or sets the <see cref="IRawLayout"/> to use to 
-		/// render the logging event into an object for this 
+		/// Gets or sets the <see cref="IRawLayout"/> to use to
+		/// render the logging event into an object for this
 		/// parameter.
 		/// </summary>
 		/// <value>
diff --git a/src/Appender/AnsiColorTerminalAppender.cs b/src/Appender/AnsiColorTerminalAppender.cs
index 2f07476..a73b2c0 100644
--- a/src/Appender/AnsiColorTerminalAppender.cs
+++ b/src/Appender/AnsiColorTerminalAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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,11 +33,11 @@
 	/// <remarks>
 	/// <para>
 	/// AnsiColorTerminalAppender appends log events to the standard output stream
-	/// or the error output stream using a layout specified by the 
+	/// or the error output stream using a layout specified by the
 	/// user. It also allows the color of a specific level of message to be set.
 	/// </para>
 	/// <note>
-	/// This appender expects the terminal to understand the VT100 control set 
+	/// This appender expects the terminal to understand the VT100 control set
 	/// in order to interpret the color codes. If the terminal or console does not
 	/// understand the control codes the behavior is not defined.
 	/// </note>
@@ -47,11 +47,11 @@
 	/// error stream.
 	/// </para>
 	/// <para>
-	/// NOTE: This appender writes each message to the <c>System.Console.Out</c> or 
+	/// NOTE: This appender writes each message to the <c>System.Console.Out</c> or
 	/// <c>System.Console.Error</c> that is set at the time the event is appended.
-	/// Therefore it is possible to programmatically redirect the output of this appender 
+	/// Therefore it is possible to programmatically redirect the output of this appender
 	/// (for example NUnit does this to capture program output). While this is the desired
-	/// behavior of this appender it may have security implications in your application. 
+	/// behavior of this appender it may have security implications in your application.
 	/// </para>
 	/// <para>
 	/// When configuring the ANSI colored terminal appender, a mapping should be
@@ -162,7 +162,7 @@
 		}
 
 		/// <summary>
-		/// The enum of possible foreground or background color values for 
+		/// The enum of possible foreground or background color values for
 		/// use with the color mapping method
 		/// </summary>
 		/// <remarks>
@@ -222,10 +222,10 @@
 		/// Initializes a new instance of the <see cref="AnsiColorTerminalAppender" /> class.
 		/// </summary>
 		/// <remarks>
-		/// The instance of the <see cref="AnsiColorTerminalAppender" /> class is set up to write 
+		/// The instance of the <see cref="AnsiColorTerminalAppender" /> class is set up to write
 		/// to the standard output stream.
 		/// </remarks>
-		public AnsiColorTerminalAppender() 
+		public AnsiColorTerminalAppender()
 		{
 		}
 
@@ -256,8 +256,8 @@
 				if (SystemInfo.EqualsIgnoringCase(ConsoleError, trimmedTargetName))
 				{
 					m_writeToErrorStream = true;
-				} 
-				else 
+				}
+				else
 				{
 					m_writeToErrorStream = false;
 				}
@@ -296,7 +296,7 @@
 		/// The format of the output will depend on the appender's layout.
 		/// </para>
 		/// </remarks>
-		override protected void Append(log4net.Core.LoggingEvent loggingEvent) 
+		override protected void Append(log4net.Core.LoggingEvent loggingEvent)
 		{
 			string loggingMessage = RenderLoggingEvent(loggingEvent);
 
@@ -314,26 +314,26 @@
 			// are inserted afterwards.
 			if (loggingMessage.Length > 1)
 			{
-				if (loggingMessage.EndsWith("\r\n") || loggingMessage.EndsWith("\n\r")) 
+				if (loggingMessage.EndsWith("\r\n") || loggingMessage.EndsWith("\n\r"))
 				{
 					loggingMessage = loggingMessage.Insert(loggingMessage.Length - 2, PostEventCodes);
-				} 
-				else if (loggingMessage.EndsWith("\n") || loggingMessage.EndsWith("\r")) 
+				}
+				else if (loggingMessage.EndsWith("\n") || loggingMessage.EndsWith("\r"))
 				{
 					loggingMessage = loggingMessage.Insert(loggingMessage.Length - 1, PostEventCodes);
-				} 
-				else 
+				}
+				else
 				{
 					loggingMessage = loggingMessage + PostEventCodes;
 				}
 			}
 			else
 			{
-				if (loggingMessage[0] == '\n' || loggingMessage[0] == '\r') 
+				if (loggingMessage[0] == '\n' || loggingMessage[0] == '\r')
 				{
 					loggingMessage = PostEventCodes + loggingMessage;
-				} 
-				else 
+				}
+				else
 				{
 					loggingMessage = loggingMessage + PostEventCodes;
 				}
@@ -354,7 +354,7 @@
 				Console.Write(loggingMessage);
 			}
 #endif
-		
+
 		}
 
 		/// <summary>
@@ -390,24 +390,24 @@
 		#region Public Static Fields
 
 		/// <summary>
-		/// The <see cref="AnsiColorTerminalAppender.Target"/> to use when writing to the Console 
+		/// The <see cref="AnsiColorTerminalAppender.Target"/> to use when writing to the Console
 		/// standard output stream.
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// The <see cref="AnsiColorTerminalAppender.Target"/> to use when writing to the Console 
+		/// The <see cref="AnsiColorTerminalAppender.Target"/> to use when writing to the Console
 		/// standard output stream.
 		/// </para>
 		/// </remarks>
 		public const string ConsoleOut = "Console.Out";
 
 		/// <summary>
-		/// The <see cref="AnsiColorTerminalAppender.Target"/> to use when writing to the Console 
+		/// The <see cref="AnsiColorTerminalAppender.Target"/> to use when writing to the Console
 		/// standard error output stream.
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// The <see cref="AnsiColorTerminalAppender.Target"/> to use when writing to the Console 
+		/// The <see cref="AnsiColorTerminalAppender.Target"/> to use when writing to the Console
 		/// standard error output stream.
 		/// </para>
 		/// </remarks>
@@ -516,7 +516,7 @@
 				buf.Append("\x1b[0;");
 
 				int lightAdjustment = ((m_attributes & AnsiAttributes.Light) > 0) ? 60 : 0;
-				
+
 				// set the foreground color
 				buf.Append(30 + lightAdjustment + (int)m_foreColor);
 				buf.Append(';');
diff --git a/src/Appender/AppenderCollection.cs b/src/Appender/AppenderCollection.cs
index 21987b8..97bf302 100644
--- a/src/Appender/AppenderCollection.cs
+++ b/src/Appender/AppenderCollection.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -47,7 +47,7 @@
 			/// Advances the enumerator to the next element in the collection.
 			/// </summary>
 			/// <returns>
-			/// <c>true</c> if the enumerator was successfully advanced to the next element; 
+			/// <c>true</c> if the enumerator was successfully advanced to the next element;
 			/// <c>false</c> if the enumerator has passed the end of the collection.
 			/// </returns>
 			/// <exception cref="InvalidOperationException">
@@ -71,7 +71,7 @@
 		private int m_version = 0;
 
 		#endregion
-	
+
 		#region Static Wrappers
 
 		/// <summary>
@@ -109,7 +109,7 @@
 		{
 			m_array = new IAppender[DEFAULT_CAPACITY];
 		}
-		
+
 		/// <summary>
 		/// Initializes a new instance of the <c>AppenderCollection</c> class
 		/// that has the specified initial capacity.
@@ -143,7 +143,7 @@
 			m_array = new IAppender[a.Length];
 			AddRange(a);
 		}
-		
+
 		/// <summary>
 		/// Initializes a new instance of the <c>AppenderCollection</c> class
 		/// that contains elements copied from the specified <see cref="IAppender"/> collection.
@@ -160,7 +160,7 @@
 		/// Used to access protected constructor
 		/// </summary>
 		/// <exclude/>
-		internal protected enum Tag 
+		internal protected enum Tag
 		{
 			/// <summary>
 			/// A value
@@ -179,7 +179,7 @@
 		}
 
 		#endregion
-		
+
 		#region Operations (type-safe ICollection)
 
 		/// <summary>
@@ -212,8 +212,8 @@
 			{
 				throw new System.ArgumentException("Destination array was not long enough.");
 			}
-			
-			Array.Copy(m_array, 0, array, start, m_count); 
+
+			Array.Copy(m_array, 0, array, start, m_count);
 		}
 
 		/// <summary>
@@ -234,7 +234,7 @@
 		}
 
 		#endregion
-		
+
 		#region Operations (type-safe IList)
 
 		/// <summary>
@@ -251,13 +251,13 @@
 			get
 			{
 				ValidateIndex(index); // throws
-				return m_array[index]; 
+				return m_array[index];
 			}
 			set
 			{
 				ValidateIndex(index); // throws
-				++m_version; 
-				m_array[index] = value; 
+				++m_version;
+				m_array[index] = value;
 			}
 		}
 
@@ -278,7 +278,7 @@
 
 			return m_count++;
 		}
-		
+
 		/// <summary>
 		/// Removes all elements from the <c>AppenderCollection</c>.
 		/// </summary>
@@ -288,7 +288,7 @@
 			m_array = new IAppender[DEFAULT_CAPACITY];
 			m_count = 0;
 		}
-		
+
 		/// <summary>
 		/// Creates a shallow copy of the <see cref="AppenderCollection"/>.
 		/// </summary>
@@ -326,7 +326,7 @@
 		/// </summary>
 		/// <param name="item">The <see cref="IAppender"/> to locate in the <c>AppenderCollection</c>.</param>
 		/// <returns>
-		/// The zero-based index of the first occurrence of <paramref name="item"/> 
+		/// The zero-based index of the first occurrence of <paramref name="item"/>
 		/// in the entire <c>AppenderCollection</c>, if found; otherwise, -1.
 		/// </returns>
 		public virtual int IndexOf(IAppender item)
@@ -354,7 +354,7 @@
 		public virtual void Insert(int index, IAppender item)
 		{
 			ValidateIndex(index, true); // throws
-			
+
 			if (m_count == m_array.Length)
 			{
 				EnsureCapacity(m_count + 1);
@@ -378,13 +378,13 @@
 		/// The specified <see cref="IAppender"/> was not found in the <c>AppenderCollection</c>.
 		/// </exception>
 		public virtual void Remove(IAppender item)
-		{		   
+		{
 			int i = IndexOf(item);
 			if (i < 0)
 			{
 				throw new System.ArgumentException("Cannot remove the specified item because it was not found in the specified Collection.");
 			}
-			
+
 			++m_version;
 			RemoveAt(i);
 		}
@@ -401,16 +401,16 @@
 		public virtual void RemoveAt(int index)
 		{
 			ValidateIndex(index); // throws
-			
+
 			m_count--;
 
 			if (index < m_count)
 			{
 				Array.Copy(m_array, index + 1, m_array, index, m_count - index);
 			}
-			
+
 			// We can't set the deleted entry equal to null, because it might be a value type.
-			// Instead, we'll create an empty single-element array of the right type and copy it 
+			// Instead, we'll create an empty single-element array of the right type and copy it
 			// over the entry we want to erase.
 			IAppender[] temp = new IAppender[1];
 			Array.Copy(temp, 0, m_array, m_count, 1);
@@ -438,7 +438,7 @@
 		#endregion
 
 		#region Operations (type-safe IEnumerable)
-		
+
 		/// <summary>
 		/// Returns an enumerator that can iterate through the <c>AppenderCollection</c>.
 		/// </summary>
@@ -451,15 +451,15 @@
 		#endregion
 
 		#region Public helpers (just to mimic some nice features of ArrayList)
-		
+
 		/// <summary>
 		/// Gets or sets the number of elements the <c>AppenderCollection</c> can contain.
 		/// </summary>
 		public virtual int Capacity
 		{
-			get 
-			{ 
-				return m_array.Length; 
+			get
+			{
+				return m_array.Length;
 			}
 			set
 			{
@@ -495,7 +495,7 @@
 			{
 				EnsureCapacity(m_count + x.Count);
 			}
-			
+
 			Array.Copy(x.m_array, 0, m_array, m_count, x.Count);
 			m_count += x.Count;
 			m_version++;
@@ -521,7 +521,7 @@
 
 			return m_count;
 		}
-		
+
 		/// <summary>
 		/// Adds the elements of a <see cref="IAppender"/> collection to the current <c>AppenderCollection</c>.
 		/// </summary>
@@ -604,7 +604,7 @@
 		}
 
 		#endregion
-		
+
 		#region Implementation (ICollection)
 
 		void ICollection.CopyTo(Array array, int start)
@@ -675,15 +675,15 @@
 		private sealed class Enumerator : IEnumerator, IAppenderCollectionEnumerator
 		{
 			#region Implementation (data)
-			
+
 			private readonly AppenderCollection m_collection;
 			private int m_index;
 			private int m_version;
-			
+
 			#endregion
-		
+
 			#region Construction
-			
+
 			/// <summary>
 			/// Initializes a new instance of the <c>Enumerator</c> class.
 			/// </summary>
@@ -694,11 +694,11 @@
 				m_index = -1;
 				m_version = tc.m_version;
 			}
-			
+
 			#endregion
-	
+
 			#region Operations (type-safe IEnumerator)
-			
+
 			/// <summary>
 			/// Gets the current element in the collection.
 			/// </summary>
@@ -711,7 +711,7 @@
 			/// Advances the enumerator to the next element in the collection.
 			/// </summary>
 			/// <returns>
-			/// <c>true</c> if the enumerator was successfully advanced to the next element; 
+			/// <c>true</c> if the enumerator was successfully advanced to the next element;
 			/// <c>false</c> if the enumerator has passed the end of the collection.
 			/// </returns>
 			/// <exception cref="InvalidOperationException">
@@ -736,14 +736,14 @@
 				m_index = -1;
 			}
 			#endregion
-	
+
 			#region Implementation (IEnumerator)
-			
+
 			object IEnumerator.Current
 			{
 				get { return this.Current; }
 			}
-			
+
 			#endregion
 		}
 
diff --git a/src/Appender/AppenderSkeleton.cs b/src/Appender/AppenderSkeleton.cs
index 6f99eda..37a7416 100644
--- a/src/Appender/AppenderSkeleton.cs
+++ b/src/Appender/AppenderSkeleton.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -29,11 +29,11 @@
 namespace log4net.Appender
 {
 	/// <summary>
-	/// Abstract base class implementation of <see cref="IAppender"/>. 
+	/// Abstract base class implementation of <see cref="IAppender"/>.
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// This class provides the code for common functionality, such 
+	/// This class provides the code for common functionality, such
 	/// as support for threshold filtering and support for general filters.
 	/// </para>
 	/// <para>
@@ -64,7 +64,7 @@
 		#region Finalizer
 
 		/// <summary>
-		/// Finalizes this appender by calling the implementation's 
+		/// Finalizes this appender by calling the implementation's
 		/// <see cref="Close"/> method.
 		/// </summary>
 		/// <remarks>
@@ -73,11 +73,11 @@
 		/// will call <see cref="Close"/>.
 		/// </para>
 		/// </remarks>
-		~AppenderSkeleton() 
+		~AppenderSkeleton()
 		{
-			// An appender might be closed then garbage collected. 
+			// An appender might be closed then garbage collected.
 			// There is no point in closing twice.
-			if (!m_closed) 
+			if (!m_closed)
 			{
 				LogLog.Debug(declaringType, "Finalizing appender named ["+m_name+"].");
 				Close();
@@ -92,11 +92,11 @@
 		/// Gets or sets the threshold <see cref="Level"/> of this appender.
 		/// </summary>
 		/// <value>
-		/// The threshold <see cref="Level"/> of the appender. 
+		/// The threshold <see cref="Level"/> of the appender.
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// All log events with lower level than the threshold level are ignored 
+		/// All log events with lower level than the threshold level are ignored
 		/// by the appender.
 		/// </para>
 		/// <para>
@@ -105,7 +105,7 @@
 		/// string, such as "DEBUG", "INFO" and so on.
 		/// </para>
 		/// </remarks>
-		public Level Threshold 
+		public Level Threshold
 		{
 			get { return m_threshold; }
 			set { m_threshold = value; }
@@ -117,24 +117,24 @@
 		/// <value>The <see cref="IErrorHandler"/> of the appender</value>
 		/// <remarks>
 		/// <para>
-		/// The <see cref="AppenderSkeleton"/> provides a default 
-		/// implementation for the <see cref="ErrorHandler"/> property. 
+		/// The <see cref="AppenderSkeleton"/> provides a default
+		/// implementation for the <see cref="ErrorHandler"/> property.
 		/// </para>
 		/// </remarks>
-		virtual public IErrorHandler ErrorHandler 
+		virtual public IErrorHandler ErrorHandler
 		{
 			get { return this.m_errorHandler; }
-			set 
+			set
 			{
-				lock(this) 
+				lock(this)
 				{
-					if (value == null) 
+					if (value == null)
 					{
 						// We do not throw exception here since the cause is probably a
 						// bad config file.
 						LogLog.Warn(declaringType, "You have tried to set a null error-handler.");
-					} 
-					else 
+					}
+					else
 					{
 						m_errorHandler = value;
 					}
@@ -167,7 +167,7 @@
 		/// </para>
 		/// </remarks>
 		/// <seealso cref="RequiresLayout"/>
-		virtual public ILayout Layout 
+		virtual public ILayout Layout
 		{
 			get { return m_layout; }
 			set { m_layout = value; }
@@ -183,17 +183,17 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
-		virtual public void ActivateOptions() 
+		virtual public void ActivateOptions()
 		{
 		}
 
@@ -210,7 +210,7 @@
 		/// The name uniquely identifies the appender.
 		/// </para>
 		/// </remarks>
-		public string Name 
+		public string Name
 		{
 			get { return m_name; }
 			set { m_name = value; }
@@ -221,14 +221,14 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Release any resources allocated within the appender such as file handles, 
+		/// Release any resources allocated within the appender such as file handles,
 		/// network connections, etc.
 		/// </para>
 		/// <para>
 		/// It is a programming error to append to a closed appender.
 		/// </para>
 		/// <para>
-		/// This method cannot be overridden by subclasses. This method 
+		/// This method cannot be overridden by subclasses. This method
 		/// delegates the closing of the appender to the <see cref="OnClose"/>
 		/// method which must be overridden in the subclass.
 		/// </para>
@@ -247,8 +247,8 @@
 		}
 
 		/// <summary>
-		/// Performs threshold checks and invokes filters before 
-		/// delegating actual logging to the subclasses specific 
+		/// Performs threshold checks and invokes filters before
+		/// delegating actual logging to the subclasses specific
 		/// <see cref="M:Append(LoggingEvent)"/> method.
 		/// </summary>
 		/// <param name="loggingEvent">The event to log.</param>
@@ -271,13 +271,13 @@
 		///		</item>
 		///		<item>
 		///			<description>
-		///			Checks that the <see cref="IFilter"/> chain accepts the 
+		///			Checks that the <see cref="IFilter"/> chain accepts the
 		///			<paramref name="loggingEvent"/>.
 		///			</description>
 		///		</item>
 		///		<item>
 		///			<description>
-		///			Calls <see cref="M:PreAppendCheck()"/> and checks that 
+		///			Calls <see cref="M:PreAppendCheck()"/> and checks that
 		///			it returns <c>true</c>.</description>
 		///		</item>
 		/// </list>
@@ -287,7 +287,7 @@
 		/// will be passed to the abstract <see cref="M:Append(LoggingEvent)"/> method.
 		/// </para>
 		/// </remarks>
-		public void DoAppend(LoggingEvent loggingEvent) 
+		public void DoAppend(LoggingEvent loggingEvent)
 		{
 			// This lock is absolutely critical for correct formatting
 			// of the message in a multi-threaded environment.  Without
@@ -322,7 +322,7 @@
 					ErrorHandler.Error("Failed in DoAppend", ex);
 				}
 #if !MONO && !NET_2_0 && !NETSTANDARD1_3
-				// on .NET 2.0 (and higher) and Mono (all profiles), 
+				// on .NET 2.0 (and higher) and Mono (all profiles),
 				// exceptions that do not derive from System.Exception will be
 				// wrapped in a RuntimeWrappedException by the runtime, and as
 				// such will be catched by the catch clause above
@@ -344,8 +344,8 @@
 		#region Implementation of IBulkAppender
 
 		/// <summary>
-		/// Performs threshold checks and invokes filters before 
-		/// delegating actual logging to the subclasses specific 
+		/// Performs threshold checks and invokes filters before
+		/// delegating actual logging to the subclasses specific
 		/// <see cref="M:Append(LoggingEvent[])"/> method.
 		/// </summary>
 		/// <param name="loggingEvents">The array of events to log.</param>
@@ -368,13 +368,13 @@
 		///		</item>
 		///		<item>
 		///			<description>
-		///			Checks that the <see cref="IFilter"/> chain accepts the 
+		///			Checks that the <see cref="IFilter"/> chain accepts the
 		///			<paramref name="loggingEvents"/>.
 		///			</description>
 		///		</item>
 		///		<item>
 		///			<description>
-		///			Calls <see cref="M:PreAppendCheck()"/> and checks that 
+		///			Calls <see cref="M:PreAppendCheck()"/> and checks that
 		///			it returns <c>true</c>.</description>
 		///		</item>
 		/// </list>
@@ -384,7 +384,7 @@
 		/// will be passed to the <see cref="M:Append(LoggingEvent[])"/> method.
 		/// </para>
 		/// </remarks>
-		public void DoAppend(LoggingEvent[] loggingEvents) 
+		public void DoAppend(LoggingEvent[] loggingEvents)
 		{
 			// This lock is absolutely critical for correct formatting
 			// of the message in a multi-threaded environment.  Without
@@ -429,7 +429,7 @@
 					ErrorHandler.Error("Failed in Bulk DoAppend", ex);
 				}
 #if !MONO && !NET_2_0 && !NETSTANDARD1_3
-				// on .NET 2.0 (and higher) and Mono (all profiles), 
+				// on .NET 2.0 (and higher) and Mono (all profiles),
 				// exceptions that do not derive from System.Exception will be
 				// wrapped in a RuntimeWrappedException by the runtime, and as
 				// such will be catched by the catch clause above
@@ -472,7 +472,7 @@
 		///		</item>
 		///		<item>
 		///			<description>
-		///			Checks that the <see cref="IFilter"/> chain accepts the 
+		///			Checks that the <see cref="IFilter"/> chain accepts the
 		///			<paramref name="loggingEvent"/>.
 		///			</description>
 		///		</item>
@@ -481,18 +481,18 @@
 		/// </remarks>
 		virtual protected bool FilterEvent(LoggingEvent loggingEvent)
 		{
-			if (!IsAsSevereAsThreshold(loggingEvent.Level)) 
+			if (!IsAsSevereAsThreshold(loggingEvent.Level))
 			{
 				return false;
 			}
 
 			IFilter f = this.FilterHead;
 
-			while(f != null) 
+			while(f != null)
 			{
-				switch(f.Decide(loggingEvent)) 
+				switch(f.Decide(loggingEvent))
 				{
-					case FilterDecision.Deny: 
+					case FilterDecision.Deny:
 						return false;	// Return without appending
 
 					case FilterDecision.Accept:
@@ -519,7 +519,7 @@
 		/// The Filters are organized in a linked list.
 		/// </para>
 		/// <para>
-		/// Setting this property causes the new filter to be pushed onto the 
+		/// Setting this property causes the new filter to be pushed onto the
 		/// back of the filter chain.
 		/// </para>
 		/// </remarks>
@@ -530,14 +530,14 @@
 				throw new ArgumentNullException("filter param must not be null");
 			}
 
-			if (m_headFilter == null) 
+			if (m_headFilter == null)
 			{
 				m_headFilter = m_tailFilter = filter;
-			} 
-			else 
+			}
+			else
 			{
 				m_tailFilter.Next = filter;
-				m_tailFilter = filter;	
+				m_tailFilter = filter;
 			}
 		}
 
@@ -568,34 +568,34 @@
 		/// </para>
 		/// </remarks>
 		/// <returns>
-		/// <c>true</c> if the <paramref name="level"/> meets the <see cref="Threshold"/> 
+		/// <c>true</c> if the <paramref name="level"/> meets the <see cref="Threshold"/>
 		/// requirements of this appender.
 		/// </returns>
-		virtual protected bool IsAsSevereAsThreshold(Level level) 
+		virtual protected bool IsAsSevereAsThreshold(Level level)
 		{
 			return ((m_threshold == null) || level >= m_threshold);
 		}
 
 		/// <summary>
-		/// Is called when the appender is closed. Derived classes should override 
+		/// Is called when the appender is closed. Derived classes should override
 		/// this method if resources need to be released.
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Releases any resources allocated within the appender such as file handles, 
+		/// Releases any resources allocated within the appender such as file handles,
 		/// network connections, etc.
 		/// </para>
 		/// <para>
 		/// It is a programming error to append to a closed appender.
 		/// </para>
 		/// </remarks>
-		virtual protected void OnClose() 
+		virtual protected void OnClose()
 		{
 			// Do nothing by default
 		}
 
 		/// <summary>
-		/// Subclasses of <see cref="AppenderSkeleton"/> should implement this method 
+		/// Subclasses of <see cref="AppenderSkeleton"/> should implement this method
 		/// to perform actual logging.
 		/// </summary>
 		/// <param name="loggingEvent">The event to append.</param>
@@ -645,7 +645,7 @@
 		/// before the call to the abstract <see cref="M:Append(LoggingEvent)"/> method.
 		/// </para>
 		/// <para>
-		/// This method can be overridden in a subclass to extend the checks 
+		/// This method can be overridden in a subclass to extend the checks
 		/// made before the event is passed to the <see cref="M:Append(LoggingEvent)"/> method.
 		/// </para>
 		/// <para>
@@ -672,13 +672,13 @@
 		/// <returns>The event rendered as a string.</returns>
 		/// <remarks>
 		/// <para>
-		/// Helper method to render a <see cref="LoggingEvent"/> to 
+		/// Helper method to render a <see cref="LoggingEvent"/> to
 		/// a string. This appender must have a <see cref="Layout"/>
-		/// set to render the <paramref name="loggingEvent"/> to 
+		/// set to render the <paramref name="loggingEvent"/> to
 		/// a string.
 		/// </para>
-		/// <para>If there is exception data in the logging event and 
-		/// the layout does not process the exception, this method 
+		/// <para>If there is exception data in the logging event and
+		/// the layout does not process the exception, this method
 		/// will append the exception text to the rendered string.
 		/// </para>
 		/// <para>
@@ -697,14 +697,14 @@
 				m_renderWriter = new ReusableStringWriter(System.Globalization.CultureInfo.InvariantCulture);
 			}
 
-            lock (m_renderWriter)
-            {
-                // Reset the writer so we can reuse it
-                m_renderWriter.Reset(c_renderBufferMaxCapacity, c_renderBufferSize);
+			lock (m_renderWriter)
+			{
+				// Reset the writer so we can reuse it
+				m_renderWriter.Reset(c_renderBufferMaxCapacity, c_renderBufferSize);
 
-                RenderLoggingEvent(m_renderWriter, loggingEvent);
-                return m_renderWriter.ToString();
-            }
+				RenderLoggingEvent(m_renderWriter, loggingEvent);
+				return m_renderWriter.ToString();
+			}
 		}
 
 		/// <summary>
@@ -714,13 +714,13 @@
 		/// <param name="writer">The TextWriter to write the formatted event to</param>
 		/// <remarks>
 		/// <para>
-		/// Helper method to render a <see cref="LoggingEvent"/> to 
+		/// Helper method to render a <see cref="LoggingEvent"/> to
 		/// a string. This appender must have a <see cref="Layout"/>
-		/// set to render the <paramref name="loggingEvent"/> to 
+		/// set to render the <paramref name="loggingEvent"/> to
 		/// a string.
 		/// </para>
-		/// <para>If there is exception data in the logging event and 
-		/// the layout does not process the exception, this method 
+		/// <para>If there is exception data in the logging event and
+		/// the layout does not process the exception, this method
 		/// will append the exception text to the rendered string.
 		/// </para>
 		/// <para>
@@ -732,27 +732,27 @@
 		/// </remarks>
 		protected void RenderLoggingEvent(TextWriter writer, LoggingEvent loggingEvent)
 		{
-			if (m_layout == null) 
+			if (m_layout == null)
 			{
 				throw new InvalidOperationException("A layout must be set");
 			}
 
-			if (m_layout.IgnoresException) 
+			if (m_layout.IgnoresException)
 			{
 				string exceptionStr = loggingEvent.GetExceptionString();
-				if (exceptionStr != null && exceptionStr.Length > 0) 
+				if (exceptionStr != null && exceptionStr.Length > 0)
 				{
 					// render the event and the exception
 					m_layout.Format(writer, loggingEvent);
 					writer.WriteLine(exceptionStr);
 				}
-				else 
+				else
 				{
 					// there is no exception to render
 					m_layout.Format(writer, loggingEvent);
 				}
 			}
-			else 
+			else
 			{
 				// The layout will render the exception
 				m_layout.Format(writer, loggingEvent);
@@ -764,8 +764,8 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// In the rather exceptional case, where the appender 
-		/// implementation admits a layout but can also work without it, 
+		/// In the rather exceptional case, where the appender
+		/// implementation admits a layout but can also work without it,
 		/// then the appender should return <c>true</c>.
 		/// </para>
 		/// <para>
@@ -783,16 +783,16 @@
 		#endregion
 
 		/// <summary>
-        	/// Flushes any buffered log data.
-        	/// </summary>
+			/// Flushes any buffered log data.
+			/// </summary>
 		/// <remarks>
 		/// This implementation doesn't flush anything and always returns true
 		/// </remarks>
-        	/// <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
-        	public virtual bool Flush(int millisecondsTimeout)
-        	{
-		    return true;
-        	}
+			/// <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
+			public virtual bool Flush(int millisecondsTimeout)
+			{
+			return true;
+			}
 
 		#region Private Instance Fields
 
@@ -893,17 +893,17 @@
 
 		#endregion
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the AppenderSkeleton class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(AppenderSkeleton);
+		/// <summary>
+		/// The fully qualified type of the AppenderSkeleton class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(AppenderSkeleton);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
diff --git a/src/Appender/AspNetTraceAppender.cs b/src/Appender/AspNetTraceAppender.cs
index 82f9569..b2e8798 100644
--- a/src/Appender/AspNetTraceAppender.cs
+++ b/src/Appender/AspNetTraceAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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 @@
 using log4net.Layout;
 using log4net.Core;
 
-namespace log4net.Appender 
+namespace log4net.Appender
 {
 	/// <summary>
 	/// <para>
@@ -35,25 +35,25 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// Diagnostic information and tracing messages that you specify are appended to the output 
+	/// Diagnostic information and tracing messages that you specify are appended to the output
 	/// of the page that is sent to the requesting browser. Optionally, you can view this information
-	/// from a separate trace viewer (Trace.axd) that displays trace information for every page in a 
+	/// from a separate trace viewer (Trace.axd) that displays trace information for every page in a
 	/// given application.
 	/// </para>
 	/// <para>
-	/// Trace statements are processed and displayed only when tracing is enabled. You can control 
+	/// Trace statements are processed and displayed only when tracing is enabled. You can control
 	/// whether tracing is displayed to a page, to the trace viewer, or both.
 	/// </para>
 	/// <para>
-	/// The logging event is passed to the <see cref="M:TraceContext.Write(string)"/> or 
+	/// The logging event is passed to the <see cref="M:TraceContext.Write(string)"/> or
 	/// <see cref="M:TraceContext.Warn(string)"/> method depending on the level of the logging event.
-    /// The event's logger name is the default value for the category parameter of the Write/Warn method. 
+	/// The event's logger name is the default value for the category parameter of the Write/Warn method.
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
 	/// <author>Gert Driesen</author>
 	/// <author>Ron Grabowski</author>
-	public class AspNetTraceAppender : AppenderSkeleton 
+	public class AspNetTraceAppender : AppenderSkeleton
 	{
 		#region Public Instances Constructors
 
@@ -65,7 +65,7 @@
 		/// Default constructor.
 		/// </para>
 		/// </remarks>
-		public AspNetTraceAppender() 
+		public AspNetTraceAppender()
 		{
 		}
 
@@ -80,25 +80,25 @@
 		/// <remarks>
 		/// <para>
 		/// Write the logging event to the ASP.NET trace
-		/// <c>HttpContext.Current.Trace</c> 
+		/// <c>HttpContext.Current.Trace</c>
 		/// (<see cref="TraceContext"/>).
 		/// </para>
 		/// </remarks>
-		override protected void Append(LoggingEvent loggingEvent) 
+		override protected void Append(LoggingEvent loggingEvent)
 		{
 			// check if log4net is running in the context of an ASP.NET application
-			if (HttpContext.Current != null) 
+			if (HttpContext.Current != null)
 			{
 				// check if tracing is enabled for the current context
-				if (HttpContext.Current.Trace.IsEnabled) 
+				if (HttpContext.Current.Trace.IsEnabled)
 				{
-					if (loggingEvent.Level >= Level.Warn) 
+					if (loggingEvent.Level >= Level.Warn)
 					{
-                        HttpContext.Current.Trace.Warn(m_category.Format(loggingEvent), RenderLoggingEvent(loggingEvent));
+						HttpContext.Current.Trace.Warn(m_category.Format(loggingEvent), RenderLoggingEvent(loggingEvent));
 					}
-					else 
+					else
 					{
-                        HttpContext.Current.Trace.Write(m_category.Format(loggingEvent), RenderLoggingEvent(loggingEvent));
+						HttpContext.Current.Trace.Write(m_category.Format(loggingEvent), RenderLoggingEvent(loggingEvent));
 					}
 				}
 			}
@@ -120,35 +120,35 @@
 
 		#endregion // Override implementation of AppenderSkeleton
 
-        #region Public Instance Properties
+		#region Public Instance Properties
 
-        /// <summary>
-        /// The category parameter sent to the Trace method.
-        /// </summary>
-        /// <remarks>
-        /// <para>
-        /// Defaults to %logger which will use the logger name of the current 
-        /// <see cref="LoggingEvent"/> as the category parameter.
-        /// </para>
-        /// <para>
-        /// </para> 
-        /// </remarks>
-        public PatternLayout Category
-        {
-            get { return m_category; }
-            set { m_category = value; }
-        }
+		/// <summary>
+		/// The category parameter sent to the Trace method.
+		/// </summary>
+		/// <remarks>
+		/// <para>
+		/// Defaults to %logger which will use the logger name of the current
+		/// <see cref="LoggingEvent"/> as the category parameter.
+		/// </para>
+		/// <para>
+		/// </para>
+		/// </remarks>
+		public PatternLayout Category
+		{
+			get { return m_category; }
+			set { m_category = value; }
+		}
 
-	    #endregion
+		#endregion
 
-	    #region Private Instance Fields
+		#region Private Instance Fields
 
-	    /// <summary>
-	    /// Defaults to %logger
-	    /// </summary>
-	    private PatternLayout m_category = new PatternLayout("%logger");
+		/// <summary>
+		/// Defaults to %logger
+		/// </summary>
+		private PatternLayout m_category = new PatternLayout("%logger");
 
-	    #endregion
+		#endregion
 	}
 }
 
diff --git a/src/Appender/BufferingAppenderSkeleton.cs b/src/Appender/BufferingAppenderSkeleton.cs
index 343159a..bdb4cf4 100644
--- a/src/Appender/BufferingAppenderSkeleton.cs
+++ b/src/Appender/BufferingAppenderSkeleton.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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,49 +26,49 @@
 namespace log4net.Appender
 {
 	/// <summary>
-	/// Abstract base class implementation of <see cref="IAppender"/> that 
+	/// Abstract base class implementation of <see cref="IAppender"/> that
 	/// buffers events in a fixed size buffer.
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// This base class should be used by appenders that need to buffer a 
-	/// number of events before logging them. For example the <see cref="AdoNetAppender"/> 
-	/// buffers events and then submits the entire contents of the buffer to 
+	/// This base class should be used by appenders that need to buffer a
+	/// number of events before logging them. For example the <see cref="AdoNetAppender"/>
+	/// buffers events and then submits the entire contents of the buffer to
 	/// the underlying database in one go.
 	/// </para>
 	/// <para>
 	/// Subclasses should override the <see cref="M:SendBuffer(LoggingEvent[])"/>
 	/// method to deliver the buffered events.
 	/// </para>
-	/// <para>The BufferingAppenderSkeleton maintains a fixed size cyclic 
-	/// buffer of events. The size of the buffer is set using 
+	/// <para>The BufferingAppenderSkeleton maintains a fixed size cyclic
+	/// buffer of events. The size of the buffer is set using
 	/// the <see cref="BufferSize"/> property.
 	/// </para>
-	/// <para>A <see cref="ITriggeringEventEvaluator"/> is used to inspect 
-	/// each event as it arrives in the appender. If the <see cref="Evaluator"/> 
-	/// triggers, then the current buffer is sent immediately 
-	/// (see <see cref="M:SendBuffer(LoggingEvent[])"/>). Otherwise the event 
-	/// is stored in the buffer. For example, an evaluator can be used to 
+	/// <para>A <see cref="ITriggeringEventEvaluator"/> is used to inspect
+	/// each event as it arrives in the appender. If the <see cref="Evaluator"/>
+	/// triggers, then the current buffer is sent immediately
+	/// (see <see cref="M:SendBuffer(LoggingEvent[])"/>). Otherwise the event
+	/// is stored in the buffer. For example, an evaluator can be used to
 	/// deliver the events immediately when an ERROR event arrives.
 	/// </para>
 	/// <para>
-	/// The buffering appender can be configured in a <see cref="Lossy"/> mode. 
-	/// By default the appender is NOT lossy. When the buffer is full all 
+	/// The buffering appender can be configured in a <see cref="Lossy"/> mode.
+	/// By default the appender is NOT lossy. When the buffer is full all
 	/// the buffered events are sent with <see cref="M:SendBuffer(LoggingEvent[])"/>.
-	/// If the <see cref="Lossy"/> property is set to <c>true</c> then the 
-	/// buffer will not be sent when it is full, and new events arriving 
-	/// in the appender will overwrite the oldest event in the buffer. 
+	/// If the <see cref="Lossy"/> property is set to <c>true</c> then the
+	/// buffer will not be sent when it is full, and new events arriving
+	/// in the appender will overwrite the oldest event in the buffer.
 	/// In lossy mode the buffer will only be sent when the <see cref="Evaluator"/>
-	/// triggers. This can be useful behavior when you need to know about 
-	/// ERROR events but not about events with a lower level, configure an 
-	/// evaluator that will trigger when an ERROR event arrives, the whole 
+	/// triggers. This can be useful behavior when you need to know about
+	/// ERROR events but not about events with a lower level, configure an
+	/// evaluator that will trigger when an ERROR event arrives, the whole
 	/// buffer will be sent which gives a history of events leading up to
 	/// the ERROR event.
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
 	/// <author>Gert Driesen</author>
-    public abstract class BufferingAppenderSkeleton : AppenderSkeleton
+	public abstract class BufferingAppenderSkeleton : AppenderSkeleton
 	{
 		#region Protected Instance Constructors
 
@@ -95,7 +95,7 @@
 		/// </para>
 		/// <para>
 		/// The <paramref name="eventMustBeFixed"/> should be set if the subclass
-		/// expects the events delivered to be fixed even if the 
+		/// expects the events delivered to be fixed even if the
 		/// <see cref="BufferSize"/> is set to zero, i.e. when no buffering occurs.
 		/// </para>
 		/// </remarks>
@@ -116,11 +116,11 @@
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// This appender uses a buffer to store logging events before 
+		/// This appender uses a buffer to store logging events before
 		/// delivering them. A triggering event causes the whole buffer
 		/// to be send to the remote sink. If the buffer overruns before
 		/// a triggering event then logging events could be lost. Set
-		/// <see cref="Lossy"/> to <c>false</c> to prevent logging events 
+		/// <see cref="Lossy"/> to <c>false</c> to prevent logging events
 		/// from being lost.
 		/// </para>
 		/// <para>If <see cref="Lossy"/> is set to <c>true</c> then an
@@ -133,7 +133,7 @@
 		}
 
 		/// <summary>
-		/// Gets or sets the size of the cyclic buffer used to hold the 
+		/// Gets or sets the size of the cyclic buffer used to hold the
 		/// logging events.
 		/// </summary>
 		/// <value>
@@ -142,7 +142,7 @@
 		/// <remarks>
 		/// <para>
 		/// The <see cref="BufferSize"/> option takes a positive integer
-		/// representing the maximum number of logging events to collect in 
+		/// representing the maximum number of logging events to collect in
 		/// a cyclic buffer. When the <see cref="BufferSize"/> is reached,
 		/// oldest events are deleted as new events are added to the
 		/// buffer. By default the size of the cyclic buffer is 512 events.
@@ -162,7 +162,7 @@
 		}
 
 		/// <summary>
-		/// Gets or sets the <see cref="ITriggeringEventEvaluator"/> that causes the 
+		/// Gets or sets the <see cref="ITriggeringEventEvaluator"/> that causes the
 		/// buffer to be sent immediately.
 		/// </summary>
 		/// <value>
@@ -171,8 +171,8 @@
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// The evaluator will be called for each event that is appended to this 
-		/// appender. If the evaluator triggers then the current buffer will 
+		/// The evaluator will be called for each event that is appended to this
+		/// appender. If the evaluator triggers then the current buffer will
 		/// immediately be sent (see <see cref="M:SendBuffer(LoggingEvent[])"/>).
 		/// </para>
 		/// <para>If <see cref="Lossy"/> is set to <c>true</c> then an
@@ -192,8 +192,8 @@
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// The evaluator will be called for each event that is discarded from this 
-		/// appender. If the evaluator triggers then the current buffer will immediately 
+		/// The evaluator will be called for each event that is discarded from this
+		/// appender. If the evaluator triggers then the current buffer will immediately
 		/// be sent (see <see cref="M:SendBuffer(LoggingEvent[])"/>).
 		/// </para>
 		/// </remarks>
@@ -208,7 +208,7 @@
 		/// should be fixed.
 		/// </summary>
 		/// <value>
-		/// <c>true</c> if the appender should only fix part of the logging event 
+		/// <c>true</c> if the appender should only fix part of the logging event
 		/// data, otherwise <c>false</c>. The default is <c>false</c>.
 		/// </value>
 		/// <remarks>
@@ -224,8 +224,8 @@
 		virtual public bool OnlyFixPartialEventData
 		{
 			get { return (Fix == FixFlags.Partial); }
-			set 
-			{ 
+			set
+			{
 				if (value)
 				{
 					Fix = FixFlags.Partial;
@@ -245,7 +245,7 @@
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// The logging event needs to have certain thread specific values 
+		/// The logging event needs to have certain thread specific values
 		/// captured before it can be buffered. See <see cref="LoggingEvent.Fix"/>
 		/// for details.
 		/// </para>
@@ -261,16 +261,16 @@
 
 		#region Public Methods
 
-        /// <summary>
-        /// Flushes any buffered log data.
-        /// </summary>
-        /// <param name="millisecondsTimeout">The maximum time to wait for logging events to be flushed.</param>
-        /// <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
-        public override bool Flush(int millisecondsTimeout)
-        {
-            Flush();
-            return true;
-        }
+		/// <summary>
+		/// Flushes any buffered log data.
+		/// </summary>
+		/// <param name="millisecondsTimeout">The maximum time to wait for logging events to be flushed.</param>
+		/// <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
+		public override bool Flush(int millisecondsTimeout)
+		{
+			Flush();
+			return true;
+		}
 
 		/// <summary>
 		/// Flush the currently buffered events
@@ -301,7 +301,7 @@
 		/// <para>
 		/// If the appender is buffering in <see cref="Lossy"/> mode then the contents
 		/// of the buffer will only be flushed if <paramref name="flushLossyBuffer" /> is <c>true</c>.
-		/// In this case the contents of the buffer will be tested against the 
+		/// In this case the contents of the buffer will be tested against the
 		/// <see cref="LossyEvaluator"/> and if triggering will be output. All other buffered
 		/// events will be discarded.
 		/// </para>
@@ -370,17 +370,17 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
-		override public void ActivateOptions() 
+		override public void ActivateOptions()
 		{
 			base.ActivateOptions();
 
@@ -389,7 +389,7 @@
 			// therefore check we have an evaluator.
 			if (m_lossy && m_evaluator == null)
 			{
-				ErrorHandler.Error("Appender ["+Name+"] is Lossy but has no Evaluator. The buffer will never be sent!"); 
+				ErrorHandler.Error("Appender ["+Name+"] is Lossy but has no Evaluator. The buffer will never be sent!");
 			}
 
 			if (m_bufferSize > 1)
@@ -412,18 +412,18 @@
 		/// <remarks>
 		/// <para>
 		/// Close this appender instance. If this appender is marked
-		/// as not <see cref="Lossy"/> then the remaining events in 
+		/// as not <see cref="Lossy"/> then the remaining events in
 		/// the buffer must be sent when the appender is closed.
 		/// </para>
 		/// </remarks>
-		override protected void OnClose() 
+		override protected void OnClose()
 		{
 			// Flush the buffer on close
 			Flush(true);
 		}
 
 		/// <summary>
-		/// This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/> method. 
+		/// This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/> method.
 		/// </summary>
 		/// <param name="loggingEvent">the event to log</param>
 		/// <remarks>
@@ -431,7 +431,7 @@
 		/// Stores the <paramref name="loggingEvent"/> in the cyclic buffer.
 		/// </para>
 		/// <para>
-		/// The buffer will be sent (i.e. passed to the <see cref="SendBuffer"/> 
+		/// The buffer will be sent (i.e. passed to the <see cref="SendBuffer"/>
 		/// method) if one of the following conditions is met:
 		/// </para>
 		/// <list type="bullet">
@@ -452,7 +452,7 @@
 		/// is processed.
 		/// </para>
 		/// </remarks>
-		override protected void Append(LoggingEvent loggingEvent) 
+		override protected void Append(LoggingEvent loggingEvent)
 		{
 			// If the buffer size is set to 1 or less then the buffer will be
 			// sent immediately because there is not enough space in the buffer
@@ -461,8 +461,8 @@
 			if (m_cb == null || m_bufferSize <= 1)
 			{
 				// Only send the event if we are in non lossy mode or the event is a triggering event
-				if ((!m_lossy) || 
-					(m_evaluator != null && m_evaluator.IsTriggeringEvent(loggingEvent)) || 
+				if ((!m_lossy) ||
+					(m_evaluator != null && m_evaluator.IsTriggeringEvent(loggingEvent)) ||
 					(m_lossyEvaluator != null && m_lossyEvaluator.IsTriggeringEvent(loggingEvent)))
 				{
 					if (m_eventMustBeFixed)
@@ -610,21 +610,21 @@
 		/// </summary>
 		/// <remarks>
 		/// The object that is used to determine if an event causes the entire
-		/// buffer to be sent immediately. This field can be <c>null</c>, which 
+		/// buffer to be sent immediately. This field can be <c>null</c>, which
 		/// indicates that event triggering is not to be done. The evaluator
 		/// can be set using the <see cref="Evaluator"/> property. If this appender
-		/// has the <see cref="m_lossy"/> (<see cref="Lossy"/> property) set to 
+		/// has the <see cref="m_lossy"/> (<see cref="Lossy"/> property) set to
 		/// <c>true</c> then an <see cref="Evaluator"/> must be set.
 		/// </remarks>
 		private ITriggeringEventEvaluator m_evaluator;
 
 		/// <summary>
-		/// Indicates if the appender should overwrite events in the cyclic buffer 
-		/// when it becomes full, or if the buffer should be flushed when the 
+		/// Indicates if the appender should overwrite events in the cyclic buffer
+		/// when it becomes full, or if the buffer should be flushed when the
 		/// buffer is full.
 		/// </summary>
 		/// <remarks>
-		/// If this field is set to <c>true</c> then an <see cref="Evaluator"/> must 
+		/// If this field is set to <c>true</c> then an <see cref="Evaluator"/> must
 		/// be set.
 		/// </remarks>
 		private bool m_lossy = false;
@@ -634,9 +634,9 @@
 		/// </summary>
 		/// <remarks>
 		/// The object that is used to determine if an event that is discarded should
-		/// really be discarded or if it should be sent to the appenders. 
+		/// really be discarded or if it should be sent to the appenders.
 		/// This field can be <c>null</c>, which indicates that all discarded events will
-		/// be discarded. 
+		/// be discarded.
 		/// </remarks>
 		private ITriggeringEventEvaluator m_lossyEvaluator;
 
diff --git a/src/Appender/BufferingForwardingAppender.cs b/src/Appender/BufferingForwardingAppender.cs
index 17d02b8..e8064b1 100644
--- a/src/Appender/BufferingForwardingAppender.cs
+++ b/src/Appender/BufferingForwardingAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -31,12 +31,12 @@
 	/// <remarks>
 	/// <para>
 	/// The events are buffered in this appender until conditions are
-	/// met to allow the appender to deliver the events to the attached 
+	/// met to allow the appender to deliver the events to the attached
 	/// appenders. See <see cref="BufferingAppenderSkeleton"/> for the
 	/// conditions that cause the buffer to be sent.
 	/// </para>
-	/// <para>The forwarding appender can be used to specify different 
-	/// thresholds and filters for the same appender at different locations 
+	/// <para>The forwarding appender can be used to specify different
+	/// thresholds and filters for the same appender at different locations
 	/// within the hierarchy.
 	/// </para>
 	/// </remarks>
@@ -67,7 +67,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Releases any resources allocated within the appender such as file handles, 
+		/// Releases any resources allocated within the appender such as file handles,
 		/// network connections, etc.
 		/// </para>
 		/// <para>
@@ -126,7 +126,7 @@
 		/// appenders, then it won't be added again.
 		/// </para>
 		/// </remarks>
-		virtual public void AddAppender(IAppender newAppender) 
+		virtual public void AddAppender(IAppender newAppender)
 		{
 			if (newAppender == null)
 			{
@@ -134,7 +134,7 @@
 			}
 			lock(this)
 			{
-				if (m_appenderAttachedImpl == null) 
+				if (m_appenderAttachedImpl == null)
 				{
 					m_appenderAttachedImpl = new log4net.Util.AppenderAttachedImpl();
 				}
@@ -143,11 +143,11 @@
 		}
 
 		/// <summary>
-		/// Gets the appenders contained in this appender as an 
+		/// Gets the appenders contained in this appender as an
 		/// <see cref="System.Collections.ICollection"/>.
 		/// </summary>
 		/// <remarks>
-		/// If no appenders can be found, then an <see cref="EmptyCollection"/> 
+		/// If no appenders can be found, then an <see cref="EmptyCollection"/>
 		/// is returned.
 		/// </remarks>
 		/// <returns>
@@ -163,7 +163,7 @@
 					{
 						return AppenderCollection.EmptyCollection;
 					}
-					else 
+					else
 					{
 						return m_appenderAttachedImpl.Appenders;
 					}
@@ -183,7 +183,7 @@
 		/// Get the named appender attached to this buffering appender.
 		/// </para>
 		/// </remarks>
-		virtual public IAppender GetAppender(string name) 
+		virtual public IAppender GetAppender(string name)
 		{
 			lock(this)
 			{
@@ -204,11 +204,11 @@
 		/// This is useful when re-reading configuration information.
 		/// </para>
 		/// </remarks>
-		virtual public void RemoveAllAppenders() 
+		virtual public void RemoveAllAppenders()
 		{
 			lock(this)
 			{
-				if (m_appenderAttachedImpl != null) 
+				if (m_appenderAttachedImpl != null)
 				{
 					m_appenderAttachedImpl.RemoveAllAppenders();
 					m_appenderAttachedImpl = null;
@@ -226,11 +226,11 @@
 		/// If you are discarding the appender you must call
 		/// <see cref="IAppender.Close"/> on the appender removed.
 		/// </remarks>
-		virtual public IAppender RemoveAppender(IAppender appender) 
+		virtual public IAppender RemoveAppender(IAppender appender)
 		{
 			lock(this)
 			{
-				if (appender != null && m_appenderAttachedImpl != null) 
+				if (appender != null && m_appenderAttachedImpl != null)
 				{
 					return m_appenderAttachedImpl.RemoveAppender(appender);
 				}
@@ -248,7 +248,7 @@
 		/// If you are discarding the appender you must call
 		/// <see cref="IAppender.Close"/> on the appender removed.
 		/// </remarks>
-		virtual public IAppender RemoveAppender(string name) 
+		virtual public IAppender RemoveAppender(string name)
 		{
 			lock(this)
 			{
@@ -259,7 +259,7 @@
 			}
 			return null;
 		}
-  
+
 		#endregion Implementation of IAppenderAttachable
 
 		#region Private Instance Fields
diff --git a/src/Appender/ColoredConsoleAppender.cs b/src/Appender/ColoredConsoleAppender.cs
index 1c26a2c..a87ffd9 100644
--- a/src/Appender/ColoredConsoleAppender.cs
+++ b/src/Appender/ColoredConsoleAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -20,9 +20,9 @@
 // MONO 1.0 Beta mcs does not like #if !A && !B && !C syntax
 
 // .NET Compact Framework 1.0 has no support for Win32 Console API's
-#if !NETCF 
+#if !NETCF
 // .Mono 1.0 has no support for Win32 Console API's
-#if !MONO 
+#if !MONO
 // SSCLI 1.0 has no support for Win32 Console API's
 #if !SSCLI
 // We don't want framework or platform specific code in the CLI version of log4net
@@ -43,7 +43,7 @@
 	/// <remarks>
 	/// <para>
 	/// ColoredConsoleAppender appends log events to the standard output stream
-	/// or the error output stream using a layout specified by the 
+	/// or the error output stream using a layout specified by the
 	/// user. It also allows the color of a specific type of message to be set.
 	/// </para>
 	/// <para>
@@ -158,10 +158,10 @@
 		/// Initializes a new instance of the <see cref="ColoredConsoleAppender" /> class.
 		/// </summary>
 		/// <remarks>
-		/// The instance of the <see cref="ColoredConsoleAppender" /> class is set up to write 
+		/// The instance of the <see cref="ColoredConsoleAppender" /> class is set up to write
 		/// to the standard output stream.
 		/// </remarks>
-		public ColoredConsoleAppender() 
+		public ColoredConsoleAppender()
 		{
 		}
 
@@ -171,7 +171,7 @@
 		/// </summary>
 		/// <param name="layout">the layout to use for this appender</param>
 		/// <remarks>
-		/// The instance of the <see cref="ColoredConsoleAppender" /> class is set up to write 
+		/// The instance of the <see cref="ColoredConsoleAppender" /> class is set up to write
 		/// to the standard output stream.
 		/// </remarks>
 		[Obsolete("Instead use the default constructor and set the Layout property")]
@@ -191,7 +191,7 @@
 		/// output stream.
 		/// </remarks>
 		[Obsolete("Instead use the default constructor and set the Layout & Target properties")]
-		public ColoredConsoleAppender(ILayout layout, bool writeToErrorStream) 
+		public ColoredConsoleAppender(ILayout layout, bool writeToErrorStream)
 		{
 			Layout = layout;
 			m_writeToErrorStream = writeToErrorStream;
@@ -221,12 +221,12 @@
 			set
 			{
 				string v = value.Trim();
-				
-				if (string.Compare(ConsoleError, v, true, CultureInfo.InvariantCulture) == 0) 
+
+				if (string.Compare(ConsoleError, v, true, CultureInfo.InvariantCulture) == 0)
 				{
 					m_writeToErrorStream = true;
-				} 
-				else 
+				}
+				else
 				{
 					m_writeToErrorStream = false;
 				}
@@ -266,10 +266,10 @@
 		/// </para>
 		/// </remarks>
 #if NET_4_0 || MONO_4_0
-        [System.Security.SecuritySafeCritical]
+		[System.Security.SecuritySafeCritical]
 #endif
-        [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]
-        override protected void Append(log4net.Core.LoggingEvent loggingEvent) 
+		[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]
+		override protected void Append(log4net.Core.LoggingEvent loggingEvent)
 		{
 			if (m_consoleOutputWriter != null)
 			{
@@ -310,13 +310,13 @@
 				// Followed by a larger buffer, say 20,000 chars
 				// then WriteConsoleW will fail, last error 8
 				// 'Not enough storage is available to process this command.'
-				// 
+				//
 				// Although the documentation states that the buffer must
 				// be less that 64KB (i.e. 32,000 WCHARs) the longest string
 				// that I can write out a the first call to WriteConsoleW
 				// is only 30,704 chars.
 				//
-				// Unlike the WriteFile API the WriteConsoleW method does not 
+				// Unlike the WriteFile API the WriteConsoleW method does not
 				// seem to be able to partially write out from the input buffer.
 				// It does have a lpNumberOfCharsWritten parameter, but this is
 				// either the length of the input buffer if any output was written,
@@ -334,9 +334,9 @@
 				//     out (UInt32)ignoreWrittenCount,
 				//     IntPtr.Zero);
 				//
-				// Instead of calling WriteConsoleW we use WriteFile which 
+				// Instead of calling WriteConsoleW we use WriteFile which
 				// handles large buffers correctly. Because WriteFile does not
-				// handle the codepage conversion as WriteConsoleW does we 
+				// handle the codepage conversion as WriteConsoleW does we
 				// need to use a System.IO.StreamWriter with the appropriate
 				// Encoding. The WriteFile calls are wrapped up in the
 				// System.IO.__ConsoleStream internal class obtained through
@@ -349,9 +349,9 @@
 				// The windows console uses ScrollConsoleScreenBuffer internally to
 				// scroll the console buffer when the display buffer of the console
 				// has been used up. ScrollConsoleScreenBuffer fills the area uncovered
-				// by moving the current content with the background color 
+				// by moving the current content with the background color
 				// currently specified on the console. This means that it fills the
-				// whole line in front of the cursor position with the current 
+				// whole line in front of the cursor position with the current
 				// background color.
 				// This causes an issue when writing out text with a non default
 				// background color. For example; We write a message with a Blue
@@ -364,7 +364,7 @@
 				// Black background). We write some text to the console, the text is
 				// written correctly in White with a Black background, however the
 				// remainder of the line still has a Blue background.
-				// 
+				//
 				// This causes a disjointed appearance to the output where the background
 				// colors change.
 				//
@@ -435,10 +435,10 @@
 		/// </para>
 		/// </remarks>
 #if NET_4_0 || MONO_4_0
-        [System.Security.SecuritySafeCritical]
+		[System.Security.SecuritySafeCritical]
 #endif
-        [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode=true)]
-        public override void ActivateOptions()
+		[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode=true)]
+		public override void ActivateOptions()
 		{
 			base.ActivateOptions();
 			m_levelMapping.ActivateOptions();
@@ -477,24 +477,24 @@
 		#region Public Static Fields
 
 		/// <summary>
-		/// The <see cref="ColoredConsoleAppender.Target"/> to use when writing to the Console 
+		/// The <see cref="ColoredConsoleAppender.Target"/> to use when writing to the Console
 		/// standard output stream.
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// The <see cref="ColoredConsoleAppender.Target"/> to use when writing to the Console 
+		/// The <see cref="ColoredConsoleAppender.Target"/> to use when writing to the Console
 		/// standard output stream.
 		/// </para>
 		/// </remarks>
 		public const string ConsoleOut = "Console.Out";
 
 		/// <summary>
-		/// The <see cref="ColoredConsoleAppender.Target"/> to use when writing to the Console 
+		/// The <see cref="ColoredConsoleAppender.Target"/> to use when writing to the Console
 		/// standard error output stream.
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// The <see cref="ColoredConsoleAppender.Target"/> to use when writing to the Console 
+		/// The <see cref="ColoredConsoleAppender.Target"/> to use when writing to the Console
 		/// standard error output stream.
 		/// </para>
 		/// </remarks>
@@ -558,29 +558,29 @@
 			UInt32 type);
 
 		[StructLayout(LayoutKind.Sequential)]
-		private struct COORD 
+		private struct COORD
 		{
-			public UInt16 x; 
-			public UInt16 y; 
+			public UInt16 x;
+			public UInt16 y;
 		}
 
 		[StructLayout(LayoutKind.Sequential)]
-		private struct SMALL_RECT 
+		private struct SMALL_RECT
 		{
-			public UInt16 Left; 
-			public UInt16 Top; 
-			public UInt16 Right; 
-			public UInt16 Bottom; 
+			public UInt16 Left;
+			public UInt16 Top;
+			public UInt16 Right;
+			public UInt16 Bottom;
 		}
 
 		[StructLayout(LayoutKind.Sequential)]
-		private struct CONSOLE_SCREEN_BUFFER_INFO 
-		{ 
-			public COORD      dwSize; 
-			public COORD      dwCursorPosition; 
-			public ushort     wAttributes; 
-			public SMALL_RECT srWindow; 
-			public COORD      dwMaximumWindowSize; 
+		private struct CONSOLE_SCREEN_BUFFER_INFO
+		{
+			public COORD      dwSize;
+			public COORD      dwCursorPosition;
+			public ushort     wAttributes;
+			public SMALL_RECT srWindow;
+			public COORD      dwMaximumWindowSize;
 		}
 
 		#endregion // Win32 Methods
@@ -647,7 +647,7 @@
 			}
 
 			/// <summary>
-			/// The combined <see cref="ForeColor"/> and <see cref="BackColor"/> suitable for 
+			/// The combined <see cref="ForeColor"/> and <see cref="BackColor"/> suitable for
 			/// setting the console color.
 			/// </summary>
 			internal ushort CombinedColor
diff --git a/src/Appender/ConsoleAppender.cs b/src/Appender/ConsoleAppender.cs
index d5d6a70..a44337a 100644
--- a/src/Appender/ConsoleAppender.cs
+++ b/src/Appender/ConsoleAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -32,7 +32,7 @@
 	/// <remarks>
 	/// <para>
 	/// ConsoleAppender appends log events to the standard output stream
-	/// or the error output stream using a layout specified by the 
+	/// or the error output stream using a layout specified by the
 	/// user.
 	/// </para>
 	/// <para>
@@ -41,11 +41,11 @@
 	/// error stream.
 	/// </para>
 	/// <para>
-	/// NOTE: This appender writes each message to the <c>System.Console.Out</c> or 
+	/// NOTE: This appender writes each message to the <c>System.Console.Out</c> or
 	/// <c>System.Console.Error</c> that is set at the time the event is appended.
-	/// Therefore it is possible to programmatically redirect the output of this appender 
+	/// Therefore it is possible to programmatically redirect the output of this appender
 	/// (for example NUnit does this to capture program output). While this is the desired
-	/// behavior of this appender it may have security implications in your application. 
+	/// behavior of this appender it may have security implications in your application.
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
@@ -58,10 +58,10 @@
 		/// Initializes a new instance of the <see cref="ConsoleAppender" /> class.
 		/// </summary>
 		/// <remarks>
-		/// The instance of the <see cref="ConsoleAppender" /> class is set up to write 
+		/// The instance of the <see cref="ConsoleAppender" /> class is set up to write
 		/// to the standard output stream.
 		/// </remarks>
-		public ConsoleAppender() 
+		public ConsoleAppender()
 		{
 		}
 
@@ -71,7 +71,7 @@
 		/// </summary>
 		/// <param name="layout">the layout to use for this appender</param>
 		/// <remarks>
-		/// The instance of the <see cref="ConsoleAppender" /> class is set up to write 
+		/// The instance of the <see cref="ConsoleAppender" /> class is set up to write
 		/// to the standard output stream.
 		/// </remarks>
 		[Obsolete("Instead use the default constructor and set the Layout property")]
@@ -91,7 +91,7 @@
 		/// output stream.
 		/// </remarks>
 		[Obsolete("Instead use the default constructor and set the Layout & Target properties")]
-		public ConsoleAppender(ILayout layout, bool writeToErrorStream) 
+		public ConsoleAppender(ILayout layout, bool writeToErrorStream)
 		{
 			Layout = layout;
 			m_writeToErrorStream = writeToErrorStream;
@@ -125,8 +125,8 @@
 				if (SystemInfo.EqualsIgnoringCase(ConsoleError, v))
 				{
 					m_writeToErrorStream = true;
-				} 
-				else 
+				}
+				else
 				{
 					m_writeToErrorStream = false;
 				}
@@ -149,7 +149,7 @@
 		/// The format of the output will depend on the appender's layout.
 		/// </para>
 		/// </remarks>
-		override protected void Append(LoggingEvent loggingEvent) 
+		override protected void Append(LoggingEvent loggingEvent)
 		{
 #if NETCF_1_0
 			// Write to the output stream
@@ -187,24 +187,24 @@
 		#region Public Static Fields
 
 		/// <summary>
-		/// The <see cref="ConsoleAppender.Target"/> to use when writing to the Console 
+		/// The <see cref="ConsoleAppender.Target"/> to use when writing to the Console
 		/// standard output stream.
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// The <see cref="ConsoleAppender.Target"/> to use when writing to the Console 
+		/// The <see cref="ConsoleAppender.Target"/> to use when writing to the Console
 		/// standard output stream.
 		/// </para>
 		/// </remarks>
 		public const string ConsoleOut = "Console.Out";
 
 		/// <summary>
-		/// The <see cref="ConsoleAppender.Target"/> to use when writing to the Console 
+		/// The <see cref="ConsoleAppender.Target"/> to use when writing to the Console
 		/// standard error output stream.
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// The <see cref="ConsoleAppender.Target"/> to use when writing to the Console 
+		/// The <see cref="ConsoleAppender.Target"/> to use when writing to the Console
 		/// standard error output stream.
 		/// </para>
 		/// </remarks>
diff --git a/src/Appender/DebugAppender.cs b/src/Appender/DebugAppender.cs
index df6a618..c2ac557 100644
--- a/src/Appender/DebugAppender.cs
+++ b/src/Appender/DebugAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -29,8 +29,8 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// The application configuration file can be used to control what listeners 
-	/// are actually used. See the MSDN documentation for the 
+	/// The application configuration file can be used to control what listeners
+	/// are actually used. See the MSDN documentation for the
 	/// <see cref="System.Diagnostics.Debug"/> class for details on configuring the
 	/// debug system.
 	/// </para>
@@ -57,7 +57,7 @@
 		}
 
 		/// <summary>
-		/// Initializes a new instance of the <see cref="DebugAppender" /> 
+		/// Initializes a new instance of the <see cref="DebugAppender" />
 		/// with a specified layout.
 		/// </summary>
 		/// <param name="layout">The layout to use with this appender.</param>
@@ -77,16 +77,16 @@
 		#region Public Instance Properties
 
 		/// <summary>
-		/// Gets or sets a value that indicates whether the appender will 
+		/// Gets or sets a value that indicates whether the appender will
 		/// flush at the end of each write.
 		/// </summary>
 		/// <remarks>
-		/// <para>The default behavior is to flush at the end of each 
-		/// write. If the option is set to<c>false</c>, then the underlying 
-		/// stream can defer writing to physical medium to a later time. 
+		/// <para>The default behavior is to flush at the end of each
+		/// write. If the option is set to<c>false</c>, then the underlying
+		/// stream can defer writing to physical medium to a later time.
 		/// </para>
 		/// <para>
-		/// Avoiding the flush operation at the end of each append results 
+		/// Avoiding the flush operation at the end of each append results
 		/// in a performance gain of 10 to 20 percent. However, there is safety
 		/// trade-off involved in skipping flushing. Indeed, when flushing is
 		/// skipped, then it is likely that the last few log events will not
@@ -100,41 +100,41 @@
 			set { m_immediateFlush = value; }
 		}
 
-        /// <summary>
-        /// Formats the category parameter sent to the Debug method.
-        /// </summary>
-        /// <remarks>
-        /// <para>
-        /// Defaults to a <see cref="Layout.PatternLayout"/> with %logger as the pattern which will use the logger name of the current 
-        /// <see cref="LoggingEvent"/> as the category parameter.
-        /// </para>
-        /// <para>
-        /// </para> 
-        /// </remarks>
-        public PatternLayout Category
-        {
-            get { return m_category; }
-            set { m_category = value; }
-        }
- 
+		/// <summary>
+		/// Formats the category parameter sent to the Debug method.
+		/// </summary>
+		/// <remarks>
+		/// <para>
+		/// Defaults to a <see cref="Layout.PatternLayout"/> with %logger as the pattern which will use the logger name of the current
+		/// <see cref="LoggingEvent"/> as the category parameter.
+		/// </para>
+		/// <para>
+		/// </para>
+		/// </remarks>
+		public PatternLayout Category
+		{
+			get { return m_category; }
+			set { m_category = value; }
+		}
+
 		#endregion Public Instance Properties
 
 #if !NETSTANDARD1_3
-            /// <summary>
-            /// Flushes any buffered log data.
-            /// </summary>
-            /// <param name="millisecondsTimeout">The maximum time to wait for logging events to be flushed.</param>
-            /// <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
-            public override bool Flush(int millisecondsTimeout)
-            {
-                // Nothing to do if ImmediateFlush is true
-                if (m_immediateFlush) return true;
+			/// <summary>
+			/// Flushes any buffered log data.
+			/// </summary>
+			/// <param name="millisecondsTimeout">The maximum time to wait for logging events to be flushed.</param>
+			/// <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
+			public override bool Flush(int millisecondsTimeout)
+			{
+				// Nothing to do if ImmediateFlush is true
+				if (m_immediateFlush) return true;
 
-                // System.Diagnostics.Debug is thread-safe, so no need for lock(this).
-                System.Diagnostics.Debug.Flush();
+				// System.Diagnostics.Debug is thread-safe, so no need for lock(this).
+				System.Diagnostics.Debug.Flush();
 
-                return true;
-            }
+				return true;
+			}
 #endif
 
 		#region Override implementation of AppenderSkeleton
@@ -150,35 +150,35 @@
 		/// is called.
 		/// </para>
 		/// </remarks>
-		override protected void Append(LoggingEvent loggingEvent) 
+		override protected void Append(LoggingEvent loggingEvent)
 		{
 			//
 			// Write the string to the Debug system
 			//
-            if(m_category == null)
-            {
-                System.Diagnostics.Debug.Write(RenderLoggingEvent(loggingEvent));
-            }
-            else
-            {
-                string category = m_category.Format(loggingEvent);
-                if (string.IsNullOrEmpty(category))
-                {
-                    System.Diagnostics.Debug.Write(RenderLoggingEvent(loggingEvent));
-                }
-                else
-                {
-                    System.Diagnostics.Debug.Write(RenderLoggingEvent(loggingEvent), category);
-                }
-            }
+			if(m_category == null)
+			{
+				System.Diagnostics.Debug.Write(RenderLoggingEvent(loggingEvent));
+			}
+			else
+			{
+				string category = m_category.Format(loggingEvent);
+				if (string.IsNullOrEmpty(category))
+				{
+					System.Diagnostics.Debug.Write(RenderLoggingEvent(loggingEvent));
+				}
+				else
+				{
+					System.Diagnostics.Debug.Write(RenderLoggingEvent(loggingEvent), category);
+				}
+			}
 #if !NETSTANDARD1_3
 			//
 			// Flush the Debug system if needed
 			//
-			if (m_immediateFlush) 
+			if (m_immediateFlush)
 			{
 				System.Diagnostics.Debug.Flush();
-			} 
+			}
 #endif
 		}
 
@@ -206,7 +206,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Immediate flush is slower but ensures that each append request is 
+		/// Immediate flush is slower but ensures that each append request is
 		/// actually written. If <see cref="ImmediateFlush"/> is set to
 		/// <c>false</c>, then there is a good chance that the last few
 		/// logs events are not actually written to persistent media if and
@@ -217,10 +217,10 @@
 		/// </remarks>
 		private bool m_immediateFlush = true;
 
-        /// <summary>
-        /// Defaults to a <see cref="Layout.PatternLayout"/> with %logger as the pattern.
-        /// </summary>
-        private PatternLayout m_category = new PatternLayout("%logger");
+		/// <summary>
+		/// Defaults to a <see cref="Layout.PatternLayout"/> with %logger as the pattern.
+		/// </summary>
+		private PatternLayout m_category = new PatternLayout("%logger");
 
 		#endregion Private Instance Fields
 	}
diff --git a/src/Appender/EventLogAppender.cs b/src/Appender/EventLogAppender.cs
index 9cc031e..9752c6f 100644
--- a/src/Appender/EventLogAppender.cs
+++ b/src/Appender/EventLogAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -20,7 +20,7 @@
 // MONO 1.0 Beta mcs does not like #if !A && !B && !C syntax
 
 // .NET Compact Framework 1.0 has no support for EventLog
-#if !NETCF 
+#if !NETCF
 // SSCLI 1.0 has no support for EventLog
 #if !SSCLI
 
@@ -38,17 +38,17 @@
 	/// Writes events to the system event log.
 	/// </summary>
 	/// <remarks>
-    /// <para>
-    /// The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges.
-    /// See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog
-    /// </para>
+	/// <para>
+	/// The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges.
+	/// See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog
+	/// </para>
 	/// <para>
 	/// The <c>EventID</c> of the event log entry can be
 	/// set using the <c>EventID</c> property (<see cref="LoggingEvent.Properties"/>)
 	/// on the <see cref="LoggingEvent"/>.
 	/// </para>
-    /// <para>
-    /// The <c>Category</c> of the event log entry can be
+	/// <para>
+	/// The <c>Category</c> of the event log entry can be
 	/// set using the <c>Category</c> property (<see cref="LoggingEvent.Properties"/>)
 	/// on the <see cref="LoggingEvent"/>.
 	/// </para>
@@ -137,7 +137,7 @@
 		/// then you should set the <see cref="LogName"/> appropriately.</para>
 		/// <para>This should not be used to distinguish your event log messages
 		/// from those of other applications, the <see cref="ApplicationName"/>
-		/// property should be used to distinguish events. This property should be 
+		/// property should be used to distinguish events. This property should be
 		/// used to group together events into a single log.
 		/// </para>
 		/// </remarks>
@@ -169,7 +169,7 @@
 		/// computer, denoted by a dot "."
 		/// </summary>
 		/// <value>
-		/// The string name of the machine holding the event log that 
+		/// The string name of the machine holding the event log that
 		/// will be logged into.
 		/// </value>
 		/// <remarks>
@@ -214,46 +214,46 @@
 		/// of the current thread.
 		/// </para>
 		/// </remarks>
-		public SecurityContext SecurityContext 
+		public SecurityContext SecurityContext
 		{
 			get { return m_securityContext; }
 			set { m_securityContext = value; }
 		}
 
-        /// <summary>
-        /// Gets or sets the <c>EventId</c> to use unless one is explicitly specified via the <c>LoggingEvent</c>'s properties.
-        /// </summary>
-        /// <remarks>
-        /// <para>
-        /// The <c>EventID</c> of the event log entry will normally be
-	    /// set using the <c>EventID</c> property (<see cref="LoggingEvent.Properties"/>)
-	    /// on the <see cref="LoggingEvent"/>.
-        /// This property provides the fallback value which defaults to 0.
-        /// </para>
-        /// </remarks>
-        public int EventId {
-            get { return m_eventId; }
-            set { m_eventId = value; }
-        }
+		/// <summary>
+		/// Gets or sets the <c>EventId</c> to use unless one is explicitly specified via the <c>LoggingEvent</c>'s properties.
+		/// </summary>
+		/// <remarks>
+		/// <para>
+		/// The <c>EventID</c> of the event log entry will normally be
+		/// set using the <c>EventID</c> property (<see cref="LoggingEvent.Properties"/>)
+		/// on the <see cref="LoggingEvent"/>.
+		/// This property provides the fallback value which defaults to 0.
+		/// </para>
+		/// </remarks>
+		public int EventId {
+			get { return m_eventId; }
+			set { m_eventId = value; }
+		}
 
 
-        /// <summary>
-        /// Gets or sets the <c>Category</c> to use unless one is explicitly specified via the <c>LoggingEvent</c>'s properties.
-        /// </summary>
-        /// <remarks>
-        /// <para>
-        /// The <c>Category</c> of the event log entry will normally be
-	    /// set using the <c>Category</c> property (<see cref="LoggingEvent.Properties"/>)
-	    /// on the <see cref="LoggingEvent"/>.
-        /// This property provides the fallback value which defaults to 0.
-        /// </para>
-        /// </remarks>
-        public short Category
-        {
-            get { return m_category; }
-            set { m_category = value; }
-        }
-        #endregion // Public Instance Properties
+		/// <summary>
+		/// Gets or sets the <c>Category</c> to use unless one is explicitly specified via the <c>LoggingEvent</c>'s properties.
+		/// </summary>
+		/// <remarks>
+		/// <para>
+		/// The <c>Category</c> of the event log entry will normally be
+		/// set using the <c>Category</c> property (<see cref="LoggingEvent.Properties"/>)
+		/// on the <see cref="LoggingEvent"/>.
+		/// This property provides the fallback value which defaults to 0.
+		/// </para>
+		/// </remarks>
+		public short Category
+		{
+			get { return m_category; }
+			set { m_category = value; }
+		}
+		#endregion // Public Instance Properties
 
 		#region Implementation of IOptionHandler
 
@@ -263,83 +263,83 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
-		override public void ActivateOptions() 
+		override public void ActivateOptions()
 		{
-            try
-            {
-                base.ActivateOptions();
+			try
+			{
+				base.ActivateOptions();
 
-                if (m_securityContext == null)
-                {
-                    m_securityContext = SecurityContextProvider.DefaultProvider.CreateSecurityContext(this);
-                }
+				if (m_securityContext == null)
+				{
+					m_securityContext = SecurityContextProvider.DefaultProvider.CreateSecurityContext(this);
+				}
 
-                bool sourceAlreadyExists = false;
-                string currentLogName = null;
+				bool sourceAlreadyExists = false;
+				string currentLogName = null;
 
-                using (SecurityContext.Impersonate(this))
-                {
-                    sourceAlreadyExists = EventLog.SourceExists(m_applicationName);
-                    if (sourceAlreadyExists) {
-                        currentLogName = EventLog.LogNameFromSourceName(m_applicationName, m_machineName);
-                    }
-                }
+				using (SecurityContext.Impersonate(this))
+				{
+					sourceAlreadyExists = EventLog.SourceExists(m_applicationName);
+					if (sourceAlreadyExists) {
+						currentLogName = EventLog.LogNameFromSourceName(m_applicationName, m_machineName);
+					}
+				}
 
-                if (sourceAlreadyExists && currentLogName != m_logName)
-                {
-                    LogLog.Debug(declaringType, "Changing event source [" + m_applicationName + "] from log [" + currentLogName + "] to log [" + m_logName + "]");
-                }
-                else if (!sourceAlreadyExists)
-                {
-                    LogLog.Debug(declaringType, "Creating event source Source [" + m_applicationName + "] in log " + m_logName + "]");
-                }
+				if (sourceAlreadyExists && currentLogName != m_logName)
+				{
+					LogLog.Debug(declaringType, "Changing event source [" + m_applicationName + "] from log [" + currentLogName + "] to log [" + m_logName + "]");
+				}
+				else if (!sourceAlreadyExists)
+				{
+					LogLog.Debug(declaringType, "Creating event source Source [" + m_applicationName + "] in log " + m_logName + "]");
+				}
 
-                string registeredLogName = null;
+				string registeredLogName = null;
 
-                using (SecurityContext.Impersonate(this))
-                {
-                    if (sourceAlreadyExists && currentLogName != m_logName)
-                    {
-                        //
-                        // Re-register this to the current application if the user has changed
-                        // the application / logfile association
-                        //
-                        EventLog.DeleteEventSource(m_applicationName, m_machineName);
-                        CreateEventSource(m_applicationName, m_logName, m_machineName);
+				using (SecurityContext.Impersonate(this))
+				{
+					if (sourceAlreadyExists && currentLogName != m_logName)
+					{
+						//
+						// Re-register this to the current application if the user has changed
+						// the application / logfile association
+						//
+						EventLog.DeleteEventSource(m_applicationName, m_machineName);
+						CreateEventSource(m_applicationName, m_logName, m_machineName);
 
-                        registeredLogName = EventLog.LogNameFromSourceName(m_applicationName, m_machineName);
-                    }
-                    else if (!sourceAlreadyExists)
-                    {
-                        CreateEventSource(m_applicationName, m_logName, m_machineName);
+						registeredLogName = EventLog.LogNameFromSourceName(m_applicationName, m_machineName);
+					}
+					else if (!sourceAlreadyExists)
+					{
+						CreateEventSource(m_applicationName, m_logName, m_machineName);
 
-                        registeredLogName = EventLog.LogNameFromSourceName(m_applicationName, m_machineName);
-                    }
-                }
+						registeredLogName = EventLog.LogNameFromSourceName(m_applicationName, m_machineName);
+					}
+				}
 
-                m_levelMapping.ActivateOptions();
+				m_levelMapping.ActivateOptions();
 
-                LogLog.Debug(declaringType, "Source [" + m_applicationName + "] is registered to log [" + registeredLogName + "]");
-            }
-            catch (System.Security.SecurityException ex)
-            {
-                ErrorHandler.Error("Caught a SecurityException trying to access the EventLog.  Most likely the event source "
-                    + m_applicationName
-                    + " doesn't exist and must be created by a local administrator.  Will disable EventLogAppender."
-                    + "  See http://logging.apache.org/log4net/release/faq.html#trouble-EventLog",
-                    ex);
-                Threshold = Level.Off;
-            }
+				LogLog.Debug(declaringType, "Source [" + m_applicationName + "] is registered to log [" + registeredLogName + "]");
+			}
+			catch (System.Security.SecurityException ex)
+			{
+				ErrorHandler.Error("Caught a SecurityException trying to access the EventLog.  Most likely the event source "
+					+ m_applicationName
+					+ " doesn't exist and must be created by a local administrator.  Will disable EventLogAppender."
+					+ "  See http://logging.apache.org/log4net/release/faq.html#trouble-EventLog",
+					ex);
+				Threshold = Level.Off;
+			}
 		}
 
 		#endregion // Implementation of IOptionHandler
@@ -360,26 +360,26 @@
 			EventLog.CreateEventSource(source, logName, machineName);
 #endif
 		}
- 
+
 		#region Override implementation of AppenderSkeleton
 
 		/// <summary>
 		/// This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/>
-		/// method. 
+		/// method.
 		/// </summary>
 		/// <param name="loggingEvent">the event to log</param>
 		/// <remarks>
-		/// <para>Writes the event to the system event log using the 
+		/// <para>Writes the event to the system event log using the
 		/// <see cref="ApplicationName"/>.</para>
-		/// 
+		///
 		/// <para>If the event has an <c>EventID</c> property (see <see cref="LoggingEvent.Properties"/>)
 		/// set then this integer will be used as the event log event id.</para>
-		/// 
+		///
 		/// <para>
 		/// There is a limit of 32K characters for an event log message
 		/// </para>
 		/// </remarks>
-		override protected void Append(LoggingEvent loggingEvent) 
+		override protected void Append(LoggingEvent loggingEvent)
 		{
 			//
 			// Write the resulting string to the event log system
@@ -397,10 +397,10 @@
 				else
 				{
 					string eventIDPropertyString = eventIDPropertyObj as string;
-                    if (eventIDPropertyString == null)
-                    {
-                        eventIDPropertyString = eventIDPropertyObj.ToString();
-                    }
+					if (eventIDPropertyString == null)
+					{
+						eventIDPropertyString = eventIDPropertyObj.ToString();
+					}
 					if (eventIDPropertyString != null && eventIDPropertyString.Length > 0)
 					{
 						// Read the string property into a number
@@ -417,37 +417,37 @@
 				}
 			}
 
-            short category = m_category;
-            // Look for the Category property
-            object categoryPropertyObj = loggingEvent.LookupProperty("Category");
-            if (categoryPropertyObj != null)
-            {
-                if (categoryPropertyObj is short)
-                {
-                    category = (short) categoryPropertyObj;
-                }
-                else
-                {
-                    string categoryPropertyString = categoryPropertyObj as string;
-                    if (categoryPropertyString == null)
-                    {
-                        categoryPropertyString = categoryPropertyObj.ToString();
-                    }
-                    if (categoryPropertyString != null && categoryPropertyString.Length > 0)
-                    {
-                        // Read the string property into a number
-                        short shortVal;
-                        if (SystemInfo.TryParse(categoryPropertyString, out shortVal))
-                        {
-                            category = shortVal;
-                        }
-                        else
-                        {
-                            ErrorHandler.Error("Unable to parse event category property [" + categoryPropertyString + "].");
-                        }
-                    }
-                }
-            }
+			short category = m_category;
+			// Look for the Category property
+			object categoryPropertyObj = loggingEvent.LookupProperty("Category");
+			if (categoryPropertyObj != null)
+			{
+				if (categoryPropertyObj is short)
+				{
+					category = (short) categoryPropertyObj;
+				}
+				else
+				{
+					string categoryPropertyString = categoryPropertyObj as string;
+					if (categoryPropertyString == null)
+					{
+						categoryPropertyString = categoryPropertyObj.ToString();
+					}
+					if (categoryPropertyString != null && categoryPropertyString.Length > 0)
+					{
+						// Read the string property into a number
+						short shortVal;
+						if (SystemInfo.TryParse(categoryPropertyString, out shortVal))
+						{
+							category = shortVal;
+						}
+						else
+						{
+							ErrorHandler.Error("Unable to parse event category property [" + categoryPropertyString + "].");
+						}
+					}
+				}
+			}
 
 			// Write to the event log
 			try
@@ -471,7 +471,7 @@
 			{
 				ErrorHandler.Error("Unable to write to event log [" + m_logName + "] using source [" + m_applicationName + "]", ex);
 			}
-		} 
+		}
 
 		/// <summary>
 		/// This appender requires a <see cref="Layout"/> to be set.
@@ -498,7 +498,7 @@
 		/// <returns>The equivalent <see cref="EventLogEntryType"/> for a <see cref="Level"/> <paramref name="level"/></returns>
 		/// <remarks>
 		/// Because there are fewer applicable <see cref="EventLogEntryType"/>
-		/// values to use in logging levels than there are in the 
+		/// values to use in logging levels than there are in the
 		/// <see cref="Level"/> this is a one way mapping. There is
 		/// a loss of information during the conversion.
 		/// </remarks>
@@ -513,14 +513,14 @@
 
 			// Use default behavior
 
-			if (level >= Level.Error) 
+			if (level >= Level.Error)
 			{
 				return EventLogEntryType.Error;
 			}
-			else if (level == Level.Warn) 
+			else if (level == Level.Warn)
 			{
 				return EventLogEntryType.Warning;
-			} 
+			}
 
 			// Default setting
 			return EventLogEntryType.Information;
@@ -558,17 +558,17 @@
 		/// </summary>
 		private SecurityContext m_securityContext;
 
-        /// <summary>
-        /// The event ID to use unless one is explicitly specified via the <c>LoggingEvent</c>'s properties.
-        /// </summary>
-        private int m_eventId = 0;
+		/// <summary>
+		/// The event ID to use unless one is explicitly specified via the <c>LoggingEvent</c>'s properties.
+		/// </summary>
+		private int m_eventId = 0;
 
-        /// <summary>
-        /// The event category to use unless one is explicitly specified via the <c>LoggingEvent</c>'s properties.
-        /// </summary>
-        private short m_category = 0;
+		/// <summary>
+		/// The event category to use unless one is explicitly specified via the <c>LoggingEvent</c>'s properties.
+		/// </summary>
+		private short m_category = 0;
 
-        #endregion // Private Instance Fields
+		#endregion // Private Instance Fields
 
 		#region Level2EventLogEntryType LevelMapping Entry
 
@@ -603,27 +603,27 @@
 
 		#endregion // LevelColors LevelMapping Entry
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the EventLogAppender class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(EventLogAppender);
+		/// <summary>
+		/// The fully qualified type of the EventLogAppender class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(EventLogAppender);
 
 		/// <summary>
 		/// The maximum size supported by default.
 		/// </summary>
 		/// <remarks>
 		/// http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx
-		/// The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 
-		/// may leave space for a two byte null terminator of #0#0). The 32766 max 
-		/// length is what the .NET 4.0 source code checks for, but this is WRONG! 
-		/// Strings with a length > 31839 on Windows Vista or higher can CORRUPT 
-		/// the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() 
+		/// The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766
+		/// may leave space for a two byte null terminator of #0#0). The 32766 max
+		/// length is what the .NET 4.0 source code checks for, but this is WRONG!
+		/// Strings with a length > 31839 on Windows Vista or higher can CORRUPT
+		/// the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent()
 		/// for the use of the 32766 max size.
 		/// </remarks>
 		private readonly static int MAX_EVENTLOG_MESSAGE_SIZE_DEFAULT = 32766;
@@ -636,22 +636,22 @@
 		/// See ReportEvent API:
 		///		http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx
 		/// ReportEvent's lpStrings parameter:
-		/// "A pointer to a buffer containing an array of 
-		/// null-terminated strings that are merged into the message before Event Viewer 
-		/// displays the string to the user. This parameter must be a valid pointer 
+		/// "A pointer to a buffer containing an array of
+		/// null-terminated strings that are merged into the message before Event Viewer
+		/// displays the string to the user. This parameter must be a valid pointer
 		/// (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters."
-		/// 
+		///
 		/// Going beyond the size of 31839 will (at some point) corrupt the event log on Windows
 		/// Vista or higher! It may succeed for a while...but you will eventually run into the
 		/// error: "System.ComponentModel.Win32Exception : A device attached to the system is
-		/// not functioning", and the event log will then be corrupt (I was able to corrupt 
+		/// not functioning", and the event log will then be corrupt (I was able to corrupt
 		/// an event log using a length of 31877 on Windows 7).
-		/// 
+		///
 		/// The max size for Windows Vista or higher is documented here:
 		///		http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx.
-		/// Going over this size may succeed a few times but the buffer will overrun and 
+		/// Going over this size may succeed a few times but the buffer will overrun and
 		/// eventually corrupt the log (based on testing).
-		/// 
+		///
 		/// The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API.
 		/// The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a
 		/// terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the
@@ -682,7 +682,7 @@
 			return MAX_EVENTLOG_MESSAGE_SIZE_DEFAULT;
 		}
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
 
diff --git a/src/Appender/FileAppender.cs b/src/Appender/FileAppender.cs
index 41616b9..f6bc151 100644
--- a/src/Appender/FileAppender.cs
+++ b/src/Appender/FileAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -40,9 +40,9 @@
 	/// the <see cref="File"/> property.
 	/// </para>
 	/// <para>
-	/// The file can be opened in either append or overwrite mode 
+	/// The file can be opened in either append or overwrite mode
 	/// by specifying the <see cref="AppendToFile"/> property.
-	/// If the file path is relative it is taken as relative from 
+	/// If the file path is relative it is taken as relative from
 	/// the application base directory. The file encoding can be
 	/// specified by setting the <see cref="Encoding"/> property.
 	/// </para>
@@ -63,7 +63,7 @@
 	/// <para>
 	/// The <see cref="FileAppender"/> supports pluggable file locking models via
 	/// the <see cref="LockingModel"/> property.
-	/// The default behavior, implemented by <see cref="FileAppender.ExclusiveLock"/> 
+	/// The default behavior, implemented by <see cref="FileAppender.ExclusiveLock"/>
 	/// is to obtain an exclusive write lock on the file until this appender is closed.
 	/// The alternative models only hold a
 	/// write lock while the appender is writing a logging event (<see cref="FileAppender.MinimalLock"/>)
@@ -89,9 +89,9 @@
 	/// the <see cref="File"/> property.
 	/// </para>
 	/// <para>
-	/// The file can be opened in either append or overwrite mode 
+	/// The file can be opened in either append or overwrite mode
 	/// by specifying the <see cref="AppendToFile"/> property.
-	/// If the file path is relative it is taken as relative from 
+	/// If the file path is relative it is taken as relative from
 	/// the application base directory. The file encoding can be
 	/// specified by setting the <see cref="Encoding"/> property.
 	/// </para>
@@ -112,15 +112,15 @@
 	/// <para>
 	/// The <see cref="FileAppender"/> supports pluggable file locking models via
 	/// the <see cref="LockingModel"/> property.
-	/// The default behavior, implemented by <see cref="FileAppender.ExclusiveLock"/> 
+	/// The default behavior, implemented by <see cref="FileAppender.ExclusiveLock"/>
 	/// is to obtain an exclusive write lock on the file until this appender is closed.
 	/// The alternative model only holds a
-    /// write lock while the appender is writing a logging event (<see cref="FileAppender.MinimalLock"/>).
+	/// write lock while the appender is writing a logging event (<see cref="FileAppender.MinimalLock"/>).
 	/// </para>
-    /// <para>
-    /// All locking strategies have issues and you should seriously consider using a different strategy that
-    /// avoids having multiple processes logging to the same file.
-    /// </para>
+	/// <para>
+	/// All locking strategies have issues and you should seriously consider using a different strategy that
+	/// avoids having multiple processes logging to the same file.
+	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
 	/// <author>Gert Driesen</author>
@@ -133,7 +133,7 @@
 		#region LockingStream Inner Class
 
 		/// <summary>
-		/// Write only <see cref="Stream"/> that uses the <see cref="LockingModelBase"/> 
+		/// Write only <see cref="Stream"/> that uses the <see cref="LockingModelBase"/>
 		/// to manage access to an underlying resource.
 		/// </summary>
 		private sealed class LockingStream : Stream, IDisposable
@@ -212,14 +212,14 @@
 			public override Task<int> ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
 			{
 				AssertLocked();
- 				return m_realStream.ReadAsync(buffer, offset, count, cancellationToken);
- 			}
+				return m_realStream.ReadAsync(buffer, offset, count, cancellationToken);
+			}
 
- 			public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
- 			{
- 				AssertLocked(); 
- 				return base.WriteAsync(buffer, offset, count, cancellationToken);
-   			}
+			public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
+			{
+				AssertLocked();
+				return base.WriteAsync(buffer, offset, count, cancellationToken);
+			}
 #endif
 
 			public override void Flush()
@@ -379,7 +379,7 @@
 			/// <param name="encoding">The encoding to use</param>
 			/// <remarks>
 			/// <para>
-			/// Open the file specified and prepare for logging. 
+			/// Open the file specified and prepare for logging.
 			/// No writes will be made until <see cref="AcquireLock"/> is called.
 			/// Must be called before any calls to <see cref="AcquireLock"/>,
 			/// <see cref="ReleaseLock"/> and <see cref="CloseFile"/>.
@@ -413,7 +413,7 @@
 			/// <returns>A stream that is ready to be written to.</returns>
 			/// <remarks>
 			/// <para>
-			/// Acquire the lock on the file in preparation for writing to it. 
+			/// Acquire the lock on the file in preparation for writing to it.
 			/// Return a stream pointing to the file. <see cref="ReleaseLock"/>
 			/// must be called to release the lock on the output file.
 			/// </para>
@@ -425,7 +425,7 @@
 			/// </summary>
 			/// <remarks>
 			/// <para>
-			/// Release the lock on the file. No further writes will be made to the 
+			/// Release the lock on the file. No further writes will be made to the
 			/// stream until <see cref="AcquireLock"/> is called again.
 			/// </para>
 			/// </remarks>
@@ -461,7 +461,7 @@
 			/// </summary>
 			/// <remarks>
 			/// <para>
-			/// Typically called during OpenFile or AcquireLock. 
+			/// Typically called during OpenFile or AcquireLock.
 			/// </para>
 			/// <para>
 			/// If the directory portion of the <paramref name="filename"/> does not exist, it is created
@@ -512,7 +512,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Open the file once for writing and hold it open until <see cref="CloseFile"/> is called. 
+		/// Open the file once for writing and hold it open until <see cref="CloseFile"/> is called.
 		/// Maintains an exclusive lock on the file during this time.
 		/// </para>
 		/// </remarks>
@@ -528,7 +528,7 @@
 			/// <param name="encoding">The encoding to use</param>
 			/// <remarks>
 			/// <para>
-			/// Open the file specified and prepare for logging. 
+			/// Open the file specified and prepare for logging.
 			/// No writes will be made until <see cref="AcquireLock"/> is called.
 			/// Must be called before any calls to <see cref="AcquireLock"/>,
 			/// <see cref="ReleaseLock"/> and <see cref="CloseFile"/>.
@@ -609,9 +609,9 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Opens the file once for each <see cref="AcquireLock"/>/<see cref="ReleaseLock"/> cycle, 
+		/// Opens the file once for each <see cref="AcquireLock"/>/<see cref="ReleaseLock"/> cycle,
 		/// thus holding the lock for the minimal amount of time. This method of locking
-		/// is considerably slower than <see cref="FileAppender.ExclusiveLock"/> but allows 
+		/// is considerably slower than <see cref="FileAppender.ExclusiveLock"/> but allows
 		/// other processes to move/delete the log file whilst logging continues.
 		/// </para>
 		/// </remarks>
@@ -629,7 +629,7 @@
 			/// <param name="encoding">The encoding to use</param>
 			/// <remarks>
 			/// <para>
-			/// Open the file specified and prepare for logging. 
+			/// Open the file specified and prepare for logging.
 			/// No writes will be made until <see cref="AcquireLock"/> is called.
 			/// Must be called before any calls to <see cref="AcquireLock"/>,
 			/// <see cref="ReleaseLock"/> and <see cref="CloseFile"/>.
@@ -660,7 +660,7 @@
 			/// <returns>A stream that is ready to be written to.</returns>
 			/// <remarks>
 			/// <para>
-			/// Acquire the lock on the file in preparation for writing to it. 
+			/// Acquire the lock on the file in preparation for writing to it.
 			/// Return a stream pointing to the file. <see cref="ReleaseLock"/>
 			/// must be called to release the lock on the output file.
 			/// </para>
@@ -687,7 +687,7 @@
 			/// </summary>
 			/// <remarks>
 			/// <para>
-			/// Release the lock on the file. No further writes will be made to the 
+			/// Release the lock on the file. No further writes will be made to the
 			/// stream until <see cref="AcquireLock"/> is called again.
 			/// </para>
 			/// </remarks>
@@ -734,7 +734,7 @@
 			/// <param name="encoding">The encoding to use</param>
 			/// <remarks>
 			/// <para>
-			/// Open the file specified and prepare for logging. 
+			/// Open the file specified and prepare for logging.
 			/// No writes will be made until <see cref="AcquireLock"/> is called.
 			/// Must be called before any calls to <see cref="AcquireLock"/>,
 			/// -<see cref="ReleaseLock"/> and <see cref="CloseFile"/>.
@@ -941,7 +941,7 @@
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// If the path is relative it is taken as relative from 
+		/// If the path is relative it is taken as relative from
 		/// the application base directory.
 		/// </para>
 		/// </remarks>
@@ -960,7 +960,7 @@
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// If the value is set to false then the file will be overwritten, if 
+		/// If the value is set to false then the file will be overwritten, if
 		/// it is set to true then the file will be appended to.
 		/// </para>
 		/// The default value is true.
@@ -1021,10 +1021,10 @@
 		/// Gets or sets the <see cref="FileAppender.LockingModel"/> used to handle locking of the file.
 		/// </para>
 		/// <para>
-        /// There are two built in locking models, <see cref="FileAppender.ExclusiveLock"/> and <see cref="FileAppender.MinimalLock"/>.
-		/// The first locks the file from the start of logging to the end, the 
+		/// There are two built in locking models, <see cref="FileAppender.ExclusiveLock"/> and <see cref="FileAppender.MinimalLock"/>.
+		/// The first locks the file from the start of logging to the end, the
 		/// second locks only for the minimal amount of time when logging each message
-        /// and the last synchronizes processes using a named system wide Mutex.
+		/// and the last synchronizes processes using a named system wide Mutex.
 		/// </para>
 		/// <para>
 		/// The default locking model is the <see cref="FileAppender.ExclusiveLock"/>.
@@ -1043,7 +1043,7 @@
 		/// </para>
 		/// <para>
 		/// There are three built in locking models, <see cref="FileAppender.ExclusiveLock"/>, <see cref="FileAppender.MinimalLock"/> and <see cref="FileAppender.InterProcessLock"/> .
-		/// The first locks the file from the start of logging to the end, the 
+		/// The first locks the file from the start of logging to the end, the
 		/// second locks only for the minimal amount of time when logging each message
 		/// and the last synchronizes processes using a named system wide Mutex.
 		/// </para>
@@ -1063,18 +1063,18 @@
 		#region Override implementation of AppenderSkeleton
 
 		/// <summary>
-		/// Activate the options on the file appender. 
+		/// Activate the options on the file appender.
 		/// </summary>
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// <para>
@@ -1156,13 +1156,13 @@
 
 		/// <summary>
 		/// This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/>
-		/// method. 
+		/// method.
 		/// </summary>
 		/// <param name="loggingEvent">The event to log.</param>
 		/// <remarks>
 		/// <para>
-		/// Writes a log statement to the output stream if the output stream exists 
-		/// and is writable.  
+		/// Writes a log statement to the output stream if the output stream exists
+		/// and is writable.
 		/// </para>
 		/// <para>
 		/// The format of the output will depend on the appender's layout.
@@ -1185,7 +1185,7 @@
 
 		/// <summary>
 		/// This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent[])"/>
-		/// method. 
+		/// method.
 		/// </summary>
 		/// <param name="loggingEvents">The array of events to log.</param>
 		/// <remarks>
@@ -1398,7 +1398,7 @@
 		/// <remarks>
 		/// <para>
 		/// This implementation of <see cref="M:SetQWForFiles(Stream)"/> creates a <see cref="StreamWriter"/>
-		/// over the <paramref name="fileStream"/> and passes it to the 
+		/// over the <paramref name="fileStream"/> and passes it to the
 		/// <see cref="M:SetQWForFiles(TextWriter)"/> method.
 		/// </para>
 		/// <para>
@@ -1440,7 +1440,7 @@
 		/// <para>
 		/// Converts the path specified to a fully
 		/// qualified path. If the path is relative it is
-		/// taken as relative from the application base 
+		/// taken as relative from the application base
 		/// directory.
 		/// </para>
 		/// </remarks>
diff --git a/src/Appender/ForwardingAppender.cs b/src/Appender/ForwardingAppender.cs
index 681f812..77240e8 100644
--- a/src/Appender/ForwardingAppender.cs
+++ b/src/Appender/ForwardingAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -61,7 +61,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Releases any resources allocated within the appender such as file handles, 
+		/// Releases any resources allocated within the appender such as file handles,
 		/// network connections, etc.
 		/// </para>
 		/// <para>
@@ -81,7 +81,7 @@
 		}
 
 		/// <summary>
-		/// Forward the logging event to the attached appenders 
+		/// Forward the logging event to the attached appenders
 		/// </summary>
 		/// <param name="loggingEvent">The event to log.</param>
 		/// <remarks>
@@ -89,17 +89,17 @@
 		/// Delivers the logging event to all the attached appenders.
 		/// </para>
 		/// </remarks>
-		override protected void Append(LoggingEvent loggingEvent) 
+		override protected void Append(LoggingEvent loggingEvent)
 		{
 			// Pass the logging event on the the attached appenders
 			if (m_appenderAttachedImpl != null)
 			{
 				m_appenderAttachedImpl.AppendLoopOnAppenders(loggingEvent);
 			}
-		} 
+		}
 
 		/// <summary>
-		/// Forward the logging events to the attached appenders 
+		/// Forward the logging events to the attached appenders
 		/// </summary>
 		/// <param name="loggingEvents">The array of events to log.</param>
 		/// <remarks>
@@ -107,14 +107,14 @@
 		/// Delivers the logging events to all the attached appenders.
 		/// </para>
 		/// </remarks>
-		override protected void Append(LoggingEvent[] loggingEvents) 
+		override protected void Append(LoggingEvent[] loggingEvents)
 		{
 			// Pass the logging event on the the attached appenders
 			if (m_appenderAttachedImpl != null)
 			{
 				m_appenderAttachedImpl.AppendLoopOnAppenders(loggingEvents);
 			}
-		} 
+		}
 
 		#endregion Override implementation of AppenderSkeleton
 
@@ -131,7 +131,7 @@
 		/// appenders, then it won't be added again.
 		/// </para>
 		/// </remarks>
-		virtual public void AddAppender(IAppender newAppender) 
+		virtual public void AddAppender(IAppender newAppender)
 		{
 			if (newAppender == null)
 			{
@@ -139,7 +139,7 @@
 			}
 			lock(this)
 			{
-				if (m_appenderAttachedImpl == null) 
+				if (m_appenderAttachedImpl == null)
 				{
 					m_appenderAttachedImpl = new log4net.Util.AppenderAttachedImpl();
 				}
@@ -148,17 +148,17 @@
 		}
 
 		/// <summary>
-		/// Gets the appenders contained in this appender as an 
+		/// Gets the appenders contained in this appender as an
 		/// <see cref="System.Collections.ICollection"/>.
 		/// </summary>
 		/// <remarks>
-		/// If no appenders can be found, then an <see cref="EmptyCollection"/> 
+		/// If no appenders can be found, then an <see cref="EmptyCollection"/>
 		/// is returned.
 		/// </remarks>
 		/// <returns>
 		/// A collection of the appenders in this appender.
 		/// </returns>
-		virtual public AppenderCollection Appenders 
+		virtual public AppenderCollection Appenders
 		{
 			get
 			{
@@ -168,7 +168,7 @@
 					{
 						return AppenderCollection.EmptyCollection;
 					}
-					else 
+					else
 					{
 						return m_appenderAttachedImpl.Appenders;
 					}
@@ -188,7 +188,7 @@
 		/// Get the named appender attached to this appender.
 		/// </para>
 		/// </remarks>
-		virtual public IAppender GetAppender(string name) 
+		virtual public IAppender GetAppender(string name)
 		{
 			lock(this)
 			{
@@ -209,11 +209,11 @@
 		/// This is useful when re-reading configuration information.
 		/// </para>
 		/// </remarks>
-		virtual public void RemoveAllAppenders() 
+		virtual public void RemoveAllAppenders()
 		{
 			lock(this)
 			{
-				if (m_appenderAttachedImpl != null) 
+				if (m_appenderAttachedImpl != null)
 				{
 					m_appenderAttachedImpl.RemoveAllAppenders();
 					m_appenderAttachedImpl = null;
@@ -231,11 +231,11 @@
 		/// If you are discarding the appender you must call
 		/// <see cref="IAppender.Close"/> on the appender removed.
 		/// </remarks>
-		virtual public IAppender RemoveAppender(IAppender appender) 
+		virtual public IAppender RemoveAppender(IAppender appender)
 		{
 			lock(this)
 			{
-				if (appender != null && m_appenderAttachedImpl != null) 
+				if (appender != null && m_appenderAttachedImpl != null)
 				{
 					return m_appenderAttachedImpl.RemoveAppender(appender);
 				}
@@ -253,7 +253,7 @@
 		/// If you are discarding the appender you must call
 		/// <see cref="IAppender.Close"/> on the appender removed.
 		/// </remarks>
-		virtual public IAppender RemoveAppender(string name) 
+		virtual public IAppender RemoveAppender(string name)
 		{
 			lock(this)
 			{
@@ -264,7 +264,7 @@
 			}
 			return null;
 		}
-  
+
 		#endregion Implementation of IAppenderAttachable
 
 		#region Private Instance Fields
diff --git a/src/Appender/IAppender.cs b/src/Appender/IAppender.cs
index a644f07..9af7ebd 100644
--- a/src/Appender/IAppender.cs
+++ b/src/Appender/IAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -46,7 +46,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Releases any resources allocated within the appender such as file handles, 
+		/// Releases any resources allocated within the appender such as file handles,
 		/// network connections, etc.
 		/// </para>
 		/// <para>
diff --git a/src/Appender/IBulkAppender.cs b/src/Appender/IBulkAppender.cs
index 469eb85..2d24fc0 100644
--- a/src/Appender/IBulkAppender.cs
+++ b/src/Appender/IBulkAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/Appender/IFlushable.cs b/src/Appender/IFlushable.cs
index 2cb7ae3..298d96d 100644
--- a/src/Appender/IFlushable.cs
+++ b/src/Appender/IFlushable.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,39 +21,39 @@
 
 namespace log4net.Appender
 {
-    /// <summary>
-    /// Interface that can be implemented by Appenders that buffer logging data and expose a <see cref="Flush"/> method.
-    /// </summary>
-    public interface IFlushable
-    {
-        /// <summary>
-        /// Flushes any buffered log data.
-        /// </summary>
-        /// <remarks>
-        /// Appenders that implement the <see cref="Flush"/> method must do so in a thread-safe manner: it can be called concurrently with
-        /// the <see cref="log4net.Appender.IAppender.DoAppend"/> method.
-        /// <para>
-        /// Typically this is done by locking on the Appender instance, e.g.:
-        /// <code>
-        /// <![CDATA[
-        /// public bool Flush(int millisecondsTimeout)
-        /// {
-        ///     lock(this)
-        ///     {
-        ///         // Flush buffered logging data
-        ///         ...
-        ///     }
-        /// }
-        /// ]]>
-        /// </code>
-        /// </para>
-        /// <para>
-        /// The <paramref name="millisecondsTimeout"/> parameter is only relevant for appenders that process logging events asynchronously,
-        /// such as <see cref="RemotingAppender"/>.
-        /// </para>
-        /// </remarks>
-        /// <param name="millisecondsTimeout">The maximum time to wait for logging events to be flushed.</param>
-        /// <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
-        bool Flush(int millisecondsTimeout);
-    }
+	/// <summary>
+	/// Interface that can be implemented by Appenders that buffer logging data and expose a <see cref="Flush"/> method.
+	/// </summary>
+	public interface IFlushable
+	{
+		/// <summary>
+		/// Flushes any buffered log data.
+		/// </summary>
+		/// <remarks>
+		/// Appenders that implement the <see cref="Flush"/> method must do so in a thread-safe manner: it can be called concurrently with
+		/// the <see cref="log4net.Appender.IAppender.DoAppend"/> method.
+		/// <para>
+		/// Typically this is done by locking on the Appender instance, e.g.:
+		/// <code>
+		/// <![CDATA[
+		/// public bool Flush(int millisecondsTimeout)
+		/// {
+		///     lock(this)
+		///     {
+		///         // Flush buffered logging data
+		///         ...
+		///     }
+		/// }
+		/// ]]>
+		/// </code>
+		/// </para>
+		/// <para>
+		/// The <paramref name="millisecondsTimeout"/> parameter is only relevant for appenders that process logging events asynchronously,
+		/// such as <see cref="RemotingAppender"/>.
+		/// </para>
+		/// </remarks>
+		/// <param name="millisecondsTimeout">The maximum time to wait for logging events to be flushed.</param>
+		/// <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
+		bool Flush(int millisecondsTimeout);
+	}
 }
diff --git a/src/Appender/LocalSyslogAppender.cs b/src/Appender/LocalSyslogAppender.cs
index a21d7ed..5e7d5e0 100644
--- a/src/Appender/LocalSyslogAppender.cs
+++ b/src/Appender/LocalSyslogAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -29,7 +29,7 @@
 using log4net.Util;
 using log4net.Layout;
 
-namespace log4net.Appender 
+namespace log4net.Appender
 {
 	/// <summary>
 	/// Logs events to a local syslog service.
@@ -40,7 +40,7 @@
 	/// If these functions are not available on the local system then this appender will not work!
 	/// </note>
 	/// <para>
-	/// The functions <c>openlog</c>, <c>syslog</c>, and <c>closelog</c> are specified in SUSv2 and 
+	/// The functions <c>openlog</c>, <c>syslog</c>, and <c>closelog</c> are specified in SUSv2 and
 	/// POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service.
 	/// </para>
 	/// <para>
@@ -51,20 +51,20 @@
 	/// <para>
 	/// Syslog messages must have a facility and and a severity. The severity
 	/// is derived from the Level of the logging event.
-	/// The facility must be chosen from the set of defined syslog 
+	/// The facility must be chosen from the set of defined syslog
 	/// <see cref="SyslogFacility"/> values. The facilities list is predefined
 	/// and cannot be extended.
 	/// </para>
 	/// <para>
 	/// An identifier is specified with each log message. This can be specified
-	/// by setting the <see cref="Identity"/> property. The identity (also know 
+	/// by setting the <see cref="Identity"/> property. The identity (also know
 	/// as the tag) must not contain white space. The default value for the
 	/// identity is the application name (from <see cref="SystemInfo.ApplicationFriendlyName"/>).
 	/// </para>
 	/// </remarks>
 	/// <author>Rob Lyon</author>
 	/// <author>Nicko Cadell</author>
-	public class LocalSyslogAppender : AppenderSkeleton 
+	public class LocalSyslogAppender : AppenderSkeleton
 	{
 		#region Enumerations
 
@@ -261,24 +261,24 @@
 		/// Initializes a new instance of the <see cref="LocalSyslogAppender" /> class.
 		/// </summary>
 		/// <remarks>
-		/// This instance of the <see cref="LocalSyslogAppender" /> class is set up to write 
+		/// This instance of the <see cref="LocalSyslogAppender" /> class is set up to write
 		/// to a local syslog service.
 		/// </remarks>
-		public LocalSyslogAppender() 
+		public LocalSyslogAppender()
 		{
 		}
 
 		#endregion // Public Instance Constructors
 
 		#region Public Instance Properties
-		
+
 		/// <summary>
 		/// Message identity
 		/// </summary>
 		/// <remarks>
 		/// <para>
 		/// An identifier is specified with each log message. This can be specified
-		/// by setting the <see cref="Identity"/> property. The identity (also know 
+		/// by setting the <see cref="Identity"/> property. The identity (also know
 		/// as the tag) must not contain white space. The default value for the
 		/// identity is the application name (from <see cref="SystemInfo.ApplicationFriendlyName"/>).
 		/// </para>
@@ -302,7 +302,7 @@
 			get { return m_facility; }
 			set { m_facility = value; }
 		}
-		
+
 		#endregion // Public Instance Properties
 
 		/// <summary>
@@ -327,23 +327,23 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
 #if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
-        [System.Security.SecuritySafeCritical]
+		[System.Security.SecuritySafeCritical]
 #endif
-        public override void ActivateOptions()
+		public override void ActivateOptions()
 		{
 			base.ActivateOptions();
-			
+
 			m_levelMapping.ActivateOptions();
 
 			string identString = m_identity;
@@ -379,12 +379,12 @@
 		/// </para>
 		/// </remarks>
 #if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
-        [System.Security.SecuritySafeCritical]
+		[System.Security.SecuritySafeCritical]
 #endif
 #if !NETSTANDARD1_3
-        [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]
+		[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]
 #endif
-        protected override void Append(LoggingEvent loggingEvent) 
+		protected override void Append(LoggingEvent loggingEvent)
 		{
 			int priority = GeneratePriority(m_facility, GetSeverity(loggingEvent.Level));
 			string message = RenderLoggingEvent(loggingEvent);
@@ -403,9 +403,9 @@
 		/// </para>
 		/// </remarks>
 #if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
-        [System.Security.SecuritySafeCritical]
+		[System.Security.SecuritySafeCritical]
 #endif
-        protected override void OnClose()
+		protected override void OnClose()
 		{
 			base.OnClose();
 
@@ -418,7 +418,7 @@
 			{
 				// Ignore dll not found at this point
 			}
-		
+
 			if (m_handleToIdentity != IntPtr.Zero)
 			{
 				// free global ident
@@ -466,30 +466,30 @@
 			// Fallback to sensible default values
 			//
 
-			if (level >= Level.Alert) 
+			if (level >= Level.Alert)
 			{
 				return SyslogSeverity.Alert;
-			} 
-			else if (level >= Level.Critical) 
+			}
+			else if (level >= Level.Critical)
 			{
 				return SyslogSeverity.Critical;
-			} 
-			else if (level >= Level.Error) 
+			}
+			else if (level >= Level.Error)
 			{
 				return SyslogSeverity.Error;
-			} 
-			else if (level >= Level.Warn) 
+			}
+			else if (level >= Level.Warn)
 			{
 				return SyslogSeverity.Warning;
-			} 
-			else if (level >= Level.Notice) 
+			}
+			else if (level >= Level.Notice)
 			{
 				return SyslogSeverity.Notice;
-			} 
-			else if (level >= Level.Info) 
+			}
+			else if (level >= Level.Info)
 			{
 				return SyslogSeverity.Informational;
-			} 
+			}
 			// Default setting
 			return SyslogSeverity.Debug;
 		}
@@ -538,7 +538,7 @@
 		#endregion // Private Instances Fields
 
 		#region External Members
-		
+
 		/// <summary>
 		/// Open connection to system logger.
 		/// </summary>
@@ -553,7 +553,7 @@
 		/// The libc syslog method takes a format string and a variable argument list similar
 		/// to the classic printf function. As this type of vararg list is not supported
 		/// by C# we need to specify the arguments explicitly. Here we have specified the
-		/// format string with a single message argument. The caller must set the format 
+		/// format string with a single message argument. The caller must set the format
 		/// string to <c>"%s"</c>.
 		/// </para>
 		/// </remarks>
diff --git a/src/Appender/ManagedColoredConsoleAppender.cs b/src/Appender/ManagedColoredConsoleAppender.cs
index 9efe65d..93c6c58 100644
--- a/src/Appender/ManagedColoredConsoleAppender.cs
+++ b/src/Appender/ManagedColoredConsoleAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -20,7 +20,7 @@
 // Compatibility:
 //	http://msdn.microsoft.com/en-us/library/system.console.foregroundcolor.aspx
 // Disable for unsupported targets
-#if !NETCF 
+#if !NETCF
 #if !SSCLI
 #if !CLI_1_0
 #if !MONO_1_0
@@ -55,7 +55,7 @@
 	/// <remarks>
 	/// <para>
 	/// ManagedColoredConsoleAppender appends log events to the standard output stream
-	/// or the error output stream using a layout specified by the 
+	/// or the error output stream using a layout specified by the
 	/// user. It also allows the color of a specific type of message to be set.
 	/// </para>
 	/// <para>
@@ -104,13 +104,13 @@
 		/// Initializes a new instance of the <see cref="ManagedColoredConsoleAppender" /> class.
 		/// </summary>
 		/// <remarks>
-		/// The instance of the <see cref="ManagedColoredConsoleAppender" /> class is set up to write 
+		/// The instance of the <see cref="ManagedColoredConsoleAppender" /> class is set up to write
 		/// to the standard output stream.
 		/// </remarks>
-		public ManagedColoredConsoleAppender() 
+		public ManagedColoredConsoleAppender()
 		{
 		}
-		
+
 		#region Public Instance Properties
 		/// <summary>
 		/// Target is the value of the console output stream.
@@ -136,8 +136,8 @@
 				if (SystemInfo.EqualsIgnoringCase(ConsoleError, v))
 				{
 					m_writeToErrorStream = true;
-				} 
-				else 
+				}
+				else
 				{
 					m_writeToErrorStream = false;
 				}
@@ -174,18 +174,18 @@
 		/// The format of the output will depend on the appender's layout.
 		/// </para>
 		/// </remarks>
-		override protected void Append(log4net.Core.LoggingEvent loggingEvent) 
+		override protected void Append(log4net.Core.LoggingEvent loggingEvent)
 		{
 			System.IO.TextWriter writer;
-			
+
 			if (m_writeToErrorStream)
 				writer = Console.Error;
 			else
 				writer = Console.Out;
-			
+
 			// Reset color
 			Console.ResetColor();
-			
+
 			// see if there is a specified lookup
 			LevelColors levelColors = m_levelMapping.Lookup(loggingEvent.Level) as LevelColors;
 			if (levelColors != null)
@@ -197,7 +197,7 @@
 				if (levelColors.HasForeColor)
 					Console.ForegroundColor = levelColors.ForeColor;
 			}
-			
+
 			// Render the event to a string
 			string strLoggingMessage = RenderLoggingEvent(loggingEvent);
 			// and write it
@@ -238,24 +238,24 @@
 
 		#region Public Static Fields
 		/// <summary>
-		/// The <see cref="ManagedColoredConsoleAppender.Target"/> to use when writing to the Console 
+		/// The <see cref="ManagedColoredConsoleAppender.Target"/> to use when writing to the Console
 		/// standard output stream.
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// The <see cref="ManagedColoredConsoleAppender.Target"/> to use when writing to the Console 
+		/// The <see cref="ManagedColoredConsoleAppender.Target"/> to use when writing to the Console
 		/// standard output stream.
 		/// </para>
 		/// </remarks>
 		public const string ConsoleOut = "Console.Out";
 
 		/// <summary>
-		/// The <see cref="ManagedColoredConsoleAppender.Target"/> to use when writing to the Console 
+		/// The <see cref="ManagedColoredConsoleAppender.Target"/> to use when writing to the Console
 		/// standard error output stream.
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// The <see cref="ManagedColoredConsoleAppender.Target"/> to use when writing to the Console 
+		/// The <see cref="ManagedColoredConsoleAppender.Target"/> to use when writing to the Console
 		/// standard error output stream.
 		/// </para>
 		/// </remarks>
@@ -304,11 +304,11 @@
 			}
 			private ConsoleColor foreColor;
 			private bool hasForeColor;
-            internal bool HasForeColor {
-                get {
-                    return hasForeColor;
-                }
-            }
+			internal bool HasForeColor {
+				get {
+					return hasForeColor;
+				}
+			}
 
 			/// <summary>
 			/// The mapped background color for the specified level
@@ -327,12 +327,12 @@
 				set { this.backColor = value; this.hasBackColor = true; }
 			}
 			private ConsoleColor backColor;
-            private bool hasBackColor;
-            internal bool HasBackColor {
-                get {
-                    return hasBackColor;
-                }
-            }
+			private bool hasBackColor;
+			internal bool HasBackColor {
+				get {
+					return hasBackColor;
+				}
+			}
 		}
 		#endregion // LevelColors LevelMapping Entry
 	}
diff --git a/src/Appender/MemoryAppender.cs b/src/Appender/MemoryAppender.cs
index e0ec741..48d2984 100644
--- a/src/Appender/MemoryAppender.cs
+++ b/src/Appender/MemoryAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -86,24 +86,24 @@
 		/// </remarks>
 		virtual public LoggingEvent[] GetEvents()
 		{
-            lock (m_eventsList.SyncRoot)
-            {
-                return (LoggingEvent[]) m_eventsList.ToArray(typeof(LoggingEvent));
-            }
+			lock (m_eventsList.SyncRoot)
+			{
+				return (LoggingEvent[]) m_eventsList.ToArray(typeof(LoggingEvent));
+			}
 		}
 
 		/// <summary>
-		/// Gets or sets a value indicating whether only part of the logging event 
+		/// Gets or sets a value indicating whether only part of the logging event
 		/// data should be fixed.
 		/// </summary>
 		/// <value>
-		/// <c>true</c> if the appender should only fix part of the logging event 
+		/// <c>true</c> if the appender should only fix part of the logging event
 		/// data, otherwise <c>false</c>. The default is <c>false</c>.
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// Setting this property to <c>true</c> will cause only part of the event 
-		/// data to be fixed and stored in the appender, hereby improving performance. 
+		/// Setting this property to <c>true</c> will cause only part of the event
+		/// data to be fixed and stored in the appender, hereby improving performance.
 		/// </para>
 		/// <para>
 		/// See <see cref="M:LoggingEvent.FixVolatileData(bool)"/> for more information.
@@ -113,8 +113,8 @@
 		virtual public bool OnlyFixPartialEventData
 		{
 			get { return (Fix == FixFlags.Partial); }
-			set 
-			{ 
+			set
+			{
 				if (value)
 				{
 					Fix = FixFlags.Partial;
@@ -131,7 +131,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// The logging event needs to have certain thread specific values 
+		/// The logging event needs to have certain thread specific values
 		/// captured before it can be buffered. See <see cref="LoggingEvent.Fix"/>
 		/// for details.
 		/// </para>
@@ -147,24 +147,24 @@
 		#region Override implementation of AppenderSkeleton
 
 		/// <summary>
-		/// This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/> method. 
+		/// This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/> method.
 		/// </summary>
 		/// <param name="loggingEvent">the event to log</param>
 		/// <remarks>
 		/// <para>Stores the <paramref name="loggingEvent"/> in the events list.</para>
 		/// </remarks>
-		override protected void Append(LoggingEvent loggingEvent) 
+		override protected void Append(LoggingEvent loggingEvent)
 		{
 			// Because we are caching the LoggingEvent beyond the
 			// lifetime of the Append() method we must fix any
 			// volatile data in the event.
 			loggingEvent.Fix = this.Fix;
 
-            lock (m_eventsList.SyncRoot)
-            {
-                m_eventsList.Add(loggingEvent);
-            }
-		} 
+			lock (m_eventsList.SyncRoot)
+			{
+				m_eventsList.Add(loggingEvent);
+			}
+		}
 
 		#endregion Override implementation of AppenderSkeleton
 
@@ -178,30 +178,30 @@
 		/// </remarks>
 		virtual public void Clear()
 		{
-            lock (m_eventsList.SyncRoot)
-            {
-                m_eventsList.Clear();
-            }
+			lock (m_eventsList.SyncRoot)
+			{
+				m_eventsList.Clear();
+			}
 		}
 
-        /// <summary>
-        /// Gets the events that have been logged and clears the list of events.
-        /// </summary>
-        /// <returns>The events that have been logged</returns>
-        /// <remarks>
-        /// <para>
-        /// Gets the events that have been logged and clears the list of events.
-        /// </para>
-        /// </remarks>
-        virtual public LoggingEvent[] PopAllEvents()
-        {
-            lock (m_eventsList.SyncRoot)
-            {
-                LoggingEvent[] tmp = (LoggingEvent[]) m_eventsList.ToArray(typeof (LoggingEvent));
-                m_eventsList.Clear();
-                return tmp;
-            }
-        }
+		/// <summary>
+		/// Gets the events that have been logged and clears the list of events.
+		/// </summary>
+		/// <returns>The events that have been logged</returns>
+		/// <remarks>
+		/// <para>
+		/// Gets the events that have been logged and clears the list of events.
+		/// </para>
+		/// </remarks>
+		virtual public LoggingEvent[] PopAllEvents()
+		{
+			lock (m_eventsList.SyncRoot)
+			{
+				LoggingEvent[] tmp = (LoggingEvent[]) m_eventsList.ToArray(typeof (LoggingEvent));
+				m_eventsList.Clear();
+				return tmp;
+			}
+		}
 
 		#endregion Public Instance Methods
 
diff --git a/src/Appender/NetSendAppender.cs b/src/Appender/NetSendAppender.cs
index ae8b7a9..1a9f9c0 100644
--- a/src/Appender/NetSendAppender.cs
+++ b/src/Appender/NetSendAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -20,9 +20,9 @@
 // MONO 1.0 Beta mcs does not like #if !A && !B && !C syntax
 
 // .NET Compact Framework 1.0 has no support for Win32 NetMessageBufferSend API
-#if !NETCF 
+#if !NETCF
 // MONO 1.0 has no support for Win32 NetMessageBufferSend API
-#if !MONO 
+#if !MONO
 // SSCLI 1.0 has no support for Win32 NetMessageBufferSend API
 #if !SSCLI
 // We don't want framework or platform specific code in the CLI version of log4net
@@ -37,22 +37,22 @@
 using log4net.Core;
 
 
-namespace log4net.Appender 
+namespace log4net.Appender
 {
 	/// <summary>
-	/// Logs entries by sending network messages using the 
+	/// Logs entries by sending network messages using the
 	/// <see cref="NetMessageBufferSend" /> native function.
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// You can send messages only to names that are active 
-	/// on the network. If you send the message to a user name, 
-	/// that user must be logged on and running the Messenger 
+	/// You can send messages only to names that are active
+	/// on the network. If you send the message to a user name,
+	/// that user must be logged on and running the Messenger
 	/// service to receive the message.
 	/// </para>
 	/// <para>
-	/// The receiver will get a top most window displaying the 
-	/// messages one at a time, therefore this appender should 
+	/// The receiver will get a top most window displaying the
+	/// messages one at a time, therefore this appender should
 	/// not be used to deliver a high volume of messages.
 	/// </para>
 	/// <para>
@@ -119,15 +119,15 @@
 	/// </list>
 	/// </para>
 	/// <para>
-	/// <b>Note :</b> security restrictions apply for sending 
-	/// network messages, see <see cref="NetMessageBufferSend" /> 
+	/// <b>Note :</b> security restrictions apply for sending
+	/// network messages, see <see cref="NetMessageBufferSend" />
 	/// for more information.
 	/// </para>
 	/// </remarks>
 	/// <example>
 	/// <para>
-	/// An example configuration section to log information 
-	/// using this appender from the local machine, named 
+	/// An example configuration section to log information
+	/// using this appender from the local machine, named
 	/// LOCAL_PC, to machine OPERATOR_PC :
 	/// </para>
 	/// <code lang="XML" escaped="true">
@@ -140,7 +140,7 @@
 	/// </example>
 	/// <author>Nicko Cadell</author>
 	/// <author>Gert Driesen</author>
-	public class NetSendAppender : AppenderSkeleton 
+	public class NetSendAppender : AppenderSkeleton
 	{
 		#region Member Variables
 
@@ -174,7 +174,7 @@
 		/// <remarks>
 		/// The default constructor initializes all fields to their default values.
 		/// </remarks>
-		public NetSendAppender() 
+		public NetSendAppender()
 		{
 		}
 
@@ -191,7 +191,7 @@
 		/// <remarks>
 		/// If this property is not specified, the message is sent from the local computer.
 		/// </remarks>
-		public string Sender 
+		public string Sender
 		{
 			get { return m_sender; }
 			set { m_sender = value; }
@@ -206,12 +206,12 @@
 		/// <remarks>
 		/// This property should always be specified in order to send a message.
 		/// </remarks>
-		public string Recipient 
+		public string Recipient
 		{
 			get { return m_recipient; }
 			set { m_recipient = value; }
 		}
-		
+
 		/// <summary>
 		/// Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute.
 		/// </summary>
@@ -223,10 +223,10 @@
 		/// For Windows NT 4.0 and earlier, the string should begin with \\.
 		/// </para>
 		/// <para>
-		/// If this property is not specified, the local computer is used. 
+		/// If this property is not specified, the local computer is used.
 		/// </para>
 		/// </remarks>
-		public string Server 
+		public string Server
 		{
 			get { return m_server; }
 			set { m_server = value; }
@@ -246,7 +246,7 @@
 		/// of the current thread.
 		/// </para>
 		/// </remarks>
-		public SecurityContext SecurityContext 
+		public SecurityContext SecurityContext
 		{
 			get { return m_securityContext; }
 			set { m_securityContext = value; }
@@ -262,13 +262,13 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// <para>
@@ -279,8 +279,8 @@
 		public override void ActivateOptions()
 		{
 			base.ActivateOptions();
-	
-			if (this.Recipient == null) 
+
+			if (this.Recipient == null)
 			{
 				throw new ArgumentNullException("Recipient", "The required property 'Recipient' was not specified.");
 			}
@@ -305,12 +305,12 @@
 		/// </para>
 		/// </remarks>
 #if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
-        [System.Security.SecuritySafeCritical]
+		[System.Security.SecuritySafeCritical]
 #endif
 #if !NETSTANDARD1_3
-        [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]
+		[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]
 #endif
-        protected override void Append(LoggingEvent loggingEvent) 
+		protected override void Append(LoggingEvent loggingEvent)
 		{
 			NativeError nativeError = null;
 
@@ -320,10 +320,10 @@
 			using(m_securityContext.Impersonate(this))
 			{
 				// Send the message
-				int returnValue = NetMessageBufferSend(this.Server, this.Recipient, this.Sender, renderedLoggingEvent, renderedLoggingEvent.Length * Marshal.SystemDefaultCharSize);   
+				int returnValue = NetMessageBufferSend(this.Server, this.Recipient, this.Sender, renderedLoggingEvent, renderedLoggingEvent.Length * Marshal.SystemDefaultCharSize);
 
 				// Log the error if the message could not be sent
-				if (returnValue != 0) 
+				if (returnValue != 0)
 				{
 					// Lookup the native error
 					nativeError = NativeError.GetError(returnValue);
@@ -380,7 +380,7 @@
 		///             No special group membership is required to send a network message.
 		///             </para>
 		///             <para>
-		///             Admin, Accounts, Print, or Server Operator group membership is required to 
+		///             Admin, Accounts, Print, or Server Operator group membership is required to
 		///             successfully send a network message on a remote server.
 		///             </para>
 		///         </description>
@@ -389,12 +389,12 @@
 		///         <term>Windows 2000 or later</term>
 		///         <description>
 		///             <para>
-		///             If you send a message on a domain controller that is running Active Directory, 
-		///             access is allowed or denied based on the access control list (ACL) for the securable 
-		///             object. The default ACL permits only Domain Admins and Account Operators to send a network message. 
+		///             If you send a message on a domain controller that is running Active Directory,
+		///             access is allowed or denied based on the access control list (ACL) for the securable
+		///             object. The default ACL permits only Domain Admins and Account Operators to send a network message.
 		///             </para>
 		///             <para>
-		///             On a member server or workstation, only Administrators and Server Operators can send a network message. 
+		///             On a member server or workstation, only Administrators and Server Operators can send a network message.
 		///             </para>
 		///         </description>
 		///     </item>
@@ -409,8 +409,8 @@
 		/// If the function succeeds, the return value is zero.
 		/// </para>
 		/// </returns>
-		[DllImport("netapi32.dll", SetLastError=true)] 
-		protected static extern int NetMessageBufferSend(	   
+		[DllImport("netapi32.dll", SetLastError=true)]
+		protected static extern int NetMessageBufferSend(
 			[MarshalAs(UnmanagedType.LPWStr)] string serverName,
 			[MarshalAs(UnmanagedType.LPWStr)] string msgName,
 			[MarshalAs(UnmanagedType.LPWStr)] string fromName,
diff --git a/src/Appender/OutputDebugStringAppender.cs b/src/Appender/OutputDebugStringAppender.cs
index cd48689..5403a49 100644
--- a/src/Appender/OutputDebugStringAppender.cs
+++ b/src/Appender/OutputDebugStringAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -40,7 +40,7 @@
 	/// OutputDebugString system.
 	/// </para>
 	/// <para>
-	/// The string is passed to the native <c>OutputDebugString</c> 
+	/// The string is passed to the native <c>OutputDebugString</c>
 	/// function.
 	/// </para>
 	/// </remarks>
@@ -76,11 +76,11 @@
 		/// </para>
 		/// </remarks>
 #if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
-        [System.Security.SecuritySafeCritical]
+		[System.Security.SecuritySafeCritical]
 #elif !NETCF
-        [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]
+		[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]
 #endif
-        override protected void Append(LoggingEvent loggingEvent) 
+		override protected void Append(LoggingEvent loggingEvent)
 		{
 #if NETSTANDARD1_3
 			if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
@@ -90,7 +90,7 @@
 #endif
 
 			OutputDebugString(RenderLoggingEvent(loggingEvent));
-		} 
+		}
 
 		/// <summary>
 		/// This appender requires a <see cref="Layout"/> to be set.
diff --git a/src/Appender/RemoteSyslogAppender.cs b/src/Appender/RemoteSyslogAppender.cs
index b7a8c66..c3248c3 100644
--- a/src/Appender/RemoteSyslogAppender.cs
+++ b/src/Appender/RemoteSyslogAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -54,13 +54,13 @@
 	/// <para>
 	/// Syslog messages must have a facility and and a severity. The severity
 	/// is derived from the Level of the logging event.
-	/// The facility must be chosen from the set of defined syslog 
+	/// The facility must be chosen from the set of defined syslog
 	/// <see cref="SyslogFacility"/> values. The facilities list is predefined
 	/// and cannot be extended.
 	/// </para>
 	/// <para>
 	/// An identifier is specified with each log message. This can be specified
-	/// by setting the <see cref="Identity"/> property. The identity (also know 
+	/// by setting the <see cref="Identity"/> property. The identity (also know
 	/// as the tag) must not contain white space. The default value for the
 	/// identity is the application name (from <see cref="LoggingEvent.Domain"/>).
 	/// </para>
@@ -266,7 +266,7 @@
 		/// Initializes a new instance of the <see cref="RemoteSyslogAppender" /> class.
 		/// </summary>
 		/// <remarks>
-		/// This instance of the <see cref="RemoteSyslogAppender" /> class is set up to write 
+		/// This instance of the <see cref="RemoteSyslogAppender" /> class is set up to write
 		/// to a remote syslog daemon.
 		/// </remarks>
 		public RemoteSyslogAppender()
@@ -287,7 +287,7 @@
 		/// <remarks>
 		/// <para>
 		/// An identifier is specified with each log message. This can be specified
-		/// by setting the <see cref="Identity"/> property. The identity (also know 
+		/// by setting the <see cref="Identity"/> property. The identity (also know
 		/// as the tag) must not contain white space. The default value for the
 		/// identity is the application name (from <see cref="LoggingEvent.Domain"/>).
 		/// </para>
@@ -344,88 +344,88 @@
 		/// </remarks>
 		protected override void Append(LoggingEvent loggingEvent)
 		{
-            try
-            {
-                // Priority
-                int priority = GeneratePriority(m_facility, GetSeverity(loggingEvent.Level));
+			try
+			{
+				// Priority
+				int priority = GeneratePriority(m_facility, GetSeverity(loggingEvent.Level));
 
-                // Identity
-                string identity;
+				// Identity
+				string identity;
 
-                if (m_identity != null)
-                {
-                    identity = m_identity.Format(loggingEvent);
-                }
-                else
-                {
-                    identity = loggingEvent.Domain;
-                }
+				if (m_identity != null)
+				{
+					identity = m_identity.Format(loggingEvent);
+				}
+				else
+				{
+					identity = loggingEvent.Domain;
+				}
 
-                // Message. The message goes after the tag/identity
-                string message = RenderLoggingEvent(loggingEvent);
+				// Message. The message goes after the tag/identity
+				string message = RenderLoggingEvent(loggingEvent);
 
-                Byte[] buffer;
-                int i = 0;
-                char c;
+				Byte[] buffer;
+				int i = 0;
+				char c;
 
-                StringBuilder builder = new StringBuilder();
+				StringBuilder builder = new StringBuilder();
 
-                while (i < message.Length)
-                {
-                    // Clear StringBuilder
-                    builder.Length = 0;
+				while (i < message.Length)
+				{
+					// Clear StringBuilder
+					builder.Length = 0;
 
-                    // Write priority
-                    builder.Append('<');
-                    builder.Append(priority);
-                    builder.Append('>');
+					// Write priority
+					builder.Append('<');
+					builder.Append(priority);
+					builder.Append('>');
 
-                    // Write identity
-                    builder.Append(identity);
-                    builder.Append(": ");
+					// Write identity
+					builder.Append(identity);
+					builder.Append(": ");
 
-                    for (; i < message.Length; i++)
-                    {
-                        c = message[i];
+					for (; i < message.Length; i++)
+					{
+						c = message[i];
 
-                        // Accept only visible ASCII characters and space. See RFC 3164 section 4.1.3
-                        if (((int)c >= 32) && ((int)c <= 126))
-                        {
-                            builder.Append(c);
-                        }
-                        // If character is newline, break and send the current line
-                        else if ((c == '\r') || (c == '\n'))
-                        {
-                            // Check the next character to handle \r\n or \n\r
-                            if ((message.Length > i + 1) && ((message[i + 1] == '\r') || (message[i + 1] == '\n')))
-                            {
-                                i++;
-                            }
-                            i++;
-                            break;
-                        }
-                    }
+						// Accept only visible ASCII characters and space. See RFC 3164 section 4.1.3
+						if (((int)c >= 32) && ((int)c <= 126))
+						{
+							builder.Append(c);
+						}
+						// If character is newline, break and send the current line
+						else if ((c == '\r') || (c == '\n'))
+						{
+							// Check the next character to handle \r\n or \n\r
+							if ((message.Length > i + 1) && ((message[i + 1] == '\r') || (message[i + 1] == '\n')))
+							{
+								i++;
+							}
+							i++;
+							break;
+						}
+					}
 
-                    // Grab as a byte array
-                    buffer = this.Encoding.GetBytes(builder.ToString());
+					// Grab as a byte array
+					buffer = this.Encoding.GetBytes(builder.ToString());
 
 #if NETSTANDARD1_3
-                    Client.SendAsync(buffer, buffer.Length, RemoteEndPoint).Wait();
+					Client.SendAsync(buffer, buffer.Length, RemoteEndPoint).Wait();
 #else
-                    this.Client.Send(buffer, buffer.Length, this.RemoteEndPoint);
+					this.Client.Send(buffer, buffer.Length, this.RemoteEndPoint);
 #endif
-                }
-            }
-            catch (Exception e)
-            {
-                ErrorHandler.Error(
-                    "Unable to send logging event to remote syslog " +
-                    this.RemoteAddress.ToString() +
-                    " on port " +
-                    this.RemotePort + ".",
-                    e,
-                    ErrorCode.WriteFailure);
-            }
+				}
+			}
+			catch (Exception e)
+			{
+				ErrorHandler.Error(
+					"Unable to send logging event to remote syslog " +
+					this.RemoteAddress.ToString() +
+					" on port " +
+					this.RemotePort + ".",
+					e,
+					ErrorCode.WriteFailure);
+			}
 		}
 
 		/// <summary>
diff --git a/src/Appender/RemotingAppender.cs b/src/Appender/RemotingAppender.cs
index b334920..3dfdef4 100644
--- a/src/Appender/RemotingAppender.cs
+++ b/src/Appender/RemotingAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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,25 +33,25 @@
 namespace log4net.Appender
 {
 	/// <summary>
-	/// Delivers logging events to a remote logging sink. 
+	/// Delivers logging events to a remote logging sink.
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// This Appender is designed to deliver events to a remote sink. 
+	/// This Appender is designed to deliver events to a remote sink.
 	/// That is any object that implements the <see cref="IRemoteLoggingSink"/>
 	/// interface. It delivers the events using .NET remoting. The
 	/// object to deliver events to is specified by setting the
 	/// appenders <see cref="RemotingAppender.Sink"/> property.</para>
 	/// <para>
-	/// The RemotingAppender buffers events before sending them. This allows it to 
+	/// The RemotingAppender buffers events before sending them. This allows it to
 	/// make more efficient use of the remoting infrastructure.</para>
 	/// <para>
-	/// Once the buffer is full the events are still not sent immediately. 
-	/// They are scheduled to be sent using a pool thread. The effect is that 
-	/// the send occurs asynchronously. This is very important for a 
-	/// number of non obvious reasons. The remoting infrastructure will 
+	/// Once the buffer is full the events are still not sent immediately.
+	/// They are scheduled to be sent using a pool thread. The effect is that
+	/// the send occurs asynchronously. This is very important for a
+	/// number of non obvious reasons. The remoting infrastructure will
 	/// flow thread local variables (stored in the <see cref="CallContext"/>),
-	/// if they are marked as <see cref="ILogicalThreadAffinative"/>, across the 
+	/// if they are marked as <see cref="ILogicalThreadAffinative"/>, across the
 	/// remoting boundary. If the server is not contactable then
 	/// the remoting infrastructure will clear the <see cref="ILogicalThreadAffinative"/>
 	/// objects from the <see cref="CallContext"/>. To prevent a logging failure from
@@ -60,9 +60,9 @@
 	/// thread is used for this. If no <see cref="ThreadPool"/> thread is available then
 	/// the events will block in the thread pool manager until a thread is available.</para>
 	/// <para>
-	/// Because the events are sent asynchronously using pool threads it is possible to close 
+	/// Because the events are sent asynchronously using pool threads it is possible to close
 	/// this appender before all the queued events have been sent.
-	/// When closing the appender attempts to wait until all the queued events have been sent, but 
+	/// When closing the appender attempts to wait until all the queued events have been sent, but
 	/// this will timeout after 30 seconds regardless.</para>
 	/// <para>
 	/// If this appender is being closed because the <see cref="AppDomain.ProcessExit"/>
@@ -70,7 +70,7 @@
 	/// exit the runtime limits the time that a <see cref="AppDomain.ProcessExit"/>
 	/// event handler is allowed to run for. If the runtime terminates the threads before
 	/// the queued events have been sent then they will be lost. To ensure that all events
-	/// are sent the appender must be closed before the application exits. See 
+	/// are sent the appender must be closed before the application exits. See
 	/// <see cref="log4net.Core.LoggerManager.Shutdown"/> for details on how to shutdown
 	/// log4net programmatically.</para>
 	/// </remarks>
@@ -99,7 +99,7 @@
 		#region Public Instance Properties
 
 		/// <summary>
-		/// Gets or sets the URL of the well-known object that will accept 
+		/// Gets or sets the URL of the well-known object that will accept
 		/// the logging events.
 		/// </summary>
 		/// <value>
@@ -128,24 +128,24 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
 #if NET_4_0 || MONO_4_0
-        [System.Security.SecuritySafeCritical]
+		[System.Security.SecuritySafeCritical]
 #endif
-        override public void ActivateOptions() 
+		override public void ActivateOptions()
 		{
 			base.ActivateOptions();
 
-			IDictionary channelProperties = new Hashtable(); 
+			IDictionary channelProperties = new Hashtable();
 			channelProperties["typeFilterLevel"] = "Full";
 
 			m_sinkObj = (IRemoteLoggingSink)Activator.GetObject(typeof(IRemoteLoggingSink), m_sinkUrl, channelProperties);
@@ -163,7 +163,7 @@
 		/// using a pool thread. The effect is that the send occurs asynchronously.
 		/// This is very important for a number of non obvious reasons. The remoting
 		/// infrastructure will flow thread local variables (stored in the <see cref="CallContext"/>),
-		/// if they are marked as <see cref="ILogicalThreadAffinative"/>, across the 
+		/// if they are marked as <see cref="ILogicalThreadAffinative"/>, across the
 		/// remoting boundary. If the server is not contactable then
 		/// the remoting infrastructure will clear the <see cref="ILogicalThreadAffinative"/>
 		/// objects from the <see cref="CallContext"/>. To prevent a logging failure from
@@ -199,7 +199,7 @@
 		/// it is possible to close the appender before all the queued events have been
 		/// sent.</para>
 		/// <para>
-		/// This method attempts to wait until all the queued events have been sent, but this 
+		/// This method attempts to wait until all the queued events have been sent, but this
 		/// method will timeout after 30 seconds regardless.</para>
 		/// <para>
 		/// If the appender is being closed because the <see cref="AppDomain.ProcessExit"/>
diff --git a/src/Appender/RollingFileAppender.cs b/src/Appender/RollingFileAppender.cs
index 7554bf4..1bcf0e0 100644
--- a/src/Appender/RollingFileAppender.cs
+++ b/src/Appender/RollingFileAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -32,12 +32,12 @@
 	// The following sounds good, and I though it was the case, but after
 	// further testing on Windows I have not been able to confirm it.
 
-	/// On the Windows platform if another process has a write lock on the file 
+	/// On the Windows platform if another process has a write lock on the file
 	/// that is to be deleted, but allows shared read access to the file then the
-	/// file can be moved, but cannot be deleted. If the other process also allows 
-	/// shared delete access to the file then the file will be deleted once that 
+	/// file can be moved, but cannot be deleted. If the other process also allows
+	/// shared delete access to the file then the file will be deleted once that
 	/// process closes the file. If it is necessary to open the log file or any
-	/// of the backup files outside of this appender for either read or 
+	/// of the backup files outside of this appender for either read or
 	/// write access please ensure that read and delete share modes are enabled.
 #endif
 
@@ -69,34 +69,34 @@
 	/// <item>Infinite number of backups by file size <see cref="MaxSizeRollBackups"/></item>
 	/// </list>
 	/// </para>
-	/// 
+	///
 	/// <note>
 	/// <para>
-	/// For large or infinite numbers of backup files a <see cref="CountDirection"/> 
+	/// For large or infinite numbers of backup files a <see cref="CountDirection"/>
 	/// greater than zero is highly recommended, otherwise all the backup files need
 	/// to be renamed each time a new backup is created.
 	/// </para>
 	/// <para>
-	/// When Date/Time based rolling is used setting <see cref="StaticLogFileName"/> 
+	/// When Date/Time based rolling is used setting <see cref="StaticLogFileName"/>
 	/// to <see langword="true"/> will reduce the number of file renamings to few or none.
 	/// </para>
 	/// </note>
-	/// 
+	///
 	/// <note type="caution">
 	/// <para>
 	/// Changing <see cref="StaticLogFileName"/> or <see cref="CountDirection"/> without clearing
-	/// the log file directory of backup files will cause unexpected and unwanted side effects.  
+	/// the log file directory of backup files will cause unexpected and unwanted side effects.
 	/// </para>
 	/// </note>
-	/// 
+	///
 	/// <para>
 	/// If Date/Time based rolling is enabled this appender will attempt to roll existing files
 	/// in the directory without a Date/Time tag based on the last write date of the base log file.
-	/// The appender only rolls the log file when a message is logged. If Date/Time based rolling 
+	/// The appender only rolls the log file when a message is logged. If Date/Time based rolling
 	/// is enabled then the appender will not roll the log file at the Date/Time boundary but
 	/// at the point when the next message is logged after the boundary has been crossed.
 	/// </para>
-	/// 
+	///
 	/// <para>
 	/// The <see cref="RollingFileAppender"/> extends the <see cref="FileAppender"/> and
 	/// has the same behavior when opening the log file.
@@ -111,7 +111,7 @@
 	/// When rolling a backup file necessitates deleting an older backup file the
 	/// file to be deleted is moved to a temporary name before being deleted.
 	/// </para>
-	/// 
+	///
 	/// <note type="caution">
 	/// <para>
 	/// A maximum number of backup files when rolling on date/time boundaries is not supported.
@@ -124,10 +124,10 @@
 	/// <author>Douglas de la Torre</author>
 	/// <author>Edward Smit</author>
 	public class RollingFileAppender : FileAppender
-    {
-        #region Public Enums
+	{
+		#region Public Enums
 
-        /// <summary>
+		/// <summary>
 		/// Style of rolling to use
 		/// </summary>
 		/// <remarks>
@@ -232,7 +232,7 @@
 		/// Default constructor.
 		/// </para>
 		/// </remarks>
-		public RollingFileAppender() 
+		public RollingFileAppender()
 		{
 		}
 
@@ -259,9 +259,9 @@
 		#region Public Instance Properties
 
 #if !NET_1_0 && !CLI_1_0 && !NETCF
-        /// <summary>
+		/// <summary>
 		/// Gets or sets the strategy for determining the current date and time. The default
-		/// implementation is to use LocalDateTime which internally calls through to DateTime.Now. 
+		/// implementation is to use LocalDateTime which internally calls through to DateTime.Now.
 		/// DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying
 		/// <see cref="RollingFileAppender.UniversalDateTime"/>.
 		/// </summary>
@@ -272,19 +272,19 @@
 		/// <para>
 		/// Gets or sets the <see cref="RollingFileAppender.IDateTime"/> used to return the current date and time.
 		/// </para>
-        /// <para>
-        /// There are two built strategies for determining the current date and time, 
+		/// <para>
+		/// There are two built strategies for determining the current date and time,
 		/// <see cref="RollingFileAppender.LocalDateTime"/>
-        /// and <see cref="RollingFileAppender.UniversalDateTime"/>.
-        /// </para>
-        /// <para>
+		/// and <see cref="RollingFileAppender.UniversalDateTime"/>.
+		/// </para>
+		/// <para>
 		/// The default strategy is <see cref="RollingFileAppender.LocalDateTime"/>.
 		/// </para>
 		/// </remarks>
 #else
-        /// <summary>
+		/// <summary>
 		/// Gets or sets the strategy for determining the current date and time. The default
-		/// implementation is to use LocalDateTime which internally calls through to DateTime.Now. 
+		/// implementation is to use LocalDateTime which internally calls through to DateTime.Now.
 		/// </summary>
 		/// <value>
 		/// An implementation of the <see cref="RollingFileAppender.IDateTime"/> interface which returns the current date and time.
@@ -293,12 +293,12 @@
 		/// <para>
 		/// Gets or sets the <see cref="RollingFileAppender.IDateTime"/> used to return the current date and time.
 		/// </para>
-        /// <para>
+		/// <para>
 		/// The default strategy is <see cref="RollingFileAppender.LocalDateTime"/>.
 		/// </para>
 		/// </remarks>
 #endif
-        public IDateTime DateTimeStrategy
+		public IDateTime DateTimeStrategy
 		{
 			get { return m_dateTime; }
 			set { m_dateTime = value; }
@@ -309,12 +309,12 @@
 		/// when rolling over on date.
 		/// </summary>
 		/// <value>
-		/// The date pattern to be used for generating file names when rolling 
+		/// The date pattern to be used for generating file names when rolling
 		/// over on date.
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// Takes a string in the same format as expected by 
+		/// Takes a string in the same format as expected by
 		/// <see cref="log4net.DateFormatter.SimpleDateFormatter" />.
 		/// </para>
 		/// <para>
@@ -327,7 +327,7 @@
 			get { return m_datePattern; }
 			set { m_datePattern = value; }
 		}
-  
+
 		/// <summary>
 		/// Gets or sets the maximum number of backup files that are kept before
 		/// the oldest is erased.
@@ -338,16 +338,16 @@
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// If set to zero, then there will be no backup files and the log file 
-		/// will be truncated when it reaches <see cref="MaxFileSize"/>.  
+		/// If set to zero, then there will be no backup files and the log file
+		/// will be truncated when it reaches <see cref="MaxFileSize"/>.
 		/// </para>
 		/// <para>
-		/// If a negative number is supplied then no deletions will be made.  Note 
-		/// that this could result in very slow performance as a large number of 
+		/// If a negative number is supplied then no deletions will be made. Note
+		/// that this could result in very slow performance as a large number of
 		/// files are rolled over unless <see cref="CountDirection"/> is used.
 		/// </para>
 		/// <para>
-		/// The maximum applies to <b>each</b> time based group of files and 
+		/// The maximum applies to <b>each</b> time based group of files and
 		/// <b>not</b> the total.
 		/// </para>
 		/// </remarks>
@@ -356,20 +356,20 @@
 			get { return m_maxSizeRollBackups; }
 			set { m_maxSizeRollBackups = value; }
 		}
-  
+
 		/// <summary>
 		/// Gets or sets the maximum size that the output file is allowed to reach
 		/// before being rolled over to backup files.
 		/// </summary>
 		/// <value>
-		/// The maximum size in bytes that the output file is allowed to reach before being 
+		/// The maximum size in bytes that the output file is allowed to reach before being
 		/// rolled over to backup files.
 		/// </value>
 		/// <remarks>
 		/// <para>
 		/// This property is equivalent to <see cref="MaximumFileSize"/> except
 		/// that it is required for differentiating the setter taking a
-		/// <see cref="long"/> argument from the setter taking a <see cref="string"/> 
+		/// <see cref="long"/> argument from the setter taking a <see cref="string"/>
 		/// argument.
 		/// </para>
 		/// <para>
@@ -381,20 +381,20 @@
 			get { return m_maxFileSize; }
 			set { m_maxFileSize = value; }
 		}
-  
+
 		/// <summary>
 		/// Gets or sets the maximum size that the output file is allowed to reach
 		/// before being rolled over to backup files.
 		/// </summary>
 		/// <value>
-		/// The maximum size that the output file is allowed to reach before being 
+		/// The maximum size that the output file is allowed to reach before being
 		/// rolled over to backup files.
 		/// </value>
 		/// <remarks>
 		/// <para>
 		/// This property allows you to specify the maximum size with the
-		/// suffixes "KB", "MB" or "GB" so that the size is interpreted being 
-		/// expressed respectively in kilobytes, megabytes or gigabytes. 
+		/// suffixes "KB", "MB" or "GB" so that the size is interpreted being
+		/// expressed respectively in kilobytes, megabytes or gigabytes.
 		/// </para>
 		/// <para>
 		/// For example, the value "10KB" will be interpreted as 10240 bytes.
@@ -415,7 +415,7 @@
 		}
 
 		/// <summary>
-		/// Gets or sets the rolling file count direction. 
+		/// Gets or sets the rolling file count direction.
 		/// </summary>
 		/// <value>
 		/// The rolling file count direction.
@@ -432,7 +432,7 @@
 		/// <para>
 		/// <see cref="CountDirection" /> &gt;= 0 does the opposite i.e.
 		/// log.1 is the first backup made, log.5 is the 5th backup made, etc.
-		/// For infinite backups use <see cref="CountDirection" /> &gt;= 0 to reduce 
+		/// For infinite backups use <see cref="CountDirection" /> &gt;= 0 to reduce
 		/// rollover costs.
 		/// </para>
 		/// <para>The default file count direction is -1.</para>
@@ -442,7 +442,7 @@
 			get { return m_countDirection; }
 			set { m_countDirection = value; }
 		}
-  
+
 		/// <summary>
 		/// Gets or sets the rolling style.
 		/// </summary>
@@ -464,7 +464,7 @@
 			set
 			{
 				m_rollingStyle = value;
-				switch (m_rollingStyle) 
+				switch (m_rollingStyle)
 				{
 					case RollingMode.Once:
 						m_rollDate = false;
@@ -486,30 +486,30 @@
 					case RollingMode.Composite:
 						m_rollDate = true;
 						m_rollSize = true;
-						break;	  
+						break;
 				}
 			}
 		}
 
-        /// <summary>
-        /// Gets or sets a value indicating whether to preserve the file name extension when rolling.
-        /// </summary>
-        /// <value>
-        /// <c>true</c> if the file name extension should be preserved.
-        /// </value>
-        /// <remarks>
-        /// <para>
-        /// By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup.
-        /// However, under Windows the new file name will loose any program associations as the
-        /// extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or
-        /// file.curSizeRollBackup.log to maintain any program associations.
-        /// </para>
-        /// </remarks>
-        public bool PreserveLogFileNameExtension
-        {
-            get { return m_preserveLogFileNameExtension; }
-            set { m_preserveLogFileNameExtension = value; }
-        }
+		/// <summary>
+		/// Gets or sets a value indicating whether to preserve the file name extension when rolling.
+		/// </summary>
+		/// <value>
+		/// <c>true</c> if the file name extension should be preserved.
+		/// </value>
+		/// <remarks>
+		/// <para>
+		/// By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup.
+		/// However, under Windows the new file name will loose any program associations as the
+		/// extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or
+		/// file.curSizeRollBackup.log to maintain any program associations.
+		/// </para>
+		/// </remarks>
+		public bool PreserveLogFileNameExtension
+		{
+			get { return m_preserveLogFileNameExtension; }
+			set { m_preserveLogFileNameExtension = value; }
+		}
 
 		/// <summary>
 		/// Gets or sets a value indicating whether to always log to
@@ -526,7 +526,7 @@
 		/// file.log.yyyy-mm-dd.curSizeRollBackup).
 		/// </para>
 		/// <para>
-		/// This will make time based rollovers with a large number of backups 
+		/// This will make time based rollovers with a large number of backups
 		/// much faster as the appender it won't have to rename all the backups!
 		/// </para>
 		/// </remarks>
@@ -538,21 +538,21 @@
 
 		#endregion Public Instance Properties
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the RollingFileAppender class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(RollingFileAppender);
+		/// <summary>
+		/// The fully qualified type of the RollingFileAppender class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(RollingFileAppender);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 
-		#region Override implementation of FileAppender 
-  
+		#region Override implementation of FileAppender
+
 		/// <summary>
 		/// Sets the quiet writer being used.
 		/// </summary>
@@ -560,7 +560,7 @@
 		/// This method can be overridden by sub classes.
 		/// </remarks>
 		/// <param name="writer">the writer to set</param>
-		override protected void SetQWForFiles(TextWriter writer) 
+		override protected void SetQWForFiles(TextWriter writer)
 		{
 			QuietWriter = new CountingQuietTextWriter(writer, ErrorHandler);
 		}
@@ -576,13 +576,13 @@
 		/// is need and then appends to the file last.
 		/// </para>
 		/// </remarks>
-		override protected void Append(LoggingEvent loggingEvent) 
+		override protected void Append(LoggingEvent loggingEvent)
 		{
 			AdjustFileBeforeAppend();
 			base.Append(loggingEvent);
 		}
-  
- 		/// <summary>
+
+		/// <summary>
 		/// Write out an array of logging events.
 		/// </summary>
 		/// <param name="loggingEvents">the events to write to file.</param>
@@ -593,7 +593,7 @@
 		/// is need and then appends to the file last.
 		/// </para>
 		/// </remarks>
-		override protected void Append(LoggingEvent[] loggingEvents) 
+		override protected void Append(LoggingEvent[] loggingEvents)
 		{
 			AdjustFileBeforeAppend();
 			base.Append(loggingEvents);
@@ -671,7 +671,7 @@
 
 				// Calculate the current size of the file
 				long currentCount = 0;
-				if (append) 
+				if (append)
 				{
 					using(SecurityContext.Impersonate(this))
 					{
@@ -696,7 +696,7 @@
 					}
 				}
 
-				if (!m_staticLogFileName) 
+				if (!m_staticLogFileName)
 				{
 					m_scheduledFilename = fileName;
 				}
@@ -716,25 +716,25 @@
 		/// <returns>the output file name</returns>
 		/// <remarks>
 		/// The output file name is based on the base fileName specified.
-		/// If <see cref="StaticLogFileName"/> is set then the output 
+		/// If <see cref="StaticLogFileName"/> is set then the output
 		/// file name is the same as the base file passed in. Otherwise
 		/// the output file depends on the date pattern, on the count
 		/// direction or both.
 		/// </remarks>
 		protected string GetNextOutputFileName(string fileName)
 		{
-			if (!m_staticLogFileName) 
+			if (!m_staticLogFileName)
 			{
 				fileName = fileName.Trim();
 
 				if (m_rollDate)
 				{
-                    fileName = CombinePath(fileName, m_now.ToString(m_datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo));
+					fileName = CombinePath(fileName, m_now.ToString(m_datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo));
 				}
 
-				if (m_countDirection >= 0) 
+				if (m_countDirection >= 0)
 				{
-                    fileName = CombinePath(fileName, "." + m_curSizeRollBackups);
+					fileName = CombinePath(fileName, "." + m_curSizeRollBackups);
 				}
 			}
 
@@ -751,7 +751,7 @@
 		private void DetermineCurSizeRollBackups()
 		{
 			m_curSizeRollBackups = 0;
-	
+
 			string fullPath = null;
 			string fileName = null;
 
@@ -775,14 +775,14 @@
 		/// <returns></returns>
 		private string GetWildcardPatternForFile(string baseFileName)
 		{
-            if (m_preserveLogFileNameExtension)
-            {
-                return Path.GetFileNameWithoutExtension(baseFileName) + "*" + Path.GetExtension(baseFileName);
-            }
-            else
-            {
-                return baseFileName + '*';
-            }
+			if (m_preserveLogFileNameExtension)
+			{
+				return Path.GetFileNameWithoutExtension(baseFileName) + "*" + Path.GetExtension(baseFileName);
+			}
+			else
+			{
+				return baseFileName + '*';
+			}
 		}
 
 		/// <summary>
@@ -807,10 +807,10 @@
 					string baseFileName = Path.GetFileName(fullPath);
 
 					string[] files = Directory.GetFiles(directory, GetWildcardPatternForFile(baseFileName));
-	
+
 					if (files != null)
 					{
-						for (int i = 0; i < files.Length; i++) 
+						for (int i = 0; i < files.Length; i++)
 						{
 							string curFileName = Path.GetFileName(files[i]);
 							if (curFileName.StartsWith(Path.GetFileNameWithoutExtension(baseFileName)))
@@ -830,14 +830,14 @@
 		/// </summary>
 		private void RollOverIfDateBoundaryCrossing()
 		{
-			if (m_staticLogFileName && m_rollDate) 
+			if (m_staticLogFileName && m_rollDate)
 			{
-				if (FileExists(m_baseFileName)) 
+				if (FileExists(m_baseFileName))
 				{
 					DateTime last;
 					using(SecurityContext.Impersonate(this)) {
 #if !NET_1_0 && !CLI_1_0 && !NETCF
-                        if (DateTimeStrategy is UniversalDateTime)
+						if (DateTimeStrategy is UniversalDateTime)
 						{
 							last = System.IO.File.GetLastWriteTimeUtc(m_baseFileName);
 						}
@@ -846,12 +846,12 @@
 #endif
 							last = System.IO.File.GetLastWriteTime(m_baseFileName);
 #if !NET_1_0 && !CLI_1_0 && !NETCF
-                        }
+						}
 #endif
-                    }
+					}
 					LogLog.Debug(declaringType, "["+last.ToString(m_datePattern,System.Globalization.DateTimeFormatInfo.InvariantInfo)+"] vs. ["+m_now.ToString(m_datePattern,System.Globalization.DateTimeFormatInfo.InvariantInfo)+"]");
 
-					if (!(last.ToString(m_datePattern,System.Globalization.DateTimeFormatInfo.InvariantInfo).Equals(m_now.ToString(m_datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo)))) 
+					if (!(last.ToString(m_datePattern,System.Globalization.DateTimeFormatInfo.InvariantInfo).Equals(m_now.ToString(m_datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo))))
 					{
 						m_scheduledFilename = CombinePath(m_baseFileName, last.ToString(m_datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo));
 						LogLog.Debug(declaringType, "Initial roll over to ["+m_scheduledFilename+"]");
@@ -875,7 +875,7 @@
 		///	</list>
 		///	</para>
 		/// </remarks>
-		protected void ExistingInit() 
+		protected void ExistingInit()
 		{
 			DetermineCurSizeRollBackups();
 			RollOverIfDateBoundaryCrossing();
@@ -918,29 +918,17 @@
 		/// <param name="curFileName"></param>
 		private void InitializeFromOneFile(string baseFile, string curFileName)
 		{
-            if (curFileName.StartsWith(Path.GetFileNameWithoutExtension(baseFile)) == false)
+			if (curFileName.StartsWith(Path.GetFileNameWithoutExtension(baseFile)) == false)
 			{
 				// This is not a log file, so ignore
 				return;
 			}
-			if (curFileName.Equals(baseFile)) 
+			if (curFileName.Equals(baseFile))
 			{
 				// Base log file is not an incremented logfile (.1 or .2, etc)
 				return;
 			}
-	
-            /*
-			if (m_staticLogFileName) 
-			{
-				int endLength = curFileName.Length - index;
-				if (baseFile.Length + endLength != curFileName.Length) 
-				{
-					// file is probably scheduledFilename + .x so I don't care
-					return;
-				}
-			}
-            */
-	
+
 			// Only look for files in the current roll point
 			if (m_rollDate && !m_staticLogFileName)
 			{
@@ -953,87 +941,87 @@
 					return;
 				}
 			}
-            
-			try 
+
+			try
 			{
 				// Bump the counter up to the highest count seen so far
-                int backup = GetBackUpIndex(curFileName);
-                
-                // caution: we might get a false positive when certain
-                // date patterns such as yyyyMMdd are used...those are
-                // valid number but aren't the kind of back up index
-                // we're looking for
-                if (backup > m_curSizeRollBackups)
-                {
-                    if (0 == m_maxSizeRollBackups)
-                    {
-                        // Stay at zero when zero backups are desired
-                    }
-                    else if (-1 == m_maxSizeRollBackups)
-                    {
-                        // Infinite backups, so go as high as the highest value
-                        m_curSizeRollBackups = backup;
-                    }
-                    else
-                    {
-                        // Backups limited to a finite number
-                        if (m_countDirection >= 0)
-                        {
-                            // Go with the highest file when counting up
-                            m_curSizeRollBackups = backup;
-                        }
-                        else
-                        {
-                            // Clip to the limit when counting down
-                            if (backup <= m_maxSizeRollBackups)
-                            {
-                                m_curSizeRollBackups = backup;
-                            }
-                        }
-                    }
-                    LogLog.Debug(declaringType, "File name [" + curFileName + "] moves current count to [" + m_curSizeRollBackups + "]");
-                }
-			} 
-			catch(FormatException) 
+				int backup = GetBackUpIndex(curFileName);
+
+				// caution: we might get a false positive when certain
+				// date patterns such as yyyyMMdd are used...those are
+				// valid number but aren't the kind of back up index
+				// we're looking for
+				if (backup > m_curSizeRollBackups)
+				{
+					if (0 == m_maxSizeRollBackups)
+					{
+						// Stay at zero when zero backups are desired
+					}
+					else if (-1 == m_maxSizeRollBackups)
+					{
+						// Infinite backups, so go as high as the highest value
+						m_curSizeRollBackups = backup;
+					}
+					else
+					{
+						// Backups limited to a finite number
+						if (m_countDirection >= 0)
+						{
+							// Go with the highest file when counting up
+							m_curSizeRollBackups = backup;
+						}
+						else
+						{
+							// Clip to the limit when counting down
+							if (backup <= m_maxSizeRollBackups)
+							{
+								m_curSizeRollBackups = backup;
+							}
+						}
+					}
+					LogLog.Debug(declaringType, "File name [" + curFileName + "] moves current count to [" + m_curSizeRollBackups + "]");
+				}
+			}
+			catch(FormatException)
 			{
-				//this happens when file.log -> file.log.yyyy-MM-dd which is normal
-				//when staticLogFileName == false
+				// This happens when file.log -> file.log.yyyy-MM-dd which is normal
+				// when staticLogFileName == false
 				LogLog.Debug(declaringType, "Encountered a backup file not ending in .x ["+curFileName+"]");
 			}
 		}
 
-        /// <summary>
-        /// Attempts to extract a number from the end of the file name that indicates
-        /// the number of the times the file has been rolled over.
-        /// </summary>
-        /// <remarks>
-        /// Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes.
-        /// </remarks>
-        /// <param name="curFileName"></param>
-        /// <returns></returns>
-	    private int GetBackUpIndex(string curFileName)
-	    {
-            int backUpIndex = -1;
-            string fileName = curFileName;
+		/// <summary>
+		/// Attempts to extract a number from the end of the file name that indicates
+		/// the number of the times the file has been rolled over.
+		/// </summary>
+		/// <remarks>
+		/// Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes.
+		/// </remarks>
+		/// <param name="curFileName"></param>
+		/// <returns></returns>
+		private int GetBackUpIndex(string curFileName)
+		{
+			int backUpIndex = -1;
+			string fileName = curFileName;
 
-            if (m_preserveLogFileNameExtension)
-            {
-                fileName = Path.GetFileNameWithoutExtension(fileName);
-            }
-            
-            int index = fileName.LastIndexOf(".");
-            if (index > 0)
-            {
-                // if the "yyyy-MM-dd" component of file.log.yyyy-MM-dd is passed to TryParse
-                // it will gracefully fail and return backUpIndex will be 0
-                SystemInfo.TryParse(fileName.Substring(index + 1), out backUpIndex);
-            }
+			if (m_preserveLogFileNameExtension)
+			{
+				fileName = Path.GetFileNameWithoutExtension(fileName);
+			}
 
-            return backUpIndex;
-	    }
+			int index = fileName.LastIndexOf(".");
+			if (index > 0)
+			{
+				// if the "yyyy-MM-dd" component of file.log.yyyy-MM-dd is passed to TryParse
+				// it will gracefully fail and return backUpIndex will be 0
+				SystemInfo.TryParse(fileName.Substring(index + 1), out backUpIndex);
+			}
 
-	    /// <summary>
-		/// Takes a list of files and a base file name, and looks for 
+			return backUpIndex;
+		}
+
+		/// <summary>
+		/// Takes a list of files and a base file name, and looks for
 		/// 'incremented' versions of the base file.  Bumps the max
 		/// count up to the highest count seen.
 		/// </summary>
@@ -1061,13 +1049,13 @@
 		/// Essentially the date pattern is examined to determine what the
 		/// most suitable roll point is. The roll point chosen is the roll point
 		/// with the smallest period that can be detected using the date pattern
-		/// supplied. i.e. if the date pattern only outputs the year, month, day 
+		/// supplied. i.e. if the date pattern only outputs the year, month, day
 		/// and hour then the smallest roll point that can be detected would be
 		/// and hourly roll point as minutes could not be detected.
 		/// </remarks>
-		private RollPoint ComputeCheckPeriod(string datePattern) 
+		private RollPoint ComputeCheckPeriod(string datePattern)
 		{
-			// s_date1970 is 1970-01-01 00:00:00 this is UniversalSortableDateTimePattern 
+			// s_date1970 is 1970-01-01 00:00:00 this is UniversalSortableDateTimePattern
 			// (based on ISO 8601) using universal time. This date is used for reference
 			// purposes to calculate the resolution of the date pattern.
 
@@ -1075,7 +1063,7 @@
 			string r0 = s_date1970.ToString(datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo);
 
 			// Check each type of rolling mode starting with the smallest increment.
-			for(int i = (int)RollPoint.TopOfMinute; i <= (int)RollPoint.TopOfMonth; i++) 
+			for(int i = (int)RollPoint.TopOfMinute; i <= (int)RollPoint.TopOfMonth; i++)
 			{
 				// Get string representation of next pattern
 				string r1 = NextCheckDate(s_date1970, (RollPoint)i).ToString(datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo);
@@ -1083,7 +1071,7 @@
 				LogLog.Debug(declaringType, "Type = ["+i+"], r0 = ["+r0+"], r1 = ["+r1+"]");
 
 				// Check if the string representations are different
-				if (r0 != null && r1 != null && !r0.Equals(r1)) 
+				if (r0 != null && r1 != null && !r0.Equals(r1))
 				{
 					// Found highest precision roll point
 					return (RollPoint)i;
@@ -1099,13 +1087,13 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// <para>
@@ -1114,14 +1102,14 @@
 		/// the current number of backups.
 		/// </para>
 		/// </remarks>
-		override public void ActivateOptions() 
+		override public void ActivateOptions()
 		{
 			if (m_dateTime == null)
 			{
 				m_dateTime = new LocalDateTime();
 			}
 
-			if (m_rollDate && m_datePattern != null) 
+			if (m_rollDate && m_datePattern != null)
 			{
 				m_now = m_dateTime.Now;
 				m_rollPoint = ComputeCheckPeriod(m_datePattern);
@@ -1133,8 +1121,8 @@
 
 				// next line added as this removes the name check in rollOver
 				m_nextCheck = NextCheckDate(m_now, m_rollPoint);
-			} 
-			else 
+			}
+			else
 			{
 				if (m_rollDate)
 				{
@@ -1165,36 +1153,36 @@
 
 			if (m_rollDate && File != null && m_scheduledFilename == null)
 			{
-                m_scheduledFilename = CombinePath(File, m_now.ToString(m_datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo));
+				m_scheduledFilename = CombinePath(File, m_now.ToString(m_datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo));
 			}
 
 			ExistingInit();
-	
+
 			base.ActivateOptions();
 		}
 
 		#endregion
-  
+
 		#region Roll File
 
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="path1"></param>
-        /// <param name="path2">.1, .2, .3, etc.</param>
-        /// <returns></returns>
-        private string CombinePath(string path1, string path2)
-        {
-            string extension = Path.GetExtension(path1);
-            if (m_preserveLogFileNameExtension && extension.Length > 0)
-            {
-                return Path.Combine(Path.GetDirectoryName(path1), Path.GetFileNameWithoutExtension(path1) + path2 + extension);
-            }
-            else
-            {
-                return path1 + path2;
-            }
-        }
+		/// <summary>
+		///
+		/// </summary>
+		/// <param name="path1"></param>
+		/// <param name="path2">.1, .2, .3, etc.</param>
+		/// <returns></returns>
+		private string CombinePath(string path1, string path2)
+		{
+			string extension = Path.GetExtension(path1);
+			if (m_preserveLogFileNameExtension && extension.Length > 0)
+			{
+				return Path.Combine(Path.GetDirectoryName(path1), Path.GetFileNameWithoutExtension(path1) + path2 + extension);
+			}
+			else
+			{
+				return path1 + path2;
+			}
+		}
 
 		/// <summary>
 		/// Rollover the file(s) to date/time tagged file(s).
@@ -1203,53 +1191,53 @@
 		/// <remarks>
 		/// <para>
 		/// Rollover the file(s) to date/time tagged file(s).
-		/// Resets curSizeRollBackups. 
+		/// Resets curSizeRollBackups.
 		/// If fileIsOpen is set then the new file is opened (through SafeOpenFile).
 		/// </para>
 		/// </remarks>
-		protected void RollOverTime(bool fileIsOpen) 
+		protected void RollOverTime(bool fileIsOpen)
 		{
-			if (m_staticLogFileName) 
+			if (m_staticLogFileName)
 			{
 				// Compute filename, but only if datePattern is specified
-				if (m_datePattern == null) 
+				if (m_datePattern == null)
 				{
 					ErrorHandler.Error("Missing DatePattern option in rollOver().");
 					return;
 				}
-	  
-				//is the new file name equivalent to the 'current' one
-				//something has gone wrong if we hit this -- we should only
-				//roll over if the new file will be different from the old
+
+				// is the new file name equivalent to the 'current' one
+				// something has gone wrong if we hit this -- we should only
+				// roll over if the new file will be different from the old
 				string dateFormat = m_now.ToString(m_datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo);
-                if (m_scheduledFilename.Equals(CombinePath(File, dateFormat))) 
+				if (m_scheduledFilename.Equals(CombinePath(File, dateFormat)))
 				{
-                    ErrorHandler.Error("Compare " + m_scheduledFilename + " : " + CombinePath(File, dateFormat));
+					ErrorHandler.Error("Compare " + m_scheduledFilename + " : " + CombinePath(File, dateFormat));
 					return;
 				}
-	  
+
 				if (fileIsOpen)
 				{
 					// close current file, and rename it to datedFilename
 					this.CloseFile();
 				}
-	  
-				//we may have to roll over a large number of backups here
-				for (int i = 1; i <= m_curSizeRollBackups; i++) 
+
+				// we may have to roll over a large number of backups here
+				for (int i = 1; i <= m_curSizeRollBackups; i++)
 				{
-                    string from = CombinePath(File, "." + i);
-                    string to = CombinePath(m_scheduledFilename, "." + i);
+					string from = CombinePath(File, "." + i);
+					string to = CombinePath(m_scheduledFilename, "." + i);
 					RollFile(from, to);
 				}
-	  
+
 				RollFile(File, m_scheduledFilename);
 			}
-	
-			//We've cleared out the old date and are ready for the new
-			m_curSizeRollBackups = 0; 
-	
-			//new scheduled name
-            m_scheduledFilename = CombinePath(File, m_now.ToString(m_datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo));
+
+			// We've cleared out the old date and are ready for the new
+			m_curSizeRollBackups = 0;
+
+			// new scheduled name
+			m_scheduledFilename = CombinePath(File, m_now.ToString(m_datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo));
 
 			if (fileIsOpen)
 			{
@@ -1257,7 +1245,7 @@
 				SafeOpenFile(m_baseFileName, false);
 			}
 		}
-  
+
 		/// <summary>
 		/// Renames file <paramref name="fromFile"/> to file <paramref name="toFile"/>.
 		/// </summary>
@@ -1269,7 +1257,7 @@
 		/// also checks for existence of target file and deletes if it does.
 		/// </para>
 		/// </remarks>
-		protected void RollFile(string fromFile, string toFile) 
+		protected void RollFile(string fromFile, string toFile)
 		{
 			if (FileExists(fromFile))
 			{
@@ -1313,7 +1301,7 @@
 				return System.IO.File.Exists(path);
 			}
 		}
-  
+
 		/// <summary>
 		/// Deletes the specified file if it exists.
 		/// </summary>
@@ -1326,9 +1314,9 @@
 		/// be deleted, but it still can be moved.
 		/// </para>
 		/// </remarks>
-		protected void DeleteFile(string fileName) 
+		protected void DeleteFile(string fileName)
 		{
-			if (FileExists(fileName)) 
+			if (FileExists(fileName))
 			{
 				// We may not have permission to delete the file, or the file may be locked
 
@@ -1375,7 +1363,7 @@
 				}
 			}
 		}
-  
+
 		/// <summary>
 		/// Implements file roll base on file size.
 		/// </summary>
@@ -1402,18 +1390,18 @@
 		/// renamed if needed and no files are deleted.
 		/// </para>
 		/// </remarks>
-		protected void RollOverSize() 
+		protected void RollOverSize()
 		{
 			this.CloseFile(); // keep windows happy.
-	
+
 			LogLog.Debug(declaringType, "rolling over count ["+((CountingQuietTextWriter)QuietWriter).Count+"]");
 			LogLog.Debug(declaringType, "maxSizeRollBackups ["+m_maxSizeRollBackups+"]");
 			LogLog.Debug(declaringType, "curSizeRollBackups ["+m_curSizeRollBackups+"]");
 			LogLog.Debug(declaringType, "countDirection ["+m_countDirection+"]");
 
 			RollOverRenameFiles(File);
-	
-			if (!m_staticLogFileName && m_countDirection >= 0) 
+
+			if (!m_staticLogFileName && m_countDirection >= 0)
 			{
 				m_curSizeRollBackups++;
 			}
@@ -1434,7 +1422,7 @@
 		/// If <c>countDirection</c> &lt; 0, then files
 		/// {<c>File.1</c>, ..., <c>File.curSizeRollBackups -1</c>}
 		/// are renamed to {<c>File.2</c>, ...,
-		/// <c>File.curSizeRollBackups</c>}. 
+		/// <c>File.curSizeRollBackups</c>}.
 		/// </para>
 		/// <para>
 		/// If <c>maxSizeRollBackups</c> is equal to zero, then the
@@ -1448,37 +1436,37 @@
 		/// This is called by <see cref="RollOverSize"/> to rename the files.
 		/// </para>
 		/// </remarks>
-		protected void RollOverRenameFiles(string baseFileName) 
+		protected void RollOverRenameFiles(string baseFileName)
 		{
 			// If maxBackups <= 0, then there is no file renaming to be done.
-			if (m_maxSizeRollBackups != 0) 
+			if (m_maxSizeRollBackups != 0)
 			{
-				if (m_countDirection < 0) 
+				if (m_countDirection < 0)
 				{
 					// Delete the oldest file, to keep Windows happy.
-					if (m_curSizeRollBackups == m_maxSizeRollBackups) 
+					if (m_curSizeRollBackups == m_maxSizeRollBackups)
 					{
-                        DeleteFile(CombinePath(baseFileName, "." + m_maxSizeRollBackups));
+						DeleteFile(CombinePath(baseFileName, "." + m_maxSizeRollBackups));
 						m_curSizeRollBackups--;
 					}
-	
+
 					// Map {(maxBackupIndex - 1), ..., 2, 1} to {maxBackupIndex, ..., 3, 2}
-					for (int i = m_curSizeRollBackups; i >= 1; i--) 
+					for (int i = m_curSizeRollBackups; i >= 1; i--)
 					{
-                        RollFile((CombinePath(baseFileName, "." + i)), (CombinePath(baseFileName, "." + (i + 1))));
+						RollFile((CombinePath(baseFileName, "." + i)), (CombinePath(baseFileName, "." + (i + 1))));
 					}
-	
+
 					m_curSizeRollBackups++;
 
 					// Rename fileName to fileName.1
-                    RollFile(baseFileName, CombinePath(baseFileName, ".1"));
-				} 
-				else 
+					RollFile(baseFileName, CombinePath(baseFileName, ".1"));
+				}
+				else
 				{
-					//countDirection >= 0
-					if (m_curSizeRollBackups >= m_maxSizeRollBackups && m_maxSizeRollBackups > 0) 
+					// countDirection >= 0
+					if (m_curSizeRollBackups >= m_maxSizeRollBackups && m_maxSizeRollBackups > 0)
 					{
-						//delete the first and keep counting up.
+						// delete the first and keep counting up.
 						int oldestFileIndex = m_curSizeRollBackups - m_maxSizeRollBackups;
 
 						// If static then there is 1 file without a number, therefore 1 less archive
@@ -1493,34 +1481,34 @@
 						string archiveFileBaseName = baseFileName;
 						if (!m_staticLogFileName)
 						{
-                                                    if (m_preserveLogFileNameExtension)
-                                                    {
-                                                        string extension = Path.GetExtension(archiveFileBaseName);
-                                                        string baseName = Path.GetFileNameWithoutExtension(archiveFileBaseName);
+													if (m_preserveLogFileNameExtension)
+													{
+														string extension = Path.GetExtension(archiveFileBaseName);
+														string baseName = Path.GetFileNameWithoutExtension(archiveFileBaseName);
 							int lastDotIndex = baseName.LastIndexOf(".");
 							if (lastDotIndex >= 0)
 							{
 								archiveFileBaseName = baseName.Substring(0, lastDotIndex) + extension;
 							}
-                                                    }
-                                                    else
-                                                    {
+													}
+													else
+													{
 							int lastDotIndex = archiveFileBaseName.LastIndexOf(".");
-							if (lastDotIndex >= 0) 
+							if (lastDotIndex >= 0)
 							{
 								archiveFileBaseName = archiveFileBaseName.Substring(0, lastDotIndex);
 							}
-                                                    }
+													}
 						}
 
 						// Delete the archive file
-                        DeleteFile(CombinePath(archiveFileBaseName, "." + oldestFileIndex));
+						DeleteFile(CombinePath(archiveFileBaseName, "." + oldestFileIndex));
 					}
-	
-					if (m_staticLogFileName) 
+
+					if (m_staticLogFileName)
 					{
 						m_curSizeRollBackups++;
-                        RollFile(baseFileName, CombinePath(baseFileName, "." + m_curSizeRollBackups));
+						RollFile(baseFileName, CombinePath(baseFileName, "." + m_curSizeRollBackups));
 					}
 				}
 			}
@@ -1547,13 +1535,13 @@
 		/// worth of time and get the start time of the next window for the rollpoint.
 		/// </para>
 		/// </remarks>
-		protected DateTime NextCheckDate(DateTime currentDateTime, RollPoint rollPoint) 
+		protected DateTime NextCheckDate(DateTime currentDateTime, RollPoint rollPoint)
 		{
 			// Local variable to work on (this does not look very efficient)
 			DateTime current = currentDateTime;
 
 			// Do slightly different things depending on what the type of roll point we want.
-			switch(rollPoint) 
+			switch(rollPoint)
 			{
 				case RollPoint.TopOfMinute:
 					current = current.AddMilliseconds(-current.Millisecond);
@@ -1573,11 +1561,11 @@
 					current = current.AddSeconds(-current.Second);
 					current = current.AddMinutes(-current.Minute);
 
-					if (current.Hour < 12) 
+					if (current.Hour < 12)
 					{
 						current = current.AddHours(12 - current.Hour);
-					} 
-					else 
+					}
+					else
 					{
 						current = current.AddHours(-current.Hour);
 						current = current.AddDays(1);
@@ -1608,7 +1596,7 @@
 					current = current.AddDays(1 - current.Day); /* first day of month is 1 not 0 */
 					current = current.AddMonths(1);
 					break;
-			}	  
+			}
 			return current;
 		}
 
@@ -1624,38 +1612,38 @@
 		private IDateTime m_dateTime = null;
 
 		/// <summary>
-		/// The date pattern. By default, the pattern is set to <c>".yyyy-MM-dd"</c> 
+		/// The date pattern. By default, the pattern is set to <c>".yyyy-MM-dd"</c>
 		/// meaning daily rollover.
 		/// </summary>
 		private string m_datePattern = ".yyyy-MM-dd";
-  
+
 		/// <summary>
 		/// The actual formatted filename that is currently being written to
 		/// or will be the file transferred to on roll over
 		/// (based on staticLogFileName).
 		/// </summary>
 		private string m_scheduledFilename = null;
-  
+
 		/// <summary>
 		/// The timestamp when we shall next recompute the filename.
 		/// </summary>
 		private DateTime m_nextCheck = DateTime.MaxValue;
-  
+
 		/// <summary>
 		/// Holds date of last roll over
 		/// </summary>
 		private DateTime m_now;
-  
+
 		/// <summary>
 		/// The type of rolling done
 		/// </summary>
 		private RollPoint m_rollPoint;
-  
+
 		/// <summary>
 		/// The default maximum file size is 10MB
 		/// </summary>
 		private long m_maxFileSize = 10*1024*1024;
-  
+
 		/// <summary>
 		/// There is zero backup files by default
 		/// </summary>
@@ -1665,12 +1653,12 @@
 		/// How many sized based backups have been made so far
 		/// </summary>
 		private int m_curSizeRollBackups = 0;
-  
+
 		/// <summary>
-		/// The rolling file count direction. 
+		/// The rolling file count direction.
 		/// </summary>
 		private int m_countDirection = -1;
-  
+
 		/// <summary>
 		/// The rolling mode used in this appender.
 		/// </summary>
@@ -1685,13 +1673,13 @@
 		/// Cache flag set if we are rolling by size.
 		/// </summary>
 		private bool m_rollSize = true;
-  
+
 		/// <summary>
 		/// Value indicating whether to always log to the same file.
 		/// </summary>
 		private bool m_staticLogFileName = true;
-  
-   		/// <summary>
+
+		/// <summary>
 		/// Value indicating whether to preserve the file name extension when rolling.
 		/// </summary>
 		private bool m_preserveLogFileNameExtension = false;
@@ -1765,7 +1753,7 @@
 		}
 
 #if !NET_1_0 && !CLI_1_0 && !NETCF
-        /// <summary>
+		/// <summary>
 		/// Implementation of <see cref="IDateTime"/> that returns the current time as the coordinated universal time (UTC).
 		/// </summary>
 		private class UniversalDateTime : IDateTime
@@ -1786,6 +1774,6 @@
 		}
 #endif
 
-        #endregion DateTime
+		#endregion DateTime
 	}
 }
diff --git a/src/Appender/SmtpAppender.cs b/src/Appender/SmtpAppender.cs
index 491807c..5cb4741 100644
--- a/src/Appender/SmtpAppender.cs
+++ b/src/Appender/SmtpAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -38,7 +38,7 @@
 namespace log4net.Appender
 {
 	/// <summary>
-	/// Send an e-mail when a specific logging event occurs, typically on errors 
+	/// Send an e-mail when a specific logging event occurs, typically on errors
 	/// or fatal errors.
 	/// </summary>
 	/// <remarks>
@@ -46,8 +46,8 @@
 	/// The number of logging events delivered in this e-mail depend on
 	/// the value of <see cref="BufferingAppenderSkeleton.BufferSize"/> option. The
 	/// <see cref="SmtpAppender"/> keeps only the last
-	/// <see cref="BufferingAppenderSkeleton.BufferSize"/> logging events in its 
-	/// cyclic buffer. This keeps memory requirements at a reasonable level while 
+	/// <see cref="BufferingAppenderSkeleton.BufferSize"/> logging events in its
+	/// cyclic buffer. This keeps memory requirements at a reasonable level while
 	/// still delivering useful application context.
 	/// </para>
 	/// <note type="caution">
@@ -82,7 +82,7 @@
 		/// </para>
 		/// </remarks>
 		public SmtpAppender()
-		{	
+		{
 		}
 
 		#endregion // Public Instance Constructors
@@ -93,20 +93,20 @@
 		/// Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions).
 		/// </summary>
 		/// <value>
-        /// <para>
-        /// For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses.
-        /// </para>
-        /// <para>
-        /// For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses.
-        /// </para>
+		/// <para>
+		/// For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses.
+		/// </para>
+		/// <para>
+		/// For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses.
+		/// </para>
 		/// </value>
 		/// <remarks>
-        /// <para>
-        /// For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses.
-        /// </para>
-        /// <para>
-        /// For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses.
-        /// </para>
+		/// <para>
+		/// For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses.
+		/// </para>
+		/// <para>
+		/// For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses.
+		/// </para>
 		/// </remarks>
 		public string To
 		{
@@ -114,49 +114,49 @@
 			set { m_to = MaybeTrimSeparators(value); }
 		}
 
-        /// <summary>
-        /// Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses 
-        /// that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions).
-        /// </summary>
-        /// <value>
-        /// <para>
-        /// For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses.
-        /// </para>
-        /// <para>
-        /// For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses.
-        /// </para>
-        /// </value>
-        /// <remarks>
-        /// <para>
-        /// For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses.
-        /// </para>
-        /// <para>
-        /// For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses.
-        /// </para>
-        /// </remarks>
-        public string Cc
-        {
-            get { return m_cc; }
-            set { m_cc = MaybeTrimSeparators(value); }
-        }
+		/// <summary>
+		/// Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses
+		/// that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions).
+		/// </summary>
+		/// <value>
+		/// <para>
+		/// For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses.
+		/// </para>
+		/// <para>
+		/// For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses.
+		/// </para>
+		/// </value>
+		/// <remarks>
+		/// <para>
+		/// For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses.
+		/// </para>
+		/// <para>
+		/// For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses.
+		/// </para>
+		/// </remarks>
+		public string Cc
+		{
+			get { return m_cc; }
+			set { m_cc = MaybeTrimSeparators(value); }
+		}
 
-        /// <summary>
-        /// Gets or sets a semicolon-delimited list of recipient e-mail addresses
-        /// that will be blind carbon copied.
-        /// </summary>
-        /// <value>
-        /// A semicolon-delimited list of e-mail addresses.
-        /// </value>
-        /// <remarks>
-        /// <para>
-        /// A semicolon-delimited list of recipient e-mail addresses.
-        /// </para>
-        /// </remarks>
-        public string Bcc
-        {
-            get { return m_bcc; }
-            set { m_bcc = MaybeTrimSeparators(value); }
-        }
+		/// <summary>
+		/// Gets or sets a semicolon-delimited list of recipient e-mail addresses
+		/// that will be blind carbon copied.
+		/// </summary>
+		/// <value>
+		/// A semicolon-delimited list of e-mail addresses.
+		/// </value>
+		/// <remarks>
+		/// <para>
+		/// A semicolon-delimited list of recipient e-mail addresses.
+		/// </para>
+		/// </remarks>
+		public string Bcc
+		{
+			get { return m_bcc; }
+			set { m_bcc = MaybeTrimSeparators(value); }
+		}
 
 		/// <summary>
 		/// Gets or sets the e-mail address of the sender.
@@ -169,7 +169,7 @@
 		/// The e-mail address of the sender.
 		/// </para>
 		/// </remarks>
-		public string From 
+		public string From
 		{
 			get { return m_from; }
 			set { m_from = value; }
@@ -186,23 +186,23 @@
 		/// The subject line of the e-mail message.
 		/// </para>
 		/// </remarks>
-		public string Subject 
+		public string Subject
 		{
 			get { return m_subject; }
 			set { m_subject = value; }
 		}
-  
+
 		/// <summary>
-		/// Gets or sets the name of the SMTP relay mail server to use to send 
+		/// Gets or sets the name of the SMTP relay mail server to use to send
 		/// the e-mail messages.
 		/// </summary>
 		/// <value>
-		/// The name of the e-mail relay server. If SmtpServer is not set, the 
+		/// The name of the e-mail relay server. If SmtpServer is not set, the
 		/// name of the local SMTP server is used.
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// The name of the e-mail relay server. If SmtpServer is not set, the 
+		/// The name of the e-mail relay server. If SmtpServer is not set, the
 		/// name of the local SMTP server is used.
 		/// </para>
 		/// </remarks>
@@ -216,7 +216,7 @@
 		/// Obsolete
 		/// </summary>
 		/// <remarks>
-		/// Use the BufferingAppenderSkeleton Fix methods instead 
+		/// Use the BufferingAppenderSkeleton Fix methods instead
 		/// </remarks>
 		/// <remarks>
 		/// <para>
@@ -236,13 +236,13 @@
 		/// <remarks>
 		/// <note type="caution">Authentication is only available on the MS .NET 1.1 runtime.</note>
 		/// <para>
-		/// Valid Authentication mode values are: <see cref="SmtpAuthentication.None"/>, 
-		/// <see cref="SmtpAuthentication.Basic"/>, and <see cref="SmtpAuthentication.Ntlm"/>. 
-		/// The default value is <see cref="SmtpAuthentication.None"/>. When using 
-		/// <see cref="SmtpAuthentication.Basic"/> you must specify the <see cref="Username"/> 
+		/// Valid Authentication mode values are: <see cref="SmtpAuthentication.None"/>,
+		/// <see cref="SmtpAuthentication.Basic"/>, and <see cref="SmtpAuthentication.Ntlm"/>.
+		/// The default value is <see cref="SmtpAuthentication.None"/>. When using
+		/// <see cref="SmtpAuthentication.Basic"/> you must specify the <see cref="Username"/>
 		/// and <see cref="Password"/> to use to authenticate.
 		/// When using <see cref="SmtpAuthentication.Ntlm"/> the Windows credentials for the current
-		/// thread, if impersonating, or the process will be used to authenticate. 
+		/// thread, if impersonating, or the process will be used to authenticate.
 		/// </para>
 		/// </remarks>
 		public SmtpAuthentication Authentication
@@ -257,9 +257,9 @@
 		/// <remarks>
 		/// <note type="caution">Authentication is only available on the MS .NET 1.1 runtime.</note>
 		/// <para>
-		/// A <see cref="Username"/> and <see cref="Password"/> must be specified when 
-		/// <see cref="Authentication"/> is set to <see cref="SmtpAuthentication.Basic"/>, 
-		/// otherwise the username will be ignored. 
+		/// A <see cref="Username"/> and <see cref="Password"/> must be specified when
+		/// <see cref="Authentication"/> is set to <see cref="SmtpAuthentication.Basic"/>,
+		/// otherwise the username will be ignored.
 		/// </para>
 		/// </remarks>
 		public string Username
@@ -274,9 +274,9 @@
 		/// <remarks>
 		/// <note type="caution">Authentication is only available on the MS .NET 1.1 runtime.</note>
 		/// <para>
-		/// A <see cref="Username"/> and <see cref="Password"/> must be specified when 
-		/// <see cref="Authentication"/> is set to <see cref="SmtpAuthentication.Basic"/>, 
-		/// otherwise the password will be ignored. 
+		/// A <see cref="Username"/> and <see cref="Password"/> must be specified when
+		/// <see cref="Authentication"/> is set to <see cref="SmtpAuthentication.Basic"/>,
+		/// otherwise the password will be ignored.
 		/// </para>
 		/// </remarks>
 		public string Password
@@ -325,29 +325,29 @@
 		}
 
 #if NET_2_0 || MONO_2_0
-        /// <summary>
-        /// Enable or disable use of SSL when sending e-mail message
-        /// </summary>
-        /// <remarks>
-        /// This is available on MS .NET 2.0 runtime and higher
-        /// </remarks>
-        public bool EnableSsl
-        {
-            get { return m_enableSsl; }
-            set { m_enableSsl = value; }
-        }
+		/// <summary>
+		/// Enable or disable use of SSL when sending e-mail message
+		/// </summary>
+		/// <remarks>
+		/// This is available on MS .NET 2.0 runtime and higher
+		/// </remarks>
+		public bool EnableSsl
+		{
+			get { return m_enableSsl; }
+			set { m_enableSsl = value; }
+		}
 
-        /// <summary>
-        /// Gets or sets the reply-to e-mail address.
-        /// </summary>
-        /// <remarks>
-        /// This is available on MS .NET 2.0 runtime and higher
-        /// </remarks>
-        public string ReplyTo
-        {
-            get { return m_replyTo; }
-            set { m_replyTo = value; }
-        }
+		/// <summary>
+		/// Gets or sets the reply-to e-mail address.
+		/// </summary>
+		/// <remarks>
+		/// This is available on MS .NET 2.0 runtime and higher
+		/// </remarks>
+		public string ReplyTo
+		{
+			get { return m_replyTo; }
+			set { m_replyTo = value; }
+		}
 #endif
 
 		/// <summary>
@@ -382,12 +382,12 @@
 		/// Sends the contents of the cyclic buffer as an e-mail message.
 		/// </summary>
 		/// <param name="events">The logging events to send.</param>
-		override protected void SendBuffer(LoggingEvent[] events) 
+		override protected void SendBuffer(LoggingEvent[] events)
 		{
 			// Note: this code already owns the monitor for this
 			// appender. This frees us from needing to synchronize again.
-			try 
-			{	  
+			try
+			{
 				StringWriter writer = new StringWriter(System.Globalization.CultureInfo.InvariantCulture);
 
 				string t = Layout.Header;
@@ -396,7 +396,7 @@
 					writer.Write(t);
 				}
 
-				for(int i = 0; i < events.Length; i++) 
+				for(int i = 0; i < events.Length; i++)
 				{
 					// Render the event and append the text to the buffer
 					RenderLoggingEvent(writer, events[i]);
@@ -409,8 +409,8 @@
 				}
 
 				SendEmail(writer.ToString());
-			} 
-			catch(Exception e) 
+			}
+			catch(Exception e)
 			{
 				ErrorHandler.Error("Error occurred while sending e-mail notification.", e);
 			}
@@ -457,7 +457,7 @@
 			}
 			smtpClient.Port = m_port;
 			smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
-            smtpClient.EnableSsl = m_enableSsl;
+			smtpClient.EnableSsl = m_enableSsl;
 
 			if (m_authentication == SmtpAuthentication.Basic)
 			{
@@ -470,38 +470,38 @@
 				smtpClient.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
 			}
 
-            using (MailMessage mailMessage = new MailMessage())
-            {
-                mailMessage.Body = messageBody;
+			using (MailMessage mailMessage = new MailMessage())
+			{
+				mailMessage.Body = messageBody;
 				mailMessage.BodyEncoding = m_bodyEncoding;
-                mailMessage.From = new MailAddress(m_from);
-                mailMessage.To.Add(m_to);
-                if (!String.IsNullOrEmpty(m_cc))
-                {
-                    mailMessage.CC.Add(m_cc);
-                }
-                if (!String.IsNullOrEmpty(m_bcc))
-                {
-                    mailMessage.Bcc.Add(m_bcc);
-                }
-                if (!String.IsNullOrEmpty(m_replyTo))
-                {
-                    // .NET 4.0 warning CS0618: 'System.Net.Mail.MailMessage.ReplyTo' is obsolete:
-                    // 'ReplyTo is obsoleted for this type.  Please use ReplyToList instead which can accept multiple addresses. http://go.microsoft.com/fwlink/?linkid=14202'
+				mailMessage.From = new MailAddress(m_from);
+				mailMessage.To.Add(m_to);
+				if (!String.IsNullOrEmpty(m_cc))
+				{
+					mailMessage.CC.Add(m_cc);
+				}
+				if (!String.IsNullOrEmpty(m_bcc))
+				{
+					mailMessage.Bcc.Add(m_bcc);
+				}
+				if (!String.IsNullOrEmpty(m_replyTo))
+				{
+					// .NET 4.0 warning CS0618: 'System.Net.Mail.MailMessage.ReplyTo' is obsolete:
+					// 'ReplyTo is obsoleted for this type.  Please use ReplyToList instead which can accept multiple addresses. http://go.microsoft.com/fwlink/?linkid=14202'
 #if !NET_4_0 && !MONO_4_0
-                    mailMessage.ReplyTo = new MailAddress(m_replyTo);
+					mailMessage.ReplyTo = new MailAddress(m_replyTo);
 #else
-                    mailMessage.ReplyToList.Add(new MailAddress(m_replyTo));
+					mailMessage.ReplyToList.Add(new MailAddress(m_replyTo));
 #endif
-                }
-                mailMessage.Subject = m_subject;
+				}
+				mailMessage.Subject = m_subject;
 				mailMessage.SubjectEncoding = m_subjectEncoding;
-                mailMessage.Priority = m_mailPriority;
+				mailMessage.Priority = m_mailPriority;
 
-                // TODO: Consider using SendAsync to send the message without blocking. This would be a change in
-                // behaviour compared to .NET 1.x. We would need a SendCompletedCallback to log errors.
-                smtpClient.Send(mailMessage);
-            }
+				// TODO: Consider using SendAsync to send the message without blocking. This would be a change in
+				// behaviour compared to .NET 1.x. We would need a SendCompletedCallback to log errors.
+				smtpClient.Send(mailMessage);
+			}
 #else
 				// .NET 1.x uses the System.Web.Mail API for sending Mail
 
@@ -510,14 +510,14 @@
 				mailMessage.BodyEncoding = m_bodyEncoding;
 				mailMessage.From = m_from;
 				mailMessage.To = m_to;
-                if (m_cc != null && m_cc.Length > 0)
-                {
-                    mailMessage.Cc = m_cc;
-                }
-                if (m_bcc != null && m_bcc.Length > 0)
-                {
-                    mailMessage.Bcc = m_bcc;
-                }
+				if (m_cc != null && m_cc.Length > 0)
+				{
+					mailMessage.Cc = m_cc;
+				}
+				if (m_bcc != null && m_bcc.Length > 0)
+				{
+					mailMessage.Bcc = m_bcc;
+				}
 				mailMessage.Subject = m_subject;
 #if !MONO && !NET_1_0 && !NET_1_1 && !CLI_1_0
 				mailMessage.SubjectEncoding = m_subjectEncoding;
@@ -530,7 +530,7 @@
 				// the CDO properties. For details of the fields available in CDO see:
 				//
 				// http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/_cdosys_configuration_coclass.asp
-				// 
+				//
 
 				try
 				{
@@ -548,7 +548,7 @@
 					}
 
 					// Set the port if not the default value
-					if (m_port != 25) 
+					if (m_port != 25)
 					{
 						mailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", m_port);
 					}
@@ -586,8 +586,8 @@
 		#region Private Instance Fields
 
 		private string m_to;
-        private string m_cc;
-        private string m_bcc;
+		private string m_cc;
+		private string m_bcc;
 		private string m_from;
 		private string m_subject;
 		private string m_smtpHost;
@@ -605,8 +605,8 @@
 		private MailPriority m_mailPriority = MailPriority.Normal;
 
 #if NET_2_0 || MONO_2_0
-        private bool m_enableSsl = false;
-        private string m_replyTo;
+		private bool m_enableSsl = false;
+		private string m_replyTo;
 #endif
 
 		#endregion // Private Instance Fields
@@ -647,19 +647,19 @@
 
 		#endregion // SmtpAuthentication Enum
 
-            private static readonly char[] ADDRESS_DELIMITERS = new char[] { ',', ';' };
-            
-            /// <summary>
-            ///   trims leading and trailing commas or semicolons
-            /// </summary>
-            private static string MaybeTrimSeparators(string s) {
+			private static readonly char[] ADDRESS_DELIMITERS = new char[] { ',', ';' };
+
+			/// <summary>
+			///   trims leading and trailing commas or semicolons
+			/// </summary>
+			private static string MaybeTrimSeparators(string s) {
 #if NET_2_0 || MONO_2_0
-                return string.IsNullOrEmpty(s) ? s : s.Trim(ADDRESS_DELIMITERS);
+				return string.IsNullOrEmpty(s) ? s : s.Trim(ADDRESS_DELIMITERS);
 #else
-                return s != null && s.Length > 0 ? s : s.Trim(ADDRESS_DELIMITERS);
+				return s != null && s.Length > 0 ? s : s.Trim(ADDRESS_DELIMITERS);
 #endif
-            }
-        }
+			}
+		}
 }
 
 #endif // !NETCF && !SSCLI
diff --git a/src/Appender/SmtpPickupDirAppender.cs b/src/Appender/SmtpPickupDirAppender.cs
index 6d8efa6..5df4819 100644
--- a/src/Appender/SmtpPickupDirAppender.cs
+++ b/src/Appender/SmtpPickupDirAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -28,7 +28,7 @@
 namespace log4net.Appender
 {
 	/// <summary>
-	/// Send an email when a specific logging event occurs, typically on errors 
+	/// Send an email when a specific logging event occurs, typically on errors
 	/// or fatal errors. Rather than sending via smtp it writes a file into the
 	/// directory specified by <see cref="PickupDir"/>. This allows services such
 	/// as the IIS SMTP agent to manage sending the messages.
@@ -43,8 +43,8 @@
 	/// The number of logging events delivered in this e-mail depend on
 	/// the value of <see cref="BufferingAppenderSkeleton.BufferSize"/> option. The
 	/// <see cref="SmtpPickupDirAppender"/> keeps only the last
-	/// <see cref="BufferingAppenderSkeleton.BufferSize"/> logging events in its 
-	/// cyclic buffer. This keeps memory requirements at a reasonable level while 
+	/// <see cref="BufferingAppenderSkeleton.BufferSize"/> logging events in its
+	/// cyclic buffer. This keeps memory requirements at a reasonable level while
 	/// still delivering useful application context.
 	/// </para>
 	/// </remarks>
@@ -82,7 +82,7 @@
 		/// A semicolon-delimited list of e-mail addresses.
 		/// </para>
 		/// </remarks>
-		public string To 
+		public string To
 		{
 			get { return m_to; }
 			set { m_to = value; }
@@ -99,7 +99,7 @@
 		/// The e-mail address of the sender.
 		/// </para>
 		/// </remarks>
-		public string From 
+		public string From
 		{
 			get { return m_from; }
 			set { m_from = value; }
@@ -116,12 +116,12 @@
 		/// The subject line of the e-mail message.
 		/// </para>
 		/// </remarks>
-		public string Subject 
+		public string Subject
 		{
 			get { return m_subject; }
 			set { m_subject = value; }
 		}
-  
+
 		/// <summary>
 		/// Gets or sets the path to write the messages to.
 		/// </summary>
@@ -137,7 +137,7 @@
 			set { m_pickupDir = value; }
 		}
 
- 		/// <summary>
+		/// <summary>
 		/// Gets or sets the file extension for the generated files
 		/// </summary>
 		/// <value>
@@ -184,7 +184,7 @@
 		/// of the current thread.
 		/// </para>
 		/// </remarks>
-		public SecurityContext SecurityContext 
+		public SecurityContext SecurityContext
 		{
 			get { return m_securityContext; }
 			set { m_securityContext = value; }
@@ -203,11 +203,11 @@
 		/// Sends the contents of the cyclic buffer as an e-mail message.
 		/// </para>
 		/// </remarks>
-		override protected void SendBuffer(LoggingEvent[] events) 
+		override protected void SendBuffer(LoggingEvent[] events)
 		{
 			// Note: this code already owns the monitor for this
 			// appender. This frees us from needing to synchronize again.
-			try 
+			try
 			{
 				string filePath = null;
 				StreamWriter writer = null;
@@ -239,7 +239,7 @@
 							writer.Write(t);
 						}
 
-						for(int i = 0; i < events.Length; i++) 
+						for(int i = 0; i < events.Length; i++)
 						{
 							// Render the event and append the text to the buffer
 							RenderLoggingEvent(writer, events[i]);
@@ -255,8 +255,8 @@
 						writer.WriteLine(".");
 					}
 				}
-			} 
-			catch(Exception e) 
+			}
+			catch(Exception e)
 			{
 				ErrorHandler.Error("Error occurred while sending e-mail notification.", e);
 			}
@@ -267,23 +267,23 @@
 		#region Override implementation of AppenderSkeleton
 
 		/// <summary>
-		/// Activate the options on this appender. 
+		/// Activate the options on this appender.
 		/// </summary>
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
-		override public void ActivateOptions() 
-		{	
+		override public void ActivateOptions()
+		{
 			base.ActivateOptions();
 
 			if (m_securityContext == null)
@@ -324,7 +324,7 @@
 		/// <para>
 		/// Converts the path specified to a fully
 		/// qualified path. If the path is relative it is
-		/// taken as relative from the application base 
+		/// taken as relative from the application base
 		/// directory.
 		/// </para>
 		/// </remarks>
diff --git a/src/Appender/TelnetAppender.cs b/src/Appender/TelnetAppender.cs
index 4d768a2..fab07a0 100644
--- a/src/Appender/TelnetAppender.cs
+++ b/src/Appender/TelnetAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -32,16 +32,16 @@
 using log4net.Core;
 using log4net.Util;
 
-namespace log4net.Appender 
+namespace log4net.Appender
 {
 	/// <summary>
 	/// Appender that allows clients to connect via Telnet to receive log messages
 	/// </summary>
-	/// <remarks>	
+	/// <remarks>
 	/// <para>
 	/// The TelnetAppender 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 
+	/// 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.
 	/// </para>
@@ -51,7 +51,7 @@
 	/// </remarks>
 	/// <author>Keith Long</author>
 	/// <author>Nicko Cadell</author>
-	public class TelnetAppender : AppenderSkeleton 
+	public class TelnetAppender : AppenderSkeleton
 	{
 		private SocketHandler m_handler;
 		private int m_listeningPort = 23;
@@ -72,24 +72,24 @@
 
 		#endregion
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the TelnetAppender class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(TelnetAppender);
+		/// <summary>
+		/// The fully qualified type of the TelnetAppender class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(TelnetAppender);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 
 		/// <summary>
 		/// Gets or sets the TCP port number on which this <see cref="TelnetAppender"/> will listen for connections.
 		/// </summary>
 		/// <value>
-		/// An integer value in the range <see cref="IPEndPoint.MinPort" /> to <see cref="IPEndPoint.MaxPort" /> 
+		/// An integer value in the range <see cref="IPEndPoint.MinPort" /> to <see cref="IPEndPoint.MaxPort" />
 		/// indicating the TCP port number on which this <see cref="TelnetAppender"/> will listen for connections.
 		/// </value>
 		/// <remarks>
@@ -97,7 +97,7 @@
 		/// The default value is 23 (the telnet port).
 		/// </para>
 		/// </remarks>
-		/// <exception cref="ArgumentOutOfRangeException">The value specified is less than <see cref="IPEndPoint.MinPort" /> 
+		/// <exception cref="ArgumentOutOfRangeException">The value specified is less than <see cref="IPEndPoint.MinPort" />
 		/// or greater than <see cref="IPEndPoint.MaxPort" />.</exception>
 		public int Port
 		{
@@ -110,9 +110,9 @@
 				if (value < IPEndPoint.MinPort || value > IPEndPoint.MaxPort)
 				{
 					throw log4net.Util.SystemInfo.CreateArgumentOutOfRangeException("value", (object)value,
-						"The value specified for Port is less than " + 
-						IPEndPoint.MinPort.ToString(NumberFormatInfo.InvariantInfo) + 
-						" or greater than " + 
+						"The value specified for Port is less than " +
+						IPEndPoint.MinPort.ToString(NumberFormatInfo.InvariantInfo) +
+						" or greater than " +
 						IPEndPoint.MaxPort.ToString(NumberFormatInfo.InvariantInfo) + ".");
 				}
 				else
@@ -132,7 +132,7 @@
 		/// Closes all the outstanding connections.
 		/// </para>
 		/// </remarks>
-		protected override void OnClose()  
+		protected override void OnClose()
 		{
 			base.OnClose();
 
@@ -163,28 +163,28 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// <para>
 		/// Create the socket handler and wait for connections
 		/// </para>
 		/// </remarks>
-		public override void ActivateOptions() 
+		public override void ActivateOptions()
 		{
 			base.ActivateOptions();
-			try 
+			try
 			{
 				LogLog.Debug(declaringType, "Creating SocketHandler to listen on port ["+m_listeningPort+"]");
 				m_handler = new SocketHandler(m_listeningPort);
 			}
-			catch(Exception ex) 
+			catch(Exception ex)
 			{
 				LogLog.Error(declaringType, "Failed to create SocketHandler", ex);
 				throw;
@@ -200,7 +200,7 @@
 		/// Writes the logging event to each connected client.
 		/// </para>
 		/// </remarks>
-		protected override void Append(LoggingEvent loggingEvent) 
+		protected override void Append(LoggingEvent loggingEvent)
 		{
 			if (m_handler != null && m_handler.HasConnections)
 			{
@@ -223,7 +223,7 @@
 		/// </para>
 		/// </remarks>
 		protected class SocketHandler : IDisposable
-		{			
+		{
 			private const int MAX_CONNECTIONS = 20;
 
 			private Socket m_serverSocket;
@@ -323,7 +323,7 @@
 
 				#endregion
 			}
-		
+
 			/// <summary>
 			/// Opens a new server port on <paramref ref="port"/>
 			/// </summary>
@@ -416,7 +416,7 @@
 			/// <remarks>
 			/// <para>
 			/// This property will be <c>true</c> while this handler has
-			/// active connections, that is at least one connection that 
+			/// active connections, that is at least one connection that
 			/// the handler will attempt to send a message to.
 			/// </para>
 			/// </remarks>
@@ -429,7 +429,7 @@
 					return (localClients != null && localClients.Count > 0);
 				}
 			}
-			
+
 
 #if NETSTANDARD1_3
 			private void OnConnect(Task<Socket> acceptTask)
@@ -440,7 +440,7 @@
 			/// <param name="asyncResult">The result of the asynchronous operation</param>
 			/// <remarks>
 			/// <para>
-			/// On connection adds to the list of connections 
+			/// On connection adds to the list of connections
 			/// if there are two many open connections you will be disconnected
 			/// </para>
 			/// </remarks>
@@ -459,7 +459,7 @@
 					SocketClient client = new SocketClient(socket);
 
 					int currentActiveConnectionsCount = m_clients.Count;
-					if (currentActiveConnectionsCount < MAX_CONNECTIONS) 
+					if (currentActiveConnectionsCount < MAX_CONNECTIONS)
 					{
 						try
 						{
@@ -471,7 +471,7 @@
 							client.Dispose();
 						}
 					}
-					else 
+					else
 					{
 						client.Send("Sorry - Too many connections.\r\n");
 						client.Dispose();
@@ -511,21 +511,21 @@
 
 				Socket localSocket = m_serverSocket;
 				m_serverSocket = null;
-				try 
+				try
 				{
 					localSocket.Shutdown(SocketShutdown.Both);
-				} 
-				catch 
-				{ 
+				}
+				catch
+				{
 				}
 
 				try
 				{
 					localSocket.Close();
 				}
-				catch 
-				{ 
-				}			
+				catch
+				{
+				}
 			}
 
 			#endregion
diff --git a/src/Appender/TextWriterAppender.cs b/src/Appender/TextWriterAppender.cs
index 9482607..8124102 100644
--- a/src/Appender/TextWriterAppender.cs
+++ b/src/Appender/TextWriterAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -42,7 +42,7 @@
 	/// <author>Nicko Cadell</author>
 	/// <author>Gert Driesen</author>
 	/// <author>Douglas de la Torre</author>
-    public class TextWriterAppender : AppenderSkeleton
+	public class TextWriterAppender : AppenderSkeleton
 	{
 		#region Public Instance Constructors
 
@@ -54,13 +54,13 @@
 		/// Default constructor.
 		/// </para>
 		/// </remarks>
-		public TextWriterAppender() 
+		public TextWriterAppender()
 		{
 		}
 
 		/// <summary>
 		/// Initializes a new instance of the <see cref="TextWriterAppender" /> class and
-		/// sets the output destination to a new <see cref="StreamWriter"/> initialized 
+		/// sets the output destination to a new <see cref="StreamWriter"/> initialized
 		/// with the specified <see cref="Stream"/>.
 		/// </summary>
 		/// <param name="layout">The layout to use with this appender.</param>
@@ -90,7 +90,7 @@
 		/// </para>
 		/// </remarks>
 		[Obsolete("Instead use the default constructor and set the Layout & Writer properties")]
-		public TextWriterAppender(ILayout layout, TextWriter writer) 
+		public TextWriterAppender(ILayout layout, TextWriter writer)
 		{
 			Layout = layout;
 			Writer = writer;
@@ -101,17 +101,17 @@
 		#region Public Instance Properties
 
 		/// <summary>
-		/// Gets or set whether the appender will flush at the end 
+		/// Gets or set whether the appender will flush at the end
 		/// of each append operation.
 		/// </summary>
 		/// <value>
 		/// <para>
-		/// The default behavior is to flush at the end of each 
+		/// The default behavior is to flush at the end of each
 		/// append operation.
 		/// </para>
 		/// <para>
-		/// If this option is set to <c>false</c>, then the underlying 
-		/// stream can defer persisting the logging event to a later 
+		/// If this option is set to <c>false</c>, then the underlying
+		/// stream can defer persisting the logging event to a later
 		/// time.
 		/// </para>
 		/// </value>
@@ -123,7 +123,7 @@
 		/// be recorded on disk when the application exits. This is a high
 		/// price to pay even for a 20% performance gain.
 		/// </remarks>
-		public bool ImmediateFlush 
+		public bool ImmediateFlush
 		{
 			get { return m_immediateFlush; }
 			set { m_immediateFlush = value; }
@@ -137,19 +137,19 @@
 		/// The specified <see cref="TextWriter"/> must be open and writable.
 		/// </para>
 		/// <para>
-		/// The <see cref="TextWriter"/> will be closed when the appender 
+		/// The <see cref="TextWriter"/> will be closed when the appender
 		/// instance is closed.
 		/// </para>
 		/// <para>
 		/// <b>Note:</b> Logging to an unopened <see cref="TextWriter"/> will fail.
 		/// </para>
 		/// </remarks>
-		virtual public TextWriter Writer 
+		virtual public TextWriter Writer
 		{
 			get { return m_qtw; }
-			set 
+			set
 			{
-				lock(this) 
+				lock(this)
 				{
 					Reset();
 					if (value != null)
@@ -171,29 +171,29 @@
 		/// <remarks>
 		/// <para>
 		/// This method checks if an output target has been set and if a
-		/// layout has been set. 
+		/// layout has been set.
 		/// </para>
 		/// </remarks>
 		/// <returns><c>false</c> if any of the preconditions fail.</returns>
-		override protected bool PreAppendCheck() 
+		override protected bool PreAppendCheck()
 		{
-			if (!base.PreAppendCheck()) 
+			if (!base.PreAppendCheck())
 			{
 				return false;
 			}
 
-			if (m_qtw == null) 
+			if (m_qtw == null)
 			{
 				// Allow subclass to lazily create the writer
 				PrepareWriter();
 
-				if (m_qtw == null) 
+				if (m_qtw == null)
 				{
 					ErrorHandler.Error("No output stream or file set for the appender named ["+ Name +"].");
 					return false;
 				}
 			}
-			if (m_qtw.Closed) 
+			if (m_qtw.Closed)
 			{
 				ErrorHandler.Error("Output stream for appender named ["+ Name +"] has been closed.");
 				return false;
@@ -204,31 +204,31 @@
 
 		/// <summary>
 		/// This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/>
-		/// method. 
+		/// method.
 		/// </summary>
 		/// <param name="loggingEvent">The event to log.</param>
 		/// <remarks>
 		/// <para>
-		/// Writes a log statement to the output stream if the output stream exists 
-		/// and is writable.  
+		/// Writes a log statement to the output stream if the output stream exists
+		/// and is writable.
 		/// </para>
 		/// <para>
 		/// The format of the output will depend on the appender's layout.
 		/// </para>
 		/// </remarks>
-		override protected void Append(LoggingEvent loggingEvent) 
+		override protected void Append(LoggingEvent loggingEvent)
 		{
 			RenderLoggingEvent(m_qtw, loggingEvent);
 
-			if (m_immediateFlush) 
+			if (m_immediateFlush)
 			{
 				m_qtw.Flush();
-			} 
+			}
 		}
 
 		/// <summary>
 		/// This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent[])"/>
-		/// method. 
+		/// method.
 		/// </summary>
 		/// <param name="loggingEvents">The array of events to log.</param>
 		/// <remarks>
@@ -237,17 +237,17 @@
 		/// before flushing the stream.
 		/// </para>
 		/// </remarks>
-		override protected void Append(LoggingEvent[] loggingEvents) 
+		override protected void Append(LoggingEvent[] loggingEvents)
 		{
 			foreach(LoggingEvent loggingEvent in loggingEvents)
 			{
 				RenderLoggingEvent(m_qtw, loggingEvent);
 			}
 
-			if (m_immediateFlush) 
+			if (m_immediateFlush)
 			{
 				m_qtw.Flush();
-			} 
+			}
 		}
 
 		/// <summary>
@@ -256,7 +256,7 @@
 		/// <remarks>
 		/// Closed appenders cannot be reused.
 		/// </remarks>
-		override protected void OnClose() 
+		override protected void OnClose()
 		{
 			lock(this)
 			{
@@ -265,8 +265,8 @@
 		}
 
 		/// <summary>
-		/// Gets or set the <see cref="IErrorHandler"/> and the underlying 
-		/// <see cref="QuietTextWriter"/>, if any, for this appender. 
+		/// Gets or set the <see cref="IErrorHandler"/> and the underlying
+		/// <see cref="QuietTextWriter"/>, if any, for this appender.
 		/// </summary>
 		/// <value>
 		/// The <see cref="IErrorHandler"/> for this appender.
@@ -278,18 +278,18 @@
 			{
 				lock(this)
 				{
-					if (value == null) 
+					if (value == null)
 					{
 						LogLog.Warn(declaringType, "TextWriterAppender: You have tried to set a null error-handler.");
-					} 
-					else 
+					}
+					else
 					{
 						base.ErrorHandler = value;
-						if (m_qtw != null) 
+						if (m_qtw != null)
 						{
 							m_qtw.ErrorHandler = value;
 						}
-					}	
+					}
 				}
 			}
 		}
@@ -334,17 +334,17 @@
 		/// Closes the underlying <see cref="TextWriter"/>.
 		/// </para>
 		/// </remarks>
-		virtual protected void CloseWriter() 
+		virtual protected void CloseWriter()
 		{
-			if (m_qtw != null) 
+			if (m_qtw != null)
 			{
-				try 
+				try
 				{
 					m_qtw.Close();
-				} 
-				catch(Exception e) 
+				}
+				catch(Exception e)
 				{
-					ErrorHandler.Error("Could not close writer ["+m_qtw+"]", e); 
+					ErrorHandler.Error("Could not close writer ["+m_qtw+"]", e);
 					// do need to invoke an error handler
 					// at this late stage
 				}
@@ -352,7 +352,7 @@
 		}
 
 		/// <summary>
-		/// Clears internal references to the underlying <see cref="TextWriter" /> 
+		/// Clears internal references to the underlying <see cref="TextWriter" />
 		/// and other variables.
 		/// </summary>
 		/// <remarks>
@@ -360,7 +360,7 @@
 		/// Subclasses can override this method for an alternate closing behavior.
 		/// </para>
 		/// </remarks>
-		virtual protected void Reset() 
+		virtual protected void Reset()
 		{
 			WriteFooterAndCloseWriter();
 			m_qtw = null;
@@ -374,9 +374,9 @@
 		/// Writes a footer as produced by the embedded layout's <see cref="ILayout.Footer"/> property.
 		/// </para>
 		/// </remarks>
-		virtual protected void WriteFooter() 
+		virtual protected void WriteFooter()
 		{
-			if (Layout != null && m_qtw != null && !m_qtw.Closed) 
+			if (Layout != null && m_qtw != null && !m_qtw.Closed)
 			{
 				string f = Layout.Footer;
 				if (f != null)
@@ -394,9 +394,9 @@
 		/// Writes a header produced by the embedded layout's <see cref="ILayout.Header"/> property.
 		/// </para>
 		/// </remarks>
-		virtual protected void WriteHeader() 
+		virtual protected void WriteHeader()
 		{
-			if (Layout != null && m_qtw != null && !m_qtw.Closed) 
+			if (Layout != null && m_qtw != null && !m_qtw.Closed)
 			{
 				string h = Layout.Header;
 				if (h != null)
@@ -422,7 +422,7 @@
 
 		/// <summary>
 		/// Gets or sets the <see cref="log4net.Util.QuietTextWriter"/> where logging events
-		/// will be written to. 
+		/// will be written to.
 		/// </summary>
 		/// <value>
 		/// The <see cref="log4net.Util.QuietTextWriter"/> where logging events are written.
@@ -430,35 +430,35 @@
 		/// <remarks>
 		/// <para>
 		/// This is the <see cref="log4net.Util.QuietTextWriter"/> where logging events
-		/// will be written to. 
+		/// will be written to.
 		/// </para>
 		/// </remarks>
 		protected QuietTextWriter QuietWriter
 		{
 			get { return m_qtw; }
 			set { m_qtw = value; }
-        }
+		}
 
-        #endregion Protected Instance Methods
+		#endregion Protected Instance Methods
 
-        #region Private Instance Fields
+		#region Private Instance Fields
 
-        /// <summary>
+		/// <summary>
 		/// This is the <see cref="log4net.Util.QuietTextWriter"/> where logging events
-		/// will be written to. 
+		/// will be written to.
 		/// </summary>
 		private QuietTextWriter m_qtw;
 
 		/// <summary>
-		/// Immediate flush means that the underlying <see cref="TextWriter" /> 
+		/// Immediate flush means that the underlying <see cref="TextWriter" />
 		/// or output stream will be flushed at the end of each append operation.
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Immediate flush is slower but ensures that each append request is 
+		/// Immediate flush is slower but ensures that each append request is
 		/// actually written. If <see cref="ImmediateFlush"/> is set to
 		/// <c>false</c>, then there is a good chance that the last few
-		/// logging events are not actually persisted if and when the application 
+		/// logging events are not actually persisted if and when the application
 		/// crashes.
 		/// </para>
 		/// <para>
@@ -469,36 +469,36 @@
 
 		#endregion Private Instance Fields
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the TextWriterAppender class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(TextWriterAppender);
+		/// <summary>
+		/// The fully qualified type of the TextWriterAppender class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(TextWriterAppender);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 
-            /// <summary>
-            /// Flushes any buffered log data.
-            /// </summary>
-            /// <param name="millisecondsTimeout">The maximum time to wait for logging events to be flushed.</param>
-            /// <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
-            public override bool Flush(int millisecondsTimeout)
-            {
-                // Nothing to do if ImmediateFlush is true
-                if (m_immediateFlush) return true;
+			/// <summary>
+			/// Flushes any buffered log data.
+			/// </summary>
+			/// <param name="millisecondsTimeout">The maximum time to wait for logging events to be flushed.</param>
+			/// <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
+			public override bool Flush(int millisecondsTimeout)
+			{
+				// Nothing to do if ImmediateFlush is true
+				if (m_immediateFlush) return true;
 
-                // lock(this) will block any Appends while the buffer is flushed.
-                lock (this)
-                {
-                    m_qtw.Flush();
-                }
+				// lock(this) will block any Appends while the buffer is flushed.
+				lock (this)
+				{
+					m_qtw.Flush();
+				}
 
-                return true;
-            }
+				return true;
+			}
 	}
 }
diff --git a/src/Appender/TraceAppender.cs b/src/Appender/TraceAppender.cs
index 18dd480..dd5efae 100644
--- a/src/Appender/TraceAppender.cs
+++ b/src/Appender/TraceAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -29,15 +29,15 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// The application configuration file can be used to control what listeners 
-	/// are actually used. See the MSDN documentation for the 
+	/// The application configuration file can be used to control what listeners
+	/// are actually used. See the MSDN documentation for the
 	/// <see cref="System.Diagnostics.Trace"/> class for details on configuring the
 	/// trace system.
 	/// </para>
 	/// <para>
 	/// Events are written using the <c>System.Diagnostics.Trace.Write(string,string)</c>
-	/// method. The event's logger name is the default value for the category parameter 
-    /// of the Write method. 
+	/// method. The event's logger name is the default value for the category parameter
+	/// of the Write method.
 	/// </para>
 	/// <para>
 	/// <b>Compact Framework</b><br />
@@ -50,7 +50,7 @@
 	/// <author>Douglas de la Torre</author>
 	/// <author>Nicko Cadell</author>
 	/// <author>Gert Driesen</author>
-    /// <author>Ron Grabowski</author>
+	/// <author>Ron Grabowski</author>
 	public class TraceAppender : AppenderSkeleton
 	{
 		#region Public Instance Constructors
@@ -68,7 +68,7 @@
 		}
 
 		/// <summary>
-		/// Initializes a new instance of the <see cref="TraceAppender" /> 
+		/// Initializes a new instance of the <see cref="TraceAppender" />
 		/// with a specified layout.
 		/// </summary>
 		/// <param name="layout">The layout to use with this appender.</param>
@@ -88,16 +88,16 @@
 		#region Public Instance Properties
 
 		/// <summary>
-		/// Gets or sets a value that indicates whether the appender will 
+		/// Gets or sets a value that indicates whether the appender will
 		/// flush at the end of each write.
 		/// </summary>
 		/// <remarks>
-		/// <para>The default behavior is to flush at the end of each 
-		/// write. If the option is set to<c>false</c>, then the underlying 
-		/// stream can defer writing to physical medium to a later time. 
+		/// <para>The default behavior is to flush at the end of each
+		/// write. If the option is set to<c>false</c>, then the underlying
+		/// stream can defer writing to physical medium to a later time.
 		/// </para>
 		/// <para>
-		/// Avoiding the flush operation at the end of each append results 
+		/// Avoiding the flush operation at the end of each append results
 		/// in a performance gain of 10 to 20 percent. However, there is safety
 		/// trade-off involved in skipping flushing. Indeed, when flushing is
 		/// skipped, then it is likely that the last few log events will not
@@ -111,24 +111,24 @@
 			set { m_immediateFlush = value; }
 		}
 
-        /// <summary>
-        /// The category parameter sent to the Trace method.
-        /// </summary>
-        /// <remarks>
-        /// <para>
-        /// Defaults to %logger which will use the logger name of the current 
-        /// <see cref="LoggingEvent"/> as the category parameter.
-        /// </para>
-        /// <para>
-        /// </para> 
-        /// </remarks>
-	    public PatternLayout Category
-	    {
-	        get { return m_category; }
-	        set { m_category = value; }
-	    }
+		/// <summary>
+		/// The category parameter sent to the Trace method.
+		/// </summary>
+		/// <remarks>
+		/// <para>
+		/// Defaults to %logger which will use the logger name of the current
+		/// <see cref="LoggingEvent"/> as the category parameter.
+		/// </para>
+		/// <para>
+		/// </para>
+		/// </remarks>
+		public PatternLayout Category
+		{
+			get { return m_category; }
+			set { m_category = value; }
+		}
 
-	    #endregion Public Instance Properties
+		#endregion Public Instance Properties
 
 		#region Override implementation of AppenderSkeleton
 
@@ -141,7 +141,7 @@
 		/// Writes the logging event to the <see cref="System.Diagnostics.Trace"/> system.
 		/// </para>
 		/// </remarks>
-		override protected void Append(LoggingEvent loggingEvent) 
+		override protected void Append(LoggingEvent loggingEvent)
 		{
 			//
 			// Write the string to the Trace system
@@ -149,20 +149,20 @@
 #if NETCF
 			System.Diagnostics.Debug.Write(RenderLoggingEvent(loggingEvent), m_category.Format(loggingEvent));
 #else
-            System.Diagnostics.Trace.Write(RenderLoggingEvent(loggingEvent), m_category.Format(loggingEvent));
+			System.Diagnostics.Trace.Write(RenderLoggingEvent(loggingEvent), m_category.Format(loggingEvent));
 #endif
-	 
+
 			//
 			// Flush the Trace system if needed
 			//
-			if (m_immediateFlush) 
+			if (m_immediateFlush)
 			{
 #if NETCF
 				System.Diagnostics.Debug.Flush();
 #else
 				System.Diagnostics.Trace.Flush();
 #endif
-			} 
+			}
 		}
 
 		/// <summary>
@@ -189,7 +189,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Immediate flush is slower but ensures that each append request is 
+		/// Immediate flush is slower but ensures that each append request is
 		/// actually written. If <see cref="ImmediateFlush"/> is set to
 		/// <c>false</c>, then there is a good chance that the last few
 		/// logs events are not actually written to persistent media if and
@@ -200,30 +200,30 @@
 		/// </remarks>
 		private bool m_immediateFlush = true;
 
-        /// <summary>
-        /// Defaults to %logger
-        /// </summary>
-        private PatternLayout m_category = new PatternLayout("%logger");
+		/// <summary>
+		/// Defaults to %logger
+		/// </summary>
+		private PatternLayout m_category = new PatternLayout("%logger");
 
 		#endregion Private Instance Fields
 
-        /// <summary>
-        /// Flushes any buffered log data.
-        /// </summary>
-        /// <param name="millisecondsTimeout">The maximum time to wait for logging events to be flushed.</param>
-        /// <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
-        public override bool Flush(int millisecondsTimeout)
-        {
-            // Nothing to do if ImmediateFlush is true
-            if (m_immediateFlush) return true;
+		/// <summary>
+		/// Flushes any buffered log data.
+		/// </summary>
+		/// <param name="millisecondsTimeout">The maximum time to wait for logging events to be flushed.</param>
+		/// <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
+		public override bool Flush(int millisecondsTimeout)
+		{
+			// Nothing to do if ImmediateFlush is true
+			if (m_immediateFlush) return true;
 
-            // System.Diagnostics.Trace and System.Diagnostics.Debug are thread-safe, so no need for lock(this).
+			// System.Diagnostics.Trace and System.Diagnostics.Debug are thread-safe, so no need for lock(this).
 #if NETCF
 			System.Diagnostics.Debug.Flush();
 #else
-            System.Diagnostics.Trace.Flush();
+			System.Diagnostics.Trace.Flush();
 #endif
-            return true;
-        }
-    }
+			return true;
+		}
+	}
 }
diff --git a/src/Appender/UdpAppender.cs b/src/Appender/UdpAppender.cs
index 55770ff..48d620f 100644
--- a/src/Appender/UdpAppender.cs
+++ b/src/Appender/UdpAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -27,10 +27,10 @@
 using log4net.Core;
 using log4net.Util;
 
-namespace log4net.Appender 
+namespace log4net.Appender
 {
 	/// <summary>
-	/// 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 an <see cref="UdpClient" />.
 	/// </summary>
 	/// <remarks>
@@ -38,7 +38,7 @@
 	/// UDP guarantees neither that messages arrive, nor that they arrive in the correct order.
 	/// </para>
 	/// <para>
-	/// To view the logging results, a custom application can be developed that listens for logging 
+	/// To view the logging results, a custom application can be developed that listens for logging
 	/// events.
 	/// </para>
 	/// <para>
@@ -48,27 +48,27 @@
 	/// </para>
 	/// </remarks>
 	/// <example>
-	/// This example shows how to log receive logging events that are sent 
-	/// on IP address 244.0.0.1 and port 8080 to the console. The event is 
-	/// encoded in the packet as a unicode string and it is decoded as such. 
+	/// This example shows how to log receive logging events that are sent
+	/// on IP address 244.0.0.1 and port 8080 to the console. The event is
+	/// encoded in the packet as a unicode string and it is decoded as such.
 	/// <code lang="C#">
 	/// IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
 	/// UdpClient udpClient;
 	/// byte[] buffer;
 	/// string loggingEvent;
-	/// 
-	/// try 
+	///
+	/// try
 	/// {
 	///     udpClient = new UdpClient(8080);
-	///     
-	///     while(true) 
+	///
+	///     while(true)
 	///     {
 	///         buffer = udpClient.Receive(ref remoteEndPoint);
 	///         loggingEvent = System.Text.Encoding.Unicode.GetString(buffer);
 	///         Console.WriteLine(loggingEvent);
 	///     }
-	/// } 
-	/// catch(Exception e) 
+	/// }
+	/// catch(Exception e)
 	/// {
 	///     Console.WriteLine(e.ToString());
 	/// }
@@ -78,8 +78,8 @@
 	/// Dim udpClient as UdpClient
 	/// Dim buffer as Byte()
 	/// Dim loggingEvent as String
-	/// 
-	/// Try 
+	///
+	/// Try
 	///     remoteEndPoint = new IPEndPoint(IPAddress.Any, 0)
 	///     udpClient = new UdpClient(8080)
 	///
@@ -93,7 +93,7 @@
 	/// End Try
 	/// </code>
 	/// <para>
-	/// An example configuration section to log information using this appender to the 
+	/// An example configuration section to log information using this appender to the
 	/// IP 224.0.0.1 on port 8080:
 	/// </para>
 	/// <code lang="XML" escaped="true">
@@ -116,7 +116,7 @@
 		/// <remarks>
 		/// The default constructor initializes all fields to their default values.
 		/// </remarks>
-		public UdpAppender() 
+		public UdpAppender()
 		{
 		}
 
@@ -129,14 +129,14 @@
 		/// the underlying <see cref="UdpClient" /> should sent the logging event.
 		/// </summary>
 		/// <value>
-		/// The IP address of the remote host or multicast group to which the logging event 
+		/// The IP address of the remote host or multicast group to which the logging event
 		/// will be sent.
 		/// </value>
 		/// <remarks>
 		/// <para>
 		/// Multicast addresses are identified by IP class <b>D</b> addresses (in the range 224.0.0.0 to
 		/// 239.255.255.255).  Multicast packets can pass across different networks through routers, so
-		/// it is possible to use multicasts in an Internet scenario as long as your network provider 
+		/// it is possible to use multicasts in an Internet scenario as long as your network provider
 		/// supports multicasting.
 		/// </para>
 		/// <para>
@@ -182,11 +182,11 @@
 		/// </para>
 		/// <para>
 		/// A complete list of actually reserved multicast addresses and their owners in the ranges
-		/// defined by RFC 3171 can be found at the <A href="http://www.iana.org/assignments/multicast-addresses">IANA web site</A>. 
+		/// defined by RFC 3171 can be found at the <A href="http://www.iana.org/assignments/multicast-addresses">IANA web site</A>.
 		/// </para>
 		/// <para>
-		/// The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative 
-		/// addresses.  These addresses can be reused with other local groups.  Routers are typically 
+		/// The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative
+		/// addresses.  These addresses can be reused with other local groups.  Routers are typically
 		/// configured with filters to prevent multicast traffic in this range from flowing outside
 		/// of the local network.
 		/// </para>
@@ -198,12 +198,12 @@
 		}
 
 		/// <summary>
-		/// Gets or sets the TCP port number of the remote host or multicast group to which 
+		/// Gets or sets the TCP port number of the remote host or multicast group to which
 		/// the underlying <see cref="UdpClient" /> should sent the logging event.
 		/// </summary>
 		/// <value>
-		/// An integer value in the range <see cref="IPEndPoint.MinPort" /> to <see cref="IPEndPoint.MaxPort" /> 
-		/// indicating the TCP port number of the remote host or multicast group to which the logging event 
+		/// An integer value in the range <see cref="IPEndPoint.MinPort" /> to <see cref="IPEndPoint.MaxPort" />
+		/// indicating the TCP port number of the remote host or multicast group to which the logging event
 		/// will be sent.
 		/// </value>
 		/// <remarks>
@@ -214,17 +214,17 @@
 		public int RemotePort
 		{
 			get { return m_remotePort; }
-			set 
+			set
 			{
-				if (value < IPEndPoint.MinPort || value > IPEndPoint.MaxPort) 
+				if (value < IPEndPoint.MinPort || value > IPEndPoint.MaxPort)
 				{
 					throw log4net.Util.SystemInfo.CreateArgumentOutOfRangeException("value", (object)value,
-						"The value specified is less than " + 
-						IPEndPoint.MinPort.ToString(NumberFormatInfo.InvariantInfo) + 
-						" or greater than " + 
+						"The value specified is less than " +
+						IPEndPoint.MinPort.ToString(NumberFormatInfo.InvariantInfo) +
+						" or greater than " +
 						IPEndPoint.MaxPort.ToString(NumberFormatInfo.InvariantInfo) + ".");
-				} 
-				else 
+				}
+				else
 				{
 					m_remotePort = value;
 				}
@@ -235,7 +235,7 @@
 		/// Gets or sets the TCP port number from which the underlying <see cref="UdpClient" /> will communicate.
 		/// </summary>
 		/// <value>
-		/// An integer value in the range <see cref="IPEndPoint.MinPort" /> to <see cref="IPEndPoint.MaxPort" /> 
+		/// An integer value in the range <see cref="IPEndPoint.MinPort" /> to <see cref="IPEndPoint.MaxPort" />
 		/// indicating the TCP port number from which the underlying <see cref="UdpClient" /> will communicate.
 		/// </value>
 		/// <remarks>
@@ -251,17 +251,17 @@
 		public int LocalPort
 		{
 			get { return m_localPort; }
-			set 
+			set
 			{
 				if (value != 0 && (value < IPEndPoint.MinPort || value > IPEndPoint.MaxPort))
 				{
 					throw log4net.Util.SystemInfo.CreateArgumentOutOfRangeException("value", (object)value,
-						"The value specified is less than " + 
-						IPEndPoint.MinPort.ToString(NumberFormatInfo.InvariantInfo) + 
-						" or greater than " + 
+						"The value specified is less than " +
+						IPEndPoint.MinPort.ToString(NumberFormatInfo.InvariantInfo) +
+						" or greater than " +
 						IPEndPoint.MaxPort.ToString(NumberFormatInfo.InvariantInfo) + ".");
-				} 
-				else 
+				}
+				else
 				{
 					m_localPort = value;
 				}
@@ -296,10 +296,10 @@
 		/// The underlying <see cref="UdpClient" />.
 		/// </value>
 		/// <remarks>
-		/// <see cref="UdpAppender" /> creates a <see cref="UdpClient" /> to send logging events 
+		/// <see cref="UdpAppender" /> creates a <see cref="UdpClient" /> to send logging events
 		/// over a network.  Classes deriving from <see cref="UdpAppender" /> can use this
 		/// property to get or set this <see cref="UdpClient" />.  Use the underlying <see cref="UdpClient" />
-		/// returned from <see cref="Client" /> if you require access beyond that which 
+		/// returned from <see cref="Client" /> if you require access beyond that which
 		/// <see cref="UdpAppender" /> provides.
 		/// </remarks>
 		protected UdpClient Client
@@ -315,7 +315,7 @@
 		/// The cached remote endpoint to which the logging events will be sent.
 		/// </value>
 		/// <remarks>
-		/// The <see cref="ActivateOptions" /> method will initialize the remote endpoint 
+		/// The <see cref="ActivateOptions" /> method will initialize the remote endpoint
 		/// with the values of the <see cref="RemoteAddress" /> and <see cref="RemotePort"/>
 		/// properties.
 		/// </remarks>
@@ -335,17 +335,17 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// <para>
-		/// The appender will be ignored if no <see cref="RemoteAddress" /> was specified or 
+		/// The appender will be ignored if no <see cref="RemoteAddress" /> was specified or
 		/// an invalid remote or local TCP port number was specified.
 		/// </para>
 		/// </remarks>
@@ -355,27 +355,27 @@
 		{
 			base.ActivateOptions();
 
-			if (this.RemoteAddress == null) 
+			if (this.RemoteAddress == null)
 			{
 				throw new ArgumentNullException("The required property 'Address' was not specified.");
-			} 
-			else if (this.RemotePort < IPEndPoint.MinPort || this.RemotePort > IPEndPoint.MaxPort) 
+			}
+			else if (this.RemotePort < IPEndPoint.MinPort || this.RemotePort > IPEndPoint.MaxPort)
 			{
 				throw log4net.Util.SystemInfo.CreateArgumentOutOfRangeException("this.RemotePort", (object)this.RemotePort,
-					"The RemotePort is less than " + 
-					IPEndPoint.MinPort.ToString(NumberFormatInfo.InvariantInfo) + 
-					" or greater than " + 
+					"The RemotePort is less than " +
+					IPEndPoint.MinPort.ToString(NumberFormatInfo.InvariantInfo) +
+					" or greater than " +
 					IPEndPoint.MaxPort.ToString(NumberFormatInfo.InvariantInfo) + ".");
-			} 
+			}
 			else if (this.LocalPort != 0 && (this.LocalPort < IPEndPoint.MinPort || this.LocalPort > IPEndPoint.MaxPort))
 			{
 				throw log4net.Util.SystemInfo.CreateArgumentOutOfRangeException("this.LocalPort", (object)this.LocalPort,
-					"The LocalPort is less than " + 
-					IPEndPoint.MinPort.ToString(NumberFormatInfo.InvariantInfo) + 
-					" or greater than " + 
+					"The LocalPort is less than " +
+					IPEndPoint.MinPort.ToString(NumberFormatInfo.InvariantInfo) +
+					" or greater than " +
 					IPEndPoint.MaxPort.ToString(NumberFormatInfo.InvariantInfo) + ".");
-			} 
-			else 
+			}
+			else
 			{
 				this.RemoteEndPoint = new IPEndPoint(this.RemoteAddress, this.RemotePort);
 				this.InitializeClientConnection();
@@ -398,9 +398,9 @@
 		/// Exceptions are passed to the <see cref="AppenderSkeleton.ErrorHandler"/>.
 		/// </para>
 		/// </remarks>
-		protected override void Append(LoggingEvent loggingEvent) 
+		protected override void Append(LoggingEvent loggingEvent)
 		{
-			try 
+			try
 			{
 				Byte [] buffer = m_encoding.GetBytes(RenderLoggingEvent(loggingEvent).ToCharArray());
 #if NETSTANDARD1_3
@@ -408,15 +408,15 @@
 #else
 				this.Client.Send(buffer, buffer.Length, this.RemoteEndPoint);
 #endif
-			} 
-			catch (Exception ex) 
+			}
+			catch (Exception ex)
 			{
 				ErrorHandler.Error(
-					"Unable to send logging event to remote host " + 
-					this.RemoteAddress.ToString() + 
-					" on port " + 
-					this.RemotePort + ".", 
-					ex, 
+					"Unable to send logging event to remote host " +
+					this.RemoteAddress.ToString() +
+					" on port " +
+					this.RemotePort + ".",
+					ex,
 					ErrorCode.WriteFailure);
 			}
 		}
@@ -436,20 +436,20 @@
 		}
 
 		/// <summary>
-		/// Closes the UDP connection and releases all resources associated with 
+		/// Closes the UDP connection and releases all resources associated with
 		/// this <see cref="UdpAppender" /> instance.
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Disables the underlying <see cref="UdpClient" /> and releases all managed 
+		/// Disables the underlying <see cref="UdpClient" /> and releases all managed
 		/// and unmanaged resources associated with the <see cref="UdpAppender" />.
 		/// </para>
 		/// </remarks>
-		override protected void OnClose() 
+		override protected void OnClose()
 		{
 			base.OnClose();
 
-			if (this.Client != null) 
+			if (this.Client != null)
 			{
 				this.Client.Close();
 				this.Client = null;
@@ -465,16 +465,16 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// The underlying <see cref="UdpClient"/> is initialized and binds to the 
+		/// The underlying <see cref="UdpClient"/> is initialized and binds to the
 		/// port number from which you intend to communicate.
 		/// </para>
 		/// <para>
 		/// Exceptions are passed to the <see cref="AppenderSkeleton.ErrorHandler"/>.
 		/// </para>
 		/// </remarks>
-		protected virtual void InitializeClientConnection() 
+		protected virtual void InitializeClientConnection()
 		{
-			try 
+			try
 			{
 				if (this.LocalPort == 0)
 				{
@@ -492,13 +492,13 @@
 					this.Client = new UdpClient(this.LocalPort, RemoteAddress.AddressFamily);
 #endif
 				}
-			} 
-			catch (Exception ex) 
+			}
+			catch (Exception ex)
 			{
 				ErrorHandler.Error(
-					"Could not initialize the UdpClient connection on port " + 
-					this.LocalPort.ToString(NumberFormatInfo.InvariantInfo) + ".", 
-					ex, 
+					"Could not initialize the UdpClient connection on port " +
+					this.LocalPort.ToString(NumberFormatInfo.InvariantInfo) + ".",
+					ex,
 					ErrorCode.GenericFailure);
 
 				this.Client = null;
@@ -510,13 +510,13 @@
 		#region Private Instance Fields
 
 		/// <summary>
-		/// The IP address of the remote host or multicast group to which 
+		/// The IP address of the remote host or multicast group to which
 		/// the logging event will be sent.
 		/// </summary>
 		private IPAddress m_remoteAddress;
-		
+
 		/// <summary>
-		/// The TCP port number of the remote host or multicast group to 
+		/// The TCP port number of the remote host or multicast group to
 		/// which the logging event will be sent.
 		/// </summary>
 		private int m_remotePort;
@@ -532,7 +532,7 @@
 		private int m_localPort;
 
 		/// <summary>
-		/// The <see cref="UdpClient" /> instance that will be used for sending the 
+		/// The <see cref="UdpClient" /> instance that will be used for sending the
 		/// logging events.
 		/// </summary>
 		private UdpClient m_client;
diff --git a/src/AssemblyInfo.cs b/src/AssemblyInfo.cs
index 4f47009..bd1f560 100644
--- a/src/AssemblyInfo.cs
+++ b/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -48,7 +48,7 @@
 #endif
 
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
@@ -130,29 +130,29 @@
 
 [assembly: AssemblyProduct("log4net")]
 [assembly: AssemblyDefaultAlias("log4net")]
-[assembly: AssemblyCulture("")]		
-		
+[assembly: AssemblyCulture("")]
+
 //
-// In order to sign your assembly you must specify a key to use. Refer to the 
+// In order to sign your assembly you must specify a key to use. Refer to the
 // Microsoft .NET Framework documentation for more information on assembly signing.
 //
-// Use the attributes below to control which key is used for signing. 
+// Use the attributes below to control which key is used for signing.
 //
-// Notes: 
+// Notes:
 //   (*) If no key is specified, the assembly is not signed.
 //   (*) KeyName refers to a key that has been installed in the Crypto Service
 //       Provider (CSP) on your machine. KeyFile refers to a file which contains
 //       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
+//   (*) If the KeyFile and the KeyName values are both specified, the
 //       following processing occurs:
 //       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
 //           in the KeyFile is installed into the CSP and used.
 //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
 //       When specifying the KeyFile, the location of the KeyFile should be
 //       relative to the project output directory which is
 //       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
+//       located in the project directory, you would specify the AssemblyKeyFile
 //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
 //   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
 //       documentation for more information on this.
diff --git a/src/AssemblyVersionInfo.cs b/src/AssemblyVersionInfo.cs
index 668df06..0ed9380 100644
--- a/src/AssemblyVersionInfo.cs
+++ b/src/AssemblyVersionInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -21,11 +21,11 @@
 // Version information for an assembly consists of the following four values:
 //
 //      Major Version
-//      Minor Version 
+//      Minor Version
 //      Build Number
 //      Revision
 //
-// You can specify all the values or you can default the Revision and Build Numbers 
+// 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.9.0")]
diff --git a/src/Config/AliasDomainAttribute.cs b/src/Config/AliasDomainAttribute.cs
index 11906f6..95b2122 100644
--- a/src/Config/AliasDomainAttribute.cs
+++ b/src/Config/AliasDomainAttribute.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -54,7 +54,7 @@
 		#region Public Instance Constructors
 
 		/// <summary>
-		/// Initializes a new instance of the <see cref="AliasDomainAttribute" /> class with 
+		/// Initializes a new instance of the <see cref="AliasDomainAttribute" /> class with
 		/// the specified domain to alias to this assembly's repository.
 		/// </summary>
 		/// <param name="name">The domain to alias to this assemby's repository.</param>
diff --git a/src/Config/AliasRepositoryAttribute.cs b/src/Config/AliasRepositoryAttribute.cs
index da83b77..64a881b 100644
--- a/src/Config/AliasRepositoryAttribute.cs
+++ b/src/Config/AliasRepositoryAttribute.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -49,18 +49,18 @@
 	{
 		//
 		// Class is not sealed because AliasDomainAttribute extends it while it is obsoleted
-		// 
+		//
 
 		#region Public Instance Constructors
 
 		/// <summary>
-		/// Initializes a new instance of the <see cref="AliasRepositoryAttribute" /> class with 
+		/// Initializes a new instance of the <see cref="AliasRepositoryAttribute" /> class with
 		/// the specified repository to alias to this assembly's repository.
 		/// </summary>
 		/// <param name="name">The repository to alias to this assemby's repository.</param>
 		/// <remarks>
 		/// <para>
-		/// Initializes a new instance of the <see cref="AliasRepositoryAttribute" /> class with 
+		/// Initializes a new instance of the <see cref="AliasRepositoryAttribute" /> class with
 		/// the specified repository to alias to this assembly's repository.
 		/// </para>
 		/// </remarks>
diff --git a/src/Config/BasicConfigurator.cs b/src/Config/BasicConfigurator.cs
index 1f89ad2..0b49dbd 100644
--- a/src/Config/BasicConfigurator.cs
+++ b/src/Config/BasicConfigurator.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -50,24 +50,24 @@
 	/// <author>Nicko Cadell</author>
 	/// <author>Gert Driesen</author>
 	public sealed class BasicConfigurator
-    {
-	    #region Private Static Fields
+	{
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the BasicConfigurator class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(BasicConfigurator);
+		/// <summary>
+		/// The fully qualified type of the BasicConfigurator class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(BasicConfigurator);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 
-        #region Private Instance Constructors
+		#region Private Instance Constructors
 
-        /// <summary>
-		/// Initializes a new instance of the <see cref="BasicConfigurator" /> class. 
+		/// <summary>
+		/// Initializes a new instance of the <see cref="BasicConfigurator" /> class.
 		/// </summary>
 		/// <remarks>
 		/// <para>
@@ -95,37 +95,37 @@
 		/// layout style.
 		/// </para>
 		/// </remarks>
-        static public ICollection Configure()
+		static public ICollection Configure()
 		{
-            return BasicConfigurator.Configure(LogManager.GetRepository(Assembly.GetCallingAssembly()));
-        }
+			return BasicConfigurator.Configure(LogManager.GetRepository(Assembly.GetCallingAssembly()));
+		}
 
-        /// <summary>
-        /// Initializes the log4net system using the specified appenders.
-        /// </summary>
-        /// <param name="appenders">The appenders to use to log all logging events.</param>
-        /// <remarks>
-        /// <para>
-        /// Initializes the log4net system using the specified appenders.
-        /// </para>
-        /// </remarks>
-        static public ICollection Configure(params IAppender[] appenders)
-        {
-            ArrayList configurationMessages = new ArrayList();
+		/// <summary>
+		/// Initializes the log4net system using the specified appenders.
+		/// </summary>
+		/// <param name="appenders">The appenders to use to log all logging events.</param>
+		/// <remarks>
+		/// <para>
+		/// Initializes the log4net system using the specified appenders.
+		/// </para>
+		/// </remarks>
+		static public ICollection Configure(params IAppender[] appenders)
+		{
+			ArrayList configurationMessages = new ArrayList();
 
-            ILoggerRepository repository = LogManager.GetRepository(Assembly.GetCallingAssembly());
+			ILoggerRepository repository = LogManager.GetRepository(Assembly.GetCallingAssembly());
 
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-            {
-                InternalConfigure(repository, appenders);
-            }
+			using (new LogLog.LogReceivedAdapter(configurationMessages))
+			{
+				InternalConfigure(repository, appenders);
+			}
 
-            repository.ConfigurationMessages = configurationMessages;
+			repository.ConfigurationMessages = configurationMessages;
 
-            return configurationMessages;
-        }
+			return configurationMessages;
+		}
 
-	    /// <summary>
+		/// <summary>
 		/// Initializes the log4net system using the specified appender.
 		/// </summary>
 		/// <param name="appender">The appender to use to log all logging events.</param>
@@ -134,9 +134,9 @@
 		/// Initializes the log4net system using the specified appender.
 		/// </para>
 		/// </remarks>
-		static public ICollection Configure(IAppender appender) 
+		static public ICollection Configure(IAppender appender)
 		{
-            return Configure(new IAppender[] { appender });
+			return Configure(new IAppender[] { appender });
 		}
 #endif // !NETSTANDARD1_3
 
@@ -153,80 +153,80 @@
 		/// layout style.
 		/// </para>
 		/// </remarks>
-        static public ICollection Configure(ILoggerRepository repository) 
+		static public ICollection Configure(ILoggerRepository repository)
 		{
-            ArrayList configurationMessages = new ArrayList();
+			ArrayList configurationMessages = new ArrayList();
 
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-            {
-                // Create the layout
-                PatternLayout layout = new PatternLayout();
-                layout.ConversionPattern = PatternLayout.DetailConversionPattern;
-                layout.ActivateOptions();
+			using (new LogLog.LogReceivedAdapter(configurationMessages))
+			{
+				// Create the layout
+				PatternLayout layout = new PatternLayout();
+				layout.ConversionPattern = PatternLayout.DetailConversionPattern;
+				layout.ActivateOptions();
 
-                // Create the appender
-                ConsoleAppender appender = new ConsoleAppender();
-                appender.Layout = layout;
-                appender.ActivateOptions();
+				// Create the appender
+				ConsoleAppender appender = new ConsoleAppender();
+				appender.Layout = layout;
+				appender.ActivateOptions();
 
-                InternalConfigure(repository, appender);
-            }
+				InternalConfigure(repository, appender);
+			}
 
-            repository.ConfigurationMessages = configurationMessages;
+			repository.ConfigurationMessages = configurationMessages;
 
-            return configurationMessages;
+			return configurationMessages;
 		}
 
-        /// <summary>
-        /// Initializes the <see cref="ILoggerRepository"/> using the specified appender.
-        /// </summary>
-        /// <param name="repository">The repository to configure.</param>
-        /// <param name="appender">The appender to use to log all logging events.</param>
-        /// <remarks>
-        /// <para>
-        /// Initializes the <see cref="ILoggerRepository"/> using the specified appender.
-        /// </para>
-        /// </remarks>
-        static public ICollection Configure(ILoggerRepository repository, IAppender appender)
-        {
-            return Configure(repository, new IAppender[] { appender });
-        }
-
-        /// <summary>
-        /// Initializes the <see cref="ILoggerRepository"/> using the specified appenders.
-        /// </summary>
-        /// <param name="repository">The repository to configure.</param>
-        /// <param name="appenders">The appenders to use to log all logging events.</param>
-        /// <remarks>
-        /// <para>
-        /// Initializes the <see cref="ILoggerRepository"/> using the specified appender.
-        /// </para>
-        /// </remarks>
-        static public ICollection Configure(ILoggerRepository repository, params IAppender[] appenders)
-        {
-            ArrayList configurationMessages = new ArrayList();
-
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-            {
-                InternalConfigure(repository, appenders);
-            }
-
-            repository.ConfigurationMessages = configurationMessages;
-
-            return configurationMessages;
-        }
-	    
-		static private void InternalConfigure(ILoggerRepository repository, params IAppender[] appenders) 
+		/// <summary>
+		/// Initializes the <see cref="ILoggerRepository"/> using the specified appender.
+		/// </summary>
+		/// <param name="repository">The repository to configure.</param>
+		/// <param name="appender">The appender to use to log all logging events.</param>
+		/// <remarks>
+		/// <para>
+		/// Initializes the <see cref="ILoggerRepository"/> using the specified appender.
+		/// </para>
+		/// </remarks>
+		static public ICollection Configure(ILoggerRepository repository, IAppender appender)
 		{
-            IBasicRepositoryConfigurator configurableRepository = repository as IBasicRepositoryConfigurator;
-            if (configurableRepository != null)
-            {
-                configurableRepository.Configure(appenders);
-            }
-            else
-            {
-                LogLog.Warn(declaringType, "BasicConfigurator: Repository [" + repository + "] does not support the BasicConfigurator");
-            }
+			return Configure(repository, new IAppender[] { appender });
+		}
+
+		/// <summary>
+		/// Initializes the <see cref="ILoggerRepository"/> using the specified appenders.
+		/// </summary>
+		/// <param name="repository">The repository to configure.</param>
+		/// <param name="appenders">The appenders to use to log all logging events.</param>
+		/// <remarks>
+		/// <para>
+		/// Initializes the <see cref="ILoggerRepository"/> using the specified appender.
+		/// </para>
+		/// </remarks>
+		static public ICollection Configure(ILoggerRepository repository, params IAppender[] appenders)
+		{
+			ArrayList configurationMessages = new ArrayList();
+
+			using (new LogLog.LogReceivedAdapter(configurationMessages))
+			{
+				InternalConfigure(repository, appenders);
+			}
+
+			repository.ConfigurationMessages = configurationMessages;
+
+			return configurationMessages;
+		}
+
+		static private void InternalConfigure(ILoggerRepository repository, params IAppender[] appenders)
+		{
+			IBasicRepositoryConfigurator configurableRepository = repository as IBasicRepositoryConfigurator;
+			if (configurableRepository != null)
+			{
+				configurableRepository.Configure(appenders);
+			}
+			else
+			{
+				LogLog.Warn(declaringType, "BasicConfigurator: Repository [" + repository + "] does not support the BasicConfigurator");
+			}
 		}
 
 		#endregion Public Static Methods
diff --git a/src/Config/ConfiguratorAttribute.cs b/src/Config/ConfiguratorAttribute.cs
index e3da674..2d89165 100644
--- a/src/Config/ConfiguratorAttribute.cs
+++ b/src/Config/ConfiguratorAttribute.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -31,7 +31,7 @@
 	/// Base class for all log4net configuration attributes.
 	/// </summary>
 	/// <remarks>
-	/// This is an abstract class that must be extended by 
+	/// This is an abstract class that must be extended by
 	/// specific configurators. This attribute allows the
 	/// configurator to be parameterized by an assembly level
 	/// attribute.
diff --git a/src/Config/DOMConfigurator.cs b/src/Config/DOMConfigurator.cs
index 54551af..09c14c9 100644
--- a/src/Config/DOMConfigurator.cs
+++ b/src/Config/DOMConfigurator.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -51,8 +51,8 @@
 		/// <summary>
 		/// Private constructor
 		/// </summary>
-		private DOMConfigurator() 
-		{ 
+		private DOMConfigurator()
+		{
 		}
 
 		#endregion Protected Instance Constructors
@@ -60,7 +60,7 @@
 		#region Configure static methods
 
 		/// <summary>
-		/// Automatically configures the log4net system based on the 
+		/// Automatically configures the log4net system based on the
 		/// application's configuration settings.
 		/// </summary>
 		/// <remarks>
@@ -74,7 +74,7 @@
 		/// <c>log4net</c> that contains the configuration data.
 		/// </remarks>
 		[Obsolete("Use XmlConfigurator.Configure instead of DOMConfigurator.Configure")]
-		static public void Configure() 
+		static public void Configure()
 		{
 			XmlConfigurator.Configure(LogManager.GetRepository(Assembly.GetCallingAssembly()));
 		}
@@ -95,7 +95,7 @@
 		/// </remarks>
 		/// <param name="repository">The repository to configure.</param>
 		[Obsolete("Use XmlConfigurator.Configure instead of DOMConfigurator.Configure")]
-		static public void Configure(ILoggerRepository repository) 
+		static public void Configure(ILoggerRepository repository)
 		{
 			XmlConfigurator.Configure(repository);
 		}
@@ -112,13 +112,13 @@
 		/// </remarks>
 		/// <param name="element">The element to parse.</param>
 		[Obsolete("Use XmlConfigurator.Configure instead of DOMConfigurator.Configure")]
-		static public void Configure(XmlElement element) 
+		static public void Configure(XmlElement element)
 		{
 			XmlConfigurator.Configure(LogManager.GetRepository(Assembly.GetCallingAssembly()), element);
 		}
 
 		/// <summary>
-		/// Configures the <see cref="ILoggerRepository"/> using the specified XML 
+		/// Configures the <see cref="ILoggerRepository"/> using the specified XML
 		/// element.
 		/// </summary>
 		/// <remarks>
@@ -131,7 +131,7 @@
 		/// <param name="repository">The repository to configure.</param>
 		/// <param name="element">The element to parse.</param>
 		[Obsolete("Use XmlConfigurator.Configure instead of DOMConfigurator.Configure")]
-		static public void Configure(ILoggerRepository repository, XmlElement element) 
+		static public void Configure(ILoggerRepository repository, XmlElement element)
 		{
 			XmlConfigurator.Configure(repository, element);
 		}
@@ -155,16 +155,16 @@
 		/// normal application on <c>Web.config</c> for an ASP.NET application).
 		/// </para>
 		/// <example>
-		/// The following example configures log4net using a configuration file, of which the 
+		/// The following example configures log4net using a configuration file, of which the
 		/// location is stored in the application's configuration file :
 		/// </example>
 		/// <code lang="C#">
 		/// using log4net.Config;
 		/// using System.IO;
 		/// using System.Configuration;
-		/// 
+		///
 		/// ...
-		/// 
+		///
 		/// DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
 		/// </code>
 		/// <para>
@@ -208,7 +208,7 @@
 		}
 
 		/// <summary>
-		/// Configures the <see cref="ILoggerRepository"/> using the specified configuration 
+		/// Configures the <see cref="ILoggerRepository"/> using the specified configuration
 		/// file.
 		/// </summary>
 		/// <param name="repository">The repository to configure.</param>
@@ -228,16 +228,16 @@
 		/// normal application on <c>Web.config</c> for an ASP.NET application).
 		/// </para>
 		/// <example>
-		/// The following example configures log4net using a configuration file, of which the 
+		/// The following example configures log4net using a configuration file, of which the
 		/// location is stored in the application's configuration file :
 		/// </example>
 		/// <code lang="C#">
 		/// using log4net.Config;
 		/// using System.IO;
 		/// using System.Configuration;
-		/// 
+		///
 		/// ...
-		/// 
+		///
 		/// DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
 		/// </code>
 		/// <para>
@@ -259,7 +259,7 @@
 
 
 		/// <summary>
-		/// Configures the <see cref="ILoggerRepository"/> using the specified configuration 
+		/// Configures the <see cref="ILoggerRepository"/> using the specified configuration
 		/// file.
 		/// </summary>
 		/// <param name="repository">The repository to configure.</param>
@@ -290,7 +290,7 @@
 #if (!NETCF && !SSCLI)
 
 		/// <summary>
-		/// Configures log4net using the file specified, monitors the file for changes 
+		/// Configures log4net using the file specified, monitors the file for changes
 		/// and reloads the configuration if a change is detected.
 		/// </summary>
 		/// <param name="configFile">The XML file to load the configuration from.</param>
@@ -320,8 +320,8 @@
 		}
 
 		/// <summary>
-		/// Configures the <see cref="ILoggerRepository"/> using the file specified, 
-		/// monitors the file for changes and reloads the configuration if a change 
+		/// Configures the <see cref="ILoggerRepository"/> using the file specified,
+		/// monitors the file for changes and reloads the configuration if a change
 		/// is detected.
 		/// </summary>
 		/// <param name="repository">The repository to configure.</param>
diff --git a/src/Config/DOMConfiguratorAttribute.cs b/src/Config/DOMConfiguratorAttribute.cs
index e996b0e..880646a 100644
--- a/src/Config/DOMConfiguratorAttribute.cs
+++ b/src/Config/DOMConfiguratorAttribute.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/Config/DomainAttribute.cs b/src/Config/DomainAttribute.cs
index 8e49ff7..19b8b9a 100644
--- a/src/Config/DomainAttribute.cs
+++ b/src/Config/DomainAttribute.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -36,7 +36,7 @@
 	/// logging repository. This attribute specified on the assembly controls
 	/// the configuration of the domain. The <see cref="RepositoryAttribute.Name"/> property specifies the name
 	/// of the domain that this assembly is a part of. The <see cref="RepositoryAttribute.RepositoryType"/>
-	/// specifies the type of the repository objects to create for the domain. If 
+	/// specifies the type of the repository objects to create for the domain. If
 	/// this attribute is not specified and a <see cref="RepositoryAttribute.Name"/> is not specified
 	/// then the assembly will be part of the default shared logging domain.
 	/// </para>
@@ -67,7 +67,7 @@
 		}
 
 		/// <summary>
-		/// Initialize a new instance of the <see cref="DomainAttribute" /> class 
+		/// Initialize a new instance of the <see cref="DomainAttribute" /> class
 		/// with the name of the domain.
 		/// </summary>
 		/// <param name="name">The name of the domain.</param>
diff --git a/src/Config/Log4NetConfigurationSectionHandler.cs b/src/Config/Log4NetConfigurationSectionHandler.cs
index cc0bfee..6e9b0b7 100644
--- a/src/Config/Log4NetConfigurationSectionHandler.cs
+++ b/src/Config/Log4NetConfigurationSectionHandler.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/Config/PluginAttribute.cs b/src/Config/PluginAttribute.cs
index eb91906..9f8455c 100644
--- a/src/Config/PluginAttribute.cs
+++ b/src/Config/PluginAttribute.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -31,7 +31,7 @@
 namespace log4net.Config
 {
 	/// <summary>
-	/// Assembly level attribute that specifies a plugin to attach to 
+	/// Assembly level attribute that specifies a plugin to attach to
 	/// the repository.
 	/// </summary>
 	/// <remarks>
@@ -134,7 +134,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Creates the instance of the <see cref="IPlugin"/> object as 
+		/// Creates the instance of the <see cref="IPlugin"/> object as
 		/// specified by this attribute.
 		/// </para>
 		/// </remarks>
@@ -170,7 +170,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Overrides base class <see cref="M:Object.ToString()" /> method to 
+		/// Overrides base class <see cref="M:Object.ToString()" /> method to
 		/// return a representation of the properties of this object.
 		/// </para>
 		/// </remarks>
diff --git a/src/Config/RepositoryAttribute.cs b/src/Config/RepositoryAttribute.cs
index 56dd982..7ebe567 100644
--- a/src/Config/RepositoryAttribute.cs
+++ b/src/Config/RepositoryAttribute.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -29,12 +29,12 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// Assemblies are mapped to logging repository. This attribute specified 
+	/// Assemblies are mapped to logging repository. This attribute specified
 	/// on the assembly controls
 	/// the configuration of the repository. The <see cref="Name"/> property specifies the name
 	/// of the repository that this assembly is a part of. The <see cref="RepositoryType"/>
-	/// specifies the type of the <see cref="log4net.Repository.ILoggerRepository"/> object 
-	/// to create for the assembly. If this attribute is not specified or a <see cref="Name"/> 
+	/// specifies the type of the <see cref="log4net.Repository.ILoggerRepository"/> object
+	/// to create for the assembly. If this attribute is not specified or a <see cref="Name"/>
 	/// is not specified then the assembly will be part of the default shared logging repository.
 	/// </para>
 	/// <para>
@@ -50,7 +50,7 @@
 	{
 		//
 		// Class is not sealed because DomainAttribute extends it while it is obsoleted
-		// 
+		//
 
 		#region Public Instance Constructors
 
@@ -67,7 +67,7 @@
 		}
 
 		/// <summary>
-		/// Initialize a new instance of the <see cref="RepositoryAttribute" /> class 
+		/// Initialize a new instance of the <see cref="RepositoryAttribute" /> class
 		/// with the name of the repository.
 		/// </summary>
 		/// <param name="name">The name of the repository.</param>
@@ -117,10 +117,10 @@
 		/// interface.
 		/// </para>
 		/// <para>
-		/// This will be the type of repository created when 
+		/// This will be the type of repository created when
 		/// the repository is created. If multiple assemblies reference the
 		/// same repository then the repository is only created once using the
-		/// <see cref="RepositoryType" /> of the first assembly to call into the 
+		/// <see cref="RepositoryType" /> of the first assembly to call into the
 		/// repository.
 		/// </para>
 		/// </remarks>
diff --git a/src/Config/SecurityContextProviderAttribute.cs b/src/Config/SecurityContextProviderAttribute.cs
index c6f8557..259c869 100644
--- a/src/Config/SecurityContextProviderAttribute.cs
+++ b/src/Config/SecurityContextProviderAttribute.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -133,18 +133,18 @@
 
 		#endregion Private Instance Fields
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the SecurityContextProviderAttribute class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(SecurityContextProviderAttribute);
+		/// <summary>
+		/// The fully qualified type of the SecurityContextProviderAttribute class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(SecurityContextProviderAttribute);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
 
diff --git a/src/Config/XmlConfigurator.cs b/src/Config/XmlConfigurator.cs
index 5b11d98..7c81a36 100644
--- a/src/Config/XmlConfigurator.cs
+++ b/src/Config/XmlConfigurator.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -48,8 +48,8 @@
 		/// <summary>
 		/// Private constructor
 		/// </summary>
-		private XmlConfigurator() 
-		{ 
+		private XmlConfigurator()
+		{
 		}
 
 		#endregion Protected Instance Constructors
@@ -57,26 +57,26 @@
 		#region Configure static methods
 
 #if !NETCF
-        /// <summary>
-        /// Automatically configures the <see cref="ILoggerRepository"/> using settings
-        /// stored in the application's configuration file.
-        /// </summary>
-        /// <remarks>
-        /// <para>
-        /// Each application has a configuration file. This has the
-        /// same name as the application with '.config' appended.
-        /// This file is XML and calling this function prompts the
-        /// configurator to look in that file for a section called
-        /// <c>log4net</c> that contains the configuration data.
-        /// </para>
-        /// <para>
-        /// To use this method to configure log4net you must specify 
-        /// the <see cref="Log4NetConfigurationSectionHandler"/> section
-        /// handler for the <c>log4net</c> configuration section. See the
-        /// <see cref="Log4NetConfigurationSectionHandler"/> for an example.
-        /// </para>
-        /// </remarks>
-        /// <param name="repository">The repository to configure.</param>
+		/// <summary>
+		/// Automatically configures the <see cref="ILoggerRepository"/> using settings
+		/// stored in the application's configuration file.
+		/// </summary>
+		/// <remarks>
+		/// <para>
+		/// Each application has a configuration file. This has the
+		/// same name as the application with '.config' appended.
+		/// This file is XML and calling this function prompts the
+		/// configurator to look in that file for a section called
+		/// <c>log4net</c> that contains the configuration data.
+		/// </para>
+		/// <para>
+		/// To use this method to configure log4net you must specify
+		/// the <see cref="Log4NetConfigurationSectionHandler"/> section
+		/// handler for the <c>log4net</c> configuration section. See the
+		/// <see cref="Log4NetConfigurationSectionHandler"/> for an example.
+		/// </para>
+		/// </remarks>
+		/// <param name="repository">The repository to configure.</param>
 #else
 		/// <summary>
 		/// Automatically configures the <see cref="ILoggerRepository"/> using settings
@@ -93,21 +93,21 @@
 		/// </remarks>
 		/// <param name="repository">The repository to configure.</param>
 #endif
-        static public ICollection Configure(ILoggerRepository repository)
-        {
-            ArrayList configurationMessages = new ArrayList();
+		static public ICollection Configure(ILoggerRepository repository)
+		{
+			ArrayList configurationMessages = new ArrayList();
 
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-            {
-                InternalConfigure(repository);
-            }
+			using (new LogLog.LogReceivedAdapter(configurationMessages))
+			{
+				InternalConfigure(repository);
+			}
 
-            repository.ConfigurationMessages = configurationMessages;
+			repository.ConfigurationMessages = configurationMessages;
 
-            return configurationMessages;
-        }
+			return configurationMessages;
+		}
 
-	    static private void InternalConfigure(ILoggerRepository repository) 
+		static private void InternalConfigure(ILoggerRepository repository)
 		{
 			LogLog.Debug(declaringType, "configuring repository [" + repository.Name + "] using .config file section");
 
@@ -164,7 +164,7 @@
 #if !NETSTANDARD1_3 // Excluded because GetCallingAssembly() is not available in CoreFX (https://github.com/dotnet/corefx/issues/2221).
 #if !NETCF
 		/// <summary>
-		/// Automatically configures the log4net system based on the 
+		/// Automatically configures the log4net system based on the
 		/// application's configuration settings.
 		/// </summary>
 		/// <remarks>
@@ -176,7 +176,7 @@
 		/// <c>log4net</c> that contains the configuration data.
 		/// </para>
 		/// <para>
-		/// To use this method to configure log4net you must specify 
+		/// To use this method to configure log4net you must specify
 		/// the <see cref="Log4NetConfigurationSectionHandler"/> section
 		/// handler for the <c>log4net</c> configuration section. See the
 		/// <see cref="Log4NetConfigurationSectionHandler"/> for an example.
@@ -185,7 +185,7 @@
 		/// <seealso cref="Log4NetConfigurationSectionHandler"/>
 #else
 		/// <summary>
-		/// Automatically configures the log4net system based on the 
+		/// Automatically configures the log4net system based on the
 		/// application's configuration settings.
 		/// </summary>
 		/// <remarks>
@@ -198,10 +198,10 @@
 		/// </para>
 		/// </remarks>
 #endif
-        static public ICollection Configure()
-        {
-            return Configure(LogManager.GetRepository(Assembly.GetCallingAssembly()));
-        }
+		static public ICollection Configure()
+		{
+			return Configure(LogManager.GetRepository(Assembly.GetCallingAssembly()));
+		}
 
 		/// <summary>
 		/// Configures log4net using a <c>log4net</c> element
@@ -213,20 +213,20 @@
 		/// </para>
 		/// </remarks>
 		/// <param name="element">The element to parse.</param>
-		static public ICollection Configure(XmlElement element) 
+		static public ICollection Configure(XmlElement element)
 		{
-            ArrayList configurationMessages = new ArrayList();
+			ArrayList configurationMessages = new ArrayList();
 
-            ILoggerRepository repository = LogManager.GetRepository(Assembly.GetCallingAssembly());
+			ILoggerRepository repository = LogManager.GetRepository(Assembly.GetCallingAssembly());
 
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-            {
-                InternalConfigureFromXml(repository, element);
-            }
+			using (new LogLog.LogReceivedAdapter(configurationMessages))
+			{
+				InternalConfigureFromXml(repository, element);
+			}
 
-            repository.ConfigurationMessages = configurationMessages;
+			repository.ConfigurationMessages = configurationMessages;
 
-            return configurationMessages;
+			return configurationMessages;
 		}
 
 #if !NETCF
@@ -246,9 +246,9 @@
 		/// normal application on <c>Web.config</c> for an ASP.NET application).
 		/// </para>
 		/// <para>
-		/// The first element matching <c>&lt;configuration&gt;</c> will be read as the 
-		/// configuration. If this file is also a .NET .config file then you must specify 
-		/// a configuration section for the <c>log4net</c> element otherwise .NET will 
+		/// The first element matching <c>&lt;configuration&gt;</c> will be read as the
+		/// configuration. If this file is also a .NET .config file then you must specify
+		/// a configuration section for the <c>log4net</c> element otherwise .NET will
 		/// complain. Set the type for the section handler to <see cref="System.Configuration.IgnoreSectionHandler"/>, for example:
 		/// <code lang="XML" escaped="true">
 		/// <configSections>
@@ -257,16 +257,16 @@
 		/// </code>
 		/// </para>
 		/// <example>
-		/// The following example configures log4net using a configuration file, of which the 
+		/// The following example configures log4net using a configuration file, of which the
 		/// location is stored in the application's configuration file :
 		/// </example>
 		/// <code lang="C#">
 		/// using log4net.Config;
 		/// using System.IO;
 		/// using System.Configuration;
-		/// 
+		///
 		/// ...
-		/// 
+		///
 		/// XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
 		/// </code>
 		/// <para>
@@ -292,16 +292,16 @@
 		/// the log4net configuration data.
 		/// </para>
 		/// <example>
-		/// The following example configures log4net using a configuration file, of which the 
+		/// The following example configures log4net using a configuration file, of which the
 		/// location is stored in the application's configuration file :
 		/// </example>
 		/// <code lang="C#">
 		/// using log4net.Config;
 		/// using System.IO;
 		/// using System.Configuration;
-		/// 
+		///
 		/// ...
-		/// 
+		///
 		/// XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
 		/// </code>
 		/// <para>
@@ -318,14 +318,14 @@
 #endif
 		static public ICollection Configure(FileInfo configFile)
 		{
-            ArrayList configurationMessages = new ArrayList();
+			ArrayList configurationMessages = new ArrayList();
 
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-            {
-                InternalConfigure(LogManager.GetRepository(Assembly.GetCallingAssembly()), configFile);
-            }
+			using (new LogLog.LogReceivedAdapter(configurationMessages))
+			{
+				InternalConfigure(LogManager.GetRepository(Assembly.GetCallingAssembly()), configFile);
+			}
 
-            return configurationMessages;
+			return configurationMessages;
 		}
 
 		/// <summary>
@@ -344,17 +344,17 @@
 		/// </remarks>
 		static public ICollection Configure(Uri configUri)
 		{
-            ArrayList configurationMessages = new ArrayList();
+			ArrayList configurationMessages = new ArrayList();
 
-            ILoggerRepository repository = LogManager.GetRepository(Assembly.GetCallingAssembly());
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-            {
-                InternalConfigure(repository, configUri);
-            }
+			ILoggerRepository repository = LogManager.GetRepository(Assembly.GetCallingAssembly());
+			using (new LogLog.LogReceivedAdapter(configurationMessages))
+			{
+				InternalConfigure(repository, configUri);
+			}
 
-            repository.ConfigurationMessages = configurationMessages;
+			repository.ConfigurationMessages = configurationMessages;
 
-            return configurationMessages;
+			return configurationMessages;
 		}
 
 		/// <summary>
@@ -373,102 +373,102 @@
 		/// </remarks>
 		static public ICollection Configure(Stream configStream)
 		{
-            ArrayList configurationMessages = new ArrayList();
+			ArrayList configurationMessages = new ArrayList();
 
-            ILoggerRepository repository = LogManager.GetRepository(Assembly.GetCallingAssembly());
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-            {
-                InternalConfigure(repository, configStream);
-            }
+			ILoggerRepository repository = LogManager.GetRepository(Assembly.GetCallingAssembly());
+			using (new LogLog.LogReceivedAdapter(configurationMessages))
+			{
+				InternalConfigure(repository, configStream);
+			}
 
-            repository.ConfigurationMessages = configurationMessages;
+			repository.ConfigurationMessages = configurationMessages;
 
-            return configurationMessages;
+			return configurationMessages;
 		}
 #endif // !NETSTANDARD1_3
 
-        /// <summary>
-        /// Configures the <see cref="ILoggerRepository"/> using the specified XML 
-        /// element.
-        /// </summary>
-        /// <remarks>
-        /// Loads the log4net configuration from the XML element
-        /// supplied as <paramref name="element"/>.
-        /// </remarks>
-        /// <param name="repository">The repository to configure.</param>
-        /// <param name="element">The element to parse.</param>
-        static public ICollection Configure(ILoggerRepository repository, XmlElement element)
-        {
-            ArrayList configurationMessages = new ArrayList();
+		/// <summary>
+		/// Configures the <see cref="ILoggerRepository"/> using the specified XML
+		/// element.
+		/// </summary>
+		/// <remarks>
+		/// Loads the log4net configuration from the XML element
+		/// supplied as <paramref name="element"/>.
+		/// </remarks>
+		/// <param name="repository">The repository to configure.</param>
+		/// <param name="element">The element to parse.</param>
+		static public ICollection Configure(ILoggerRepository repository, XmlElement element)
+		{
+			ArrayList configurationMessages = new ArrayList();
 
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-            {
-                LogLog.Debug(declaringType, "configuring repository [" + repository.Name + "] using XML element");
+			using (new LogLog.LogReceivedAdapter(configurationMessages))
+			{
+				LogLog.Debug(declaringType, "configuring repository [" + repository.Name + "] using XML element");
 
-                InternalConfigureFromXml(repository, element);
-            }
+				InternalConfigureFromXml(repository, element);
+			}
 
-            repository.ConfigurationMessages = configurationMessages;
+			repository.ConfigurationMessages = configurationMessages;
 
-            return configurationMessages;
-        }
+			return configurationMessages;
+		}
 
 #if !NETCF
-        /// <summary>
-        /// Configures the <see cref="ILoggerRepository"/> using the specified configuration 
-        /// file.
-        /// </summary>
-        /// <param name="repository">The repository to configure.</param>
-        /// <param name="configFile">The XML file to load the configuration from.</param>
-        /// <remarks>
-        /// <para>
-        /// The configuration file must be valid XML. It must contain
-        /// at least one element called <c>log4net</c> that holds
-        /// the configuration data.
-        /// </para>
-        /// <para>
-        /// The log4net configuration file can possible be specified in the application's
-        /// configuration file (either <c>MyAppName.exe.config</c> for a
-        /// normal application on <c>Web.config</c> for an ASP.NET application).
-        /// </para>
-        /// <para>
-        /// The first element matching <c>&lt;configuration&gt;</c> will be read as the 
-        /// configuration. If this file is also a .NET .config file then you must specify 
-        /// a configuration section for the <c>log4net</c> element otherwise .NET will 
-        /// complain. Set the type for the section handler to <see cref="System.Configuration.IgnoreSectionHandler"/>, for example:
-        /// <code lang="XML" escaped="true">
-        /// <configSections>
-        ///		<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
-        ///	</configSections>
-        /// </code>
-        /// </para>
-        /// <example>
-        /// The following example configures log4net using a configuration file, of which the 
-        /// location is stored in the application's configuration file :
-        /// </example>
-        /// <code lang="C#">
-        /// using log4net.Config;
-        /// using System.IO;
-        /// using System.Configuration;
-        /// 
-        /// ...
-        /// 
-        /// XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
-        /// </code>
-        /// <para>
-        /// In the <c>.config</c> file, the path to the log4net can be specified like this :
-        /// </para>
-        /// <code lang="XML" escaped="true">
-        /// <configuration>
-        ///		<appSettings>
-        ///			<add key="log4net-config-file" value="log.config"/>
-        ///		</appSettings>
-        ///	</configuration>
-        /// </code>
-        /// </remarks>
+		/// <summary>
+		/// Configures the <see cref="ILoggerRepository"/> using the specified configuration
+		/// file.
+		/// </summary>
+		/// <param name="repository">The repository to configure.</param>
+		/// <param name="configFile">The XML file to load the configuration from.</param>
+		/// <remarks>
+		/// <para>
+		/// The configuration file must be valid XML. It must contain
+		/// at least one element called <c>log4net</c> that holds
+		/// the configuration data.
+		/// </para>
+		/// <para>
+		/// The log4net configuration file can possible be specified in the application's
+		/// configuration file (either <c>MyAppName.exe.config</c> for a
+		/// normal application on <c>Web.config</c> for an ASP.NET application).
+		/// </para>
+		/// <para>
+		/// The first element matching <c>&lt;configuration&gt;</c> will be read as the
+		/// configuration. If this file is also a .NET .config file then you must specify
+		/// a configuration section for the <c>log4net</c> element otherwise .NET will
+		/// complain. Set the type for the section handler to <see cref="System.Configuration.IgnoreSectionHandler"/>, for example:
+		/// <code lang="XML" escaped="true">
+		/// <configSections>
+		///		<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
+		///	</configSections>
+		/// </code>
+		/// </para>
+		/// <example>
+		/// The following example configures log4net using a configuration file, of which the
+		/// location is stored in the application's configuration file :
+		/// </example>
+		/// <code lang="C#">
+		/// using log4net.Config;
+		/// using System.IO;
+		/// using System.Configuration;
+		///
+		/// ...
+		///
+		/// XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
+		/// </code>
+		/// <para>
+		/// In the <c>.config</c> file, the path to the log4net can be specified like this :
+		/// </para>
+		/// <code lang="XML" escaped="true">
+		/// <configuration>
+		///		<appSettings>
+		///			<add key="log4net-config-file" value="log.config"/>
+		///		</appSettings>
+		///	</configuration>
+		/// </code>
+		/// </remarks>
 #else
 		/// <summary>
-		/// Configures the <see cref="ILoggerRepository"/> using the specified configuration 
+		/// Configures the <see cref="ILoggerRepository"/> using the specified configuration
 		/// file.
 		/// </summary>
 		/// <param name="repository">The repository to configure.</param>
@@ -480,16 +480,16 @@
 		/// the configuration data.
 		/// </para>
 		/// <example>
-		/// The following example configures log4net using a configuration file, of which the 
+		/// The following example configures log4net using a configuration file, of which the
 		/// location is stored in the application's configuration file :
 		/// </example>
 		/// <code lang="C#">
 		/// using log4net.Config;
 		/// using System.IO;
 		/// using System.Configuration;
-		/// 
+		///
 		/// ...
-		/// 
+		///
 		/// XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
 		/// </code>
 		/// <para>
@@ -504,20 +504,20 @@
 		/// </code>
 		/// </remarks>
 #endif
-        static public ICollection Configure(ILoggerRepository repository, FileInfo configFile)
-        {
-            ArrayList configurationMessages = new ArrayList();
+		static public ICollection Configure(ILoggerRepository repository, FileInfo configFile)
+		{
+			ArrayList configurationMessages = new ArrayList();
 
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-            {
-                InternalConfigure(repository, configFile);
-            }
+			using (new LogLog.LogReceivedAdapter(configurationMessages))
+			{
+				InternalConfigure(repository, configFile);
+			}
 
-            repository.ConfigurationMessages = configurationMessages;
+			repository.ConfigurationMessages = configurationMessages;
 
-            return configurationMessages;
-        }
-	    
+			return configurationMessages;
+		}
+
 		static private void InternalConfigure(ILoggerRepository repository, FileInfo configFile)
 		{
 			LogLog.Debug(declaringType, "configuring repository [" + repository.Name + "] using file [" + configFile + "]");
@@ -534,7 +534,7 @@
 				{
 					// Open the file for reading
 					FileStream fs = null;
-					
+
 					// Try hard to open the file
 					for(int retry = 5; --retry >= 0; )
 					{
@@ -577,36 +577,36 @@
 			}
 		}
 
-        /// <summary>
-        /// Configures the <see cref="ILoggerRepository"/> using the specified configuration 
-        /// URI.
-        /// </summary>
-        /// <param name="repository">The repository to configure.</param>
-        /// <param name="configUri">A URI to load the XML configuration from.</param>
-        /// <remarks>
-        /// <para>
-        /// The configuration data must be valid XML. It must contain
-        /// at least one element called <c>log4net</c> that holds
-        /// the configuration data.
-        /// </para>
-        /// <para>
-        /// The <see cref="System.Net.WebRequest"/> must support the URI scheme specified.
-        /// </para>
-        /// </remarks>
-        static public ICollection Configure(ILoggerRepository repository, Uri configUri)
-        {
-            ArrayList configurationMessages = new ArrayList();
+		/// <summary>
+		/// Configures the <see cref="ILoggerRepository"/> using the specified configuration
+		/// URI.
+		/// </summary>
+		/// <param name="repository">The repository to configure.</param>
+		/// <param name="configUri">A URI to load the XML configuration from.</param>
+		/// <remarks>
+		/// <para>
+		/// The configuration data must be valid XML. It must contain
+		/// at least one element called <c>log4net</c> that holds
+		/// the configuration data.
+		/// </para>
+		/// <para>
+		/// The <see cref="System.Net.WebRequest"/> must support the URI scheme specified.
+		/// </para>
+		/// </remarks>
+		static public ICollection Configure(ILoggerRepository repository, Uri configUri)
+		{
+			ArrayList configurationMessages = new ArrayList();
 
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-            {
-                InternalConfigure(repository, configUri);
-            }
+			using (new LogLog.LogReceivedAdapter(configurationMessages))
+			{
+				InternalConfigure(repository, configUri);
+			}
 
-            repository.ConfigurationMessages = configurationMessages;
+			repository.ConfigurationMessages = configurationMessages;
 
-            return configurationMessages;
-        }
-	   
+			return configurationMessages;
+		}
+
 		static private void InternalConfigure(ILoggerRepository repository, Uri configUri)
 		{
 			LogLog.Debug(declaringType, "configuring repository [" + repository.Name + "] using URI ["+configUri+"]");
@@ -681,36 +681,36 @@
 			}
 		}
 
-        /// <summary>
-        /// Configures the <see cref="ILoggerRepository"/> using the specified configuration 
-        /// file.
-        /// </summary>
-        /// <param name="repository">The repository to configure.</param>
-        /// <param name="configStream">The stream to load the XML configuration from.</param>
-        /// <remarks>
-        /// <para>
-        /// The configuration data must be valid XML. It must contain
-        /// at least one element called <c>log4net</c> that holds
-        /// the configuration data.
-        /// </para>
-        /// <para>
-        /// Note that this method will NOT close the stream parameter.
-        /// </para>
-        /// </remarks>
-        static public ICollection Configure(ILoggerRepository repository, Stream configStream)
-        {
-            ArrayList configurationMessages = new ArrayList();
+		/// <summary>
+		/// Configures the <see cref="ILoggerRepository"/> using the specified configuration
+		/// file.
+		/// </summary>
+		/// <param name="repository">The repository to configure.</param>
+		/// <param name="configStream">The stream to load the XML configuration from.</param>
+		/// <remarks>
+		/// <para>
+		/// The configuration data must be valid XML. It must contain
+		/// at least one element called <c>log4net</c> that holds
+		/// the configuration data.
+		/// </para>
+		/// <para>
+		/// Note that this method will NOT close the stream parameter.
+		/// </para>
+		/// </remarks>
+		static public ICollection Configure(ILoggerRepository repository, Stream configStream)
+		{
+			ArrayList configurationMessages = new ArrayList();
 
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-            {
-                InternalConfigure(repository, configStream);
-            }
+			using (new LogLog.LogReceivedAdapter(configurationMessages))
+			{
+				InternalConfigure(repository, configStream);
+			}
 
-            repository.ConfigurationMessages = configurationMessages;
+			repository.ConfigurationMessages = configurationMessages;
 
-            return configurationMessages;
-        }
-	  
+			return configurationMessages;
+		}
+
 		static private void InternalConfigure(ILoggerRepository repository, Stream configStream)
 		{
 			LogLog.Debug(declaringType, "configuring repository [" + repository.Name + "] using stream");
@@ -731,8 +731,8 @@
 #elif NET_2_0 || NETSTANDARD1_3
 					// Allow the DTD to specify entity includes
 					XmlReaderSettings settings = new XmlReaderSettings();
-                                        // .NET 4.0 warning CS0618: 'System.Xml.XmlReaderSettings.ProhibitDtd'
-                                        // is obsolete: 'Use XmlReaderSettings.DtdProcessing property instead.'
+										// .NET 4.0 warning CS0618: 'System.Xml.XmlReaderSettings.ProhibitDtd'
+										// is obsolete: 'Use XmlReaderSettings.DtdProcessing property instead.'
 #if NETSTANDARD1_3 // TODO DtdProcessing.Parse not yet available (https://github.com/dotnet/corefx/issues/4376)
 					settings.DtdProcessing = DtdProcessing.Ignore;
 #elif !NET_4_0 && !MONO_4_0
@@ -752,7 +752,7 @@
 					xmlReader.ValidationType = ValidationType.None;
 					xmlReader.EntityHandling = EntityHandling.ExpandEntities;
 #endif
-					
+
 					// load the data into the document
 					doc.Load(xmlReader);
 				}
@@ -793,7 +793,7 @@
 #if (!NETCF && !SSCLI)
 #if !NETSTANDARD1_3 // Excluded because GetCallingAssembly() is not available in CoreFX (https://github.com/dotnet/corefx/issues/2221).
 		/// <summary>
-		/// Configures log4net using the file specified, monitors the file for changes 
+		/// Configures log4net using the file specified, monitors the file for changes
 		/// and reloads the configuration if a change is detected.
 		/// </summary>
 		/// <param name="configFile">The XML file to load the configuration from.</param>
@@ -815,58 +815,58 @@
 		/// <seealso cref="M:Configure(FileInfo)"/>
 		static public ICollection ConfigureAndWatch(FileInfo configFile)
 		{
-            ArrayList configurationMessages = new ArrayList();
+			ArrayList configurationMessages = new ArrayList();
 
-            ILoggerRepository repository = LogManager.GetRepository(Assembly.GetCallingAssembly());
+			ILoggerRepository repository = LogManager.GetRepository(Assembly.GetCallingAssembly());
 
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-            {
-                InternalConfigureAndWatch(repository, configFile);
-            }
+			using (new LogLog.LogReceivedAdapter(configurationMessages))
+			{
+				InternalConfigureAndWatch(repository, configFile);
+			}
 
-            repository.ConfigurationMessages = configurationMessages;
+			repository.ConfigurationMessages = configurationMessages;
 
-            return configurationMessages;
+			return configurationMessages;
 		}
 #endif // !NETSTANDARD1_3
 
-        /// <summary>
-        /// Configures the <see cref="ILoggerRepository"/> using the file specified, 
-        /// monitors the file for changes and reloads the configuration if a change 
-        /// is detected.
-        /// </summary>
-        /// <param name="repository">The repository to configure.</param>
-        /// <param name="configFile">The XML file to load the configuration from.</param>
-        /// <remarks>
-        /// <para>
-        /// The configuration file must be valid XML. It must contain
-        /// at least one element called <c>log4net</c> that holds
-        /// the configuration data.
-        /// </para>
-        /// <para>
-        /// The configuration file will be monitored using a <see cref="FileSystemWatcher"/>
-        /// and depends on the behavior of that class.
-        /// </para>
-        /// <para>
-        /// For more information on how to configure log4net using
-        /// a separate configuration file, see <see cref="M:Configure(FileInfo)"/>.
-        /// </para>
-        /// </remarks>
-        /// <seealso cref="M:Configure(FileInfo)"/>
-        static public ICollection ConfigureAndWatch(ILoggerRepository repository, FileInfo configFile)
-        {
-            ArrayList configurationMessages = new ArrayList();
+		/// <summary>
+		/// Configures the <see cref="ILoggerRepository"/> using the file specified,
+		/// monitors the file for changes and reloads the configuration if a change
+		/// is detected.
+		/// </summary>
+		/// <param name="repository">The repository to configure.</param>
+		/// <param name="configFile">The XML file to load the configuration from.</param>
+		/// <remarks>
+		/// <para>
+		/// The configuration file must be valid XML. It must contain
+		/// at least one element called <c>log4net</c> that holds
+		/// the configuration data.
+		/// </para>
+		/// <para>
+		/// The configuration file will be monitored using a <see cref="FileSystemWatcher"/>
+		/// and depends on the behavior of that class.
+		/// </para>
+		/// <para>
+		/// For more information on how to configure log4net using
+		/// a separate configuration file, see <see cref="M:Configure(FileInfo)"/>.
+		/// </para>
+		/// </remarks>
+		/// <seealso cref="M:Configure(FileInfo)"/>
+		static public ICollection ConfigureAndWatch(ILoggerRepository repository, FileInfo configFile)
+		{
+			ArrayList configurationMessages = new ArrayList();
 
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-            {
-                InternalConfigureAndWatch(repository, configFile);
-            }
+			using (new LogLog.LogReceivedAdapter(configurationMessages))
+			{
+				InternalConfigureAndWatch(repository, configFile);
+			}
 
-            repository.ConfigurationMessages = configurationMessages;
+			repository.ConfigurationMessages = configurationMessages;
 
-            return configurationMessages;
-        }
-	   
+			return configurationMessages;
+		}
+
 		static private void InternalConfigureAndWatch(ILoggerRepository repository, FileInfo configFile)
 		{
 			LogLog.Debug(declaringType, "configuring repository [" + repository.Name + "] using file [" + configFile + "] watching for file updates");
@@ -882,23 +882,23 @@
 
 				try
 				{
-                    lock (m_repositoryName2ConfigAndWatchHandler)
-                    {
-                        // support multiple repositories each having their own watcher
-                        ConfigureAndWatchHandler handler =
+					lock (m_repositoryName2ConfigAndWatchHandler)
+					{
+						// support multiple repositories each having their own watcher
+						ConfigureAndWatchHandler handler =
 							(ConfigureAndWatchHandler)m_repositoryName2ConfigAndWatchHandler[configFile.FullName];
 
-                        if (handler != null)
-                        {
+						if (handler != null)
+						{
 							m_repositoryName2ConfigAndWatchHandler.Remove(configFile.FullName);
-                            handler.Dispose();
-                        }
+							handler.Dispose();
+						}
 
-                        // Create and start a watch handler that will reload the
-                        // configuration whenever the config file is modified.
-                        handler = new ConfigureAndWatchHandler(repository, configFile);
+						// Create and start a watch handler that will reload the
+						// configuration whenever the config file is modified.
+						handler = new ConfigureAndWatchHandler(repository, configFile);
 						m_repositoryName2ConfigAndWatchHandler[configFile.FullName] = handler;
-                    }
+					}
 				}
 				catch(Exception ex)
 				{
@@ -952,15 +952,15 @@
 			/// </summary>
 			private const int TimeoutMillis = 500;
 
-            /// <summary>
-            /// Watches file for changes. This object should be disposed when no longer
-            /// needed to free system handles on the watched resources.
-            /// </summary>
-            private FileSystemWatcher m_watcher;
+			/// <summary>
+			/// Watches file for changes. This object should be disposed when no longer
+			/// needed to free system handles on the watched resources.
+			/// </summary>
+			private FileSystemWatcher m_watcher;
 
 			/// <summary>
 			/// Initializes a new instance of the <see cref="ConfigureAndWatchHandler" /> class to
-            /// watch a specified config file used to configure a repository.
+			/// watch a specified config file used to configure a repository.
 			/// </summary>
 			/// <param name="repository">The repository to configure.</param>
 			/// <param name="configFile">The configuration file to watch.</param>
@@ -970,9 +970,9 @@
 			/// </para>
 			/// </remarks>
 #if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
-            [System.Security.SecuritySafeCritical]
+			[System.Security.SecuritySafeCritical]
 #endif
-            public ConfigureAndWatchHandler(ILoggerRepository repository, FileInfo configFile)
+			public ConfigureAndWatchHandler(ILoggerRepository repository, FileInfo configFile)
 			{
 				m_repository = repository;
 				m_configFile = configFile;
@@ -996,7 +996,7 @@
 				m_watcher.EnableRaisingEvents = true;
 
 				// Create the timer that will be used to deliver events. Set as disabled
-                m_timer = new Timer(new TimerCallback(OnWatchedFileChange), null, Timeout.Infinite, Timeout.Infinite);
+				m_timer = new Timer(new TimerCallback(OnWatchedFileChange), null, Timeout.Infinite, Timeout.Infinite);
 			}
 
 			/// <summary>
@@ -1046,18 +1046,18 @@
 				XmlConfigurator.InternalConfigure(m_repository, m_configFile);
 			}
 
-            /// <summary>
-            /// Release the handles held by the watcher and timer.
-            /// </summary>
+			/// <summary>
+			/// Release the handles held by the watcher and timer.
+			/// </summary>
 #if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
-            [System.Security.SecuritySafeCritical]
+			[System.Security.SecuritySafeCritical]
 #endif
-            public void Dispose()
-            {
-                m_watcher.EnableRaisingEvents = false;
-                m_watcher.Dispose();
-                m_timer.Dispose();
-            }
+			public void Dispose()
+			{
+				m_watcher.EnableRaisingEvents = false;
+				m_watcher.Dispose();
+				m_timer.Dispose();
+			}
 		}
 #endif
 
@@ -1076,11 +1076,11 @@
 		/// supplied as <paramref name="element"/>.
 		/// </para>
 		/// <para>
-		/// This method is ultimately called by one of the Configure methods 
+		/// This method is ultimately called by one of the Configure methods
 		/// to load the configuration from an <see cref="XmlElement"/>.
 		/// </para>
 		/// </remarks>
-		static private void InternalConfigureFromXml(ILoggerRepository repository, XmlElement element) 
+		static private void InternalConfigureFromXml(ILoggerRepository repository, XmlElement element)
 		{
 			if (element == null)
 			{
@@ -1109,31 +1109,31 @@
 
 					// Pass the configurator the config element
 					configurableRepository.Configure(newElement);
-				}			
+				}
 			}
 		}
 
 		#endregion Private Static Methods
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-        /// <summary>
-        /// Maps repository names to ConfigAndWatchHandler instances to allow a particular
-        /// ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is 
-        /// reconfigured.
-        /// </summary>
-        private readonly static Hashtable m_repositoryName2ConfigAndWatchHandler = new Hashtable();
+		/// <summary>
+		/// Maps repository names to ConfigAndWatchHandler instances to allow a particular
+		/// ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is
+		/// reconfigured.
+		/// </summary>
+		private readonly static Hashtable m_repositoryName2ConfigAndWatchHandler = new Hashtable();
 
-	    /// <summary>
-	    /// The fully qualified type of the XmlConfigurator class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(XmlConfigurator);
+		/// <summary>
+		/// The fully qualified type of the XmlConfigurator class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(XmlConfigurator);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
 
diff --git a/src/Config/XmlConfiguratorAttribute.cs b/src/Config/XmlConfiguratorAttribute.cs
index 6c3ea3e..bafa024 100644
--- a/src/Config/XmlConfiguratorAttribute.cs
+++ b/src/Config/XmlConfiguratorAttribute.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -54,7 +54,7 @@
 	/// The <see cref="ConfigFileExtension"/> property is used as a postfix to the assembly file name.
 	/// The config file must be located in the  application's base directory; <see cref="AppDomain.BaseDirectory"/>.
 	/// For example in a console application setting the <see cref="ConfigFileExtension"/> to
-	/// <c>config</c> has the same effect as not specifying the <see cref="ConfigFile"/> or 
+	/// <c>config</c> has the same effect as not specifying the <see cref="ConfigFile"/> or
 	/// <see cref="ConfigFileExtension"/> properties.
 	/// </para>
 	/// <para>
@@ -64,13 +64,13 @@
 	/// <note>
 	/// <para>
 	/// Log4net will only look for assembly level configuration attributes once.
-	/// When using the log4net assembly level attributes to control the configuration 
-	/// of log4net you must ensure that the first call to any of the 
+	/// When using the log4net assembly level attributes to control the configuration
+	/// of log4net you must ensure that the first call to any of the
 	/// <see cref="log4net.Core.LoggerManager"/> methods is made from the assembly with the configuration
-	/// attributes. 
+	/// attributes.
 	/// </para>
 	/// <para>
-	/// If you cannot guarantee the order in which log4net calls will be made from 
+	/// If you cannot guarantee the order in which log4net calls will be made from
 	/// different assemblies you must use programmatic configuration instead, i.e.
 	/// call the <see cref="M:XmlConfigurator.Configure()"/> method directly.
 	/// </para>
@@ -84,7 +84,7 @@
 	{
 		//
 		// Class is not sealed because DOMConfiguratorAttribute extends it while it is obsoleted
-		// 
+		//
 
 		/// <summary>
 		/// Default constructor
@@ -131,7 +131,7 @@
 		/// <remarks>
 		/// <para>
 		/// If specified this is the extension for the configuration file.
-		/// The path to the config file is built by using the <b>application 
+		/// The path to the config file is built by using the <b>application
 		/// base</b> directory (<see cref="AppDomain.BaseDirectory"/>),
 		/// the <b>assembly file name</b> and the config file extension.
 		/// </para>
@@ -159,7 +159,7 @@
 		/// <remarks>
 		/// <para>
 		/// If this flag is specified and set to <c>true</c> then the framework
-		/// will watch the configuration file and will reload the config each time 
+		/// will watch the configuration file and will reload the config each time
 		/// the file is modified.
 		/// </para>
 		/// <para>
@@ -195,35 +195,35 @@
 		/// configure it.
 		/// </para>
 		/// </remarks>
-        /// <exception cref="ArgumentOutOfRangeException">The <paramref name="targetRepository" /> does not extend <see cref="Hierarchy"/>.</exception>
+		/// <exception cref="ArgumentOutOfRangeException">The <paramref name="targetRepository" /> does not extend <see cref="Hierarchy"/>.</exception>
 		override public void Configure(Assembly sourceAssembly, ILoggerRepository targetRepository)
 		{
-            IList configurationMessages = new ArrayList();
+			IList configurationMessages = new ArrayList();
 
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-            {
-                string applicationBaseDirectory = null;
-                try
-                {
-                    applicationBaseDirectory = SystemInfo.ApplicationBaseDirectory;
-                }
-                catch
-                {
-                    // Ignore this exception because it is only thrown when ApplicationBaseDirectory is a file
-                    // and the application does not have PathDiscovery permission
-                }
+			using (new LogLog.LogReceivedAdapter(configurationMessages))
+			{
+				string applicationBaseDirectory = null;
+				try
+				{
+					applicationBaseDirectory = SystemInfo.ApplicationBaseDirectory;
+				}
+				catch
+				{
+					// Ignore this exception because it is only thrown when ApplicationBaseDirectory is a file
+					// and the application does not have PathDiscovery permission
+				}
 
-                if (applicationBaseDirectory == null || (new Uri(applicationBaseDirectory)).IsFile)
-                {
-                    ConfigureFromFile(sourceAssembly, targetRepository);
-                }
-                else
-                {
-                    ConfigureFromUri(sourceAssembly, targetRepository);
-                }
-            }
+				if (applicationBaseDirectory == null || (new Uri(applicationBaseDirectory)).IsFile)
+				{
+					ConfigureFromFile(sourceAssembly, targetRepository);
+				}
+				else
+				{
+					ConfigureFromUri(sourceAssembly, targetRepository);
+				}
+			}
 
-            targetRepository.ConfigurationMessages = configurationMessages;
+			targetRepository.ConfigurationMessages = configurationMessages;
 		}
 
 		#endregion
@@ -237,7 +237,7 @@
 		{
 			// Work out the full path to the config file
 			string fullPath2ConfigFile = null;
-			
+
 			// Select the config file
 			if (m_configFile == null || m_configFile.Length == 0)
 			{
@@ -341,7 +341,7 @@
 		{
 			// Work out the full path to the config file
 			Uri fullPath2ConfigFile = null;
-			
+
 			// Select the config file
 			if (m_configFile == null || m_configFile.Length == 0)
 			{
@@ -451,18 +451,18 @@
 
 		#endregion Private Instance Fields
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the XmlConfiguratorAttribute class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(XmlConfiguratorAttribute);
+		/// <summary>
+		/// The fully qualified type of the XmlConfiguratorAttribute class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(XmlConfiguratorAttribute);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
 
diff --git a/src/Core/CompactRepositorySelector.cs b/src/Core/CompactRepositorySelector.cs
index dd46f6d..baf1d0c 100644
--- a/src/Core/CompactRepositorySelector.cs
+++ b/src/Core/CompactRepositorySelector.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -103,10 +103,10 @@
 		/// <remarks>
 		/// <para>
 		/// The <paramref name="assembly"/> argument is not used. This selector does not create a
-		/// separate repository for each assembly. 
+		/// separate repository for each assembly.
 		/// </para>
 		/// <para>
-		/// As a named repository is not specified the default repository is 
+		/// As a named repository is not specified the default repository is
 		/// returned. The default repository is named <c>log4net-default-repository</c>.
 		/// </para>
 		/// </remarks>
@@ -122,8 +122,8 @@
 		/// <returns>The named <see cref="ILoggerRepository"/></returns>
 		/// <remarks>
 		/// <para>
-		/// Get the named <see cref="ILoggerRepository"/>. The default 
-		/// repository is <c>log4net-default-repository</c>. Other repositories 
+		/// Get the named <see cref="ILoggerRepository"/>. The default
+		/// repository is <c>log4net-default-repository</c>. Other repositories
 		/// must be created using the <see cref="M:CreateRepository(string, Type)"/>.
 		/// If the named repository does not exist an exception is thrown.
 		/// </para>
@@ -150,7 +150,7 @@
 		}
 
 		/// <summary>
-		/// Create a new repository for the assembly specified 
+		/// Create a new repository for the assembly specified
 		/// </summary>
 		/// <param name="assembly">not used</param>
 		/// <param name="repositoryType">the type of repository to create, must implement <see cref="ILoggerRepository"/></param>
@@ -158,14 +158,14 @@
 		/// <remarks>
 		/// <para>
 		/// The <paramref name="assembly"/> argument is not used. This selector does not create a
-		/// separate repository for each assembly. 
+		/// separate repository for each assembly.
 		/// </para>
 		/// <para>
 		/// If the <paramref name="repositoryType"/> is <c>null</c> then the
 		/// default repository type specified to the constructor is used.
 		/// </para>
 		/// <para>
-		/// As a named repository is not specified the default repository is 
+		/// As a named repository is not specified the default repository is
 		/// returned. The default repository is named <c>log4net-default-repository</c>.
 		/// </para>
 		/// </remarks>
@@ -190,7 +190,7 @@
 				}
 
 				return rep;
-			}		
+			}
 		}
 
 		/// <summary>
@@ -210,7 +210,7 @@
 		/// If the named repository already exists an exception will be thrown.
 		/// </para>
 		/// <para>
-		/// If <paramref name="repositoryType"/> is <c>null</c> then the default 
+		/// If <paramref name="repositoryType"/> is <c>null</c> then the default
 		/// repository type specified to the constructor is used.
 		/// </para>
 		/// </remarks>
@@ -268,7 +268,7 @@
 		/// <remarks>
 		/// <para>
 		/// Test if a named repository exists. Use <see cref="M:CreateRepository(string, Type)"/>
-		/// to create a new repository and <see cref="M:GetRepository(string)"/> to retrieve 
+		/// to create a new repository and <see cref="M:GetRepository(string)"/> to retrieve
 		/// a repository.
 		/// </para>
 		/// </remarks>
@@ -302,18 +302,18 @@
 
 		#endregion
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the CompactRepositorySelector class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(CompactRepositorySelector);
+		/// <summary>
+		/// The fully qualified type of the CompactRepositorySelector class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(CompactRepositorySelector);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 
 		/// <summary>
 		/// Event to notify that a logger repository has been created.
diff --git a/src/Core/DefaultRepositorySelector.cs b/src/Core/DefaultRepositorySelector.cs
index 970f296..de75099 100644
--- a/src/Core/DefaultRepositorySelector.cs
+++ b/src/Core/DefaultRepositorySelector.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -66,7 +66,7 @@
 		/// holds the newly created <see cref="ILoggerRepository"/>.
 		/// </para>
 		/// </remarks>
-		public event LoggerRepositoryCreationEventHandler LoggerRepositoryCreatedEvent 
+		public event LoggerRepositoryCreationEventHandler LoggerRepositoryCreatedEvent
 		{
 			add { m_loggerRepositoryCreatedEvent += value; }
 			remove { m_loggerRepositoryCreatedEvent -= value; }
@@ -117,17 +117,17 @@
 		/// <param name="repositoryAssembly">The assembly use to lookup the <see cref="ILoggerRepository"/>.</param>
 		/// <remarks>
 		/// <para>
-		/// The type of the <see cref="ILoggerRepository"/> created and the repository 
-		/// to create can be overridden by specifying the <see cref="log4net.Config.RepositoryAttribute"/> 
+		/// The type of the <see cref="ILoggerRepository"/> created and the repository
+		/// to create can be overridden by specifying the <see cref="log4net.Config.RepositoryAttribute"/>
 		/// attribute on the <paramref name="repositoryAssembly"/>.
 		/// </para>
 		/// <para>
-		/// The default values are to use the <see cref="log4net.Repository.Hierarchy.Hierarchy"/> 
+		/// The default values are to use the <see cref="log4net.Repository.Hierarchy.Hierarchy"/>
 		/// implementation of the <see cref="ILoggerRepository"/> interface and to use the
 		/// <see cref="AssemblyName.Name"/> as the name of the repository.
 		/// </para>
 		/// <para>
-		/// The <see cref="ILoggerRepository"/> created will be automatically configured using 
+		/// The <see cref="ILoggerRepository"/> created will be automatically configured using
 		/// any <see cref="log4net.Config.ConfiguratorAttribute"/> attributes defined on
 		/// the <paramref name="repositoryAssembly"/>.
 		/// </para>
@@ -151,7 +151,7 @@
 		/// <remarks>
 		/// <para>
 		/// Returns the named repository. If <paramref name="repositoryName"/> is <c>null</c>
-		/// a <see cref="ArgumentNullException"/> is thrown. If the repository 
+		/// a <see cref="ArgumentNullException"/> is thrown. If the repository
 		/// does not exist a <see cref="LogException"/> is thrown.
 		/// </para>
 		/// <para>
@@ -180,7 +180,7 @@
 		}
 
 		/// <summary>
-		/// Create a new repository for the assembly specified 
+		/// Create a new repository for the assembly specified
 		/// </summary>
 		/// <param name="repositoryAssembly">the assembly to use to create the repository to associate with the <see cref="ILoggerRepository"/>.</param>
 		/// <param name="repositoryType">The type of repository to create, must implement <see cref="ILoggerRepository"/>.</param>
@@ -194,23 +194,23 @@
 		/// <para>
 		/// The type of the <see cref="ILoggerRepository"/> created and
 		/// the repository to create can be overridden by specifying the
-		/// <see cref="log4net.Config.RepositoryAttribute"/> attribute on the 
-		/// <paramref name="repositoryAssembly"/>.  The default values are to use the 
-		/// <paramref name="repositoryType"/> implementation of the 
+		/// <see cref="log4net.Config.RepositoryAttribute"/> attribute on the
+		/// <paramref name="repositoryAssembly"/>.  The default values are to use the
+		/// <paramref name="repositoryType"/> implementation of the
 		/// <see cref="ILoggerRepository"/> interface and to use the
 		/// <see cref="AssemblyName.Name"/> as the name of the repository.
 		/// </para>
 		/// <para>
 		/// The <see cref="ILoggerRepository"/> created will be automatically
-		/// configured using any <see cref="log4net.Config.ConfiguratorAttribute"/> 
+		/// configured using any <see cref="log4net.Config.ConfiguratorAttribute"/>
 		/// attributes defined on the <paramref name="repositoryAssembly"/>.
 		/// </para>
 		/// <para>
 		/// If a repository for the <paramref name="repositoryAssembly"/> already exists
-		/// that repository will be returned. An error will not be raised and that 
+		/// that repository will be returned. An error will not be raised and that
 		/// repository may be of a different type to that specified in <paramref name="repositoryType"/>.
 		/// Also the <see cref="log4net.Config.RepositoryAttribute"/> attribute on the
-		/// assembly may be used to override the repository type specified in 
+		/// assembly may be used to override the repository type specified in
 		/// <paramref name="repositoryType"/>.
 		/// </para>
 		/// </remarks>
@@ -237,23 +237,23 @@
 		/// <para>
 		/// The type of the <see cref="ILoggerRepository"/> created and
 		/// the repository to create can be overridden by specifying the
-		/// <see cref="log4net.Config.RepositoryAttribute"/> attribute on the 
-		/// <paramref name="repositoryAssembly"/>.  The default values are to use the 
-		/// <paramref name="repositoryType"/> implementation of the 
+		/// <see cref="log4net.Config.RepositoryAttribute"/> attribute on the
+		/// <paramref name="repositoryAssembly"/>.  The default values are to use the
+		/// <paramref name="repositoryType"/> implementation of the
 		/// <see cref="ILoggerRepository"/> interface and to use the
 		/// <see cref="AssemblyName.Name"/> as the name of the repository.
 		/// </para>
 		/// <para>
 		/// The <see cref="ILoggerRepository"/> created will be automatically
-		/// configured using any <see cref="log4net.Config.ConfiguratorAttribute"/> 
+		/// configured using any <see cref="log4net.Config.ConfiguratorAttribute"/>
 		/// attributes defined on the <paramref name="repositoryAssembly"/>.
 		/// </para>
 		/// <para>
 		/// If a repository for the <paramref name="repositoryAssembly"/> already exists
-		/// that repository will be returned. An error will not be raised and that 
+		/// that repository will be returned. An error will not be raised and that
 		/// repository may be of a different type to that specified in <paramref name="repositoryType"/>.
 		/// Also the <see cref="log4net.Config.RepositoryAttribute"/> attribute on the
-		/// assembly may be used to override the repository type specified in 
+		/// assembly may be used to override the repository type specified in
 		/// <paramref name="repositoryType"/>.
 		/// </para>
 		/// </remarks>
@@ -438,7 +438,7 @@
 		/// <remarks>
 		/// <para>
 		/// Test if a named repository exists. Use <see cref="M:CreateRepository(string, Type)"/>
-		/// to create a new repository and <see cref="M:GetRepository(string)"/> to retrieve 
+		/// to create a new repository and <see cref="M:GetRepository(string)"/> to retrieve
 		/// a repository.
 		/// </para>
 		/// </remarks>
@@ -481,11 +481,11 @@
 		/// <param name="repositoryTarget">The repository that the repository is aliased to.</param>
 		/// <remarks>
 		/// <para>
-		/// The repository specified will be aliased to the repository when created. 
+		/// The repository specified will be aliased to the repository when created.
 		/// The repository must not already exist.
 		/// </para>
 		/// <para>
-		/// When the repository is created it must utilize the same repository type as 
+		/// When the repository is created it must utilize the same repository type as
 		/// the repository it is aliased to, otherwise the aliasing will fail.
 		/// </para>
 		/// </remarks>
@@ -494,40 +494,40 @@
 		///	<para>-or-</para>
 		///	<para><paramref name="repositoryTarget" /> is <see langword="null" />.</para>
 		/// </exception>
-		public void AliasRepository(string repositoryAlias, ILoggerRepository repositoryTarget) 
+		public void AliasRepository(string repositoryAlias, ILoggerRepository repositoryTarget)
 		{
-			if (repositoryAlias == null) 
+			if (repositoryAlias == null)
 			{
 				throw new ArgumentNullException("repositoryAlias");
 			}
-			if (repositoryTarget == null) 
+			if (repositoryTarget == null)
 			{
 				throw new ArgumentNullException("repositoryTarget");
 			}
 
-			lock(this) 
+			lock(this)
 			{
 				// Check if the alias is already set
-				if (m_alias2repositoryMap.Contains(repositoryAlias)) 
+				if (m_alias2repositoryMap.Contains(repositoryAlias))
 				{
 					// Check if this is a duplicate of the current alias
-					if (repositoryTarget != ((ILoggerRepository)m_alias2repositoryMap[repositoryAlias])) 
+					if (repositoryTarget != ((ILoggerRepository)m_alias2repositoryMap[repositoryAlias]))
 					{
 						// Cannot redefine existing alias
 						throw new InvalidOperationException("Repository [" + repositoryAlias + "] is already aliased to repository [" + ((ILoggerRepository)m_alias2repositoryMap[repositoryAlias]).Name + "]. Aliases cannot be redefined.");
 					}
 				}
 					// Check if the alias is already mapped to a repository
-				else if (m_name2repositoryMap.Contains(repositoryAlias)) 
+				else if (m_name2repositoryMap.Contains(repositoryAlias))
 				{
 					// Check if this is a duplicate of the current mapping
-					if ( repositoryTarget != ((ILoggerRepository)m_name2repositoryMap[repositoryAlias]) ) 
+					if ( repositoryTarget != ((ILoggerRepository)m_name2repositoryMap[repositoryAlias]) )
 					{
 						// Cannot define alias for already mapped repository
 						throw new InvalidOperationException("Repository [" + repositoryAlias + "] already exists and cannot be aliased to repository [" + repositoryTarget.Name + "].");
 					}
 				}
-				else 
+				else
 				{
 					// Set the alias
 					m_alias2repositoryMap[repositoryAlias] = repositoryTarget;
@@ -548,10 +548,10 @@
 		/// Raises the <see cref="LoggerRepositoryCreatedEvent"/> event.
 		/// </para>
 		/// </remarks>
-		protected virtual void OnLoggerRepositoryCreatedEvent(ILoggerRepository repository) 
+		protected virtual void OnLoggerRepositoryCreatedEvent(ILoggerRepository repository)
 		{
 			LoggerRepositoryCreationEventHandler handler = m_loggerRepositoryCreatedEvent;
-			if (handler != null) 
+			if (handler != null)
 			{
 				handler(this, new LoggerRepositoryCreationEventArgs(repository));
 			}
@@ -586,7 +586,7 @@
 
 			try
 			{
-				// Look for the RepositoryAttribute on the assembly 
+				// Look for the RepositoryAttribute on the assembly
 #if NETSTANDARD1_3
 				object[] repositoryAttributes = assembly.GetCustomAttributes(typeof(log4net.Config.RepositoryAttribute)).ToArray();
 #else
@@ -709,37 +709,37 @@
 						LogLog.Warn(declaringType, "Exception getting ApplicationBaseDirectory. appSettings log4net.Config path ["+repositoryConfigFile+"] will be treated as an absolute URI", ex);
 					}
 
-                    string repositoryConfigFilePath = repositoryConfigFile;
-                    if (applicationBaseDirectory != null)
-                    {
-                        repositoryConfigFilePath = Path.Combine(applicationBaseDirectory, repositoryConfigFile);
-                    }
+					string repositoryConfigFilePath = repositoryConfigFile;
+					if (applicationBaseDirectory != null)
+					{
+						repositoryConfigFilePath = Path.Combine(applicationBaseDirectory, repositoryConfigFile);
+					}
 
-                    // Determine whether to watch the file or not based on an app setting value:
-				    bool watchRepositoryConfigFile = false;
+					// Determine whether to watch the file or not based on an app setting value:
+					bool watchRepositoryConfigFile = false;
 #if NET_2_0 || MONO_2_0 || MONO_3_5 || MONO_4_0 || NETSTANDARD1_3
-				    Boolean.TryParse(SystemInfo.GetAppSetting("log4net.Config.Watch"), out watchRepositoryConfigFile);
+					Boolean.TryParse(SystemInfo.GetAppSetting("log4net.Config.Watch"), out watchRepositoryConfigFile);
 #else
-                                    {
-                                        string watch = SystemInfo.GetAppSetting("log4net.Config.Watch");
-                                        if (watch != null && watch.Length > 0)
-                                        {
-                                            try
-                                            {
-                                                watchRepositoryConfigFile = Boolean.Parse(watch);
-                                            }
-                                            catch (FormatException)
-                                            {
-                                                // simply not a Boolean
-                                            }
-                                        }
-                                    }
+									{
+										string watch = SystemInfo.GetAppSetting("log4net.Config.Watch");
+										if (watch != null && watch.Length > 0)
+										{
+											try
+											{
+												watchRepositoryConfigFile = Boolean.Parse(watch);
+											}
+											catch (FormatException)
+											{
+												// simply not a Boolean
+											}
+										}
+									}
 #endif
 
 					if (watchRepositoryConfigFile)
 					{
- 						// As we are going to watch the config file it is required to resolve it as a 
- 						// physical file system path pass that in a FileInfo object to the Configurator
+						// As we are going to watch the config file it is required to resolve it as a
+						// physical file system path pass that in a FileInfo object to the Configurator
 						FileInfo repositoryConfigFileInfo = null;
 						try
 						{
@@ -747,27 +747,27 @@
 						}
 						catch (Exception ex)
 						{
-                            LogLog.Error(declaringType, "DefaultRepositorySelector: Exception while parsing log4net.Config file physical path [" + repositoryConfigFilePath + "]", ex);
+							LogLog.Error(declaringType, "DefaultRepositorySelector: Exception while parsing log4net.Config file physical path [" + repositoryConfigFilePath + "]", ex);
 						}
 						try
 						{
-                            LogLog.Debug(declaringType, "Loading and watching configuration for default repository from AppSettings specified Config path [" + repositoryConfigFilePath + "]");
+							LogLog.Debug(declaringType, "Loading and watching configuration for default repository from AppSettings specified Config path [" + repositoryConfigFilePath + "]");
 
-                            XmlConfigurator.ConfigureAndWatch(repository, repositoryConfigFileInfo);
+							XmlConfigurator.ConfigureAndWatch(repository, repositoryConfigFileInfo);
 						}
 						catch (Exception ex)
 						{
-                            LogLog.Error(declaringType, "DefaultRepositorySelector: Exception calling XmlConfigurator.ConfigureAndWatch method with ConfigFilePath [" + repositoryConfigFilePath + "]", ex);
+							LogLog.Error(declaringType, "DefaultRepositorySelector: Exception calling XmlConfigurator.ConfigureAndWatch method with ConfigFilePath [" + repositoryConfigFilePath + "]", ex);
 						}
 					}
 					else
 					{
-                    // As we are not going to watch the config file it is easiest to just resolve it as a 
+					// As we are not going to watch the config file it is easiest to just resolve it as a
 					// URI and pass that to the Configurator
 					Uri repositoryConfigUri = null;
 					try
 					{
-					    repositoryConfigUri = new Uri(repositoryConfigFilePath);
+						repositoryConfigUri = new Uri(repositoryConfigFilePath);
 					}
 					catch(Exception ex)
 					{
@@ -788,7 +788,7 @@
 							LogLog.Error(declaringType, "Exception calling XmlConfigurator.Configure method with ConfigUri ["+repositoryConfigUri+"]", ex);
 						}
 					}
-                    }
+					}
 				}
 			}
 		}
@@ -884,14 +884,14 @@
 
 		#region Private Static Fields
 
-        /// <summary>
-        /// The fully qualified type of the DefaultRepositorySelector class.
-        /// </summary>
-        /// <remarks>
-        /// Used by the internal logger to record the Type of the
-        /// log message.
-        /// </remarks>
-        private readonly static Type declaringType = typeof(DefaultRepositorySelector);
+		/// <summary>
+		/// The fully qualified type of the DefaultRepositorySelector class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(DefaultRepositorySelector);
 
 		private const string DefaultRepositoryName = "log4net-default-repository";
 
diff --git a/src/Core/ErrorCode.cs b/src/Core/ErrorCode.cs
index 9107a24..d8b2813 100644
--- a/src/Core/ErrorCode.cs
+++ b/src/Core/ErrorCode.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/Core/ExceptionEvaluator.cs b/src/Core/ExceptionEvaluator.cs
index 967c37e..1dee516 100644
--- a/src/Core/ExceptionEvaluator.cs
+++ b/src/Core/ExceptionEvaluator.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -31,7 +31,7 @@
 	/// <para>
 	/// This evaluator will trigger if the type of the Exception
 	/// passed to <see cref="M:IsTriggeringEvent(LoggingEvent)"/>
-	/// is equal to a Type in <see cref="ExceptionType"/>.    /// 
+	/// is equal to a Type in <see cref="ExceptionType"/>.    ///
 	/// </para>
 	/// </remarks>
 	/// <author>Drew Schaeffer</author>
@@ -95,8 +95,8 @@
 		/// Is this <paramref name="loggingEvent"/> the triggering event?
 		/// </summary>
 		/// <param name="loggingEvent">The event to check</param>
-		/// <returns>This method returns <c>true</c>, if the logging event Exception 
-		/// Type is <see cref="ExceptionType"/>. 
+		/// <returns>This method returns <c>true</c>, if the logging event Exception
+		/// Type is <see cref="ExceptionType"/>.
 		/// Otherwise it returns <c>false</c></returns>
 		/// <remarks>
 		/// <para>
diff --git a/src/Core/IAppenderAttachable.cs b/src/Core/IAppenderAttachable.cs
index 9c350c1..416fd28 100644
--- a/src/Core/IAppenderAttachable.cs
+++ b/src/Core/IAppenderAttachable.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -57,7 +57,7 @@
 		/// <para>
 		/// Gets a collection of attached appenders.
 		/// If there are no attached appenders the
-		/// implementation should return an empty 
+		/// implementation should return an empty
 		/// collection rather than <c>null</c>.
 		/// </para>
 		/// </remarks>
@@ -116,6 +116,6 @@
 		/// <see cref="IAppender.Close"/> on the appender removed.
 		/// </para>
 		/// </remarks>
-		IAppender RemoveAppender(string name);   	
+		IAppender RemoveAppender(string name);
 	}
 }
diff --git a/src/Core/IErrorHandler.cs b/src/Core/IErrorHandler.cs
index 763e518..81a1141 100644
--- a/src/Core/IErrorHandler.cs
+++ b/src/Core/IErrorHandler.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -27,7 +27,7 @@
 	/// <remarks>
 	/// <para>
 	/// Error handling is a particularly tedious to get right because by
-	/// definition errors are hard to predict and to reproduce. 
+	/// definition errors are hard to predict and to reproduce.
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
@@ -35,7 +35,7 @@
 	public interface IErrorHandler
 	{
 		/// <summary>
-		/// Handles the error and information about the error condition is passed as 
+		/// Handles the error and information about the error condition is passed as
 		/// a parameter.
 		/// </summary>
 		/// <param name="message">The message associated with the error.</param>
@@ -43,7 +43,7 @@
 		/// <param name="errorCode">The error code associated with the error.</param>
 		/// <remarks>
 		/// <para>
-		/// Handles the error and information about the error condition is passed as 
+		/// Handles the error and information about the error condition is passed as
 		/// a parameter.
 		/// </para>
 		/// </remarks>
diff --git a/src/Core/IFixingRequired.cs b/src/Core/IFixingRequired.cs
index 9f05b14..a079ca3 100644
--- a/src/Core/IFixingRequired.cs
+++ b/src/Core/IFixingRequired.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -27,14 +27,14 @@
 	/// <remarks>
 	/// <para>
 	/// Interface that indicates that the object requires fixing before it
-	/// can be taken outside the context of the appender's 
+	/// can be taken outside the context of the appender's
 	/// <see cref="log4net.Appender.IAppender.DoAppend"/> method.
 	/// </para>
 	/// <para>
-	/// When objects that implement this interface are stored 
+	/// When objects that implement this interface are stored
 	/// in the context properties maps <see cref="log4net.GlobalContext"/>
 	/// <see cref="log4net.GlobalContext.Properties"/> and <see cref="log4net.ThreadContext"/>
-	/// <see cref="log4net.ThreadContext.Properties"/> are fixed 
+	/// <see cref="log4net.ThreadContext.Properties"/> are fixed
 	/// (see <see cref="LoggingEvent.Fix"/>) the <see cref="GetFixedObject"/>
 	/// method will be called.
 	/// </para>
diff --git a/src/Core/ILogger.cs b/src/Core/ILogger.cs
index bbb152c..1f5d033 100644
--- a/src/Core/ILogger.cs
+++ b/src/Core/ILogger.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -70,9 +70,9 @@
 		/// </para>
 		/// </remarks>
 		void Log(Type callerStackBoundaryDeclaringType, Level level, object message, Exception exception);
-  
+
 		/// <summary>
-		/// This is the most generic printing method that is intended to be used 
+		/// This is the most generic printing method that is intended to be used
 		/// by wrappers.
 		/// </summary>
 		/// <param name="logEvent">The event being logged.</param>
@@ -98,7 +98,7 @@
 		bool IsEnabledFor(Level level);
 
 		/// <summary>
-		/// Gets the <see cref="ILoggerRepository"/> where this 
+		/// Gets the <see cref="ILoggerRepository"/> where this
 		/// <c>Logger</c> instance is attached to.
 		/// </summary>
 		/// <value>
@@ -106,7 +106,7 @@
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// Gets the <see cref="ILoggerRepository"/> where this 
+		/// Gets the <see cref="ILoggerRepository"/> where this
 		/// <c>Logger</c> instance is attached to.
 		/// </para>
 		/// </remarks>
diff --git a/src/Core/ILoggerWrapper.cs b/src/Core/ILoggerWrapper.cs
index 735e368..16bd92b 100644
--- a/src/Core/ILoggerWrapper.cs
+++ b/src/Core/ILoggerWrapper.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -48,7 +48,7 @@
 		/// <remarks>
 		/// <para>
 		/// The <see cref="ILogger"/> object that in implementing this
-		/// object. The <c>Logger</c> object may not 
+		/// object. The <c>Logger</c> object may not
 		/// be the same object as this object because of logger decorators.
 		/// This gets the actual underlying objects that is used to process
 		/// the log events.
diff --git a/src/Core/IOptionHandler.cs b/src/Core/IOptionHandler.cs
index cdc4682..60a8c8c 100644
--- a/src/Core/IOptionHandler.cs
+++ b/src/Core/IOptionHandler.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -31,8 +31,8 @@
 	/// related options that remain ambiguous until all are set.
 	/// </para>
 	/// <para>
-	/// If a component implements this interface then the <see cref="ActivateOptions"/> method 
-	/// must be called by the container after its all the configured properties have been set 
+	/// If a component implements this interface then the <see cref="ActivateOptions"/> method
+	/// must be called by the container after its all the configured properties have been set
 	/// and before the component can be used.
 	/// </para>
 	/// </remarks>
diff --git a/src/Core/IRepositorySelector.cs b/src/Core/IRepositorySelector.cs
index 55e393a..38f9531 100644
--- a/src/Core/IRepositorySelector.cs
+++ b/src/Core/IRepositorySelector.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -44,7 +44,7 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// A <see cref="IRepositorySelector.LoggerRepositoryCreatedEvent"/> 
+	/// A <see cref="IRepositorySelector.LoggerRepositoryCreatedEvent"/>
 	/// event is raised every time a <see cref="ILoggerRepository"/> is created.
 	/// </para>
 	/// </remarks>
@@ -93,8 +93,8 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// The <see cref="LogManager"/> uses a <see cref="IRepositorySelector"/> 
-	/// to specify the policy for selecting the correct <see cref="ILoggerRepository"/> 
+	/// The <see cref="LogManager"/> uses a <see cref="IRepositorySelector"/>
+	/// to specify the policy for selecting the correct <see cref="ILoggerRepository"/>
 	/// to return to the caller.
 	/// </para>
 	/// </remarks>
@@ -175,7 +175,7 @@
 		/// <remarks>
 		/// <para>
 		/// Test if a named repository exists. Use <see cref="M:CreateRepository(Assembly, Type)"/>
-		/// to create a new repository and <see cref="M:GetRepository(Assembly)"/> to retrieve 
+		/// to create a new repository and <see cref="M:GetRepository(Assembly)"/> to retrieve
 		/// a repository.
 		/// </para>
 		/// </remarks>
@@ -185,7 +185,7 @@
 		/// Gets an array of all currently defined repositories.
 		/// </summary>
 		/// <returns>
-		/// An array of the <see cref="ILoggerRepository"/> instances created by 
+		/// An array of the <see cref="ILoggerRepository"/> instances created by
 		/// this <see cref="IRepositorySelector"/>.</returns>
 		/// <remarks>
 		/// <para>
diff --git a/src/Core/ITriggeringEventEvaluator.cs b/src/Core/ITriggeringEventEvaluator.cs
index baa7536..9ab52eb 100644
--- a/src/Core/ITriggeringEventEvaluator.cs
+++ b/src/Core/ITriggeringEventEvaluator.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/Core/Level.cs b/src/Core/Level.cs
index 713918d..4bcb263 100644
--- a/src/Core/Level.cs
+++ b/src/Core/Level.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -30,8 +30,8 @@
 	/// Each <see cref="LoggingEvent"/> has an associated <see cref="Level"/>.
 	/// </para>
 	/// <para>
-	/// Levels have a numeric <see cref="Level.Value"/> that defines the relative 
-	/// ordering between levels. Two Levels with the same <see cref="Level.Value"/> 
+	/// Levels have a numeric <see cref="Level.Value"/> that defines the relative
+	/// ordering between levels. Two Levels with the same <see cref="Level.Value"/>
 	/// are deemed to be equivalent.
 	/// </para>
 	/// <para>
@@ -46,7 +46,7 @@
 	/// <see cref="Level.Info"/>, but this can be changed by reconfiguring the level map.
 	/// </para>
 	/// <para>
-	/// Each level has a <see cref="DisplayName"/> in addition to its <see cref="Name"/>. The 
+	/// Each level has a <see cref="DisplayName"/> in addition to its <see cref="Name"/>. The
 	/// <see cref="DisplayName"/> is the string that is written into the output log. By default
 	/// the display name is the same as the level name, but this can be used to alias levels
 	/// or to localize the log output.
@@ -99,7 +99,7 @@
 		/// the specified level name and value.
 		/// </para>
 		/// </remarks>
-		public Level(int level, string levelName, string displayName) 
+		public Level(int level, string levelName, string displayName)
 		{
 			if (levelName == null)
 			{
@@ -191,7 +191,7 @@
 		#region Override implementation of Object
 
 		/// <summary>
-		/// Returns the <see cref="string" /> representation of the current 
+		/// Returns the <see cref="string" /> representation of the current
 		/// <see cref="Level" />.
 		/// </summary>
 		/// <returns>
@@ -202,7 +202,7 @@
 		/// Returns the level <see cref="Name"/>.
 		/// </para>
 		/// </remarks>
-		override public string ToString() 
+		override public string ToString()
 		{
 			return m_levelName;
 		}
@@ -214,7 +214,7 @@
 		/// <returns><c>true</c> if the objects are equal.</returns>
 		/// <remarks>
 		/// <para>
-		/// Compares the levels of <see cref="Level" /> instances, and 
+		/// Compares the levels of <see cref="Level" /> instances, and
 		/// defers to base class if the target object is not a <see cref="Level" />
 		/// instance.
 		/// </para>
@@ -238,7 +238,7 @@
 		/// <returns>A hash code for the current <see cref="Level" />.</returns>
 		/// <remarks>
 		/// <para>
-		/// Returns a hash code suitable for use in hashing algorithms and data 
+		/// Returns a hash code suitable for use in hashing algorithms and data
 		/// structures like a hash table.
 		/// </para>
 		/// <para>
@@ -255,12 +255,12 @@
 		#region Implementation of IComparable
 
 		/// <summary>
-		/// Compares this instance to a specified object and returns an 
+		/// Compares this instance to a specified object and returns an
 		/// indication of their relative values.
 		/// </summary>
 		/// <param name="r">A <see cref="Level"/> instance or <see langword="null" /> to compare with this instance.</param>
 		/// <returns>
-		/// A 32-bit signed integer that indicates the relative order of the 
+		/// A 32-bit signed integer that indicates the relative order of the
 		/// values compared. The return value has these meanings:
 		/// <list type="table">
 		///		<listheader>
@@ -287,7 +287,7 @@
 		/// </returns>
 		/// <remarks>
 		/// <para>
-		/// <paramref name="r" /> must be an instance of <see cref="Level" /> 
+		/// <paramref name="r" /> must be an instance of <see cref="Level" />
 		/// or <see langword="null" />; otherwise, an exception is thrown.
 		/// </para>
 		/// </remarks>
@@ -307,13 +307,13 @@
 		#region Operators
 
 		/// <summary>
-		/// Returns a value indicating whether a specified <see cref="Level" /> 
+		/// Returns a value indicating whether a specified <see cref="Level" />
 		/// is greater than another specified <see cref="Level" />.
 		/// </summary>
 		/// <param name="l">A <see cref="Level" /></param>
 		/// <param name="r">A <see cref="Level" /></param>
 		/// <returns>
-		/// <c>true</c> if <paramref name="l" /> is greater than 
+		/// <c>true</c> if <paramref name="l" /> is greater than
 		/// <paramref name="r" />; otherwise, <c>false</c>.
 		/// </returns>
 		/// <remarks>
@@ -327,13 +327,13 @@
 		}
 
 		/// <summary>
-		/// Returns a value indicating whether a specified <see cref="Level" /> 
+		/// Returns a value indicating whether a specified <see cref="Level" />
 		/// is less than another specified <see cref="Level" />.
 		/// </summary>
 		/// <param name="l">A <see cref="Level" /></param>
 		/// <param name="r">A <see cref="Level" /></param>
 		/// <returns>
-		/// <c>true</c> if <paramref name="l" /> is less than 
+		/// <c>true</c> if <paramref name="l" /> is less than
 		/// <paramref name="r" />; otherwise, <c>false</c>.
 		/// </returns>
 		/// <remarks>
@@ -347,13 +347,13 @@
 		}
 
 		/// <summary>
-		/// Returns a value indicating whether a specified <see cref="Level" /> 
+		/// Returns a value indicating whether a specified <see cref="Level" />
 		/// is greater than or equal to another specified <see cref="Level" />.
 		/// </summary>
 		/// <param name="l">A <see cref="Level" /></param>
 		/// <param name="r">A <see cref="Level" /></param>
 		/// <returns>
-		/// <c>true</c> if <paramref name="l" /> is greater than or equal to 
+		/// <c>true</c> if <paramref name="l" /> is greater than or equal to
 		/// <paramref name="r" />; otherwise, <c>false</c>.
 		/// </returns>
 		/// <remarks>
@@ -367,13 +367,13 @@
 		}
 
 		/// <summary>
-		/// Returns a value indicating whether a specified <see cref="Level" /> 
+		/// Returns a value indicating whether a specified <see cref="Level" />
 		/// is less than or equal to another specified <see cref="Level" />.
 		/// </summary>
 		/// <param name="l">A <see cref="Level" /></param>
 		/// <param name="r">A <see cref="Level" /></param>
 		/// <returns>
-		/// <c>true</c> if <paramref name="l" /> is less than or equal to 
+		/// <c>true</c> if <paramref name="l" /> is less than or equal to
 		/// <paramref name="r" />; otherwise, <c>false</c>.
 		/// </returns>
 		/// <remarks>
@@ -387,13 +387,13 @@
 		}
 
 		/// <summary>
-		/// Returns a value indicating whether two specified <see cref="Level" /> 
+		/// Returns a value indicating whether two specified <see cref="Level" />
 		/// objects have the same value.
 		/// </summary>
 		/// <param name="l">A <see cref="Level" /> or <see langword="null" />.</param>
 		/// <param name="r">A <see cref="Level" /> or <see langword="null" />.</param>
 		/// <returns>
-		/// <c>true</c> if the value of <paramref name="l" /> is the same as the 
+		/// <c>true</c> if the value of <paramref name="l" /> is the same as the
 		/// value of <paramref name="r" />; otherwise, <c>false</c>.
 		/// </returns>
 		/// <remarks>
@@ -414,7 +414,7 @@
 		}
 
 		/// <summary>
-		/// Returns a value indicating whether two specified <see cref="Level" /> 
+		/// Returns a value indicating whether two specified <see cref="Level" />
 		/// objects have different values.
 		/// </summary>
 		/// <param name="l">A <see cref="Level" /> or <see langword="null" />.</param>
@@ -443,7 +443,7 @@
 		/// <param name="l">The first <see cref="Level"/> to compare.</param>
 		/// <param name="r">The second <see cref="Level"/> to compare.</param>
 		/// <returns>
-		/// A 32-bit signed integer that indicates the relative order of the 
+		/// A 32-bit signed integer that indicates the relative order of the
 		/// two values compared. The return value has these meanings:
 		/// <list type="table">
 		///		<listheader>
@@ -502,32 +502,32 @@
 		/// </summary>
 		public readonly static Level Off = new Level(int.MaxValue, "OFF");
 
-        /// <summary>
-        /// The <see cref="Emergency" /> level designates very severe error events. 
-        /// System unusable, emergencies.
-        /// </summary>
-        public readonly static Level Log4Net_Debug = new Level(120000, "log4net:DEBUG");
+		/// <summary>
+		/// The <see cref="Emergency" /> level designates very severe error events.
+		/// System unusable, emergencies.
+		/// </summary>
+		public readonly static Level Log4Net_Debug = new Level(120000, "log4net:DEBUG");
 
 		/// <summary>
-		/// The <see cref="Emergency" /> level designates very severe error events. 
+		/// The <see cref="Emergency" /> level designates very severe error events.
 		/// System unusable, emergencies.
 		/// </summary>
 		public readonly static Level Emergency = new Level(120000, "EMERGENCY");
 
 		/// <summary>
-		/// The <see cref="Fatal" /> level designates very severe error events 
+		/// The <see cref="Fatal" /> level designates very severe error events
 		/// that will presumably lead the application to abort.
 		/// </summary>
 		public readonly static Level Fatal = new Level(110000, "FATAL");
 
 		/// <summary>
-		/// The <see cref="Alert" /> level designates very severe error events. 
+		/// The <see cref="Alert" /> level designates very severe error events.
 		/// Take immediate action, alerts.
 		/// </summary>
 		public readonly static Level Alert = new Level(100000, "ALERT");
 
 		/// <summary>
-		/// The <see cref="Critical" /> level designates very severe error events. 
+		/// The <see cref="Critical" /> level designates very severe error events.
 		/// Critical condition, critical.
 		/// </summary>
 		public readonly static Level Critical = new Level(90000, "CRITICAL");
@@ -538,61 +538,61 @@
 		public readonly static Level Severe = new Level(80000, "SEVERE");
 
 		/// <summary>
-		/// The <see cref="Error" /> level designates error events that might 
+		/// The <see cref="Error" /> level designates error events that might
 		/// still allow the application to continue running.
 		/// </summary>
 		public readonly static Level Error = new Level(70000, "ERROR");
 
 		/// <summary>
-		/// The <see cref="Warn" /> level designates potentially harmful 
+		/// The <see cref="Warn" /> level designates potentially harmful
 		/// situations.
 		/// </summary>
 		public readonly static Level Warn  = new Level(60000, "WARN");
 
 		/// <summary>
-		/// The <see cref="Notice" /> level designates informational messages 
+		/// The <see cref="Notice" /> level designates informational messages
 		/// that highlight the progress of the application at the highest level.
 		/// </summary>
 		public readonly static Level Notice  = new Level(50000, "NOTICE");
 
 		/// <summary>
-		/// The <see cref="Info" /> level designates informational messages that 
+		/// The <see cref="Info" /> level designates informational messages that
 		/// highlight the progress of the application at coarse-grained level.
 		/// </summary>
 		public readonly static Level Info  = new Level(40000, "INFO");
 
 		/// <summary>
-		/// The <see cref="Debug" /> level designates fine-grained informational 
+		/// The <see cref="Debug" /> level designates fine-grained informational
 		/// events that are most useful to debug an application.
 		/// </summary>
 		public readonly static Level Debug = new Level(30000, "DEBUG");
 
 		/// <summary>
-		/// The <see cref="Fine" /> level designates fine-grained informational 
+		/// The <see cref="Fine" /> level designates fine-grained informational
 		/// events that are most useful to debug an application.
 		/// </summary>
 		public readonly static Level Fine = new Level(30000, "FINE");
 
 		/// <summary>
-		/// The <see cref="Trace" /> level designates fine-grained informational 
+		/// The <see cref="Trace" /> level designates fine-grained informational
 		/// events that are most useful to debug an application.
 		/// </summary>
 		public readonly static Level Trace = new Level(20000, "TRACE");
 
 		/// <summary>
-		/// The <see cref="Finer" /> level designates fine-grained informational 
+		/// The <see cref="Finer" /> level designates fine-grained informational
 		/// events that are most useful to debug an application.
 		/// </summary>
 		public readonly static Level Finer = new Level(20000, "FINER");
 
 		/// <summary>
-		/// The <see cref="Verbose" /> level designates fine-grained informational 
+		/// The <see cref="Verbose" /> level designates fine-grained informational
 		/// events that are most useful to debug an application.
 		/// </summary>
 		public readonly static Level Verbose = new Level(10000, "VERBOSE");
 
 		/// <summary>
-		/// The <see cref="Finest" /> level designates fine-grained informational 
+		/// The <see cref="Finest" /> level designates fine-grained informational
 		/// events that are most useful to debug an application.
 		/// </summary>
 		public readonly static Level Finest = new Level(10000, "FINEST");
diff --git a/src/Core/LevelCollection.cs b/src/Core/LevelCollection.cs
index d51bd0d..25a3b54 100644
--- a/src/Core/LevelCollection.cs
+++ b/src/Core/LevelCollection.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -47,7 +47,7 @@
 			/// Advances the enumerator to the next element in the collection.
 			/// </summary>
 			/// <returns>
-			/// <c>true</c> if the enumerator was successfully advanced to the next element; 
+			/// <c>true</c> if the enumerator was successfully advanced to the next element;
 			/// <c>false</c> if the enumerator has passed the end of the collection.
 			/// </returns>
 			/// <exception cref="InvalidOperationException">
@@ -72,7 +72,7 @@
 		private int m_version = 0;
 
 		#endregion
-	
+
 		#region Static Wrappers
 
 		/// <summary>
@@ -101,7 +101,7 @@
 		{
 			m_array = new Level[DEFAULT_CAPACITY];
 		}
-		
+
 		/// <summary>
 		/// Initializes a new instance of the <c>LevelCollection</c> class
 		/// that has the specified initial capacity.
@@ -146,12 +146,12 @@
 			m_array = new Level[col.Count];
 			AddRange(col);
 		}
-		
+
 		/// <summary>
 		/// Type visible only to our subclasses
 		/// Used to access protected constructor
 		/// </summary>
-		protected internal enum Tag 
+		protected internal enum Tag
 		{
 			/// <summary>
 			/// A value
@@ -168,7 +168,7 @@
 			m_array = null;
 		}
 		#endregion
-		
+
 		#region Operations (type-safe ICollection)
 
 		/// <summary>
@@ -201,8 +201,8 @@
 			{
 				throw new System.ArgumentException("Destination array was not long enough.");
 			}
-			
-			Array.Copy(m_array, 0, array, start, m_count); 
+
+			Array.Copy(m_array, 0, array, start, m_count);
 		}
 
 		/// <summary>
@@ -223,7 +223,7 @@
 		}
 
 		#endregion
-		
+
 		#region Operations (type-safe IList)
 
 		/// <summary>
@@ -240,13 +240,13 @@
 			get
 			{
 				ValidateIndex(index); // throws
-				return m_array[index]; 
+				return m_array[index];
 			}
 			set
 			{
 				ValidateIndex(index); // throws
-				++m_version; 
-				m_array[index] = value; 
+				++m_version;
+				m_array[index] = value;
 			}
 		}
 
@@ -267,7 +267,7 @@
 
 			return m_count++;
 		}
-		
+
 		/// <summary>
 		/// Removes all elements from the <c>LevelCollection</c>.
 		/// </summary>
@@ -277,7 +277,7 @@
 			m_array = new Level[DEFAULT_CAPACITY];
 			m_count = 0;
 		}
-		
+
 		/// <summary>
 		/// Creates a shallow copy of the <see cref="LevelCollection"/>.
 		/// </summary>
@@ -315,7 +315,7 @@
 		/// </summary>
 		/// <param name="item">The <see cref="Level"/> to locate in the <c>LevelCollection</c>.</param>
 		/// <returns>
-		/// The zero-based index of the first occurrence of <paramref name="item"/> 
+		/// The zero-based index of the first occurrence of <paramref name="item"/>
 		/// in the entire <c>LevelCollection</c>, if found; otherwise, -1.
 		///	</returns>
 		public virtual int IndexOf(Level item)
@@ -343,7 +343,7 @@
 		public virtual void Insert(int index, Level item)
 		{
 			ValidateIndex(index, true); // throws
-			
+
 			if (m_count == m_array.Length)
 			{
 				EnsureCapacity(m_count + 1);
@@ -367,13 +367,13 @@
 		/// The specified <see cref="Level"/> was not found in the <c>LevelCollection</c>.
 		/// </exception>
 		public virtual void Remove(Level item)
-		{		   
+		{
 			int i = IndexOf(item);
 			if (i < 0)
 			{
 				throw new System.ArgumentException("Cannot remove the specified item because it was not found in the specified Collection.");
 			}
-			
+
 			++m_version;
 			RemoveAt(i);
 		}
@@ -390,16 +390,16 @@
 		public virtual void RemoveAt(int index)
 		{
 			ValidateIndex(index); // throws
-			
+
 			m_count--;
 
 			if (index < m_count)
 			{
 				Array.Copy(m_array, index + 1, m_array, index, m_count - index);
 			}
-			
+
 			// We can't set the deleted entry equal to null, because it might be a value type.
-			// Instead, we'll create an empty single-element array of the right type and copy it 
+			// Instead, we'll create an empty single-element array of the right type and copy it
 			// over the entry we want to erase.
 			Level[] temp = new Level[1];
 			Array.Copy(temp, 0, m_array, m_count, 1);
@@ -427,7 +427,7 @@
 		#endregion
 
 		#region Operations (type-safe IEnumerable)
-		
+
 		/// <summary>
 		/// Returns an enumerator that can iterate through the <c>LevelCollection</c>.
 		/// </summary>
@@ -440,15 +440,15 @@
 		#endregion
 
 		#region Public helpers (just to mimic some nice features of ArrayList)
-		
+
 		/// <summary>
 		/// Gets or sets the number of elements the <c>LevelCollection</c> can contain.
 		/// </summary>
 		public virtual int Capacity
 		{
-			get 
-			{ 
-				return m_array.Length; 
+			get
+			{
+				return m_array.Length;
 			}
 			set
 			{
@@ -484,7 +484,7 @@
 			{
 				EnsureCapacity(m_count + x.Count);
 			}
-			
+
 			Array.Copy(x.m_array, 0, m_array, m_count, x.Count);
 			m_count += x.Count;
 			m_version++;
@@ -530,7 +530,7 @@
 
 			return m_count;
 		}
-		
+
 		/// <summary>
 		/// Sets the capacity to the actual number of elements.
 		/// </summary>
@@ -579,7 +579,7 @@
 		}
 
 		#endregion
-		
+
 		#region Implementation (ICollection)
 
 		void ICollection.CopyTo(Array array, int start)
@@ -646,15 +646,15 @@
 		private sealed class Enumerator : IEnumerator, ILevelCollectionEnumerator
 		{
 			#region Implementation (data)
-			
+
 			private readonly LevelCollection m_collection;
 			private int m_index;
 			private int m_version;
-			
+
 			#endregion
-		
+
 			#region Construction
-			
+
 			/// <summary>
 			/// Initializes a new instance of the <c>Enumerator</c> class.
 			/// </summary>
@@ -665,11 +665,11 @@
 				m_index = -1;
 				m_version = tc.m_version;
 			}
-			
+
 			#endregion
-	
+
 			#region Operations (type-safe IEnumerator)
-			
+
 			/// <summary>
 			/// Gets the current element in the collection.
 			/// </summary>
@@ -682,7 +682,7 @@
 			/// Advances the enumerator to the next element in the collection.
 			/// </summary>
 			/// <returns>
-			/// <c>true</c> if the enumerator was successfully advanced to the next element; 
+			/// <c>true</c> if the enumerator was successfully advanced to the next element;
 			/// <c>false</c> if the enumerator has passed the end of the collection.
 			/// </returns>
 			/// <exception cref="InvalidOperationException">
@@ -708,14 +708,14 @@
 			}
 
 			#endregion
-	
+
 			#region Implementation (IEnumerator)
-			
+
 			object IEnumerator.Current
 			{
 				get { return this.Current; }
 			}
-			
+
 			#endregion
 		}
 
@@ -802,7 +802,7 @@
 			}
 
 			public override void Remove(Level x)
-			{           
+			{
 				throw new NotSupportedException("This is a Read Only Collection and can not be modified");
 			}
 
diff --git a/src/Core/LevelEvaluator.cs b/src/Core/LevelEvaluator.cs
index 35706df..6acb51d 100644
--- a/src/Core/LevelEvaluator.cs
+++ b/src/Core/LevelEvaluator.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -35,7 +35,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	public class LevelEvaluator : ITriggeringEventEvaluator 
+	public class LevelEvaluator : ITriggeringEventEvaluator
 	{
 		/// <summary>
 		/// The threshold for triggering
@@ -110,7 +110,7 @@
 		/// </summary>
 		/// <param name="loggingEvent">The event to check</param>
 		/// <returns>This method returns <c>true</c>, if the event level
-		/// is equal or higher than the <see cref="Threshold"/>. 
+		/// is equal or higher than the <see cref="Threshold"/>.
 		/// Otherwise it returns <c>false</c></returns>
 		/// <remarks>
 		/// <para>
@@ -120,14 +120,14 @@
 		/// level.
 		/// </para>
 		/// </remarks>
-		public bool IsTriggeringEvent(LoggingEvent loggingEvent) 
+		public bool IsTriggeringEvent(LoggingEvent loggingEvent)
 		{
 			if (loggingEvent == null)
 			{
 				throw new ArgumentNullException("loggingEvent");
 			}
 
-			return (loggingEvent.Level >= m_threshold); 
+			return (loggingEvent.Level >= m_threshold);
 		}
 	}
 }
diff --git a/src/Core/LevelMap.cs b/src/Core/LevelMap.cs
index d458533..77b0f76 100644
--- a/src/Core/LevelMap.cs
+++ b/src/Core/LevelMap.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -192,7 +192,7 @@
 		/// <summary>
 		/// Lookup a named level from the map
 		/// </summary>
-		/// <param name="defaultLevel">the name of the level to lookup is taken from this level. 
+		/// <param name="defaultLevel">the name of the level to lookup is taken from this level.
 		/// If the level is not set on the map then this level is added</param>
 		/// <returns>the level in the map with the name specified</returns>
 		/// <remarks>
@@ -202,7 +202,7 @@
 		/// argument.
 		/// </para>
 		/// <para>
-		/// If no level with the specified name is found then the 
+		/// If no level with the specified name is found then the
 		/// <paramref name="defaultLevel"/> argument is added to the level map
 		/// and returned.
 		/// </para>
diff --git a/src/Core/LocationInfo.cs b/src/Core/LocationInfo.cs
index 55fd8ad..acdff8f 100644
--- a/src/Core/LocationInfo.cs
+++ b/src/Core/LocationInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -34,7 +34,7 @@
 	/// a call stack. The caller's information is then extracted from this stack.
 	/// </para>
 	/// <para>
-	/// The <c>System.Diagnostics.StackTrace</c> class is not supported on the 
+	/// The <c>System.Diagnostics.StackTrace</c> class is not supported on the
 	/// .NET Compact Framework 1.0 therefore caller location information is not
 	/// available on that framework.
 	/// </para>
@@ -42,15 +42,15 @@
 	/// The <c>System.Diagnostics.StackTrace</c> class has this to say about Release builds:
 	/// </para>
 	/// <para>
-	/// "StackTrace information will be most informative with Debug build configurations. 
-	/// By default, Debug builds include debug symbols, while Release builds do not. The 
-	/// debug symbols contain most of the file, method name, line number, and column 
-	/// information used in constructing StackFrame and StackTrace objects. StackTrace 
-	/// might not report as many method calls as expected, due to code transformations 
+	/// "StackTrace information will be most informative with Debug build configurations.
+	/// By default, Debug builds include debug symbols, while Release builds do not. The
+	/// debug symbols contain most of the file, method name, line number, and column
+	/// information used in constructing StackFrame and StackTrace objects. StackTrace
+	/// might not report as many method calls as expected, due to code transformations
 	/// that occur during optimization."
 	/// </para>
 	/// <para>
-	/// This means that in a Release build the caller information may be incomplete or may 
+	/// This means that in a Release build the caller information may be incomplete or may
 	/// not exist at all! Therefore caller location information cannot be relied upon in a Release build.
 	/// </para>
 	/// </remarks>
@@ -74,7 +74,7 @@
 		/// class based on the current thread.
 		/// </para>
 		/// </remarks>
-		public LocationInfo(Type callerStackBoundaryDeclaringType) 
+		public LocationInfo(Type callerStackBoundaryDeclaringType)
 		{
 			// Initialize all fields
 			m_className = NA;
@@ -90,7 +90,7 @@
 				{
 					StackTrace st = new StackTrace(true);
 					int frameIndex = 0;
-																				
+
 					// skip frames not from fqnOfCallingClass
 					while (frameIndex < st.FrameCount)
 					{
@@ -117,15 +117,15 @@
 					{
 						// take into account the frames we skip above
 						int adjustedFrameCount = st.FrameCount - frameIndex;
-                        ArrayList stackFramesList = new ArrayList(adjustedFrameCount);
+						ArrayList stackFramesList = new ArrayList(adjustedFrameCount);
 						m_stackFrames = new StackFrameItem[adjustedFrameCount];
-						for (int i=frameIndex; i < st.FrameCount; i++) 
+						for (int i=frameIndex; i < st.FrameCount; i++)
 						{
 							stackFramesList.Add(new StackFrameItem(st.GetFrame(i)));
 						}
-												
+
 						stackFramesList.CopyTo(m_stackFrames, 0);
-						
+
 						// now frameIndex is the first 'user' caller frame
 						StackFrame locationFrame = st.GetFrame(frameIndex);
 
@@ -151,7 +151,7 @@
 				}
 				catch(System.Security.SecurityException)
 				{
-					// This security exception will occur if the caller does not have 
+					// This security exception will occur if the caller does not have
 					// some undefined set of SecurityPermission flags.
 					LogLog.Debug(declaringType, "Security exception while trying to get caller stack frame. Error Ignored. Location Information Not Available.");
 				}
@@ -178,7 +178,7 @@
 			m_fileName = fileName;
 			m_lineNumber = lineNumber;
 			m_methodName = methodName;
-			m_fullInfo = m_className + '.' + m_methodName + '(' + m_fileName + 
+			m_fullInfo = m_className + '.' + m_methodName + '(' + m_fileName +
 				':' + m_lineNumber + ')';
 		}
 
@@ -187,16 +187,16 @@
 		#region Public Instance Properties
 
 		/// <summary>
-		/// Gets the fully qualified class name of the caller making the logging 
+		/// Gets the fully qualified class name of the caller making the logging
 		/// request.
 		/// </summary>
 		/// <value>
-		/// The fully qualified class name of the caller making the logging 
+		/// The fully qualified class name of the caller making the logging
 		/// request.
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// Gets the fully qualified class name of the caller making the logging 
+		/// Gets the fully qualified class name of the caller making the logging
 		/// request.
 		/// </para>
 		/// </remarks>
@@ -270,7 +270,7 @@
 		{
 			get { return m_fullInfo; }
 		}
-		
+
 #if !(NETCF || NETSTANDARD1_3)
 		/// <summary>
 		/// Gets the stack frames from the stack trace of the caller making the log request
@@ -298,14 +298,14 @@
 
 		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the LocationInfo class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(LocationInfo);
+		/// <summary>
+		/// The fully qualified type of the LocationInfo class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(LocationInfo);
 
 		/// <summary>
 		/// When location information is not available the constant
diff --git a/src/Core/LogException.cs b/src/Core/LogException.cs
index e7f243d..caa7935 100644
--- a/src/Core/LogException.cs
+++ b/src/Core/LogException.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -42,7 +42,7 @@
 #if NETSTANDARD1_3
 	public class LogException : Exception
 #else
-	public class LogException : ApplicationException 
+	public class LogException : ApplicationException
 #endif
 	{
 		#region Public Instance Constructors
@@ -69,10 +69,10 @@
 		/// the specified message.
 		/// </para>
 		/// </remarks>
-		public LogException(String message) : base(message) 
+		public LogException(String message) : base(message)
 		{
 		}
-		
+
 		/// <summary>
 		/// Constructor
 		/// </summary>
@@ -84,7 +84,7 @@
 		/// with the specified message and inner exception.
 		/// </para>
 		/// </remarks>
-		public LogException(String message, Exception innerException) : base(message, innerException) 
+		public LogException(String message, Exception innerException) : base(message, innerException)
 		{
 		}
 
@@ -100,11 +100,11 @@
 		/// <param name="context">The <see cref="StreamingContext" /> that contains contextual information about the source or destination.</param>
 		/// <remarks>
 		/// <para>
-		/// Initializes a new instance of the <see cref="LogException" /> class 
+		/// Initializes a new instance of the <see cref="LogException" /> class
 		/// with serialized data.
 		/// </para>
 		/// </remarks>
-		protected LogException(SerializationInfo info, StreamingContext context) : base(info, context) 
+		protected LogException(SerializationInfo info, StreamingContext context) : base(info, context)
 		{
 		}
 #endif
diff --git a/src/Core/LogImpl.cs b/src/Core/LogImpl.cs
index 64c2edf..9afed22 100644
--- a/src/Core/LogImpl.cs
+++ b/src/Core/LogImpl.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -90,7 +90,7 @@
 	///   </item>
 	/// </list>
 	/// <para>
-	/// The values for these levels and their semantic meanings can be changed by 
+	/// The values for these levels and their semantic meanings can be changed by
 	/// configuring the <see cref="ILoggerRepository.LevelMap"/> for the repository.
 	/// </para>
 	/// </remarks>
@@ -149,23 +149,23 @@
 		/// <remarks>
 		/// <para>
 		/// This method first checks if this logger is <c>DEBUG</c>
-		/// enabled by comparing the level of this logger with the 
+		/// enabled by comparing the level of this logger with the
 		/// <c>DEBUG</c> level. If this logger is
 		/// <c>DEBUG</c> enabled, then it converts the message object
 		/// (passed as parameter) to a string by invoking the appropriate
-		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-		/// proceeds to call all the registered appenders in this logger 
-		/// and also higher in the hierarchy depending on the value of the 
+		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then
+		/// proceeds to call all the registered appenders in this logger
+		/// and also higher in the hierarchy depending on the value of the
 		/// additivity flag.
 		/// </para>
 		/// <para>
-		/// <b>WARNING</b> Note that passing an <see cref="Exception"/> 
-		/// to this method will print the name of the <see cref="Exception"/> 
-		/// but no stack trace. To print a stack trace use the 
+		/// <b>WARNING</b> Note that passing an <see cref="Exception"/>
+		/// to this method will print the name of the <see cref="Exception"/>
+		/// but no stack trace. To print a stack trace use the
 		/// <see cref="M:Debug(object,Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
-		virtual public void Debug(object message) 
+		virtual public void Debug(object message)
 		{
 			Logger.Log(ThisDeclaringType, m_levelDebug, message, null);
 		}
@@ -186,7 +186,7 @@
 		/// </para>
 		/// </remarks>
 		/// <seealso cref="M:Debug(object)"/>
-		virtual public void Debug(object message, Exception exception) 
+		virtual public void Debug(object message, Exception exception)
 		{
 			Logger.Log(ThisDeclaringType, m_levelDebug, message, exception);
 		}
@@ -213,7 +213,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void DebugFormat(string format, params object[] args) 
+		virtual public void DebugFormat(string format, params object[] args)
 		{
 			if (IsDebugEnabled)
 			{
@@ -243,7 +243,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void DebugFormat(string format, object arg0) 
+		virtual public void DebugFormat(string format, object arg0)
 		{
 			if (IsDebugEnabled)
 			{
@@ -274,7 +274,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void DebugFormat(string format, object arg0, object arg1) 
+		virtual public void DebugFormat(string format, object arg0, object arg1)
 		{
 			if (IsDebugEnabled)
 			{
@@ -306,7 +306,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void DebugFormat(string format, object arg0, object arg1, object arg2) 
+		virtual public void DebugFormat(string format, object arg0, object arg1, object arg2)
 		{
 			if (IsDebugEnabled)
 			{
@@ -332,7 +332,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void DebugFormat(IFormatProvider provider, string format, params object[] args) 
+		virtual public void DebugFormat(IFormatProvider provider, string format, params object[] args)
 		{
 			if (IsDebugEnabled)
 			{
@@ -347,27 +347,27 @@
 		/// <remarks>
 		/// <para>
 		/// This method first checks if this logger is <c>INFO</c>
-		/// enabled by comparing the level of this logger with the 
+		/// enabled by comparing the level of this logger with the
 		/// <c>INFO</c> level. If this logger is
 		/// <c>INFO</c> enabled, then it converts the message object
 		/// (passed as parameter) to a string by invoking the appropriate
-		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-		/// proceeds to call all the registered appenders in this logger 
-		/// and also higher in the hierarchy depending on the value of 
+		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then
+		/// proceeds to call all the registered appenders in this logger
+		/// and also higher in the hierarchy depending on the value of
 		/// the additivity flag.
 		/// </para>
 		/// <para>
-		/// <b>WARNING</b> Note that passing an <see cref="Exception"/> 
-		/// to this method will print the name of the <see cref="Exception"/> 
-		/// but no stack trace. To print a stack trace use the 
+		/// <b>WARNING</b> Note that passing an <see cref="Exception"/>
+		/// to this method will print the name of the <see cref="Exception"/>
+		/// but no stack trace. To print a stack trace use the
 		/// <see cref="M:Info(object,Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
-		virtual public void Info(object message) 
+		virtual public void Info(object message)
 		{
 			Logger.Log(ThisDeclaringType, m_levelInfo, message, null);
 		}
-  
+
 		/// <summary>
 		/// Logs a message object with the <c>INFO</c> level.
 		/// </summary>
@@ -376,7 +376,7 @@
 		/// <remarks>
 		/// <para>
 		/// Logs a message object with the <c>INFO</c> level including
-		/// the stack trace of the <see cref="Exception"/> <paramref name="exception"/> 
+		/// the stack trace of the <see cref="Exception"/> <paramref name="exception"/>
 		/// passed as a parameter.
 		/// </para>
 		/// <para>
@@ -384,7 +384,7 @@
 		/// </para>
 		/// </remarks>
 		/// <seealso cref="M:Info(object)"/>
-		virtual public void Info(object message, Exception exception) 
+		virtual public void Info(object message, Exception exception)
 		{
 			Logger.Log(ThisDeclaringType, m_levelInfo, message, exception);
 		}
@@ -411,7 +411,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void InfoFormat(string format, params object[] args) 
+		virtual public void InfoFormat(string format, params object[] args)
 		{
 			if (IsInfoEnabled)
 			{
@@ -441,7 +441,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void InfoFormat(string format, object arg0) 
+		virtual public void InfoFormat(string format, object arg0)
 		{
 			if (IsInfoEnabled)
 			{
@@ -472,7 +472,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void InfoFormat(string format, object arg0, object arg1) 
+		virtual public void InfoFormat(string format, object arg0, object arg1)
 		{
 			if (IsInfoEnabled)
 			{
@@ -504,7 +504,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void InfoFormat(string format, object arg0, object arg1, object arg2) 
+		virtual public void InfoFormat(string format, object arg0, object arg1, object arg2)
 		{
 			if (IsInfoEnabled)
 			{
@@ -530,7 +530,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void InfoFormat(IFormatProvider provider, string format, params object[] args) 
+		virtual public void InfoFormat(IFormatProvider provider, string format, params object[] args)
 		{
 			if (IsInfoEnabled)
 			{
@@ -545,27 +545,27 @@
 		/// <remarks>
 		/// <para>
 		/// This method first checks if this logger is <c>WARN</c>
-		/// enabled by comparing the level of this logger with the 
+		/// enabled by comparing the level of this logger with the
 		/// <c>WARN</c> level. If this logger is
 		/// <c>WARN</c> enabled, then it converts the message object
 		/// (passed as parameter) to a string by invoking the appropriate
-		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-		/// proceeds to call all the registered appenders in this logger and 
-		/// also higher in the hierarchy depending on the value of the 
+		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then
+		/// proceeds to call all the registered appenders in this logger and
+		/// also higher in the hierarchy depending on the value of the
 		/// additivity flag.
 		/// </para>
 		/// <para>
 		/// <b>WARNING</b> Note that passing an <see cref="Exception"/> to this
 		/// method will print the name of the <see cref="Exception"/> but no
-		/// stack trace. To print a stack trace use the 
+		/// stack trace. To print a stack trace use the
 		/// <see cref="M:Warn(object,Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
-		virtual public void Warn(object message) 
+		virtual public void Warn(object message)
 		{
 			Logger.Log(ThisDeclaringType, m_levelWarn, message, null);
 		}
-  
+
 		/// <summary>
 		/// Logs a message object with the <c>WARN</c> level
 		/// </summary>
@@ -574,7 +574,7 @@
 		/// <remarks>
 		/// <para>
 		/// Logs a message object with the <c>WARN</c> level including
-		/// the stack trace of the <see cref="Exception"/> <paramref name="exception"/> 
+		/// the stack trace of the <see cref="Exception"/> <paramref name="exception"/>
 		/// passed as a parameter.
 		/// </para>
 		/// <para>
@@ -582,7 +582,7 @@
 		/// </para>
 		/// </remarks>
 		/// <seealso cref="M:Warn(object)"/>
-		virtual public void Warn(object message, Exception exception) 
+		virtual public void Warn(object message, Exception exception)
 		{
 			Logger.Log(ThisDeclaringType, m_levelWarn, message, exception);
 		}
@@ -609,7 +609,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void WarnFormat(string format, params object[] args) 
+		virtual public void WarnFormat(string format, params object[] args)
 		{
 			if (IsWarnEnabled)
 			{
@@ -639,7 +639,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void WarnFormat(string format, object arg0) 
+		virtual public void WarnFormat(string format, object arg0)
 		{
 			if (IsWarnEnabled)
 			{
@@ -670,7 +670,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void WarnFormat(string format, object arg0, object arg1) 
+		virtual public void WarnFormat(string format, object arg0, object arg1)
 		{
 			if (IsWarnEnabled)
 			{
@@ -702,7 +702,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void WarnFormat(string format, object arg0, object arg1, object arg2) 
+		virtual public void WarnFormat(string format, object arg0, object arg1, object arg2)
 		{
 			if (IsWarnEnabled)
 			{
@@ -728,7 +728,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void WarnFormat(IFormatProvider provider, string format, params object[] args) 
+		virtual public void WarnFormat(IFormatProvider provider, string format, params object[] args)
 		{
 			if (IsWarnEnabled)
 			{
@@ -743,23 +743,23 @@
 		/// <remarks>
 		/// <para>
 		/// This method first checks if this logger is <c>ERROR</c>
-		/// enabled by comparing the level of this logger with the 
+		/// enabled by comparing the level of this logger with the
 		/// <c>ERROR</c> level. If this logger is
 		/// <c>ERROR</c> enabled, then it converts the message object
 		/// (passed as parameter) to a string by invoking the appropriate
-		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-		/// proceeds to call all the registered appenders in this logger and 
-		/// also higher in the hierarchy depending on the value of the 
+		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then
+		/// proceeds to call all the registered appenders in this logger and
+		/// also higher in the hierarchy depending on the value of the
 		/// additivity flag.
 		/// </para>
 		/// <para>
 		/// <b>WARNING</b> Note that passing an <see cref="Exception"/> to this
 		/// method will print the name of the <see cref="Exception"/> but no
-		/// stack trace. To print a stack trace use the 
+		/// stack trace. To print a stack trace use the
 		/// <see cref="M:Error(object,Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
-		virtual public void Error(object message) 
+		virtual public void Error(object message)
 		{
 			Logger.Log(ThisDeclaringType, m_levelError, message, null);
 		}
@@ -772,7 +772,7 @@
 		/// <remarks>
 		/// <para>
 		/// Logs a message object with the <c>ERROR</c> level including
-		/// the stack trace of the <see cref="Exception"/> <paramref name="exception"/> 
+		/// the stack trace of the <see cref="Exception"/> <paramref name="exception"/>
 		/// passed as a parameter.
 		/// </para>
 		/// <para>
@@ -780,7 +780,7 @@
 		/// </para>
 		/// </remarks>
 		/// <seealso cref="M:Error(object)"/>
-		virtual public void Error(object message, Exception exception) 
+		virtual public void Error(object message, Exception exception)
 		{
 			Logger.Log(ThisDeclaringType, m_levelError, message, exception);
 		}
@@ -807,7 +807,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void ErrorFormat(string format, params object[] args) 
+		virtual public void ErrorFormat(string format, params object[] args)
 		{
 			if (IsErrorEnabled)
 			{
@@ -837,7 +837,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void ErrorFormat(string format, object arg0) 
+		virtual public void ErrorFormat(string format, object arg0)
 		{
 			if (IsErrorEnabled)
 			{
@@ -868,7 +868,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void ErrorFormat(string format, object arg0, object arg1) 
+		virtual public void ErrorFormat(string format, object arg0, object arg1)
 		{
 			if (IsErrorEnabled)
 			{
@@ -900,7 +900,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void ErrorFormat(string format, object arg0, object arg1, object arg2) 
+		virtual public void ErrorFormat(string format, object arg0, object arg1, object arg2)
 		{
 			if (IsErrorEnabled)
 			{
@@ -926,7 +926,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void ErrorFormat(IFormatProvider provider, string format, params object[] args) 
+		virtual public void ErrorFormat(IFormatProvider provider, string format, params object[] args)
 		{
 			if (IsErrorEnabled)
 			{
@@ -941,27 +941,27 @@
 		/// <remarks>
 		/// <para>
 		/// This method first checks if this logger is <c>FATAL</c>
-		/// enabled by comparing the level of this logger with the 
+		/// enabled by comparing the level of this logger with the
 		/// <c>FATAL</c> level. If this logger is
 		/// <c>FATAL</c> enabled, then it converts the message object
 		/// (passed as parameter) to a string by invoking the appropriate
-		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-		/// proceeds to call all the registered appenders in this logger and 
-		/// also higher in the hierarchy depending on the value of the 
+		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then
+		/// proceeds to call all the registered appenders in this logger and
+		/// also higher in the hierarchy depending on the value of the
 		/// additivity flag.
 		/// </para>
 		/// <para>
 		/// <b>WARNING</b> Note that passing an <see cref="Exception"/> to this
 		/// method will print the name of the <see cref="Exception"/> but no
-		/// stack trace. To print a stack trace use the 
+		/// stack trace. To print a stack trace use the
 		/// <see cref="M:Fatal(object,Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
-		virtual public void Fatal(object message) 
+		virtual public void Fatal(object message)
 		{
 			Logger.Log(ThisDeclaringType, m_levelFatal, message, null);
 		}
-  
+
 		/// <summary>
 		/// Logs a message object with the <c>FATAL</c> level
 		/// </summary>
@@ -970,7 +970,7 @@
 		/// <remarks>
 		/// <para>
 		/// Logs a message object with the <c>FATAL</c> level including
-		/// the stack trace of the <see cref="Exception"/> <paramref name="exception"/> 
+		/// the stack trace of the <see cref="Exception"/> <paramref name="exception"/>
 		/// passed as a parameter.
 		/// </para>
 		/// <para>
@@ -978,7 +978,7 @@
 		/// </para>
 		/// </remarks>
 		/// <seealso cref="M:Fatal(object)"/>
-		virtual public void Fatal(object message, Exception exception) 
+		virtual public void Fatal(object message, Exception exception)
 		{
 			Logger.Log(ThisDeclaringType, m_levelFatal, message, exception);
 		}
@@ -1005,7 +1005,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void FatalFormat(string format, params object[] args) 
+		virtual public void FatalFormat(string format, params object[] args)
 		{
 			if (IsFatalEnabled)
 			{
@@ -1035,7 +1035,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void FatalFormat(string format, object arg0) 
+		virtual public void FatalFormat(string format, object arg0)
 		{
 			if (IsFatalEnabled)
 			{
@@ -1066,7 +1066,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void FatalFormat(string format, object arg0, object arg1) 
+		virtual public void FatalFormat(string format, object arg0, object arg1)
 		{
 			if (IsFatalEnabled)
 			{
@@ -1098,7 +1098,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void FatalFormat(string format, object arg0, object arg1, object arg2) 
+		virtual public void FatalFormat(string format, object arg0, object arg1, object arg2)
 		{
 			if (IsFatalEnabled)
 			{
@@ -1124,7 +1124,7 @@
 		/// methods instead.
 		/// </para>
 		/// </remarks>
-		virtual public void FatalFormat(IFormatProvider provider, string format, params object[] args) 
+		virtual public void FatalFormat(IFormatProvider provider, string format, params object[] args)
 		{
 			if (IsFatalEnabled)
 			{
@@ -1160,7 +1160,7 @@
 		/// </para>
 		/// <code lang="C#">
 		/// if (log.IsDebugEnabled())
-		/// { 
+		/// {
 		///	 log.Debug("This is entry number: " + i );
 		/// }
 		/// </code>
@@ -1179,7 +1179,7 @@
 		{
 			get { return Logger.IsEnabledFor(m_levelDebug); }
 		}
-  
+
 		/// <summary>
 		/// Checks if this logger is enabled for the <c>INFO</c> level.
 		/// </summary>
@@ -1189,7 +1189,7 @@
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// See <see cref="IsDebugEnabled"/> for more information and examples 
+		/// See <see cref="IsDebugEnabled"/> for more information and examples
 		/// of using this method.
 		/// </para>
 		/// </remarks>
@@ -1208,7 +1208,7 @@
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// See <see cref="IsDebugEnabled"/> for more information and examples 
+		/// See <see cref="IsDebugEnabled"/> for more information and examples
 		/// of using this method.
 		/// </para>
 		/// </remarks>
diff --git a/src/Core/LoggerManager.cs b/src/Core/LoggerManager.cs
index 8ffaad2..b0d50c5 100644
--- a/src/Core/LoggerManager.cs
+++ b/src/Core/LoggerManager.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -46,7 +46,7 @@
 	/// lookup and create repositories. The selector can be set either programmatically using
 	/// the <see cref="RepositorySelector"/> property, or by setting the <c>log4net.RepositorySelector</c>
 	/// AppSetting in the applications config file to the fully qualified type name of the
-	/// selector to use. 
+	/// selector to use.
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
@@ -63,7 +63,7 @@
 		/// Private constructor to prevent instances. Only static methods should be used.
 		/// </para>
 		/// </remarks>
-		private LoggerManager() 
+		private LoggerManager()
 		{
 		}
 
@@ -76,8 +76,8 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// On the full .NET runtime, the static constructor hooks up the 
-		/// <c>AppDomain.ProcessExit</c> and <c>AppDomain.DomainUnload</c>> events. 
+		/// On the full .NET runtime, the static constructor hooks up the
+		/// <c>AppDomain.ProcessExit</c> and <c>AppDomain.DomainUnload</c>> events.
 		/// These are used to shutdown the log4net system as the application exits.
 		/// </para>
 		/// </remarks>
@@ -99,7 +99,7 @@
 			}
 
 			// Dump out our assembly version into the log if debug is enabled
-            LogLog.Debug(declaringType, GetVersionInfo());
+			LogLog.Debug(declaringType, GetVersionInfo());
 
 			// Set the default repository selector
 #if NETCF
@@ -145,7 +145,7 @@
 				}
 			}
 #endif
-			// Create the DefaultRepositorySelector if not configured above 
+			// Create the DefaultRepositorySelector if not configured above
 			if (s_repositorySelector == null)
 			{
 				s_repositorySelector = new DefaultRepositorySelector(typeof(log4net.Repository.Hierarchy.Hierarchy));
@@ -262,7 +262,7 @@
 		/// <c>null</c>.
 		/// </para>
 		/// </remarks>
-		public static ILogger Exists(string repository, string name) 
+		public static ILogger Exists(string repository, string name)
 		{
 			if (repository == null)
 			{
@@ -291,7 +291,7 @@
 		/// <c>null</c>.
 		/// </para>
 		/// </remarks>
-		public static ILogger Exists(Assembly repositoryAssembly, string name) 
+		public static ILogger Exists(Assembly repositoryAssembly, string name)
 		{
 			if (repositoryAssembly == null)
 			{
@@ -404,7 +404,7 @@
 				throw new ArgumentNullException("name");
 			}
 			return RepositorySelector.GetRepository(repositoryAssembly).GetLogger(name);
-		}	
+		}
 
 		/// <summary>
 		/// Shorthand for <see cref="M:LogManager.GetLogger(string)"/>.
@@ -417,7 +417,7 @@
 		/// Gets the logger for the fully qualified name of the type specified.
 		/// </para>
 		/// </remarks>
-		public static ILogger GetLogger(string repository, Type type) 
+		public static ILogger GetLogger(string repository, Type type)
 		{
 			if (repository == null)
 			{
@@ -441,7 +441,7 @@
 		/// Gets the logger for the fully qualified name of the type specified.
 		/// </para>
 		/// </remarks>
-		public static ILogger GetLogger(Assembly repositoryAssembly, Type type) 
+		public static ILogger GetLogger(Assembly repositoryAssembly, Type type)
 		{
 			if (repositoryAssembly == null)
 			{
@@ -452,7 +452,7 @@
 				throw new ArgumentNullException("type");
 			}
 			return RepositorySelector.GetRepository(repositoryAssembly).GetLogger(type.FullName);
-		}	
+		}
 
 		/// <summary>
 		/// Shuts down the log4net system.
@@ -464,7 +464,7 @@
 		/// default repositories.
 		/// </para>
 		/// <para>
-		/// Some appenders need to be closed before the application exists. 
+		/// Some appenders need to be closed before the application exists.
 		/// Otherwise, pending logging events might be lost.
 		/// </para>
 		/// <para>
@@ -474,7 +474,7 @@
 		/// and again to a nested appender.
 		/// </para>
 		/// </remarks>
-		public static void Shutdown() 
+		public static void Shutdown()
 		{
 			foreach(ILoggerRepository repository in GetAllRepositories())
 			{
@@ -493,7 +493,7 @@
 		/// repository for the <paramref name="repository"/> specified.
 		/// </para>
 		/// <para>
-		/// Some appenders need to be closed before the application exists. 
+		/// Some appenders need to be closed before the application exists.
 		/// Otherwise, pending logging events might be lost.
 		/// </para>
 		/// <para>
@@ -503,7 +503,7 @@
 		/// and again to a nested appender.
 		/// </para>
 		/// </remarks>
-		public static void ShutdownRepository(string repository) 
+		public static void ShutdownRepository(string repository)
 		{
 			if (repository == null)
 			{
@@ -524,7 +524,7 @@
 		/// the <paramref name="repositoryAssembly"/> specified.
 		/// </para>
 		/// <para>
-		/// Some appenders need to be closed before the application exists. 
+		/// Some appenders need to be closed before the application exists.
 		/// Otherwise, pending logging events might be lost.
 		/// </para>
 		/// <para>
@@ -534,7 +534,7 @@
 		/// and again to a nested appender.
 		/// </para>
 		/// </remarks>
-		public static void ShutdownRepository(Assembly repositoryAssembly) 
+		public static void ShutdownRepository(Assembly repositoryAssembly)
 		{
 			if (repositoryAssembly == null)
 			{
@@ -555,9 +555,9 @@
 		/// sets their additivity flag to <c>true</c> and sets the level
 		/// of the root logger to <see cref="Level.Debug"/>. Moreover,
 		/// message disabling is set its default "off" value.
-		/// </para>		
+		/// </para>
 		/// </remarks>
-		public static void ResetConfiguration(string repository) 
+		public static void ResetConfiguration(string repository)
 		{
 			if (repository == null)
 			{
@@ -578,9 +578,9 @@
 		/// sets their additivity flag to <c>true</c> and sets the level
 		/// of the root logger to <see cref="Level.Debug"/>. Moreover,
 		/// message disabling is set its default "off" value.
-		/// </para>		
+		/// </para>
 		/// </remarks>
-		public static void ResetConfiguration(Assembly repositoryAssembly) 
+		public static void ResetConfiguration(Assembly repositoryAssembly)
 		{
 			if (repositoryAssembly == null)
 			{
@@ -765,13 +765,13 @@
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// The repository selector (<see cref="IRepositorySelector"/>) is used by 
-		/// the <see cref="LogManager"/> to create and select repositories 
+		/// The repository selector (<see cref="IRepositorySelector"/>) is used by
+		/// the <see cref="LogManager"/> to create and select repositories
 		/// (<see cref="ILoggerRepository"/>).
 		/// </para>
 		/// <para>
-		/// The caller to <see cref="LogManager"/> supplies either a string name 
-		/// or an assembly (if not supplied the assembly is inferred using 
+		/// The caller to <see cref="LogManager"/> supplies either a string name
+		/// or an assembly (if not supplied the assembly is inferred using
 		/// <see cref="M:Assembly.GetCallingAssembly()"/>).
 		/// </para>
 		/// <para>
@@ -812,7 +812,7 @@
 			sb.Append("Loaded from [").Append(SystemInfo.AssemblyLocationInfo(myAssembly)).Append("]. ");
 			sb.Append("(.NET Runtime [").Append(Environment.Version.ToString()).Append("]");
 #if (!SSCLI)
-            sb.Append(" on ").Append(Environment.OSVersion.ToString());
+			sb.Append(" on ").Append(Environment.OSVersion.ToString());
 #endif
 #endif // NETSTANDARD1_3
 			sb.Append(")");
@@ -861,14 +861,14 @@
 
 		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the LoggerManager class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(LoggerManager);
+		/// <summary>
+		/// The fully qualified type of the LoggerManager class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(LoggerManager);
 
 		/// <summary>
 		/// Initialize the default repository selector
diff --git a/src/Core/LoggerWrapperImpl.cs b/src/Core/LoggerWrapperImpl.cs
index fff496d..811648d 100644
--- a/src/Core/LoggerWrapperImpl.cs
+++ b/src/Core/LoggerWrapperImpl.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -42,7 +42,7 @@
 		/// Constructs a new wrapper for the specified logger.
 		/// </para>
 		/// </remarks>
-		protected LoggerWrapperImpl(ILogger logger) 
+		protected LoggerWrapperImpl(ILogger logger)
 		{
 			m_logger = logger;
 		}
@@ -59,7 +59,7 @@
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// The <c>Logger</c> object may not be the same object as this object 
+		/// The <c>Logger</c> object may not be the same object as this object
 		/// because of logger decorators.
 		/// </para>
 		/// <para>
@@ -79,8 +79,8 @@
 		/// <summary>
 		/// The logger that this object is wrapping
 		/// </summary>
-		private readonly ILogger m_logger;  
- 
+		private readonly ILogger m_logger;
+
 		#endregion Private Instance Fields
 	}
 }
diff --git a/src/Core/LoggingEvent.cs b/src/Core/LoggingEvent.cs
index eb54a60..dcb2f7c 100644
--- a/src/Core/LoggingEvent.cs
+++ b/src/Core/LoggingEvent.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -91,46 +91,46 @@
 		/// Gets or sets the local time the event was logged
 		/// </summary>
 		/// <remarks>
-        /// <para>
-        /// Prefer using the <see cref="TimeStampUtc"/> setter, since local time can be ambiguous.
+		/// <para>
+		/// Prefer using the <see cref="TimeStampUtc"/> setter, since local time can be ambiguous.
 		/// </para>
 		/// </remarks>
-        [Obsolete("Prefer using TimeStampUtc, since local time can be ambiguous in time zones with daylight savings time.")]
-        public DateTime TimeStamp;
+		[Obsolete("Prefer using TimeStampUtc, since local time can be ambiguous in time zones with daylight savings time.")]
+		public DateTime TimeStamp;
 
-        /// <summary>
-        /// Gets or sets the UTC time the event was logged
-        /// </summary>
-        /// <remarks>
-        /// <para>
-        /// The TimeStamp is stored in the UTC time zone.
-        /// </para>
-        /// </remarks>
+		/// <summary>
+		/// Gets or sets the UTC time the event was logged
+		/// </summary>
+		/// <remarks>
+		/// <para>
+		/// The TimeStamp is stored in the UTC time zone.
+		/// </para>
+		/// </remarks>
 #pragma warning disable 618 // Suppress warnings that TimeStamp field is obsolete
-        public DateTime TimeStampUtc
-        {
-            get
-            {
-                if (TimeStamp != default(DateTime) && 
-                    _timeStampUtc == default(DateTime))
-                {
-                    // TimeStamp field has been set explicitly but TimeStampUtc hasn't
-                    // => use TimeStamp
-                    return TimeStamp.ToUniversalTime();
-                }
-                return _timeStampUtc;
-            }
-            set
-            {
-                _timeStampUtc = value;
-                // For backwards compatibility
-                TimeStamp = _timeStampUtc.ToLocalTime();
-            }
-        }
-        private DateTime _timeStampUtc;
+		public DateTime TimeStampUtc
+		{
+			get
+			{
+				if (TimeStamp != default(DateTime) &&
+					_timeStampUtc == default(DateTime))
+				{
+					// TimeStamp field has been set explicitly but TimeStampUtc hasn't
+					// => use TimeStamp
+					return TimeStamp.ToUniversalTime();
+				}
+				return _timeStampUtc;
+			}
+			set
+			{
+				_timeStampUtc = value;
+				// For backwards compatibility
+				TimeStamp = _timeStampUtc.ToLocalTime();
+			}
+		}
+		private DateTime _timeStampUtc;
 #pragma warning restore 618
 
-        /// <summary>
+		/// <summary>
 		/// Location information for the caller.
 		/// </summary>
 		/// <remarks>
@@ -296,12 +296,12 @@
 	}
 
 	/// <summary>
-	/// The internal representation of logging events. 
+	/// The internal representation of logging events.
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// When an affirmative decision is made to log then a 
-	/// <see cref="LoggingEvent"/> instance is created. This instance 
+	/// When an affirmative decision is made to log then a
+	/// <see cref="LoggingEvent"/> instance is created. This instance
 	/// is passed around to the different log4net components.
 	/// </para>
 	/// <para>
@@ -325,12 +325,12 @@
 #if !NETCF
 	[Serializable]
 #endif
-	public class LoggingEvent 
+	public class LoggingEvent
 #if !NETCF
 		: ISerializable
 #endif
 	{
-	    private readonly static Type declaringType = typeof(LoggingEvent);
+		private readonly static Type declaringType = typeof(LoggingEvent);
 
 		#region Public Instance Constructors
 
@@ -347,7 +347,7 @@
 		/// <param name="exception">The exception for this event.</param>
 		/// <remarks>
 		/// <para>
-		/// Except <see cref="TimeStamp"/>, <see cref="Level"/> and <see cref="LoggerName"/>, 
+		/// Except <see cref="TimeStamp"/>, <see cref="Level"/> and <see cref="LoggerName"/>,
 		/// all fields of <c>LoggingEvent</c> are filled when actually needed. Call
 		/// <see cref="M:FixVolatileData()"/> to cache all data locally
 		/// to prevent inconsistencies.
@@ -356,7 +356,7 @@
 		/// to create a logging event.
 		/// </para>
 		/// </remarks>
-		public LoggingEvent(Type callerStackBoundaryDeclaringType, log4net.Repository.ILoggerRepository repository, string loggerName, Level level, object message, Exception exception) 
+		public LoggingEvent(Type callerStackBoundaryDeclaringType, log4net.Repository.ILoggerRepository repository, string loggerName, Level level, object message, Exception exception)
 		{
 			m_callerStackBoundaryDeclaringType = callerStackBoundaryDeclaringType;
 			m_message = message;
@@ -371,7 +371,7 @@
 		}
 
 		/// <summary>
-		/// Initializes a new instance of the <see cref="LoggingEvent" /> class 
+		/// Initializes a new instance of the <see cref="LoggingEvent" /> class
 		/// using specific data.
 		/// </summary>
 		/// <param name="callerStackBoundaryDeclaringType">The declaring type of the method that is
@@ -386,7 +386,7 @@
 		/// be useful if you require a custom serialization scheme.
 		/// </para>
 		/// <para>
-		/// Use the <see cref="M:GetLoggingEventData(FixFlags)"/> method to obtain an 
+		/// Use the <see cref="M:GetLoggingEventData(FixFlags)"/> method to obtain an
 		/// instance of the <see cref="LoggingEventData"/> class.
 		/// </para>
 		/// <para>
@@ -395,7 +395,7 @@
 		/// will be captured from the environment if requested or fixed.
 		/// </para>
 		/// </remarks>
-		public LoggingEvent(Type callerStackBoundaryDeclaringType, log4net.Repository.ILoggerRepository repository, LoggingEventData data, FixFlags fixedData) 
+		public LoggingEvent(Type callerStackBoundaryDeclaringType, log4net.Repository.ILoggerRepository repository, LoggingEventData data, FixFlags fixedData)
 		{
 			m_callerStackBoundaryDeclaringType = callerStackBoundaryDeclaringType;
 			m_repository = repository;
@@ -405,7 +405,7 @@
 		}
 
 		/// <summary>
-		/// Initializes a new instance of the <see cref="LoggingEvent" /> class 
+		/// Initializes a new instance of the <see cref="LoggingEvent" /> class
 		/// using specific data.
 		/// </summary>
 		/// <param name="callerStackBoundaryDeclaringType">The declaring type of the method that is
@@ -419,7 +419,7 @@
 		/// be useful if you require a custom serialization scheme.
 		/// </para>
 		/// <para>
-		/// Use the <see cref="M:GetLoggingEventData(FixFlags)"/> method to obtain an 
+		/// Use the <see cref="M:GetLoggingEventData(FixFlags)"/> method to obtain an
 		/// instance of the <see cref="LoggingEventData"/> class.
 		/// </para>
 		/// <para>
@@ -433,7 +433,7 @@
 		}
 
 		/// <summary>
-		/// Initializes a new instance of the <see cref="LoggingEvent" /> class 
+		/// Initializes a new instance of the <see cref="LoggingEvent" /> class
 		/// using specific data.
 		/// </summary>
 		/// <param name="data">Data used to initialize the logging event.</param>
@@ -444,7 +444,7 @@
 		/// be useful if you require a custom serialization scheme.
 		/// </para>
 		/// <para>
-		/// Use the <see cref="M:GetLoggingEventData(FixFlags)"/> method to obtain an 
+		/// Use the <see cref="M:GetLoggingEventData(FixFlags)"/> method to obtain an
 		/// instance of the <see cref="LoggingEventData"/> class.
 		/// </para>
 		/// <para>
@@ -470,16 +470,16 @@
 		/// <param name="context">The <see cref="StreamingContext" /> that contains contextual information about the source or destination.</param>
 		/// <remarks>
 		/// <para>
-		/// Initializes a new instance of the <see cref="LoggingEvent" /> class 
+		/// Initializes a new instance of the <see cref="LoggingEvent" /> class
 		/// with serialized data.
 		/// </para>
 		/// </remarks>
-		protected LoggingEvent(SerializationInfo info, StreamingContext context) 
+		protected LoggingEvent(SerializationInfo info, StreamingContext context)
 		{
 			m_data.LoggerName = info.GetString("LoggerName");
 
 			// Note we are deserializing the whole level object. That is the
-			// name and the value. This value is correct for the source 
+			// name and the value. This value is correct for the source
 			// hierarchy but may not be for the target hierarchy that this
 			// event may be re-logged into. If it is to be re-logged it may
 			// be necessary to re-lookup the level based only on the name.
@@ -505,7 +505,7 @@
 		#endregion Protected Instance Constructors
 
 		#region Public Instance Properties
-	
+
 		/// <summary>
 		/// Gets the time when the current process started.
 		/// </summary>
@@ -532,27 +532,27 @@
 			get { return SystemInfo.ProcessStartTimeUtc.ToLocalTime(); }
 		}
 
-        /// <summary>
-        /// Gets the UTC time when the current process started.
-        /// </summary>
-        /// <value>
-        /// This is the UTC time when this process started.
-        /// </value>
-        /// <remarks>
-        /// <para>
-        /// Tries to get the start time for the current process.
-        /// Failing that it returns the time of the first call to
-        /// this property.
-        /// </para>
-        /// <para>
-        /// Note that AppDomains may be loaded and unloaded within the
-        /// same process without the process terminating and therefore
-        /// without the process start time being reset.
-        /// </para>
-        /// </remarks>
-        public static DateTime StartTimeUtc
-        {
-            get { return SystemInfo.ProcessStartTimeUtc; }
+		/// <summary>
+		/// Gets the UTC time when the current process started.
+		/// </summary>
+		/// <value>
+		/// This is the UTC time when this process started.
+		/// </value>
+		/// <remarks>
+		/// <para>
+		/// Tries to get the start time for the current process.
+		/// Failing that it returns the time of the first call to
+		/// this property.
+		/// </para>
+		/// <para>
+		/// Note that AppDomains may be loaded and unloaded within the
+		/// same process without the process terminating and therefore
+		/// without the process start time being reset.
+		/// </para>
+		/// </remarks>
+		public static DateTime StartTimeUtc
+		{
+			get { return SystemInfo.ProcessStartTimeUtc; }
 		}
 
 		/// <summary>
@@ -568,7 +568,7 @@
 		/// </remarks>
 		public Level Level
 		{
-			get { return m_data.Level; } 
+			get { return m_data.Level; }
 		}
 
 		/// <summary>
@@ -587,15 +587,15 @@
 			get { return m_data.TimeStampUtc.ToLocalTime(); }
 		}
 
-        /// <summary>
-        /// Gets UTC the time of the logging event.
-        /// </summary>
-        /// <value>
-        /// The UTC time of the logging event.
-        /// </value>
-        public DateTime TimeStampUtc
-        {
-            get { return m_data.TimeStampUtc; }
+		/// <summary>
+		/// Gets UTC the time of the logging event.
+		/// </summary>
+		/// <value>
+		/// The UTC time of the logging event.
+		/// </value>
+		public DateTime TimeStampUtc
+		{
+			get { return m_data.TimeStampUtc; }
 		}
 
 		/// <summary>
@@ -634,7 +634,7 @@
 		{
 			get
 			{
-				if (m_data.LocationInfo == null  && this.m_cacheUpdatable) 
+				if (m_data.LocationInfo == null  && this.m_cacheUpdatable)
 				{
 					m_data.LocationInfo = new LocationInfo(m_callerStackBoundaryDeclaringType);
 				}
@@ -652,9 +652,9 @@
 		/// <para>
 		/// Gets the message object used to initialize this event.
 		/// Note that this event may not have a valid message object.
-		/// If the event is serialized the message object will not 
+		/// If the event is serialized the message object will not
 		/// be transferred. To get the text of the message the
-		/// <see cref="RenderedMessage"/> property must be used 
+		/// <see cref="RenderedMessage"/> property must be used
 		/// not this property.
 		/// </para>
 		/// <para>
@@ -665,7 +665,7 @@
 		public object MessageObject
 		{
 			get { return m_message; }
-		} 
+		}
 
 		/// <summary>
 		/// Gets the exception object used to initialize this event.
@@ -677,9 +677,9 @@
 		/// <para>
 		/// Gets the exception object used to initialize this event.
 		/// Note that this event may not have a valid exception object.
-		/// If the event is serialized the exception object will not 
+		/// If the event is serialized the exception object will not
 		/// be transferred. To get the text of the exception the
-		/// <see cref="GetExceptionString"/> method must be used 
+		/// <see cref="GetExceptionString"/> method must be used
 		/// not this property.
 		/// </para>
 		/// <para>
@@ -690,7 +690,7 @@
 		public Exception ExceptionObject
 		{
 			get { return m_thrownException; }
-		} 
+		}
 
 		/// <summary>
 		/// The <see cref="ILoggerRepository"/> that this event was created in.
@@ -730,8 +730,8 @@
 		/// </remarks>
 		public string RenderedMessage
 		{
-			get 
-			{ 
+			get
+			{
 				if (m_data.Message == null && this.m_cacheUpdatable)
 				{
 					if (m_message == null)
@@ -752,7 +752,7 @@
 						m_data.Message = m_message.ToString();
 					}
 				}
-				return m_data.Message; 
+				return m_data.Message;
 			}
 		}
 
@@ -763,7 +763,7 @@
 		/// <remarks>
 		/// <para>
 		/// Unlike the <see cref="RenderedMessage"/> property this method
-		/// does store the message data in the internal cache. Therefore 
+		/// does store the message data in the internal cache. Therefore
 		/// if called only once this method should be faster than the
 		/// <see cref="RenderedMessage"/> property, however if the message is
 		/// to be accessed multiple times then the property will be more efficient.
@@ -773,7 +773,7 @@
 		{
 			if (m_data.Message != null)
 			{
-				writer.Write(m_data.Message); 
+				writer.Write(m_data.Message);
 			}
 			else
 			{
@@ -797,10 +797,10 @@
 		}
 
 		/// <summary>
-		/// Gets the name of the current thread.  
+		/// Gets the name of the current thread.
 		/// </summary>
 		/// <value>
-		/// The name of the current thread, or the thread ID when 
+		/// The name of the current thread, or the thread ID when
 		/// the name is not available.
 		/// </value>
 		/// <remarks>
@@ -822,7 +822,7 @@
 					if (m_data.ThreadName == null || m_data.ThreadName.Length == 0)
 					{
 						// The thread name is not available. Therefore we
-						// go the the AppDomain to get the ID of the 
+						// go the the AppDomain to get the ID of the
 						// current thread. (Why don't Threads know their own ID?)
 						try
 						{
@@ -830,7 +830,7 @@
 						}
 						catch(System.Security.SecurityException)
 						{
-							// This security exception will occur if the caller does not have 
+							// This security exception will occur if the caller does not have
 							// some undefined set of SecurityPermission flags.
 							LogLog.Debug(declaringType, "Security exception while trying to get current thread ID. Error Ignored. Empty thread name.");
 
@@ -848,8 +848,8 @@
 		/// Gets the name of the current user.
 		/// </summary>
 		/// <value>
-		/// The name of the current user, or <c>NOT AVAILABLE</c> when the 
-		/// underlying runtime has no support for retrieving the name of the 
+		/// The name of the current user, or <c>NOT AVAILABLE</c> when the
+		/// underlying runtime has no support for retrieving the name of the
 		/// current user.
 		/// </value>
 		/// <remarks>
@@ -858,14 +858,14 @@
 		/// the current windows user.
 		/// </para>
 		/// <para>
-		/// To improve performance, we could cache the string representation of 
-		/// the name, and reuse that as long as the identity stayed constant.  
-		/// Once the identity changed, we would need to re-assign and re-render 
+		/// To improve performance, we could cache the string representation of
+		/// the name, and reuse that as long as the identity stayed constant.
+		/// Once the identity changed, we would need to re-assign and re-render
 		/// the string.
 		/// </para>
 		/// <para>
-		/// However, the <c>WindowsIdentity.GetCurrent()</c> call seems to 
-		/// return different objects every time, so the current implementation 
+		/// However, the <c>WindowsIdentity.GetCurrent()</c> call seems to
+		/// return different objects every time, so the current implementation
 		/// doesn't do this type of caching.
 		/// </para>
 		/// <para>
@@ -886,8 +886,8 @@
 		///   </item>
 		/// </list>
 		/// <para>
-		/// This means we could speed things up almost 40 times by caching the 
-		/// value of the <c>WindowsIdentity.GetCurrent().Name</c> property, since 
+		/// This means we could speed things up almost 40 times by caching the
+		/// value of the <c>WindowsIdentity.GetCurrent().Name</c> property, since
 		/// this takes (8.04-0.20) = 7.84375 seconds.
 		/// </para>
 		/// </remarks>
@@ -895,7 +895,7 @@
 		{
 			get
 			{
-				if (m_data.UserName == null  && this.m_cacheUpdatable) 
+				if (m_data.UserName == null  && this.m_cacheUpdatable)
 				{
 #if (NETCF || SSCLI || NETSTANDARD1_3) // NETSTANDARD1_3 TODO requires platform-specific code
 					// On compact framework there's no notion of current Windows user
@@ -915,7 +915,7 @@
 					}
 					catch(System.Security.SecurityException)
 					{
-						// This security exception will occur if the caller does not have 
+						// This security exception will occur if the caller does not have
 						// some undefined set of SecurityPermission flags.
 						LogLog.Debug(declaringType, "Security exception while trying to get current windows identity. Error Ignored. Empty user name.");
 
@@ -951,7 +951,7 @@
 #else
 					try
 					{
-						if (System.Threading.Thread.CurrentPrincipal != null && 
+						if (System.Threading.Thread.CurrentPrincipal != null &&
 							System.Threading.Thread.CurrentPrincipal.Identity != null &&
 							System.Threading.Thread.CurrentPrincipal.Identity.Name != null)
 						{
@@ -973,7 +973,7 @@
 					}
 					catch (System.Security.SecurityException)
 					{
-						// This security exception will occur if the caller does not have 
+						// This security exception will occur if the caller does not have
 						// some undefined set of SecurityPermission flags.
 						LogLog.Debug(declaringType, "Security exception while trying to get current thread principal. Error Ignored. Empty identity name.");
 
@@ -998,13 +998,13 @@
 		/// </remarks>
 		public string Domain
 		{
-			get 
-			{ 
+			get
+			{
 				if (m_data.Domain == null  && this.m_cacheUpdatable)
 				{
 					m_data.Domain = SystemInfo.ApplicationFriendlyName;
 				}
-				return m_data.Domain; 
+				return m_data.Domain;
 			}
 		}
 
@@ -1036,8 +1036,8 @@
 		/// </remarks>
 		public PropertiesDictionary Properties
 		{
-			get 
-			{ 
+			get
+			{
 				// If we have cached properties then return that otherwise changes will be lost
 				if (m_data.Properties != null)
 				{
@@ -1048,7 +1048,7 @@
 				{
 					m_eventProperties = new PropertiesDictionary();
 				}
-				return m_eventProperties; 
+				return m_eventProperties;
 			}
 		}
 
@@ -1087,12 +1087,12 @@
 		/// </para>
 		/// <para>
 		/// The <see cref="M:FixVolatileData()"/> method must be called during the
-		/// <see cref="log4net.Appender.IAppender.DoAppend"/> method call if this event 
+		/// <see cref="log4net.Appender.IAppender.DoAppend"/> method call if this event
 		/// is to be used outside that method.
 		/// </para>
 		/// </remarks>
 #if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
-        [System.Security.SecurityCritical]
+		[System.Security.SecurityCritical]
 #else
 		[System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, SerializationFormatter=true)]
 #endif
@@ -1105,13 +1105,13 @@
 			info.AddValue("Level", m_data.Level);
 			info.AddValue("Message", m_data.Message);
 			info.AddValue("ThreadName", m_data.ThreadName);
-            // TODO: consider serializing UTC rather than local time.  Not implemented here because it
-            // would give an unexpected result if client and server have different versions of this class.
-            // info.AddValue("TimeStamp", m_data.TimeStampUtc);
+			// TODO: consider serializing UTC rather than local time.  Not implemented here because it
+			// would give an unexpected result if client and server have different versions of this class.
+			// info.AddValue("TimeStamp", m_data.TimeStampUtc);
 #pragma warning disable 618
 			info.AddValue("TimeStamp", m_data.TimeStamp);
 #pragma warning restore 618
-            info.AddValue("LocationInfo", m_data.LocationInfo);
+			info.AddValue("LocationInfo", m_data.LocationInfo);
 			info.AddValue("UserName", m_data.UserName);
 			info.AddValue("ExceptionString", m_data.ExceptionString);
 			info.AddValue("Properties", m_data.Properties);
@@ -1162,7 +1162,7 @@
 		}
 
 		/// <summary>
-		/// Returns this event's exception's rendered using the 
+		/// Returns this event's exception's rendered using the
 		/// <see cref="ILoggerRepository.RendererMap" />.
 		/// </summary>
 		/// <returns>
@@ -1174,13 +1174,13 @@
 		/// </para>
 		/// </remarks>
 		[Obsolete("Use GetExceptionString instead")]
-		public string GetExceptionStrRep() 
+		public string GetExceptionStrRep()
 		{
 			return GetExceptionString();
 		}
 
 		/// <summary>
-		/// Returns this event's exception's rendered using the 
+		/// Returns this event's exception's rendered using the
 		/// <see cref="ILoggerRepository.RendererMap" />.
 		/// </summary>
 		/// <returns>
@@ -1188,11 +1188,11 @@
 		/// </returns>
 		/// <remarks>
 		/// <para>
-		/// Returns this event's exception's rendered using the 
+		/// Returns this event's exception's rendered using the
 		/// <see cref="ILoggerRepository.RendererMap" />.
 		/// </para>
 		/// </remarks>
-		public string GetExceptionString() 
+		public string GetExceptionString()
 		{
 			if (m_data.ExceptionString == null  && this.m_cacheUpdatable)
 			{
@@ -1264,14 +1264,14 @@
 		/// </para>
 		/// <para>
 		/// The <paramref name="fastButLoose"/> param controls the data that
-		/// is fixed. Some of the data that can be fixed takes a long time to 
+		/// is fixed. Some of the data that can be fixed takes a long time to
 		/// generate, therefore if you do not require those settings to be fixed
 		/// they can be ignored by setting the <paramref name="fastButLoose"/> param
 		/// to <c>true</c>. This setting will ignore the <see cref="LocationInformation"/>
 		/// and <see cref="UserName"/> settings.
 		/// </para>
 		/// <para>
-		/// Set <paramref name="fastButLoose"/> to <c>false</c> to ensure that all 
+		/// Set <paramref name="fastButLoose"/> to <c>false</c> to ensure that all
 		/// settings are fixed.
 		/// </para>
 		/// </remarks>
@@ -1305,13 +1305,13 @@
 
 			//Unlock the cache so that new values can be stored
 			//This may not be ideal if we are no longer in the correct context
-			//and someone calls fix. 
+			//and someone calls fix.
 			m_cacheUpdatable=true;
 
 			// determine the flags that we are actually fixing
 			FixFlags updateFlags = (FixFlags)((flags ^ m_fixFlags) & flags);
 
-			if (updateFlags > 0) 
+			if (updateFlags > 0)
 			{
 				if ((updateFlags & FixFlags.Message) != 0)
 				{
@@ -1374,7 +1374,7 @@
 			}
 
 			// avoid warning CS0219
-			if (forceCreation != null) 
+			if (forceCreation != null)
 			{
 			}
 
@@ -1416,7 +1416,7 @@
 			compositeProperties.Add(eventProperties);
 
 			compositeProperties.Add(GlobalContext.Properties.GetReadOnlyProperties());
-                        m_compositeProperties = compositeProperties;
+						m_compositeProperties = compositeProperties;
 		}
 
 		private void CacheProperties()
@@ -1473,7 +1473,7 @@
 		///		<item>
 		/// 		<term>this events properties</term>
 		/// 		<description>
-		/// 		This event has <see cref="Properties"/> that can be set. These 
+		/// 		This event has <see cref="Properties"/> that can be set. These
 		/// 		properties are specific to this event only.
 		/// 		</description>
 		/// 	</item>
@@ -1487,7 +1487,7 @@
 		/// 	<item>
 		/// 		<term>the global properties</term>
 		/// 		<description>
-		/// 		The <see cref="GlobalContext.Properties"/> that are set globally. These 
+		/// 		The <see cref="GlobalContext.Properties"/> that are set globally. These
 		/// 		properties are shared by all the threads in the AppDomain.
 		/// 		</description>
 		/// 	</item>
@@ -1513,7 +1513,7 @@
 		/// <returns>the <see cref="PropertiesDictionary"/> containing all the properties</returns>
 		/// <remarks>
 		/// <para>
-		/// See <see cref="LookupProperty"/> for details of the composite properties 
+		/// See <see cref="LookupProperty"/> for details of the composite properties
 		/// stored by the event.
 		/// </para>
 		/// <para>
@@ -1554,7 +1554,7 @@
 		private PropertiesDictionary m_eventProperties;
 
 		/// <summary>
-		/// The fully qualified Type of the calling 
+		/// The fully qualified Type of the calling
 		/// logger class in the stack frame (i.e. the declaring type of the method).
 		/// </summary>
 		private readonly Type m_callerStackBoundaryDeclaringType;
diff --git a/src/Core/MethodItem.cs b/src/Core/MethodItem.cs
index b03b722..5f5f454 100644
--- a/src/Core/MethodItem.cs
+++ b/src/Core/MethodItem.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -28,7 +28,7 @@
 	/// provides method information without actually referencing a System.Reflection.MethodBase
 	/// as that would require that the containing assembly is loaded.
 	/// </summary>
-	/// 
+	///
 #if !NETCF
 	[Serializable]
 #endif
@@ -66,13 +66,13 @@
 			m_parameters = parameters;
 		}
 
-        /// <summary>
-        /// constructs a method item from a method base by determining the method name and its parameters.
-        /// </summary>
-        /// <param name="methodBase"></param>
+		/// <summary>
+		/// constructs a method item from a method base by determining the method name and its parameters.
+		/// </summary>
+		/// <param name="methodBase"></param>
 		public MethodItem(System.Reflection.MethodBase methodBase)
 			: this(methodBase.Name, GetMethodParameterNames(methodBase))
-        {
+		{
 		}
 
 		#endregion
@@ -102,16 +102,16 @@
 		#region Public Instance Properties
 
 		/// <summary>
-		/// Gets the method name of the caller making the logging 
+		/// Gets the method name of the caller making the logging
 		/// request.
 		/// </summary>
 		/// <value>
-		/// The method name of the caller making the logging 
+		/// The method name of the caller making the logging
 		/// request.
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// Gets the method name of the caller making the logging 
+		/// Gets the method name of the caller making the logging
 		/// request.
 		/// </para>
 		/// </remarks>
diff --git a/src/Core/SecurityContext.cs b/src/Core/SecurityContext.cs
index fecad2b..80eba4d 100644
--- a/src/Core/SecurityContext.cs
+++ b/src/Core/SecurityContext.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -44,7 +44,7 @@
 		/// <para>
 		/// Impersonate this security context. Further calls on the current
 		/// thread should now be made in the security context provided
-		/// by this object. When the <see cref="IDisposable"/> result 
+		/// by this object. When the <see cref="IDisposable"/> result
 		/// <see cref="IDisposable.Dispose"/> method is called the security
 		/// context of the thread should be reverted to the state it was in
 		/// before <see cref="Impersonate"/> was called.
diff --git a/src/Core/SecurityContextProvider.cs b/src/Core/SecurityContextProvider.cs
index f6e99e6..485c243 100644
--- a/src/Core/SecurityContextProvider.cs
+++ b/src/Core/SecurityContextProvider.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -44,7 +44,7 @@
 	/// This default behavior can be overridden by subclassing the <see cref="SecurityContextProvider"/>
 	/// and overriding the <see cref="CreateSecurityContext"/> method to return
 	/// the desired <see cref="SecurityContext"/> objects. The default provider
-	/// can be replaced by programmatically setting the value of the 
+	/// can be replaced by programmatically setting the value of the
 	/// <see cref="SecurityContextProvider.DefaultProvider"/> property.
 	/// </para>
 	/// <para>
diff --git a/src/Core/StackFrameItem.cs b/src/Core/StackFrameItem.cs
index 3f6c16b..3d24668 100644
--- a/src/Core/StackFrameItem.cs
+++ b/src/Core/StackFrameItem.cs
@@ -1,11 +1,11 @@
 #if !NETCF
 #region Apache License
 //
-// 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
@@ -25,28 +25,28 @@
 
 namespace log4net.Core
 {
-    /// <summary>
-    /// provides stack frame information without actually referencing a System.Diagnostics.StackFrame
-    /// as that would require that the containing assembly is loaded.
-    /// </summary>
-    /// 
-    [Serializable]
-    public class StackFrameItem
-    {
-        #region Public Instance Constructors
+	/// <summary>
+	/// provides stack frame information without actually referencing a System.Diagnostics.StackFrame
+	/// as that would require that the containing assembly is loaded.
+	/// </summary>
+	///
+	[Serializable]
+	public class StackFrameItem
+	{
+		#region Public Instance Constructors
 
-        /// <summary>
-        /// returns a stack frame item from a stack frame. This 
-        /// </summary>
-        /// <param name="frame"></param>
-        /// <returns></returns>
-        public StackFrameItem(StackFrame frame)
-        {
-            // set default values
-            m_lineNumber = NA;
-            m_fileName = NA;
-            m_method = new MethodItem();
-            m_className = NA;
+		/// <summary>
+		/// returns a stack frame item from a stack frame. This
+		/// </summary>
+		/// <param name="frame"></param>
+		/// <returns></returns>
+		public StackFrameItem(StackFrame frame)
+		{
+			// set default values
+			m_lineNumber = NA;
+			m_fileName = NA;
+			m_method = new MethodItem();
+			m_className = NA;
 
 			try
 			{
@@ -67,130 +67,130 @@
 				LogLog.Error(declaringType, "An exception ocurred while retreiving stack frame information.", ex);
 			}
 
-            // set full info
-            m_fullInfo = m_className + '.' + m_method.Name + '(' + m_fileName + ':' + m_lineNumber + ')';
-        }
+			// set full info
+			m_fullInfo = m_className + '.' + m_method.Name + '(' + m_fileName + ':' + m_lineNumber + ')';
+		}
 
-        #endregion
+		#endregion
 
-        #region Public Instance Properties
+		#region Public Instance Properties
 
-        /// <summary>
-        /// Gets the fully qualified class name of the caller making the logging 
-        /// request.
-        /// </summary>
-        /// <value>
-        /// The fully qualified class name of the caller making the logging 
-        /// request.
-        /// </value>
-        /// <remarks>
-        /// <para>
-        /// Gets the fully qualified class name of the caller making the logging 
-        /// request.
-        /// </para>
-        /// </remarks>
-        public string ClassName
-        {
-            get { return m_className; }
-        }
+		/// <summary>
+		/// Gets the fully qualified class name of the caller making the logging
+		/// request.
+		/// </summary>
+		/// <value>
+		/// The fully qualified class name of the caller making the logging
+		/// request.
+		/// </value>
+		/// <remarks>
+		/// <para>
+		/// Gets the fully qualified class name of the caller making the logging
+		/// request.
+		/// </para>
+		/// </remarks>
+		public string ClassName
+		{
+			get { return m_className; }
+		}
 
-        /// <summary>
-        /// Gets the file name of the caller.
-        /// </summary>
-        /// <value>
-        /// The file name of the caller.
-        /// </value>
-        /// <remarks>
-        /// <para>
-        /// Gets the file name of the caller.
-        /// </para>
-        /// </remarks>
-        public string FileName
-        {
-            get { return m_fileName; }
-        }
+		/// <summary>
+		/// Gets the file name of the caller.
+		/// </summary>
+		/// <value>
+		/// The file name of the caller.
+		/// </value>
+		/// <remarks>
+		/// <para>
+		/// Gets the file name of the caller.
+		/// </para>
+		/// </remarks>
+		public string FileName
+		{
+			get { return m_fileName; }
+		}
 
-        /// <summary>
-        /// Gets the line number of the caller.
-        /// </summary>
-        /// <value>
-        /// The line number of the caller.
-        /// </value>
-        /// <remarks>
-        /// <para>
-        /// Gets the line number of the caller.
-        /// </para>
-        /// </remarks>
-        public string LineNumber
-        {
-            get { return m_lineNumber; }
-        }
+		/// <summary>
+		/// Gets the line number of the caller.
+		/// </summary>
+		/// <value>
+		/// The line number of the caller.
+		/// </value>
+		/// <remarks>
+		/// <para>
+		/// Gets the line number of the caller.
+		/// </para>
+		/// </remarks>
+		public string LineNumber
+		{
+			get { return m_lineNumber; }
+		}
 
-        /// <summary>
-        /// Gets the method name of the caller.
-        /// </summary>
-        /// <value>
-        /// The method name of the caller.
-        /// </value>
-        /// <remarks>
-        /// <para>
-        /// Gets the method name of the caller.
-        /// </para>
-        /// </remarks>
-        public MethodItem Method
-        {
-            get { return m_method; }
-        }
+		/// <summary>
+		/// Gets the method name of the caller.
+		/// </summary>
+		/// <value>
+		/// The method name of the caller.
+		/// </value>
+		/// <remarks>
+		/// <para>
+		/// Gets the method name of the caller.
+		/// </para>
+		/// </remarks>
+		public MethodItem Method
+		{
+			get { return m_method; }
+		}
 
-        /// <summary>
-        /// Gets all available caller information
-        /// </summary>
-        /// <value>
-        /// All available caller information, in the format
-        /// <c>fully.qualified.classname.of.caller.methodName(Filename:line)</c>
-        /// </value>
-        /// <remarks>
-        /// <para>
-        /// Gets all available caller information, in the format
-        /// <c>fully.qualified.classname.of.caller.methodName(Filename:line)</c>
-        /// </para>
-        /// </remarks>
-        public string FullInfo
-        {
-            get { return m_fullInfo; }
-        }
+		/// <summary>
+		/// Gets all available caller information
+		/// </summary>
+		/// <value>
+		/// All available caller information, in the format
+		/// <c>fully.qualified.classname.of.caller.methodName(Filename:line)</c>
+		/// </value>
+		/// <remarks>
+		/// <para>
+		/// Gets all available caller information, in the format
+		/// <c>fully.qualified.classname.of.caller.methodName(Filename:line)</c>
+		/// </para>
+		/// </remarks>
+		public string FullInfo
+		{
+			get { return m_fullInfo; }
+		}
 
-        #endregion Public Instance Properties
+		#endregion Public Instance Properties
 
-        #region Private Instance Fields
+		#region Private Instance Fields
 
-        private readonly string m_lineNumber;
-        private readonly string m_fileName;
-        private readonly string m_className;
-        private readonly string m_fullInfo;
+		private readonly string m_lineNumber;
+		private readonly string m_fileName;
+		private readonly string m_className;
+		private readonly string m_fullInfo;
 		private readonly MethodItem m_method;
 
-        #endregion
+		#endregion
 
-        #region Private Static Fields
+		#region Private Static Fields
 
-        /// <summary>
-        /// The fully qualified type of the StackFrameItem class.
-        /// </summary>
-        /// <remarks>
-        /// Used by the internal logger to record the Type of the
-        /// log message.
-        /// </remarks>
-        private readonly static Type declaringType = typeof(StackFrameItem);
+		/// <summary>
+		/// The fully qualified type of the StackFrameItem class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(StackFrameItem);
 
-        /// <summary>
-        /// When location information is not available the constant
-        /// <c>NA</c> is returned. Current value of this string
-        /// constant is <b>?</b>.
-        /// </summary>
-        private const string NA = "?";
+		/// <summary>
+		/// When location information is not available the constant
+		/// <c>NA</c> is returned. Current value of this string
+		/// constant is <b>?</b>.
+		/// </summary>
+		private const string NA = "?";
 
-        #endregion Private Static Fields
-    }
+		#endregion Private Static Fields
+	}
 }
 #endif
diff --git a/src/Core/TimeEvaluator.cs b/src/Core/TimeEvaluator.cs
index 3067f56..8020680 100644
--- a/src/Core/TimeEvaluator.cs
+++ b/src/Core/TimeEvaluator.cs
@@ -1,10 +1,10 @@
 #region Copyright & License
 //
-// 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
@@ -21,128 +21,128 @@
 
 namespace log4net.Core
 {
-    /// <summary>
-    /// An evaluator that triggers after specified number of seconds.
-    /// </summary>
-    /// <remarks>
-    /// <para>
-    /// This evaluator will trigger if the specified time period 
-    /// <see cref="Interval"/> has passed since last check.
-    /// </para>
-    /// </remarks>
-    /// <author>Robert Sevcik</author>
-    public class TimeEvaluator : ITriggeringEventEvaluator
-    {
-        /// <summary>
-        /// The time threshold for triggering in seconds. Zero means it won't trigger at all.
-        /// </summary>
-        private int m_interval;
+	/// <summary>
+	/// An evaluator that triggers after specified number of seconds.
+	/// </summary>
+	/// <remarks>
+	/// <para>
+	/// This evaluator will trigger if the specified time period
+	/// <see cref="Interval"/> has passed since last check.
+	/// </para>
+	/// </remarks>
+	/// <author>Robert Sevcik</author>
+	public class TimeEvaluator : ITriggeringEventEvaluator
+	{
+		/// <summary>
+		/// The time threshold for triggering in seconds. Zero means it won't trigger at all.
+		/// </summary>
+		private int m_interval;
 
-        /// <summary>
-        /// The UTC time of last check. This gets updated when the object is created and when the evaluator triggers.
-        /// </summary>
-        private DateTime m_lastTimeUtc;
+		/// <summary>
+		/// The UTC time of last check. This gets updated when the object is created and when the evaluator triggers.
+		/// </summary>
+		private DateTime m_lastTimeUtc;
 
-        /// <summary>
-        /// The default time threshold for triggering in seconds. Zero means it won't trigger at all.
-        /// </summary>
-        const int DEFAULT_INTERVAL = 0;
+		/// <summary>
+		/// The default time threshold for triggering in seconds. Zero means it won't trigger at all.
+		/// </summary>
+		const int DEFAULT_INTERVAL = 0;
 
-        /// <summary>
-        /// Create a new evaluator using the <see cref="DEFAULT_INTERVAL"/> time threshold in seconds.
-        /// </summary>
-        /// <remarks>
-        /// <para>
-        /// Create a new evaluator using the <see cref="DEFAULT_INTERVAL"/> time threshold in seconds.
-        /// </para>
-        /// <para>
-        /// This evaluator will trigger if the specified time period 
-        /// <see cref="Interval"/> has passed since last check.
-        /// </para>
-        /// </remarks>
-        public TimeEvaluator()
-            : this(DEFAULT_INTERVAL)
-        {
-        }
+		/// <summary>
+		/// Create a new evaluator using the <see cref="DEFAULT_INTERVAL"/> time threshold in seconds.
+		/// </summary>
+		/// <remarks>
+		/// <para>
+		/// Create a new evaluator using the <see cref="DEFAULT_INTERVAL"/> time threshold in seconds.
+		/// </para>
+		/// <para>
+		/// This evaluator will trigger if the specified time period
+		/// <see cref="Interval"/> has passed since last check.
+		/// </para>
+		/// </remarks>
+		public TimeEvaluator()
+			: this(DEFAULT_INTERVAL)
+		{
+		}
 
-        /// <summary>
-        /// Create a new evaluator using the specified time threshold in seconds.
-        /// </summary>
-        /// <param name="interval">
-        /// The time threshold in seconds to trigger after.
-        /// Zero means it won't trigger at all.
-        /// </param>
-        /// <remarks>
-        /// <para>
-        /// Create a new evaluator using the specified time threshold in seconds.
-        /// </para>
-        /// <para>
-        /// This evaluator will trigger if the specified time period 
-        /// <see cref="Interval"/> has passed since last check.
-        /// </para>
-        /// </remarks>
-        public TimeEvaluator(int interval)
-        {
-            m_interval = interval;
-            m_lastTimeUtc = DateTime.UtcNow;
-        }
+		/// <summary>
+		/// Create a new evaluator using the specified time threshold in seconds.
+		/// </summary>
+		/// <param name="interval">
+		/// The time threshold in seconds to trigger after.
+		/// Zero means it won't trigger at all.
+		/// </param>
+		/// <remarks>
+		/// <para>
+		/// Create a new evaluator using the specified time threshold in seconds.
+		/// </para>
+		/// <para>
+		/// This evaluator will trigger if the specified time period
+		/// <see cref="Interval"/> has passed since last check.
+		/// </para>
+		/// </remarks>
+		public TimeEvaluator(int interval)
+		{
+			m_interval = interval;
+			m_lastTimeUtc = DateTime.UtcNow;
+		}
 
-        /// <summary>
-        /// The time threshold in seconds to trigger after
-        /// </summary>
-        /// <value>
-        /// The time threshold in seconds to trigger after.
-        /// Zero means it won't trigger at all.
-        /// </value>
-        /// <remarks>
-        /// <para>
-        /// This evaluator will trigger if the specified time period 
-        /// <see cref="Interval"/> has passed since last check.
-        /// </para>
-        /// </remarks>
-        public int Interval
-        {
-            get { return m_interval; }
-            set { m_interval = value; }
-        }
+		/// <summary>
+		/// The time threshold in seconds to trigger after
+		/// </summary>
+		/// <value>
+		/// The time threshold in seconds to trigger after.
+		/// Zero means it won't trigger at all.
+		/// </value>
+		/// <remarks>
+		/// <para>
+		/// This evaluator will trigger if the specified time period
+		/// <see cref="Interval"/> has passed since last check.
+		/// </para>
+		/// </remarks>
+		public int Interval
+		{
+			get { return m_interval; }
+			set { m_interval = value; }
+		}
 
-        /// <summary>
-        /// Is this <paramref name="loggingEvent"/> the triggering event?
-        /// </summary>
-        /// <param name="loggingEvent">The event to check</param>
-        /// <returns>This method returns <c>true</c>, if the specified time period 
-        /// <see cref="Interval"/> has passed since last check.. 
-        /// Otherwise it returns <c>false</c></returns>
-        /// <remarks>
-        /// <para>
-        /// This evaluator will trigger if the specified time period 
-        /// <see cref="Interval"/> has passed since last check.
-        /// </para>
-        /// </remarks>
-        public bool IsTriggeringEvent(LoggingEvent loggingEvent)
-        {
-            if (loggingEvent == null)
-            {
-                throw new ArgumentNullException("loggingEvent");
-            }
+		/// <summary>
+		/// Is this <paramref name="loggingEvent"/> the triggering event?
+		/// </summary>
+		/// <param name="loggingEvent">The event to check</param>
+		/// <returns>This method returns <c>true</c>, if the specified time period
+		/// <see cref="Interval"/> has passed since last check..
+		/// Otherwise it returns <c>false</c></returns>
+		/// <remarks>
+		/// <para>
+		/// This evaluator will trigger if the specified time period
+		/// <see cref="Interval"/> has passed since last check.
+		/// </para>
+		/// </remarks>
+		public bool IsTriggeringEvent(LoggingEvent loggingEvent)
+		{
+			if (loggingEvent == null)
+			{
+				throw new ArgumentNullException("loggingEvent");
+			}
 
-            // disable the evaluator if threshold is zero
-            if (m_interval == 0) return false;
+			// disable the evaluator if threshold is zero
+			if (m_interval == 0) return false;
 
-            lock (this) // avoid triggering multiple times
-            {
-                TimeSpan passed = DateTime.UtcNow.Subtract(m_lastTimeUtc);
+			lock (this) // avoid triggering multiple times
+			{
+				TimeSpan passed = DateTime.UtcNow.Subtract(m_lastTimeUtc);
 
-                if (passed.TotalSeconds > m_interval)
-                {
-                    m_lastTimeUtc = DateTime.UtcNow;
-                    return true;
-                }
-                else
-                {
-                    return false;
-                }
-            }
-        }
-    }
+				if (passed.TotalSeconds > m_interval)
+				{
+					m_lastTimeUtc = DateTime.UtcNow;
+					return true;
+				}
+				else
+				{
+					return false;
+				}
+			}
+		}
+	}
 }
diff --git a/src/Core/WrapperMap.cs b/src/Core/WrapperMap.cs
index a43a8b8..920390f 100644
--- a/src/Core/WrapperMap.cs
+++ b/src/Core/WrapperMap.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -51,7 +51,7 @@
 	/// <remarks>
 	/// <para>
 	/// This class maintains a mapping between <see cref="ILogger"/> objects and
-	/// <see cref="ILoggerWrapper"/> objects. Use the <see cref="GetWrapper"/> method to 
+	/// <see cref="ILoggerWrapper"/> objects. Use the <see cref="GetWrapper"/> method to
 	/// lookup the <see cref="ILoggerWrapper"/> for the specified <see cref="ILogger"/>.
 	/// </para>
 	/// <para>
@@ -74,11 +74,11 @@
 		/// <param name="createWrapperHandler">The handler to use to create the wrapper objects.</param>
 		/// <remarks>
 		/// <para>
-		/// Initializes a new instance of the <see cref="WrapperMap" /> class with 
+		/// Initializes a new instance of the <see cref="WrapperMap" /> class with
 		/// the specified handler to create the wrapper objects.
 		/// </para>
 		/// </remarks>
-		public WrapperMap(WrapperCreationHandler createWrapperHandler) 
+		public WrapperMap(WrapperCreationHandler createWrapperHandler)
 		{
 			m_createWrapperHandler = createWrapperHandler;
 
@@ -139,7 +139,7 @@
 
 					// Create a new wrapper wrapping the logger
 					wrapperObject = CreateNewWrapperObject(logger);
-					
+
 					// Store wrapper logger in map
 					wrappersMap[logger] = wrapperObject;
 				}
@@ -165,7 +165,7 @@
 		/// value being the corresponding <see cref="ILoggerWrapper"/>.
 		/// </para>
 		/// </remarks>
-		protected Hashtable Repositories 
+		protected Hashtable Repositories
 		{
 			get { return this.m_repositories; }
 		}
@@ -253,7 +253,7 @@
 		/// Internal reference to the delegate used to register for repository shutdown events.
 		/// </summary>
 		private readonly LoggerRepositoryShutdownEventHandler m_shutdownHandler;
- 
+
 		#endregion Private Instance Variables
 	}
 }
diff --git a/src/DateFormatter/AbsoluteTimeDateFormatter.cs b/src/DateFormatter/AbsoluteTimeDateFormatter.cs
index 1174107..9d6cf6a 100644
--- a/src/DateFormatter/AbsoluteTimeDateFormatter.cs
+++ b/src/DateFormatter/AbsoluteTimeDateFormatter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -54,7 +54,7 @@
 		virtual protected void FormatDateWithoutMillis(DateTime dateToFormat, StringBuilder buffer)
 		{
 			int hour = dateToFormat.Hour;
-			if (hour < 10) 
+			if (hour < 10)
 			{
 				buffer.Append('0');
 			}
@@ -62,15 +62,15 @@
 			buffer.Append(':');
 
 			int mins = dateToFormat.Minute;
-			if (mins < 10) 
+			if (mins < 10)
 			{
 				buffer.Append('0');
 			}
 			buffer.Append(mins);
 			buffer.Append(':');
-	
+
 			int secs = dateToFormat.Second;
-			if (secs < 10) 
+			if (secs < 10)
 			{
 				buffer.Append('0');
 			}
@@ -101,36 +101,36 @@
 		/// </remarks>
 		virtual public void FormatDate(DateTime dateToFormat, TextWriter writer)
 		{
-                    lock (s_lastTimeStrings)
-		    {
+					lock (s_lastTimeStrings)
+			{
 			// Calculate the current time precise only to the second
 			long currentTimeToTheSecond = (dateToFormat.Ticks - (dateToFormat.Ticks % TimeSpan.TicksPerSecond));
 
-                        string timeString = null;
+						string timeString = null;
 			// Compare this time with the stored last time
 			// If we are in the same second then append
 			// the previously calculated time string
-                        if (s_lastTimeToTheSecond != currentTimeToTheSecond)
-                        {
-                            s_lastTimeStrings.Clear();
-                        }
-                        else
-                        {
-                            timeString = (string) s_lastTimeStrings[GetType()];
-                        }
+						if (s_lastTimeToTheSecond != currentTimeToTheSecond)
+						{
+							s_lastTimeStrings.Clear();
+						}
+						else
+						{
+							timeString = (string) s_lastTimeStrings[GetType()];
+						}
 
-                        if (timeString == null)
-                        {
+						if (timeString == null)
+						{
 				// lock so that only one thread can use the buffer and
 				// update the s_lastTimeToTheSecond and s_lastTimeStrings
 
 				// PERF: Try removing this lock and using a new StringBuilder each time
 				lock(s_lastTimeBuf)
 				{
-                                        timeString = (string) s_lastTimeStrings[GetType()];
+										timeString = (string) s_lastTimeStrings[GetType()];
 
-                                        if (timeString == null)
-                                        {
+										if (timeString == null)
+										{
 						// We are in a new second.
 						s_lastTimeBuf.Length = 0;
 
@@ -138,7 +138,7 @@
 						FormatDateWithoutMillis(dateToFormat, s_lastTimeBuf);
 
 						// Render the string buffer to a string
-                                                timeString = s_lastTimeBuf.ToString();
+												timeString = s_lastTimeBuf.ToString();
 
 #if NET_1_1
 						// Ensure that the above string is written into the variable NOW on all threads.
@@ -146,26 +146,26 @@
 						System.Threading.Thread.MemoryBarrier();
 #endif
 						// Store the time as a string (we only have to do this once per second)
-                                                s_lastTimeStrings[GetType()] = timeString;
+												s_lastTimeStrings[GetType()] = timeString;
 						s_lastTimeToTheSecond = currentTimeToTheSecond;
 					}
 				}
 			}
 			writer.Write(timeString);
-	
+
 			// Append the current millisecond info
 			writer.Write(',');
 			int millis = dateToFormat.Millisecond;
-			if (millis < 100) 
+			if (millis < 100)
 			{
 				writer.Write('0');
 			}
-			if (millis < 10) 
+			if (millis < 10)
 			{
 				writer.Write('0');
 			}
 			writer.Write(millis);
-                    }
+					}
 		}
 
 		#endregion Implementation of IDateFormatter
diff --git a/src/DateFormatter/DateTimeDateFormatter.cs b/src/DateFormatter/DateTimeDateFormatter.cs
index 03dcca9..dbc7eb1 100644
--- a/src/DateFormatter/DateTimeDateFormatter.cs
+++ b/src/DateFormatter/DateTimeDateFormatter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -28,8 +28,8 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// Formats a <see cref="DateTime"/> in the format 
-	/// <c>"dd MMM yyyy HH:mm:ss,fff"</c> for example, 
+	/// Formats a <see cref="DateTime"/> in the format
+	/// <c>"dd MMM yyyy HH:mm:ss,fff"</c> for example,
 	/// <c>"06 Nov 1994 15:49:37,459"</c>.
 	/// </para>
 	/// </remarks>
@@ -75,15 +75,15 @@
 		override protected void FormatDateWithoutMillis(DateTime dateToFormat, StringBuilder buffer)
 		{
 			int day = dateToFormat.Day;
-			if (day < 10) 
+			if (day < 10)
 			{
 				buffer.Append('0');
 			}
 			buffer.Append(day);
-			buffer.Append(' ');		
+			buffer.Append(' ');
 
 			buffer.Append(m_dateTimeFormatInfo.GetAbbreviatedMonthName(dateToFormat.Month));
-			buffer.Append(' ');	
+			buffer.Append(' ');
 
 			buffer.Append(dateToFormat.Year);
 			buffer.Append(' ');
diff --git a/src/DateFormatter/IDateFormatter.cs b/src/DateFormatter/IDateFormatter.cs
index f5074ee..d80dba1 100644
--- a/src/DateFormatter/IDateFormatter.cs
+++ b/src/DateFormatter/IDateFormatter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/DateFormatter/Iso8601DateFormatter.cs b/src/DateFormatter/Iso8601DateFormatter.cs
index a7e88d5..b152d9d 100644
--- a/src/DateFormatter/Iso8601DateFormatter.cs
+++ b/src/DateFormatter/Iso8601DateFormatter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -80,7 +80,7 @@
 			buffer.Append('-');
 
 			int day = dateToFormat.Day;
-			if (day < 10) 
+			if (day < 10)
 			{
 				buffer.Append('0');
 			}
diff --git a/src/DateFormatter/SimpleDateFormatter.cs b/src/DateFormatter/SimpleDateFormatter.cs
index c112ca1..e6fefdf 100644
--- a/src/DateFormatter/SimpleDateFormatter.cs
+++ b/src/DateFormatter/SimpleDateFormatter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -42,7 +42,7 @@
 		/// <param name="format">The format string.</param>
 		/// <remarks>
 		/// <para>
-		/// Initializes a new instance of the <see cref="SimpleDateFormatter" /> class 
+		/// Initializes a new instance of the <see cref="SimpleDateFormatter" /> class
 		/// with the specified format string.
 		/// </para>
 		/// <para>
diff --git a/src/Filter/DenyAllFilter.cs b/src/Filter/DenyAllFilter.cs
index e17a16f..2c3b169 100644
--- a/src/Filter/DenyAllFilter.cs
+++ b/src/Filter/DenyAllFilter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -24,7 +24,7 @@
 namespace log4net.Filter
 {
 	/// <summary>
-	/// This filter drops all <see cref="LoggingEvent"/>. 
+	/// This filter drops all <see cref="LoggingEvent"/>.
 	/// </summary>
 	/// <remarks>
 	/// <para>
@@ -65,7 +65,7 @@
 		/// as any further filters will be ignored!
 		/// </para>
 		/// </remarks>
-		override public FilterDecision Decide(LoggingEvent loggingEvent) 
+		override public FilterDecision Decide(LoggingEvent loggingEvent)
 		{
 			return FilterDecision.Deny;
 		}
diff --git a/src/Filter/FilterDecision.cs b/src/Filter/FilterDecision.cs
index 1b5967b..975ba2a 100644
--- a/src/Filter/FilterDecision.cs
+++ b/src/Filter/FilterDecision.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -34,19 +34,19 @@
 	public enum FilterDecision : int
 	{
 		/// <summary>
-		/// The log event must be dropped immediately without 
+		/// The log event must be dropped immediately without
 		/// consulting with the remaining filters, if any, in the chain.
 		/// </summary>
 		Deny = -1,
-  
+
 		/// <summary>
-		/// This filter is neutral with respect to the log event. 
+		/// This filter is neutral with respect to the log event.
 		/// The remaining filters, if any, should be consulted for a final decision.
 		/// </summary>
 		Neutral = 0,
 
 		/// <summary>
-		/// The log event must be logged immediately without 
+		/// The log event must be logged immediately without
 		/// consulting with the remaining filters, if any, in the chain.
 		/// </summary>
 		Accept = 1,
diff --git a/src/Filter/FilterSkeleton.cs b/src/Filter/FilterSkeleton.cs
index 9cc24d8..2a1b918 100644
--- a/src/Filter/FilterSkeleton.cs
+++ b/src/Filter/FilterSkeleton.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -28,7 +28,7 @@
 	/// <remarks>
 	/// <para>
 	/// Users should extend this class to implement customized logging
-	/// event filtering. Note that <see cref="log4net.Repository.Hierarchy.Logger"/> and 
+	/// event filtering. Note that <see cref="log4net.Repository.Hierarchy.Logger"/> and
 	/// <see cref="log4net.Appender.AppenderSkeleton"/>, the parent class of all standard
 	/// appenders, have built-in filtering rules. It is suggested that you
 	/// first use and understand the built-in rules before rushing to write
@@ -37,16 +37,16 @@
 	/// <para>
 	/// This abstract class assumes and also imposes that filters be
 	/// organized in a linear chain. The <see cref="Decide"/>
-	/// method of each filter is called sequentially, in the order of their 
+	/// method of each filter is called sequentially, in the order of their
 	/// addition to the chain.
 	/// </para>
 	/// <para>
 	/// The <see cref="Decide"/> method must return one
-	/// of the integer constants <see cref="FilterDecision.Deny"/>, 
+	/// of the integer constants <see cref="FilterDecision.Deny"/>,
 	/// <see cref="FilterDecision.Neutral"/> or <see cref="FilterDecision.Accept"/>.
 	/// </para>
 	/// <para>
-	/// If the value <see cref="FilterDecision.Deny"/> is returned, then the log event is dropped 
+	/// If the value <see cref="FilterDecision.Deny"/> is returned, then the log event is dropped
 	/// immediately without consulting with the remaining filters.
 	/// </para>
 	/// <para>
@@ -90,21 +90,21 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// <para>
-		/// Typically filter's options become active immediately on set, 
-		/// however this method must still be called. 
+		/// Typically filter's options become active immediately on set,
+		/// however this method must still be called.
 		/// </para>
 		/// </remarks>
-		virtual public void ActivateOptions() 
+		virtual public void ActivateOptions()
 		{
 		}
 
@@ -140,7 +140,7 @@
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// Filters are typically composed into chains. This property allows the next filter in 
+		/// Filters are typically composed into chains. This property allows the next filter in
 		/// the chain to be accessed.
 		/// </para>
 		/// </remarks>
diff --git a/src/Filter/IFilter.cs b/src/Filter/IFilter.cs
index 8c597a7..402ab67 100644
--- a/src/Filter/IFilter.cs
+++ b/src/Filter/IFilter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -29,7 +29,7 @@
 	/// <remarks>
 	/// <para>
 	/// Users should implement this interface to implement customized logging
-	/// event filtering. Note that <see cref="log4net.Repository.Hierarchy.Logger"/> and 
+	/// event filtering. Note that <see cref="log4net.Repository.Hierarchy.Logger"/> and
 	/// <see cref="log4net.Appender.AppenderSkeleton"/>, the parent class of all standard
 	/// appenders, have built-in filtering rules. It is suggested that you
 	/// first use and understand the built-in rules before rushing to write
@@ -38,16 +38,16 @@
 	/// <para>
 	/// This abstract class assumes and also imposes that filters be
 	/// organized in a linear chain. The <see cref="Decide"/>
-	/// method of each filter is called sequentially, in the order of their 
+	/// method of each filter is called sequentially, in the order of their
 	/// addition to the chain.
 	/// </para>
 	/// <para>
 	/// The <see cref="Decide"/> method must return one
-	/// of the integer constants <see cref="FilterDecision.Deny"/>, 
+	/// of the integer constants <see cref="FilterDecision.Deny"/>,
 	/// <see cref="FilterDecision.Neutral"/> or <see cref="FilterDecision.Accept"/>.
 	/// </para>
 	/// <para>
-	/// If the value <see cref="FilterDecision.Deny"/> is returned, then the log event is dropped 
+	/// If the value <see cref="FilterDecision.Deny"/> is returned, then the log event is dropped
 	/// immediately without consulting with the remaining filters.
 	/// </para>
 	/// <para>
@@ -93,7 +93,7 @@
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// Filters are typically composed into chains. This property allows the next filter in 
+		/// Filters are typically composed into chains. This property allows the next filter in
 		/// the chain to be accessed.
 		/// </para>
 		/// </remarks>
diff --git a/src/Filter/LevelMatchFilter.cs b/src/Filter/LevelMatchFilter.cs
index 2d3465a..ed5a8d5 100644
--- a/src/Filter/LevelMatchFilter.cs
+++ b/src/Filter/LevelMatchFilter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -32,10 +32,10 @@
 	/// <para>
 	/// The filter admits two options <see cref="LevelToMatch"/> and
 	/// <see cref="AcceptOnMatch"/>. If there is an exact match between the value
-	/// of the <see cref="LevelToMatch"/> option and the <see cref="Level"/> of the 
-	/// <see cref="LoggingEvent"/>, then the <see cref="Decide"/> method returns <see cref="FilterDecision.Accept"/> in 
+	/// of the <see cref="LevelToMatch"/> option and the <see cref="Level"/> of the
+	/// <see cref="LoggingEvent"/>, then the <see cref="Decide"/> method returns <see cref="FilterDecision.Accept"/> in
 	/// case the <see cref="AcceptOnMatch"/> option value is set
-	/// to <c>true</c>, if it is <c>false</c> then 
+	/// to <c>true</c>, if it is <c>false</c> then
 	/// <see cref="FilterDecision.Deny"/> is returned. If the <see cref="Level"/> does not match then
 	/// the result will be <see cref="FilterDecision.Neutral"/>.
 	/// </para>
@@ -76,7 +76,7 @@
 		/// <para>
 		/// The <see cref="AcceptOnMatch"/> property is a flag that determines
 		/// the behavior when a matching <see cref="Level"/> is found. If the
-		/// flag is set to true then the filter will <see cref="FilterDecision.Accept"/> the 
+		/// flag is set to true then the filter will <see cref="FilterDecision.Accept"/> the
 		/// logging event, otherwise it will <see cref="FilterDecision.Deny"/> the event.
 		/// </para>
 		/// <para>
@@ -94,7 +94,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// The level that this filter will attempt to match against the 
+		/// The level that this filter will attempt to match against the
 		/// <see cref="LoggingEvent"/> level. If a match is found then
 		/// the result depends on the value of <see cref="AcceptOnMatch"/>.
 		/// </para>
@@ -122,14 +122,14 @@
 		/// the result will be <see cref="FilterDecision.Neutral"/>.
 		/// </para>
 		/// </remarks>
-		override public FilterDecision Decide(LoggingEvent loggingEvent) 
+		override public FilterDecision Decide(LoggingEvent loggingEvent)
 		{
 			if (loggingEvent == null)
 			{
 				throw new ArgumentNullException("loggingEvent");
 			}
 
-			if (m_levelToMatch != null && m_levelToMatch == loggingEvent.Level) 
+			if (m_levelToMatch != null && m_levelToMatch == loggingEvent.Level)
 			{
 				// Found match
 				return m_acceptOnMatch ? FilterDecision.Accept : FilterDecision.Deny;
diff --git a/src/Filter/LevelRangeFilter.cs b/src/Filter/LevelRangeFilter.cs
index 9afc03a..6e6f86d 100644
--- a/src/Filter/LevelRangeFilter.cs
+++ b/src/Filter/LevelRangeFilter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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,8 +33,8 @@
 	/// The filter admits three options <see cref="LevelMin"/> and <see cref="LevelMax"/>
 	/// that determine the range of priorities that are matched, and
 	/// <see cref="AcceptOnMatch"/>. If there is a match between the range
-	/// of priorities and the <see cref="Level"/> of the <see cref="LoggingEvent"/>, then the 
-	/// <see cref="Decide"/> method returns <see cref="FilterDecision.Accept"/> in case the <see cref="AcceptOnMatch"/> 
+	/// of priorities and the <see cref="Level"/> of the <see cref="LoggingEvent"/>, then the
+	/// <see cref="Decide"/> method returns <see cref="FilterDecision.Accept"/> in case the <see cref="AcceptOnMatch"/>
 	/// option value is set to <c>true</c>, if it is <c>false</c>
 	/// then <see cref="FilterDecision.Deny"/> is returned. If there is no match, <see cref="FilterDecision.Deny"/> is returned.
 	/// </para>
@@ -80,7 +80,7 @@
 		/// <para>
 		/// The <see cref="AcceptOnMatch"/> property is a flag that determines
 		/// the behavior when a matching <see cref="Level"/> is found. If the
-		/// flag is set to true then the filter will <see cref="FilterDecision.Accept"/> the 
+		/// flag is set to true then the filter will <see cref="FilterDecision.Accept"/> the
 		/// logging event, otherwise it will <see cref="FilterDecision.Neutral"/> the event.
 		/// </para>
 		/// <para>
@@ -98,7 +98,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// The minimum level that this filter will attempt to match against the 
+		/// The minimum level that this filter will attempt to match against the
 		/// <see cref="LoggingEvent"/> level. If a match is found then
 		/// the result depends on the value of <see cref="AcceptOnMatch"/>.
 		/// </para>
@@ -114,7 +114,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// The maximum level that this filter will attempt to match against the 
+		/// The maximum level that this filter will attempt to match against the
 		/// <see cref="LoggingEvent"/> level. If a match is found then
 		/// the result depends on the value of <see cref="AcceptOnMatch"/>.
 		/// </para>
@@ -142,38 +142,38 @@
 		/// <see cref="FilterDecision.Neutral"/> is returned.
 		/// </para>
 		/// </remarks>
-		override public FilterDecision Decide(LoggingEvent loggingEvent) 
+		override public FilterDecision Decide(LoggingEvent loggingEvent)
 		{
 			if (loggingEvent == null)
 			{
 				throw new ArgumentNullException("loggingEvent");
 			}
 
-			if (m_levelMin != null) 
+			if (m_levelMin != null)
 			{
-				if (loggingEvent.Level < m_levelMin) 
+				if (loggingEvent.Level < m_levelMin)
 				{
 					// level of event is less than minimum
 					return FilterDecision.Deny;
 				}
 			}
 
-			if (m_levelMax != null) 
+			if (m_levelMax != null)
 			{
-				if (loggingEvent.Level > m_levelMax) 
+				if (loggingEvent.Level > m_levelMax)
 				{
 					// level of event is greater than maximum
 					return FilterDecision.Deny;
 				}
 			}
 
-			if (m_acceptOnMatch) 
+			if (m_acceptOnMatch)
 			{
 				// this filter set up to bypass later filters and always return
 				// accept if level in range
 				return FilterDecision.Accept;
 			}
-			else 
+			else
 			{
 				// event is ok for this filter; allow later filters to have a look..
 				return FilterDecision.Neutral;
diff --git a/src/Filter/LoggerMatchFilter.cs b/src/Filter/LoggerMatchFilter.cs
index 828a304..15ca9da 100644
--- a/src/Filter/LoggerMatchFilter.cs
+++ b/src/Filter/LoggerMatchFilter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -30,12 +30,12 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// The works very similar to the <see cref="LevelMatchFilter"/>. It admits two 
-	/// options <see cref="LoggerToMatch"/> and <see cref="AcceptOnMatch"/>. If the 
-	/// <see cref="LoggingEvent.LoggerName"/> of the <see cref="LoggingEvent"/> starts 
-	/// with the value of the <see cref="LoggerToMatch"/> option, then the 
-	/// <see cref="Decide"/> method returns <see cref="FilterDecision.Accept"/> in 
-	/// case the <see cref="AcceptOnMatch"/> option value is set to <c>true</c>, 
+	/// The works very similar to the <see cref="LevelMatchFilter"/>. It admits two
+	/// options <see cref="LoggerToMatch"/> and <see cref="AcceptOnMatch"/>. If the
+	/// <see cref="LoggingEvent.LoggerName"/> of the <see cref="LoggingEvent"/> starts
+	/// with the value of the <see cref="LoggerToMatch"/> option, then the
+	/// <see cref="Decide"/> method returns <see cref="FilterDecision.Accept"/> in
+	/// case the <see cref="AcceptOnMatch"/> option value is set to <c>true</c>,
 	/// if it is <c>false</c> then <see cref="FilterDecision.Deny"/> is returned.
 	/// </para>
 	/// </remarks>
@@ -76,7 +76,7 @@
 		/// <para>
 		/// The <see cref="AcceptOnMatch"/> property is a flag that determines
 		/// the behavior when a matching <see cref="Level"/> is found. If the
-		/// flag is set to true then the filter will <see cref="FilterDecision.Accept"/> the 
+		/// flag is set to true then the filter will <see cref="FilterDecision.Accept"/> the
 		/// logging event, otherwise it will <see cref="FilterDecision.Deny"/> the event.
 		/// </para>
 		/// <para>
@@ -107,7 +107,7 @@
 			set { m_loggerToMatch = value; }
 		}
 
-		#endregion 
+		#endregion
 
 		#region Override implementation of FilterSkeleton
 
@@ -119,7 +119,7 @@
 		/// <remarks>
 		/// <para>
 		/// The rendered message is matched against the <see cref="LoggerToMatch"/>.
-		/// If the <see cref="LoggerToMatch"/> equals the beginning of 
+		/// If the <see cref="LoggerToMatch"/> equals the beginning of
 		/// the incoming <see cref="LoggingEvent.LoggerName"/> (<see cref="M:String.StartsWith(string)"/>)
 		/// then a match will have occurred. If no match occurs
 		/// this function will return <see cref="FilterDecision.Neutral"/>
@@ -129,7 +129,7 @@
 		/// <see cref="FilterDecision.Deny"/> is returned.
 		/// </para>
 		/// </remarks>
-		override public FilterDecision Decide(LoggingEvent loggingEvent) 
+		override public FilterDecision Decide(LoggingEvent loggingEvent)
 		{
 			if (loggingEvent == null)
 			{
@@ -137,14 +137,14 @@
 			}
 
 			// Check if we have been setup to filter
-			if ((m_loggerToMatch != null && m_loggerToMatch.Length != 0) && 
+			if ((m_loggerToMatch != null && m_loggerToMatch.Length != 0) &&
 				loggingEvent.LoggerName.StartsWith(m_loggerToMatch))
 			{
 				// we've got a match
-				if (m_acceptOnMatch) 
+				if (m_acceptOnMatch)
 				{
 					return FilterDecision.Accept;
-				} 
+				}
 				return FilterDecision.Deny;
 			}
 			else
diff --git a/src/Filter/MdcFilter.cs b/src/Filter/MdcFilter.cs
index 3ca7953..410b2f4 100644
--- a/src/Filter/MdcFilter.cs
+++ b/src/Filter/MdcFilter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/Filter/NdcFilter.cs b/src/Filter/NdcFilter.cs
index e1659fe..6fba8ac 100644
--- a/src/Filter/NdcFilter.cs
+++ b/src/Filter/NdcFilter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -35,7 +35,7 @@
 	/// </para>
 	/// <para>
 	/// As the MDC has been replaced with named stacks stored in the
-	/// properties collections the <see cref="PropertyFilter"/> should 
+	/// properties collections the <see cref="PropertyFilter"/> should
 	/// be used instead.
 	/// </para>
 	/// </remarks>
diff --git a/src/Filter/PropertyFilter.cs b/src/Filter/PropertyFilter.cs
index 8c35c7f..d04a26c 100644
--- a/src/Filter/PropertyFilter.cs
+++ b/src/Filter/PropertyFilter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -64,7 +64,7 @@
 		/// <remarks>
 		/// <para>
 		/// The key name to use to lookup in the properties map of the
-		/// <see cref="LoggingEvent"/>. The match will be performed against 
+		/// <see cref="LoggingEvent"/>. The match will be performed against
 		/// the value of this property if it exists.
 		/// </para>
 		/// </remarks>
@@ -83,7 +83,7 @@
 		/// <returns>see remarks</returns>
 		/// <remarks>
 		/// <para>
-		/// The event property for the <see cref="Key"/> is matched against 
+		/// The event property for the <see cref="Key"/> is matched against
 		/// the <see cref="StringMatchFilter.StringToMatch"/>.
 		/// If the <see cref="StringMatchFilter.StringToMatch"/> occurs as a substring within
 		/// the property value then a match will have occurred. If no match occurs
@@ -94,7 +94,7 @@
 		/// <see cref="FilterDecision.Deny"/> is returned.
 		/// </para>
 		/// </remarks>
-		override public FilterDecision Decide(LoggingEvent loggingEvent) 
+		override public FilterDecision Decide(LoggingEvent loggingEvent)
 		{
 			if (loggingEvent == null)
 			{
@@ -109,7 +109,7 @@
 				return FilterDecision.Neutral;
 			}
 
-			// Lookup the string to match in from the properties using 
+			// Lookup the string to match in from the properties using
 			// the key specified.
 			object msgObj = loggingEvent.LookupProperty(m_key);
 
@@ -123,7 +123,7 @@
 				// to continue processing
 				return FilterDecision.Neutral;
 			}
-    
+
 			// Firstly check if we are matching using a regex
 			if (m_regexToMatch != null)
 			{
@@ -132,29 +132,29 @@
 				{
 					// No match, continue processing
 					return FilterDecision.Neutral;
-				} 
+				}
 
 				// we've got a match
-				if (m_acceptOnMatch) 
+				if (m_acceptOnMatch)
 				{
 					return FilterDecision.Accept;
-				} 
+				}
 				return FilterDecision.Deny;
 			}
 			else if (m_stringToMatch != null)
 			{
 				// Check substring match
-				if (msg.IndexOf(m_stringToMatch) == -1) 
+				if (msg.IndexOf(m_stringToMatch) == -1)
 				{
 					// No match, continue processing
 					return FilterDecision.Neutral;
-				} 
+				}
 
 				// we've got a match
-				if (m_acceptOnMatch) 
+				if (m_acceptOnMatch)
 				{
 					return FilterDecision.Accept;
-				} 
+				}
 				return FilterDecision.Deny;
 			}
 			return FilterDecision.Neutral;
diff --git a/src/Filter/StringMatchFilter.cs b/src/Filter/StringMatchFilter.cs
index 38fa49d..d4b85c8 100644
--- a/src/Filter/StringMatchFilter.cs
+++ b/src/Filter/StringMatchFilter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -81,17 +81,17 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
-		override public void ActivateOptions() 
+		override public void ActivateOptions()
 		{
 			if (m_stringRegexToMatch != null)
 			{
@@ -112,7 +112,7 @@
 		/// <para>
 		/// The <see cref="AcceptOnMatch"/> property is a flag that determines
 		/// the behavior when a matching <see cref="Level"/> is found. If the
-		/// flag is set to true then the filter will <see cref="FilterDecision.Accept"/> the 
+		/// flag is set to true then the filter will <see cref="FilterDecision.Accept"/> the
 		/// logging event, otherwise it will <see cref="FilterDecision.Neutral"/> the event.
 		/// </para>
 		/// <para>
@@ -186,7 +186,7 @@
 		/// <see cref="FilterDecision.Deny"/> is returned.
 		/// </para>
 		/// </remarks>
-		override public FilterDecision Decide(LoggingEvent loggingEvent) 
+		override public FilterDecision Decide(LoggingEvent loggingEvent)
 		{
 			if (loggingEvent == null)
 			{
@@ -202,7 +202,7 @@
 				// to continue processing
 				return FilterDecision.Neutral;
 			}
-    
+
 			// Firstly check if we are matching using a regex
 			if (m_regexToMatch != null)
 			{
@@ -211,29 +211,29 @@
 				{
 					// No match, continue processing
 					return FilterDecision.Neutral;
-				} 
+				}
 
 				// we've got a match
-				if (m_acceptOnMatch) 
+				if (m_acceptOnMatch)
 				{
 					return FilterDecision.Accept;
-				} 
+				}
 				return FilterDecision.Deny;
 			}
 			else if (m_stringToMatch != null)
 			{
 				// Check substring match
-				if (msg.IndexOf(m_stringToMatch) == -1) 
+				if (msg.IndexOf(m_stringToMatch) == -1)
 				{
 					// No match, continue processing
 					return FilterDecision.Neutral;
-				} 
+				}
 
 				// we've got a match
-				if (m_acceptOnMatch) 
+				if (m_acceptOnMatch)
 				{
 					return FilterDecision.Accept;
-				} 
+				}
 				return FilterDecision.Deny;
 			}
 			return FilterDecision.Neutral;
diff --git a/src/GlobalContext.cs b/src/GlobalContext.cs
index dd02a90..385edbe 100644
--- a/src/GlobalContext.cs
+++ b/src/GlobalContext.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -29,16 +29,16 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// The <c>GlobalContext</c> provides a location for global debugging 
+	/// The <c>GlobalContext</c> provides a location for global debugging
 	/// information to be stored.
 	/// </para>
 	/// <para>
-	/// The global context has a properties map and these properties can 
+	/// The global context has a properties map and these properties can
 	/// be included in the output of log messages. The <see cref="log4net.Layout.PatternLayout"/>
 	/// supports selecting and outputing these properties.
 	/// </para>
 	/// <para>
-	/// By default the <c>log4net:HostName</c> property is set to the name of 
+	/// By default the <c>log4net:HostName</c> property is set to the name of
 	/// the current machine.
 	/// </para>
 	/// </remarks>
@@ -54,7 +54,7 @@
 		#region Private Instance Constructors
 
 		/// <summary>
-		/// Private Constructor. 
+		/// Private Constructor.
 		/// </summary>
 		/// <remarks>
 		/// Uses a private access modifier to prevent instantiation of this class.
diff --git a/src/ILog.cs b/src/ILog.cs
index 89d01c7..d0e607c 100644
--- a/src/ILog.cs
+++ b/src/ILog.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -49,10 +49,10 @@
 	/// <example>Simple example of logging messages
 	/// <code lang="C#">
 	/// ILog log = LogManager.GetLogger("application-log");
-	/// 
+	///
 	/// log.Info("Application Start");
 	/// log.Debug("This is a debug message");
-	/// 
+	///
 	/// if (log.IsDebugEnabled)
 	/// {
 	///		log.Debug("This is another debug message");
@@ -73,25 +73,25 @@
 		/// <remarks>
 		/// <para>
 		/// This method first checks if this logger is <c>DEBUG</c>
-		/// enabled by comparing the level of this logger with the 
+		/// enabled by comparing the level of this logger with the
 		/// <see cref="Level.Debug"/> level. If this logger is
 		/// <c>DEBUG</c> enabled, then it converts the message object
 		/// (passed as parameter) to a string by invoking the appropriate
-		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-		/// proceeds to call all the registered appenders in this logger 
-		/// and also higher in the hierarchy depending on the value of 
+		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then
+		/// proceeds to call all the registered appenders in this logger
+		/// and also higher in the hierarchy depending on the value of
 		/// the additivity flag.
 		/// </para>
-		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/> 
-		/// to this method will print the name of the <see cref="Exception"/> 
-		/// but no stack trace. To print a stack trace use the 
+		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/>
+		/// to this method will print the name of the <see cref="Exception"/>
+		/// but no stack trace. To print a stack trace use the
 		/// <see cref="M:Debug(object,Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
 		/// <seealso cref="M:Debug(object,Exception)"/>
 		/// <seealso cref="IsDebugEnabled"/>
 		void Debug(object message);
-  
+
 		/// <summary>
 		/// Log a message object with the <see cref="Level.Debug"/> level including
 		/// the stack trace of the <see cref="Exception"/> passed
@@ -128,7 +128,7 @@
 		/// </remarks>
 		/// <seealso cref="M:Debug(object)"/>
 		/// <seealso cref="IsDebugEnabled"/>
-		void DebugFormat(string format, params object[] args); 
+		void DebugFormat(string format, params object[] args);
 
 		/// <summary>
 		/// Logs a formatted message string with the <see cref="Level.Debug"/> level.
@@ -149,7 +149,7 @@
 		/// </remarks>
 		/// <seealso cref="M:Debug(object)"/>
 		/// <seealso cref="IsDebugEnabled"/>
-		void DebugFormat(string format, object arg0); 
+		void DebugFormat(string format, object arg0);
 
 		/// <summary>
 		/// Logs a formatted message string with the <see cref="Level.Debug"/> level.
@@ -171,7 +171,7 @@
 		/// </remarks>
 		/// <seealso cref="M:Debug(object)"/>
 		/// <seealso cref="IsDebugEnabled"/>
-		void DebugFormat(string format, object arg0, object arg1); 
+		void DebugFormat(string format, object arg0, object arg1);
 
 		/// <summary>
 		/// Logs a formatted message string with the <see cref="Level.Debug"/> level.
@@ -194,7 +194,7 @@
 		/// </remarks>
 		/// <seealso cref="M:Debug(object)"/>
 		/// <seealso cref="IsDebugEnabled"/>
-		void DebugFormat(string format, object arg0, object arg1, object arg2); 
+		void DebugFormat(string format, object arg0, object arg1, object arg2);
 
 		/// <summary>
 		/// Logs a formatted message string with the <see cref="Level.Debug"/> level.
@@ -225,18 +225,18 @@
 		/// <remarks>
 		/// <para>
 		/// This method first checks if this logger is <c>INFO</c>
-		/// enabled by comparing the level of this logger with the 
+		/// enabled by comparing the level of this logger with the
 		/// <see cref="Level.Info"/> level. If this logger is
 		/// <c>INFO</c> enabled, then it converts the message object
 		/// (passed as parameter) to a string by invoking the appropriate
-		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-		/// proceeds to call all the registered appenders in this logger 
-		/// and also higher in the hierarchy depending on the value of the 
+		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then
+		/// proceeds to call all the registered appenders in this logger
+		/// and also higher in the hierarchy depending on the value of the
 		/// additivity flag.
 		/// </para>
-		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/> 
-		/// to this method will print the name of the <see cref="Exception"/> 
-		/// but no stack trace. To print a stack trace use the 
+		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/>
+		/// to this method will print the name of the <see cref="Exception"/>
+		/// but no stack trace. To print a stack trace use the
 		/// <see cref="M:Info(object,Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
@@ -244,7 +244,7 @@
 		/// <seealso cref="M:Info(object,Exception)"/>
 		/// <seealso cref="IsInfoEnabled"/>
 		void Info(object message);
-  
+
 		/// <summary>
 		/// Logs a message object with the <c>INFO</c> level including
 		/// the stack trace of the <see cref="Exception"/> passed
@@ -302,7 +302,7 @@
 		/// </remarks>
 		/// <seealso cref="M:Info(object)"/>
 		/// <seealso cref="IsInfoEnabled"/>
-		void InfoFormat(string format, object arg0); 
+		void InfoFormat(string format, object arg0);
 
 		/// <summary>
 		/// Logs a formatted message string with the <see cref="Level.Info"/> level.
@@ -324,7 +324,7 @@
 		/// </remarks>
 		/// <seealso cref="M:Info(object)"/>
 		/// <seealso cref="IsInfoEnabled"/>
-		void InfoFormat(string format, object arg0, object arg1); 
+		void InfoFormat(string format, object arg0, object arg1);
 
 		/// <summary>
 		/// Logs a formatted message string with the <see cref="Level.Info"/> level.
@@ -347,7 +347,7 @@
 		/// </remarks>
 		/// <seealso cref="M:Info(object)"/>
 		/// <seealso cref="IsInfoEnabled"/>
-		void InfoFormat(string format, object arg0, object arg1, object arg2); 
+		void InfoFormat(string format, object arg0, object arg1, object arg2);
 
 		/// <summary>
 		/// Logs a formatted message string with the <see cref="Level.Info"/> level.
@@ -378,18 +378,18 @@
 		/// <remarks>
 		/// <para>
 		/// This method first checks if this logger is <c>WARN</c>
-		/// enabled by comparing the level of this logger with the 
+		/// enabled by comparing the level of this logger with the
 		/// <see cref="Level.Warn"/> level. If this logger is
 		/// <c>WARN</c> enabled, then it converts the message object
 		/// (passed as parameter) to a string by invoking the appropriate
-		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-		/// proceeds to call all the registered appenders in this logger 
-		/// and also higher in the hierarchy depending on the value of the 
+		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then
+		/// proceeds to call all the registered appenders in this logger
+		/// and also higher in the hierarchy depending on the value of the
 		/// additivity flag.
 		/// </para>
-		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/> 
-		/// to this method will print the name of the <see cref="Exception"/> 
-		/// but no stack trace. To print a stack trace use the 
+		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/>
+		/// to this method will print the name of the <see cref="Exception"/>
+		/// but no stack trace. To print a stack trace use the
 		/// <see cref="M:Warn(object,Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
@@ -397,7 +397,7 @@
 		/// <seealso cref="M:Warn(object,Exception)"/>
 		/// <seealso cref="IsWarnEnabled"/>
 		void Warn(object message);
-  
+
 		/// <summary>
 		/// Log a message object with the <see cref="Level.Warn"/> level including
 		/// the stack trace of the <see cref="Exception"/> passed
@@ -455,7 +455,7 @@
 		/// </remarks>
 		/// <seealso cref="M:Warn(object)"/>
 		/// <seealso cref="IsWarnEnabled"/>
-		void WarnFormat(string format, object arg0); 
+		void WarnFormat(string format, object arg0);
 
 		/// <summary>
 		/// Logs a formatted message string with the <see cref="Level.Warn"/> level.
@@ -477,7 +477,7 @@
 		/// </remarks>
 		/// <seealso cref="M:Warn(object)"/>
 		/// <seealso cref="IsWarnEnabled"/>
-		void WarnFormat(string format, object arg0, object arg1); 
+		void WarnFormat(string format, object arg0, object arg1);
 
 		/// <summary>
 		/// Logs a formatted message string with the <see cref="Level.Warn"/> level.
@@ -500,7 +500,7 @@
 		/// </remarks>
 		/// <seealso cref="M:Warn(object)"/>
 		/// <seealso cref="IsWarnEnabled"/>
-		void WarnFormat(string format, object arg0, object arg1, object arg2); 
+		void WarnFormat(string format, object arg0, object arg1, object arg2);
 
 		/// <summary>
 		/// Logs a formatted message string with the <see cref="Level.Warn"/> level.
@@ -532,18 +532,18 @@
 		/// <remarks>
 		/// <para>
 		/// This method first checks if this logger is <c>ERROR</c>
-		/// enabled by comparing the level of this logger with the 
+		/// enabled by comparing the level of this logger with the
 		/// <see cref="Level.Error"/> level. If this logger is
 		/// <c>ERROR</c> enabled, then it converts the message object
 		/// (passed as parameter) to a string by invoking the appropriate
-		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-		/// proceeds to call all the registered appenders in this logger 
-		/// and also higher in the hierarchy depending on the value of the 
+		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then
+		/// proceeds to call all the registered appenders in this logger
+		/// and also higher in the hierarchy depending on the value of the
 		/// additivity flag.
 		/// </para>
-		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/> 
-		/// to this method will print the name of the <see cref="Exception"/> 
-		/// but no stack trace. To print a stack trace use the 
+		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/>
+		/// to this method will print the name of the <see cref="Exception"/>
+		/// but no stack trace. To print a stack trace use the
 		/// <see cref="M:Error(object,Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
@@ -608,7 +608,7 @@
 		/// </remarks>
 		/// <seealso cref="M:Error(object)"/>
 		/// <seealso cref="IsErrorEnabled"/>
-		void ErrorFormat(string format, object arg0); 
+		void ErrorFormat(string format, object arg0);
 
 		/// <summary>
 		/// Logs a formatted message string with the <see cref="Level.Error"/> level.
@@ -630,7 +630,7 @@
 		/// </remarks>
 		/// <seealso cref="M:Error(object)"/>
 		/// <seealso cref="IsErrorEnabled"/>
-		void ErrorFormat(string format, object arg0, object arg1); 
+		void ErrorFormat(string format, object arg0, object arg1);
 
 		/// <summary>
 		/// Logs a formatted message string with the <see cref="Level.Error"/> level.
@@ -653,7 +653,7 @@
 		/// </remarks>
 		/// <seealso cref="M:Error(object)"/>
 		/// <seealso cref="IsErrorEnabled"/>
-		void ErrorFormat(string format, object arg0, object arg1, object arg2); 
+		void ErrorFormat(string format, object arg0, object arg1, object arg2);
 
 		/// <summary>
 		/// Logs a formatted message string with the <see cref="Level.Error"/> level.
@@ -684,18 +684,18 @@
 		/// <remarks>
 		/// <para>
 		/// This method first checks if this logger is <c>FATAL</c>
-		/// enabled by comparing the level of this logger with the 
+		/// enabled by comparing the level of this logger with the
 		/// <see cref="Level.Fatal"/> level. If this logger is
 		/// <c>FATAL</c> enabled, then it converts the message object
 		/// (passed as parameter) to a string by invoking the appropriate
-		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-		/// proceeds to call all the registered appenders in this logger 
-		/// and also higher in the hierarchy depending on the value of the 
+		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then
+		/// proceeds to call all the registered appenders in this logger
+		/// and also higher in the hierarchy depending on the value of the
 		/// additivity flag.
 		/// </para>
-		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/> 
-		/// to this method will print the name of the <see cref="Exception"/> 
-		/// but no stack trace. To print a stack trace use the 
+		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/>
+		/// to this method will print the name of the <see cref="Exception"/>
+		/// but no stack trace. To print a stack trace use the
 		/// <see cref="M:Fatal(object,Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
@@ -703,7 +703,7 @@
 		/// <seealso cref="M:Fatal(object,Exception)"/>
 		/// <seealso cref="IsFatalEnabled"/>
 		void Fatal(object message);
-  
+
 		/// <summary>
 		/// Log a message object with the <see cref="Level.Fatal"/> level including
 		/// the stack trace of the <see cref="Exception"/> passed
@@ -761,7 +761,7 @@
 		/// </remarks>
 		/// <seealso cref="M:Fatal(object)"/>
 		/// <seealso cref="IsFatalEnabled"/>
-		void FatalFormat(string format, object arg0); 
+		void FatalFormat(string format, object arg0);
 
 		/// <summary>
 		/// Logs a formatted message string with the <see cref="Level.Fatal"/> level.
@@ -783,7 +783,7 @@
 		/// </remarks>
 		/// <seealso cref="M:Fatal(object)"/>
 		/// <seealso cref="IsFatalEnabled"/>
-		void FatalFormat(string format, object arg0, object arg1); 
+		void FatalFormat(string format, object arg0, object arg1);
 
 		/// <summary>
 		/// Logs a formatted message string with the <see cref="Level.Fatal"/> level.
@@ -806,7 +806,7 @@
 		/// </remarks>
 		/// <seealso cref="M:Fatal(object)"/>
 		/// <seealso cref="IsFatalEnabled"/>
-		void FatalFormat(string format, object arg0, object arg1, object arg2); 
+		void FatalFormat(string format, object arg0, object arg1, object arg2);
 
 		/// <summary>
 		/// Logs a formatted message string with the <see cref="Level.Fatal"/> level.
@@ -854,7 +854,7 @@
 		/// </para>
 		/// <code lang="C#">
 		/// if (log.IsDebugEnabled)
-		/// { 
+		/// {
 		///     log.Debug("This is entry number: " + i );
 		/// }
 		/// </code>
@@ -879,7 +879,7 @@
 		/// </para>
 		/// <code lang="C#">
 		/// if (isDebugEnabled)
-		/// { 
+		/// {
 		///     log.Debug("This is entry number: " + i );
 		/// }
 		/// </code>
@@ -900,7 +900,7 @@
 		/// <seealso cref="M:Debug(object)"/>
 		/// <seealso cref="M:DebugFormat(IFormatProvider, string, object[])"/>
 		bool IsDebugEnabled { get; }
-  
+
 		/// <summary>
 		/// Checks if this logger is enabled for the <see cref="Level.Info"/> level.
 		/// </summary>
diff --git a/src/Layout/DynamicPatternLayout.cs b/src/Layout/DynamicPatternLayout.cs
index 28174be..2bc93a9 100644
--- a/src/Layout/DynamicPatternLayout.cs
+++ b/src/Layout/DynamicPatternLayout.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -84,7 +84,7 @@
 		/// <param name="pattern">the pattern to use</param>
 		/// <remarks>
 		/// </remarks>
-		public DynamicPatternLayout (string pattern) 
+		public DynamicPatternLayout (string pattern)
 			: base(pattern)
 		{
 		}
diff --git a/src/Layout/ExceptionLayout.cs b/src/Layout/ExceptionLayout.cs
index 06c4509..f708199 100644
--- a/src/Layout/ExceptionLayout.cs
+++ b/src/Layout/ExceptionLayout.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -58,7 +58,7 @@
 		}
 
 		#endregion
-  
+
 		#region Implementation of IOptionHandler
 
 		/// <summary>
@@ -73,7 +73,7 @@
 		/// This method does nothing as options become effective immediately.
 		/// </para>
 		/// </remarks>
-		override public void ActivateOptions() 
+		override public void ActivateOptions()
 		{
 			// nothing to do.
 		}
@@ -93,7 +93,7 @@
 		/// The exception string is retrieved from <see cref="M:LoggingEvent.GetExceptionString()"/>.
 		/// </para>
 		/// </remarks>
-		override public void Format(TextWriter writer, LoggingEvent loggingEvent) 
+		override public void Format(TextWriter writer, LoggingEvent loggingEvent)
 		{
 			if (loggingEvent == null)
 			{
diff --git a/src/Layout/ILayout.cs b/src/Layout/ILayout.cs
index 2bb6aef..2aeaf37 100644
--- a/src/Layout/ILayout.cs
+++ b/src/Layout/ILayout.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -67,7 +67,7 @@
 		void Format(TextWriter writer, LoggingEvent loggingEvent);
 
 		/// <summary>
-		/// The content type output by this layout. 
+		/// The content type output by this layout.
 		/// </summary>
 		/// <value>The content type</value>
 		/// <remarks>
diff --git a/src/Layout/IRawLayout.cs b/src/Layout/IRawLayout.cs
index 41cbf97..9c51af2 100644
--- a/src/Layout/IRawLayout.cs
+++ b/src/Layout/IRawLayout.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/Layout/Layout2RawLayoutAdapter.cs b/src/Layout/Layout2RawLayoutAdapter.cs
index 5b3707c..a6ac027 100644
--- a/src/Layout/Layout2RawLayoutAdapter.cs
+++ b/src/Layout/Layout2RawLayoutAdapter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -77,7 +77,7 @@
 		/// Format the logging event as an object.
 		/// </para>
 		/// <para>
-		/// Uses the <see cref="ILayout"/> object supplied to 
+		/// Uses the <see cref="ILayout"/> object supplied to
 		/// the constructor to perform the formatting.
 		/// </para>
 		/// </remarks>
diff --git a/src/Layout/LayoutSkeleton.cs b/src/Layout/LayoutSkeleton.cs
index b373ee1..04b6097 100644
--- a/src/Layout/LayoutSkeleton.cs
+++ b/src/Layout/LayoutSkeleton.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -108,18 +108,18 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
- 		/// <para>
- 		/// This method must be implemented by the subclass.
- 		/// </para>
+		/// <para>
+		/// This method must be implemented by the subclass.
+		/// </para>
 		/// </remarks>
 		abstract public void ActivateOptions();
 
@@ -140,93 +140,93 @@
 		/// </remarks>
 		abstract public void Format(TextWriter writer, LoggingEvent loggingEvent);
 
-        /// <summary>
-        /// Convenience method for easily formatting the logging event into a string variable.
-        /// </summary>
-        /// <param name="loggingEvent"></param>
-        /// <remarks>
-        /// Creates a new StringWriter instance to store the formatted logging event.
-        /// </remarks>
-        public string Format(LoggingEvent loggingEvent)
-        {
-            StringWriter writer = new StringWriter(System.Globalization.CultureInfo.InvariantCulture);
-            Format(writer, loggingEvent);
-            return writer.ToString();
-        }
+		/// <summary>
+		/// Convenience method for easily formatting the logging event into a string variable.
+		/// </summary>
+		/// <param name="loggingEvent"></param>
+		/// <remarks>
+		/// Creates a new StringWriter instance to store the formatted logging event.
+		/// </remarks>
+		public string Format(LoggingEvent loggingEvent)
+		{
+			StringWriter writer = new StringWriter(System.Globalization.CultureInfo.InvariantCulture);
+			Format(writer, loggingEvent);
+			return writer.ToString();
+		}
 
-	    /// <summary>
-	    /// The content type output by this layout. 
-	    /// </summary>
-	    /// <value>The content type is <c>"text/plain"</c></value>
-	    /// <remarks>
-	    /// <para>
-	    /// The content type output by this layout.
-	    /// </para>
-	    /// <para>
-	    /// This base class uses the value <c>"text/plain"</c>.
-	    /// To change this value a subclass must override this
-	    /// property.
-	    /// </para>
-	    /// </remarks>
-	    virtual public string ContentType
-	    {
-	        get { return "text/plain"; }
-	    }
+		/// <summary>
+		/// The content type output by this layout.
+		/// </summary>
+		/// <value>The content type is <c>"text/plain"</c></value>
+		/// <remarks>
+		/// <para>
+		/// The content type output by this layout.
+		/// </para>
+		/// <para>
+		/// This base class uses the value <c>"text/plain"</c>.
+		/// To change this value a subclass must override this
+		/// property.
+		/// </para>
+		/// </remarks>
+		virtual public string ContentType
+		{
+			get { return "text/plain"; }
+		}
 
-	    /// <summary>
-	    /// The header for the layout format.
-	    /// </summary>
-	    /// <value>the layout header</value>
-	    /// <remarks>
-	    /// <para>
-	    /// The Header text will be appended before any logging events
-	    /// are formatted and appended.
-	    /// </para>
-	    /// </remarks>
-	    virtual public string Header
-	    {
-	        get { return m_header; }
-	        set { m_header = value; }
-	    }
+		/// <summary>
+		/// The header for the layout format.
+		/// </summary>
+		/// <value>the layout header</value>
+		/// <remarks>
+		/// <para>
+		/// The Header text will be appended before any logging events
+		/// are formatted and appended.
+		/// </para>
+		/// </remarks>
+		virtual public string Header
+		{
+			get { return m_header; }
+			set { m_header = value; }
+		}
 
-	    /// <summary>
-	    /// The footer for the layout format.
-	    /// </summary>
-	    /// <value>the layout footer</value>
-	    /// <remarks>
-	    /// <para>
-	    /// The Footer text will be appended after all the logging events
-	    /// have been formatted and appended.
-	    /// </para>
-	    /// </remarks>
-	    virtual public string Footer
-	    {
-	        get { return m_footer; }
-	        set { m_footer = value; }
-	    }
+		/// <summary>
+		/// The footer for the layout format.
+		/// </summary>
+		/// <value>the layout footer</value>
+		/// <remarks>
+		/// <para>
+		/// The Footer text will be appended after all the logging events
+		/// have been formatted and appended.
+		/// </para>
+		/// </remarks>
+		virtual public string Footer
+		{
+			get { return m_footer; }
+			set { m_footer = value; }
+		}
 
-	    /// <summary>
-	    /// Flag indicating if this layout handles exceptions
-	    /// </summary>
-	    /// <value><c>false</c> if this layout handles exceptions</value>
-	    /// <remarks>
-	    /// <para>
-	    /// If this layout handles the exception object contained within
-	    /// <see cref="LoggingEvent"/>, then the layout should return
-	    /// <c>false</c>. Otherwise, if the layout ignores the exception
-	    /// object, then the layout should return <c>true</c>.
-	    /// </para>
-	    /// <para>
-	    /// Set this value to override a this default setting. The default
-	    /// value is <c>true</c>, this layout does not handle the exception.
-	    /// </para>
-	    /// </remarks>
-	    virtual public bool IgnoresException 
-	    { 
-	        get { return m_ignoresException; }
-	        set { m_ignoresException = value; }
-	    }
+		/// <summary>
+		/// Flag indicating if this layout handles exceptions
+		/// </summary>
+		/// <value><c>false</c> if this layout handles exceptions</value>
+		/// <remarks>
+		/// <para>
+		/// If this layout handles the exception object contained within
+		/// <see cref="LoggingEvent"/>, then the layout should return
+		/// <c>false</c>. Otherwise, if the layout ignores the exception
+		/// object, then the layout should return <c>true</c>.
+		/// </para>
+		/// <para>
+		/// Set this value to override a this default setting. The default
+		/// value is <c>true</c>, this layout does not handle the exception.
+		/// </para>
+		/// </remarks>
+		virtual public bool IgnoresException
+		{
+			get { return m_ignoresException; }
+			set { m_ignoresException = value; }
+		}
 
-	    #endregion
+		#endregion
 	}
 }
diff --git a/src/Layout/Pattern/AppDomainPatternConverter.cs b/src/Layout/Pattern/AppDomainPatternConverter.cs
index 37369c4..0d73dcb 100644
--- a/src/Layout/Pattern/AppDomainPatternConverter.cs
+++ b/src/Layout/Pattern/AppDomainPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -35,7 +35,7 @@
 	/// </remarks>
 	/// <author>Daniel Cazzulino</author>
 	/// <author>Nicko Cadell</author>
-	internal sealed class AppDomainPatternConverter : PatternLayoutConverter 
+	internal sealed class AppDomainPatternConverter : PatternLayoutConverter
 	{
 		/// <summary>
 		/// Write the event appdomain name to the output
diff --git a/src/Layout/Pattern/AspNetCachePatternConverter.cs b/src/Layout/Pattern/AspNetCachePatternConverter.cs
index 4452a5b..6cb0b23 100644
--- a/src/Layout/Pattern/AspNetCachePatternConverter.cs
+++ b/src/Layout/Pattern/AspNetCachePatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/Layout/Pattern/AspNetContextPatternConverter.cs b/src/Layout/Pattern/AspNetContextPatternConverter.cs
index 61a9e17..5f2a369 100644
--- a/src/Layout/Pattern/AspNetContextPatternConverter.cs
+++ b/src/Layout/Pattern/AspNetContextPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/Layout/Pattern/AspNetPatternConverter.cs b/src/Layout/Pattern/AspNetPatternConverter.cs
index 7201ecd..d10d097 100644
--- a/src/Layout/Pattern/AspNetPatternConverter.cs
+++ b/src/Layout/Pattern/AspNetPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -29,7 +29,7 @@
 namespace log4net.Layout.Pattern
 {
 	/// <summary>
-	/// Abstract class that provides access to the current HttpContext (<see cref="HttpContext.Current" />) that 
+	/// Abstract class that provides access to the current HttpContext (<see cref="HttpContext.Current" />) that
 	/// derived classes need.
 	/// </summary>
 	/// <remarks>
diff --git a/src/Layout/Pattern/AspNetRequestPatternConverter.cs b/src/Layout/Pattern/AspNetRequestPatternConverter.cs
index ca810f6..9527c51 100644
--- a/src/Layout/Pattern/AspNetRequestPatternConverter.cs
+++ b/src/Layout/Pattern/AspNetRequestPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -54,15 +54,15 @@
 		/// </remarks>
 		protected override void Convert(TextWriter writer, LoggingEvent loggingEvent, HttpContext httpContext)
 		{
-		    HttpRequest request = null;
-		    try {
+			HttpRequest request = null;
+			try {
 			request = httpContext.Request;
-		    } catch (HttpException) {
+			} catch (HttpException) {
 			// likely a case of running in IIS integrated mode
 			// when inside an Application_Start event.
 			// treat it like a case of the Request
 			// property returning null
-		    }
+			}
 
 			if (request != null)
 			{
diff --git a/src/Layout/Pattern/AspNetSessionPatternConverter.cs b/src/Layout/Pattern/AspNetSessionPatternConverter.cs
index f50ad8a..f081a7f 100644
--- a/src/Layout/Pattern/AspNetSessionPatternConverter.cs
+++ b/src/Layout/Pattern/AspNetSessionPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/Layout/Pattern/DatePatternConverter.cs b/src/Layout/Pattern/DatePatternConverter.cs
index 72d3df1..369d920 100644
--- a/src/Layout/Pattern/DatePatternConverter.cs
+++ b/src/Layout/Pattern/DatePatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -27,7 +27,7 @@
 namespace log4net.Layout.Pattern
 {
 	/// <summary>
-	/// Date pattern converter, uses a <see cref="IDateFormatter"/> to format 
+	/// Date pattern converter, uses a <see cref="IDateFormatter"/> to format
 	/// the date of a <see cref="LoggingEvent"/>.
 	/// </summary>
 	/// <remarks>
@@ -35,7 +35,7 @@
 	/// Render the <see cref="LoggingEvent.TimeStamp"/> to the writer as a string.
 	/// </para>
 	/// <para>
-	/// The value of the <see cref="log4net.Util.PatternConverter.Option"/> determines 
+	/// The value of the <see cref="log4net.Util.PatternConverter.Option"/> determines
 	/// the formatting of the date. The following values are allowed:
 	/// <list type="definition">
 	///		<listheader>
@@ -45,31 +45,31 @@
 	///		<item>
 	/// 		<term>ISO8601</term>
 	/// 		<description>
-	/// 		Uses the <see cref="Iso8601DateFormatter"/> formatter. 
+	/// 		Uses the <see cref="Iso8601DateFormatter"/> formatter.
 	/// 		Formats using the <c>"yyyy-MM-dd HH:mm:ss,fff"</c> pattern.
 	/// 		</description>
 	/// 	</item>
 	/// 	<item>
 	/// 		<term>DATE</term>
 	/// 		<description>
-	/// 		Uses the <see cref="DateTimeDateFormatter"/> formatter. 
+	/// 		Uses the <see cref="DateTimeDateFormatter"/> formatter.
 	/// 		Formats using the <c>"dd MMM yyyy HH:mm:ss,fff"</c> for example, <c>"06 Nov 1994 15:49:37,459"</c>.
 	/// 		</description>
 	/// 	</item>
 	/// 	<item>
 	/// 		<term>ABSOLUTE</term>
 	/// 		<description>
-	/// 		Uses the <see cref="AbsoluteTimeDateFormatter"/> formatter. 
+	/// 		Uses the <see cref="AbsoluteTimeDateFormatter"/> formatter.
 	/// 		Formats using the <c>"HH:mm:ss,yyyy"</c> for example, <c>"15:49:37,459"</c>.
 	/// 		</description>
 	/// 	</item>
 	/// 	<item>
 	/// 		<term>other</term>
 	/// 		<description>
-	/// 		Any other pattern string uses the <see cref="SimpleDateFormatter"/> formatter. 
-	/// 		This formatter passes the pattern string to the <see cref="DateTime"/> 
+	/// 		Any other pattern string uses the <see cref="SimpleDateFormatter"/> formatter.
+	/// 		This formatter passes the pattern string to the <see cref="DateTime"/>
 	/// 		<see cref="M:DateTime.ToString(string)"/> method.
-	/// 		For details on valid patterns see 
+	/// 		For details on valid patterns see
 	/// 		<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemglobalizationdatetimeformatinfoclasstopic.asp">DateTimeFormatInfo Class</a>.
 	/// 		</description>
 	/// 	</item>
@@ -92,7 +92,7 @@
 		/// </para>
 		/// </remarks>
 		protected IDateFormatter m_dateFormatter;
-	
+
 		#region Implementation of IOptionHandler
 
 		/// <summary>
@@ -101,13 +101,13 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
@@ -133,15 +133,15 @@
 			}
 			else
 			{
-				try 
+				try
 				{
 					m_dateFormatter = new SimpleDateFormatter(dateFormatStr);
 				}
-				catch (Exception e) 
+				catch (Exception e)
 				{
 					LogLog.Error(declaringType, "Could not instantiate SimpleDateFormatter with ["+dateFormatStr+"]", e);
 					m_dateFormatter = new Iso8601DateFormatter();
-				}	
+				}
 			}
 		}
 
@@ -163,27 +163,27 @@
 		/// </remarks>
 		override protected void Convert(TextWriter writer, LoggingEvent loggingEvent)
 		{
-			try 
+			try
 			{
 				m_dateFormatter.FormatDate(loggingEvent.TimeStamp, writer);
 			}
-			catch (Exception ex) 
+			catch (Exception ex)
 			{
 				LogLog.Error(declaringType, "Error occurred while converting date.", ex);
 			}
 		}
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the DatePatternConverter class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(DatePatternConverter);
+		/// <summary>
+		/// The fully qualified type of the DatePatternConverter class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(DatePatternConverter);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
diff --git a/src/Layout/Pattern/ExceptionPatternConverter.cs b/src/Layout/Pattern/ExceptionPatternConverter.cs
index 06d3928..ba30628 100644
--- a/src/Layout/Pattern/ExceptionPatternConverter.cs
+++ b/src/Layout/Pattern/ExceptionPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -40,7 +40,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class ExceptionPatternConverter : PatternLayoutConverter 
+	internal sealed class ExceptionPatternConverter : PatternLayoutConverter
 	{
 		/// <summary>
 		/// Default constructor
@@ -87,7 +87,7 @@
 		///		</item>
 		///		<item>
 		///			<description>HelpLink</description>
-		///		</item>		
+		///		</item>
 		/// </list>
 		/// </remarks>
 		override protected void Convert(TextWriter writer, LoggingEvent loggingEvent)
@@ -99,7 +99,7 @@
 					case "message":
 						WriteObject(writer, loggingEvent.Repository, loggingEvent.ExceptionObject.Message);
 						break;
-#if !NETCF						
+#if !NETCF
 					case "source":
 						WriteObject(writer, loggingEvent.Repository, loggingEvent.ExceptionObject.Source);
 						break;
@@ -114,7 +114,7 @@
 					case "helplink":
 						WriteObject(writer, loggingEvent.Repository, loggingEvent.ExceptionObject.HelpLink);
 						break;
-#endif						
+#endif
 					default:
 						// do not output SystemInfo.NotAvailableText
 						break;
@@ -123,7 +123,7 @@
 			else
 			{
 				string exceptionString = loggingEvent.GetExceptionString();
-				if (exceptionString != null && exceptionString.Length > 0) 
+				if (exceptionString != null && exceptionString.Length > 0)
 				{
 					writer.WriteLine(exceptionString);
 				}
diff --git a/src/Layout/Pattern/FileLocationPatternConverter.cs b/src/Layout/Pattern/FileLocationPatternConverter.cs
index bcec221..eaf968d 100644
--- a/src/Layout/Pattern/FileLocationPatternConverter.cs
+++ b/src/Layout/Pattern/FileLocationPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -35,7 +35,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class FileLocationPatternConverter : PatternLayoutConverter 
+	internal sealed class FileLocationPatternConverter : PatternLayoutConverter
 	{
 		/// <summary>
 		/// Write the caller location file name to the output
diff --git a/src/Layout/Pattern/FullLocationPatternConverter.cs b/src/Layout/Pattern/FullLocationPatternConverter.cs
index 2a3beda..c627a6a 100644
--- a/src/Layout/Pattern/FullLocationPatternConverter.cs
+++ b/src/Layout/Pattern/FullLocationPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -34,7 +34,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class FullLocationPatternConverter : PatternLayoutConverter 
+	internal sealed class FullLocationPatternConverter : PatternLayoutConverter
 	{
 		/// <summary>
 		/// Write the caller location info to the output
diff --git a/src/Layout/Pattern/IdentityPatternConverter.cs b/src/Layout/Pattern/IdentityPatternConverter.cs
index fd84299..20059c4 100644
--- a/src/Layout/Pattern/IdentityPatternConverter.cs
+++ b/src/Layout/Pattern/IdentityPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -36,7 +36,7 @@
 	/// </remarks>
 	/// <author>Daniel Cazzulino</author>
 	/// <author>Nicko Cadell</author>
-	internal sealed class IdentityPatternConverter : PatternLayoutConverter 
+	internal sealed class IdentityPatternConverter : PatternLayoutConverter
 	{
 		/// <summary>
 		/// Writes the event identity to the output
@@ -45,7 +45,7 @@
 		/// <param name="loggingEvent">the event being logged</param>
 		/// <remarks>
 		/// <para>
-		/// Writes the value of the <paramref name="loggingEvent"/> 
+		/// Writes the value of the <paramref name="loggingEvent"/>
 		/// <see cref="LoggingEvent.Identity"/> to
 		/// the output <paramref name="writer"/>.
 		/// </para>
diff --git a/src/Layout/Pattern/LevelPatternConverter.cs b/src/Layout/Pattern/LevelPatternConverter.cs
index 35227e0..bd9cea7 100644
--- a/src/Layout/Pattern/LevelPatternConverter.cs
+++ b/src/Layout/Pattern/LevelPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -35,7 +35,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class LevelPatternConverter : PatternLayoutConverter 
+	internal sealed class LevelPatternConverter : PatternLayoutConverter
 	{
 		/// <summary>
 		/// Write the event level to the output
diff --git a/src/Layout/Pattern/LineLocationPatternConverter.cs b/src/Layout/Pattern/LineLocationPatternConverter.cs
index 2e54dfa..75e17f8 100644
--- a/src/Layout/Pattern/LineLocationPatternConverter.cs
+++ b/src/Layout/Pattern/LineLocationPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -35,7 +35,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class LineLocationPatternConverter : PatternLayoutConverter 
+	internal sealed class LineLocationPatternConverter : PatternLayoutConverter
 	{
 		/// <summary>
 		/// Write the caller location line number to the output
diff --git a/src/Layout/Pattern/LoggerPatternConverter.cs b/src/Layout/Pattern/LoggerPatternConverter.cs
index b56f7c9..acbcb47 100644
--- a/src/Layout/Pattern/LoggerPatternConverter.cs
+++ b/src/Layout/Pattern/LoggerPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -34,7 +34,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class LoggerPatternConverter : NamedPatternConverter 
+	internal sealed class LoggerPatternConverter : NamedPatternConverter
 	{
 		/// <summary>
 		/// Gets the fully qualified name of the logger
@@ -46,7 +46,7 @@
 		/// Returns the <see cref="LoggingEvent.LoggerName"/> of the <paramref name="loggingEvent"/>.
 		/// </para>
 		/// </remarks>
-		override protected string GetFullyQualifiedName(LoggingEvent loggingEvent) 
+		override protected string GetFullyQualifiedName(LoggingEvent loggingEvent)
 		{
 			return loggingEvent.LoggerName;
 		}
diff --git a/src/Layout/Pattern/MessagePatternConverter.cs b/src/Layout/Pattern/MessagePatternConverter.cs
index 43d13fe..3bd708e 100644
--- a/src/Layout/Pattern/MessagePatternConverter.cs
+++ b/src/Layout/Pattern/MessagePatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -35,7 +35,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class MessagePatternConverter : PatternLayoutConverter 
+	internal sealed class MessagePatternConverter : PatternLayoutConverter
 	{
 		/// <summary>
 		/// Writes the event message to the output
diff --git a/src/Layout/Pattern/MethodLocationPatternConverter.cs b/src/Layout/Pattern/MethodLocationPatternConverter.cs
index a0537ad..7193f9c 100644
--- a/src/Layout/Pattern/MethodLocationPatternConverter.cs
+++ b/src/Layout/Pattern/MethodLocationPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -35,7 +35,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class MethodLocationPatternConverter : PatternLayoutConverter 
+	internal sealed class MethodLocationPatternConverter : PatternLayoutConverter
 	{
 		/// <summary>
 		/// Write the method name to the output
diff --git a/src/Layout/Pattern/NamedPatternConverter.cs b/src/Layout/Pattern/NamedPatternConverter.cs
index 8338706..08a8c9b 100644
--- a/src/Layout/Pattern/NamedPatternConverter.cs
+++ b/src/Layout/Pattern/NamedPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -49,18 +49,18 @@
 		#region Implementation of IOptionHandler
 
 		/// <summary>
-		/// Initialize the converter 
+		/// Initialize the converter
 		/// </summary>
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
@@ -68,7 +68,7 @@
 		{
 			m_precision = 0;
 
-			if (Option != null) 
+			if (Option != null)
 			{
 				string optStr = Option.Trim();
 				if (optStr.Length > 0)
@@ -76,7 +76,7 @@
 					int precisionVal;
 					if (SystemInfo.TryParse(optStr, out precisionVal))
 					{
-						if (precisionVal <= 0) 
+						if (precisionVal <= 0)
 						{
 							LogLog.Error(declaringType, "NamedPatternConverter: Precision option (" + optStr + ") isn't a positive integer.");
 						}
@@ -84,7 +84,7 @@
 						{
 							m_precision = precisionVal;
 						}
-					} 
+					}
 					else
 					{
 						LogLog.Error(declaringType, "NamedPatternConverter: Precision option \"" + optStr + "\" not a decimal integer.");
@@ -110,7 +110,7 @@
 		/// </para>
 		/// </remarks>
 		abstract protected string GetFullyQualifiedName(LoggingEvent loggingEvent);
-	
+
 		/// <summary>
 		/// Convert the pattern to the rendered message
 		/// </summary>
@@ -127,45 +127,45 @@
 			{
 				writer.Write(name);
 			}
-			else 
+			else
 			{
 				int len = name.Length;
-                string trailingDot = string.Empty;
-                if (name.EndsWith(DOT))
-                {
-                    trailingDot = DOT;
-                    name = name.Substring(0, len - 1);
-                    len--;
-                }
-
-                int end = name.LastIndexOf(DOT);
-				for(int i = 1; end > 0 && i < m_precision; i++) 
+				string trailingDot = string.Empty;
+				if (name.EndsWith(DOT))
 				{
-                    end = name.LastIndexOf('.', end - 1);
-                }
-                if (end == -1)
-                {
-                    writer.Write(name + trailingDot);
-                }
-                else
-                {
-                    writer.Write(name.Substring(end + 1, len - end - 1) + trailingDot);
-                }
-			}	  
+					trailingDot = DOT;
+					name = name.Substring(0, len - 1);
+					len--;
+				}
+
+				int end = name.LastIndexOf(DOT);
+				for(int i = 1; end > 0 && i < m_precision; i++)
+				{
+					end = name.LastIndexOf('.', end - 1);
+				}
+				if (end == -1)
+				{
+					writer.Write(name + trailingDot);
+				}
+				else
+				{
+					writer.Write(name.Substring(end + 1, len - end - 1) + trailingDot);
+				}
+			}
 		}
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the NamedPatternConverter class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(NamedPatternConverter);
+		/// <summary>
+		/// The fully qualified type of the NamedPatternConverter class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(NamedPatternConverter);
 
-        private const string DOT = ".";
-	    #endregion Private Static Fields
+		private const string DOT = ".";
+		#endregion Private Static Fields
 	}
 }
diff --git a/src/Layout/Pattern/NdcPatternConverter.cs b/src/Layout/Pattern/NdcPatternConverter.cs
index 947fb12..f9072ba 100644
--- a/src/Layout/Pattern/NdcPatternConverter.cs
+++ b/src/Layout/Pattern/NdcPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -37,7 +37,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class NdcPatternConverter : PatternLayoutConverter 
+	internal sealed class NdcPatternConverter : PatternLayoutConverter
 	{
 		/// <summary>
 		/// Write the event NDC to the output
diff --git a/src/Layout/Pattern/PatternLayoutConverter.cs b/src/Layout/Pattern/PatternLayoutConverter.cs
index f0ed36f..671ff96 100644
--- a/src/Layout/Pattern/PatternLayoutConverter.cs
+++ b/src/Layout/Pattern/PatternLayoutConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -29,7 +29,7 @@
 namespace log4net.Layout.Pattern
 {
 	/// <summary>
-	/// Abstract class that provides the formatting functionality that 
+	/// Abstract class that provides the formatting functionality that
 	/// derived classes need.
 	/// </summary>
 	/// <remarks>
@@ -45,8 +45,8 @@
 		/// <summary>
 		/// Initializes a new instance of the <see cref="PatternLayoutConverter" /> class.
 		/// </summary>
-		protected PatternLayoutConverter() 
-		{  
+		protected PatternLayoutConverter()
+		{
 		}
 
 		#endregion Protected Instance Constructors
@@ -69,8 +69,8 @@
 		/// value is <c>true</c>, this converter does not handle the exception.
 		/// </para>
 		/// </remarks>
-		virtual public bool IgnoresException 
-		{ 
+		virtual public bool IgnoresException
+		{
 			get { return m_ignoresException; }
 			set { m_ignoresException = value; }
 		}
diff --git a/src/Layout/Pattern/PropertyPatternConverter.cs b/src/Layout/Pattern/PropertyPatternConverter.cs
index f2d9e37..bba4831 100644
--- a/src/Layout/Pattern/PropertyPatternConverter.cs
+++ b/src/Layout/Pattern/PropertyPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -42,7 +42,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class PropertyPatternConverter : PatternLayoutConverter 
+	internal sealed class PropertyPatternConverter : PatternLayoutConverter
 	{
 		/// <summary>
 		/// Write the property value to the output
diff --git a/src/Layout/Pattern/RelativeTimePatternConverter.cs b/src/Layout/Pattern/RelativeTimePatternConverter.cs
index a5d3495..a43d822 100644
--- a/src/Layout/Pattern/RelativeTimePatternConverter.cs
+++ b/src/Layout/Pattern/RelativeTimePatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -34,7 +34,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class RelativeTimePatternConverter : PatternLayoutConverter 
+	internal sealed class RelativeTimePatternConverter : PatternLayoutConverter
 	{
 		/// <summary>
 		/// Write the relative time to the output
diff --git a/src/Layout/Pattern/StackTraceDetailPatternConverter.cs b/src/Layout/Pattern/StackTraceDetailPatternConverter.cs
index 2bc5493..c9bd4ca 100644
--- a/src/Layout/Pattern/StackTraceDetailPatternConverter.cs
+++ b/src/Layout/Pattern/StackTraceDetailPatternConverter.cs
@@ -29,63 +29,63 @@
 
 namespace log4net.Layout.Pattern
 {
-    /// <summary>
-    /// Write the caller stack frames to the output
-    /// </summary>
-    /// <remarks>
-    /// <para>
-    /// Writes the <see cref="LocationInfo.StackFrames"/> to the output writer, using format:
-    /// type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...)
-    /// </para>
-    /// </remarks>
-    /// <author>Adam Davies</author>
-    internal class StackTraceDetailPatternConverter : StackTracePatternConverter
-    {
-        internal override string GetMethodInformation(MethodItem method)
-        {
-            string returnValue="";
+	/// <summary>
+	/// Write the caller stack frames to the output
+	/// </summary>
+	/// <remarks>
+	/// <para>
+	/// Writes the <see cref="LocationInfo.StackFrames"/> to the output writer, using format:
+	/// type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...)
+	/// </para>
+	/// </remarks>
+	/// <author>Adam Davies</author>
+	internal class StackTraceDetailPatternConverter : StackTracePatternConverter
+	{
+		internal override string GetMethodInformation(MethodItem method)
+		{
+			string returnValue="";
 
-            try
-            {
-                string param = "";
-                string[] names = method.Parameters;
-                StringBuilder sb = new StringBuilder();
-                if (names != null && names.GetUpperBound(0) > 0)
-                {
-                    for (int i = 0; i <= names.GetUpperBound(0); i++)
-                    {
-                        sb.AppendFormat("{0}, ", names[i]);
-                    }
-                }
+			try
+			{
+				string param = "";
+				string[] names = method.Parameters;
+				StringBuilder sb = new StringBuilder();
+				if (names != null && names.GetUpperBound(0) > 0)
+				{
+					for (int i = 0; i <= names.GetUpperBound(0); i++)
+					{
+						sb.AppendFormat("{0}, ", names[i]);
+					}
+				}
 
-                if (sb.Length > 0)
-                {
-                    sb.Remove(sb.Length - 2, 2);
-                    param = sb.ToString();
-                }
+				if (sb.Length > 0)
+				{
+					sb.Remove(sb.Length - 2, 2);
+					param = sb.ToString();
+				}
 
-                returnValue=base.GetMethodInformation(method) + "(" + param + ")";
-            }
-            catch (Exception ex)
-            {
-                LogLog.Error(declaringType, "An exception ocurred while retreiving method information.", ex);
-            }
+				returnValue=base.GetMethodInformation(method) + "(" + param + ")";
+			}
+			catch (Exception ex)
+			{
+				LogLog.Error(declaringType, "An exception ocurred while retreiving method information.", ex);
+			}
 
-            return returnValue;
-        }
+			return returnValue;
+		}
 
-        #region Private Static Fields
+		#region Private Static Fields
 
-        /// <summary>
-        /// The fully qualified type of the StackTraceDetailPatternConverter class.
-        /// </summary>
-        /// <remarks>
-        /// Used by the internal logger to record the Type of the
-        /// log message.
-        /// </remarks>
-        private readonly static Type declaringType = typeof(StackTracePatternConverter);
+		/// <summary>
+		/// The fully qualified type of the StackTraceDetailPatternConverter class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(StackTracePatternConverter);
 
-        #endregion Private Static Fields
-    }
+		#endregion Private Static Fields
+	}
 }
 #endif
\ No newline at end of file
diff --git a/src/Layout/Pattern/StackTracePatternConverter.cs b/src/Layout/Pattern/StackTracePatternConverter.cs
index 747b662..cd2019d 100644
--- a/src/Layout/Pattern/StackTracePatternConverter.cs
+++ b/src/Layout/Pattern/StackTracePatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -39,20 +39,20 @@
 	internal class StackTracePatternConverter : PatternLayoutConverter, IOptionHandler
 	{
 		private int m_stackFrameLevel = 1;
-		
+
 		/// <summary>
 		/// Initialize the converter
 		/// </summary>
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
@@ -60,14 +60,14 @@
 		{
 			if (Option == null)
 				return;
-			
+
 			string optStr = Option.Trim();
 			if (optStr.Length != 0)
 			{
 				int stackLevelVal;
 				if (SystemInfo.TryParse(optStr, out stackLevelVal))
 				{
-					if (stackLevelVal <= 0) 
+					if (stackLevelVal <= 0)
 					{
 						LogLog.Error(declaringType, "StackTracePatternConverter: StackeFrameLevel option (" + optStr + ") isn't a positive integer.");
 					}
@@ -75,14 +75,14 @@
 					{
 						m_stackFrameLevel = stackLevelVal;
 					}
-				} 
+				}
 				else
 				{
 					LogLog.Error(declaringType, "StackTracePatternConverter: StackFrameLevel option \"" + optStr + "\" not a decimal integer.");
 				}
 			}
 		}
-		
+
 		/// <summary>
 		/// Write the strack frames to the output
 		/// </summary>
@@ -101,7 +101,7 @@
 				LogLog.Error(declaringType, "loggingEvent.LocationInformation.StackFrames was null or empty.");
 				return;
 			}
-			
+
 			int stackFrameIndex = m_stackFrameLevel - 1;
 			while (stackFrameIndex >= 0)
 			{
@@ -110,41 +110,41 @@
 					stackFrameIndex--;
 					continue;
 				}
-				
+
 				StackFrameItem stackFrame = stackframes[stackFrameIndex];
-                writer.Write("{0}.{1}", stackFrame.ClassName, GetMethodInformation(stackFrame.Method));
+				writer.Write("{0}.{1}", stackFrame.ClassName, GetMethodInformation(stackFrame.Method));
 				if (stackFrameIndex > 0)
 				{
-                    // TODO: make this user settable?
+					// TODO: make this user settable?
 					writer.Write(" > ");
 				}
 				stackFrameIndex--;
 			}
 		}
 
-                /// <summary>
-        /// Returns the Name of the method
-        /// </summary>
-        /// <param name="method"></param>
-        /// <remarks>This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter</remarks>
-        /// <returns>string</returns>
-        internal virtual string GetMethodInformation(MethodItem method)
-        {
-            return method.Name;
-        }
-		
+				/// <summary>
+		/// Returns the Name of the method
+		/// </summary>
+		/// <param name="method"></param>
+		/// <remarks>This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter</remarks>
+		/// <returns>string</returns>
+		internal virtual string GetMethodInformation(MethodItem method)
+		{
+			return method.Name;
+		}
+
 		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the StackTracePatternConverter class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(StackTracePatternConverter);
+		/// <summary>
+		/// The fully qualified type of the StackTracePatternConverter class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(StackTracePatternConverter);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
 #endif
diff --git a/src/Layout/Pattern/ThreadPatternConverter.cs b/src/Layout/Pattern/ThreadPatternConverter.cs
index c306a37..3d3a48f 100644
--- a/src/Layout/Pattern/ThreadPatternConverter.cs
+++ b/src/Layout/Pattern/ThreadPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -34,7 +34,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class ThreadPatternConverter : PatternLayoutConverter 
+	internal sealed class ThreadPatternConverter : PatternLayoutConverter
 	{
 		/// <summary>
 		/// Write the ThreadName to the output
diff --git a/src/Layout/Pattern/TypeNamePatternConverter.cs b/src/Layout/Pattern/TypeNamePatternConverter.cs
index acca1cb..aa6e98b 100644
--- a/src/Layout/Pattern/TypeNamePatternConverter.cs
+++ b/src/Layout/Pattern/TypeNamePatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -34,7 +34,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class TypeNamePatternConverter : NamedPatternConverter 
+	internal sealed class TypeNamePatternConverter : NamedPatternConverter
 	{
 		/// <summary>
 		/// Gets the fully qualified name of the class
@@ -46,18 +46,18 @@
 		/// Returns the <see cref="LocationInfo.ClassName"/> of the <paramref name="loggingEvent"/>.
 		/// </para>
 		/// </remarks>
-		override protected string GetFullyQualifiedName(LoggingEvent loggingEvent) 
+		override protected string GetFullyQualifiedName(LoggingEvent loggingEvent)
 		{
 			if (loggingEvent == null)
 			{
 				return string.Empty;
 			}
-			
+
 			if (loggingEvent.LocationInformation == null)
 			{
 				return string.Empty;
 			}
-			
+
 			return loggingEvent.LocationInformation.ClassName;
 		}
 	}
diff --git a/src/Layout/Pattern/UserNamePatternConverter.cs b/src/Layout/Pattern/UserNamePatternConverter.cs
index 8c0518f..80bedc5 100644
--- a/src/Layout/Pattern/UserNamePatternConverter.cs
+++ b/src/Layout/Pattern/UserNamePatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -30,7 +30,7 @@
 	/// </summary>
 	/// <author>Douglas de la Torre</author>
 	/// <author>Nicko Cadell</author>
-	internal sealed class UserNamePatternConverter : PatternLayoutConverter 
+	internal sealed class UserNamePatternConverter : PatternLayoutConverter
 	{
 		/// <summary>
 		/// Convert the pattern to the rendered message
diff --git a/src/Layout/Pattern/UtcDatePatternConverter.cs b/src/Layout/Pattern/UtcDatePatternConverter.cs
index 41caf28..614ff29 100644
--- a/src/Layout/Pattern/UtcDatePatternConverter.cs
+++ b/src/Layout/Pattern/UtcDatePatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -32,11 +32,11 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// Date pattern converter, uses a <see cref="IDateFormatter"/> to format 
+	/// Date pattern converter, uses a <see cref="IDateFormatter"/> to format
 	/// the date of a <see cref="LoggingEvent"/>.
 	/// </para>
 	/// <para>
-	/// Uses a <see cref="IDateFormatter"/> to format the <see cref="LoggingEvent.TimeStamp"/> 
+	/// Uses a <see cref="IDateFormatter"/> to format the <see cref="LoggingEvent.TimeStamp"/>
 	/// in Universal time.
 	/// </para>
 	/// <para>
@@ -65,27 +65,27 @@
 		/// <seealso cref="DatePatternConverter"/>
 		override protected void Convert(TextWriter writer, LoggingEvent loggingEvent)
 		{
-			try 
+			try
 			{
 				m_dateFormatter.FormatDate(loggingEvent.TimeStampUtc, writer);
 			}
-			catch (Exception ex) 
+			catch (Exception ex)
 			{
 				LogLog.Error(declaringType, "Error occurred while converting date.", ex);
 			}
 		}
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the UtcDatePatternConverter class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(UtcDatePatternConverter);
+		/// <summary>
+		/// The fully qualified type of the UtcDatePatternConverter class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(UtcDatePatternConverter);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
diff --git a/src/Layout/PatternLayout.cs b/src/Layout/PatternLayout.cs
index 31a5644..f4ccfe6 100644
--- a/src/Layout/PatternLayout.cs
+++ b/src/Layout/PatternLayout.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -42,7 +42,7 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// The goal of this class is to <see cref="M:PatternLayout.Format(TextWriter,LoggingEvent)"/> a 
+	/// The goal of this class is to <see cref="M:PatternLayout.Format(TextWriter,LoggingEvent)"/> a
 	/// <see cref="LoggingEvent"/> as a string. The results
 	/// depend on the <i>conversion pattern</i>.
 	/// </para>
@@ -72,12 +72,12 @@
 	/// <code lang="C#">
 	/// ILog log = LogManager.GetLogger(typeof(TestApp));
 	/// log.Debug("Message 1");
-	/// log.Warn("Message 2");   
+	/// log.Warn("Message 2");
 	/// </code>
 	/// <para>would yield the output</para>
 	/// <code>
 	/// DEBUG [main]: Message 1
-	/// WARN  [main]: Message 2  
+	/// WARN  [main]: Message 2
 	/// </code>
 	/// <para>
 	/// Note that there is no explicit separator between text and
@@ -102,53 +102,53 @@
 	///     <item>
 	///         <term>appdomain</term>
 	///         <description>
-	///				Used to output the friendly name of the AppDomain where the 
-	///				logging event was generated. 
+	///				Used to output the friendly name of the AppDomain where the
+	///				logging event was generated.
 	///         </description>
 	///     </item>
 	///     <item>
 	///         <term>aspnet-cache</term>
 	///         <description>
-    ///             <para>
-    ///             Used to output all cache items in the case of <b>%aspnet-cache</b> or just one named item if used as <b>%aspnet-cache{key}</b>
-    ///             </para>
-    ///             <para>
-    ///             This pattern is not available for Compact Framework or Client Profile assemblies.
-    ///             </para>
+	///             <para>
+	///             Used to output all cache items in the case of <b>%aspnet-cache</b> or just one named item if used as <b>%aspnet-cache{key}</b>
+	///             </para>
+	///             <para>
+	///             This pattern is not available for Compact Framework or Client Profile assemblies.
+	///             </para>
 	///         </description>
 	///     </item>
 	///     <item>
 	///         <term>aspnet-context</term>
 	///         <description>
-    ///             <para>
-    ///             Used to output all context items in the case of <b>%aspnet-context</b> or just one named item if used as <b>%aspnet-context{key}</b>
-    ///             </para>
-    ///             <para>
-    ///             This pattern is not available for Compact Framework or Client Profile assemblies.
-    ///             </para>
-    ///         </description>
+	///             <para>
+	///             Used to output all context items in the case of <b>%aspnet-context</b> or just one named item if used as <b>%aspnet-context{key}</b>
+	///             </para>
+	///             <para>
+	///             This pattern is not available for Compact Framework or Client Profile assemblies.
+	///             </para>
+	///         </description>
 	///     </item>
 	///     <item>
 	///         <term>aspnet-request</term>
 	///         <description>
-    ///             <para>
-    ///             Used to output all request parameters in the case of <b>%aspnet-request</b> or just one named param if used as <b>%aspnet-request{key}</b>
-    ///             </para>
-    ///             <para>
-    ///             This pattern is not available for Compact Framework or Client Profile assemblies.
-    ///             </para>
-    ///         </description>
+	///             <para>
+	///             Used to output all request parameters in the case of <b>%aspnet-request</b> or just one named param if used as <b>%aspnet-request{key}</b>
+	///             </para>
+	///             <para>
+	///             This pattern is not available for Compact Framework or Client Profile assemblies.
+	///             </para>
+	///         </description>
 	///     </item>
 	///     <item>
 	///         <term>aspnet-session</term>
 	///         <description>
-    ///             <para>
-    ///             Used to output all session items in the case of <b>%aspnet-session</b> or just one named item if used as <b>%aspnet-session{key}</b>
-    ///             </para>
-    ///             <para>
-    ///             This pattern is not available for Compact Framework or Client Profile assemblies.
-    ///             </para>
-    ///         </description>
+	///             <para>
+	///             Used to output all session items in the case of <b>%aspnet-session</b> or just one named item if used as <b>%aspnet-session{key}</b>
+	///             </para>
+	///             <para>
+	///             This pattern is not available for Compact Framework or Client Profile assemblies.
+	///             </para>
+	///         </description>
 	///     </item>
 	///     <item>
 	///         <term>c</term>
@@ -167,15 +167,15 @@
 	///         <description>Equivalent to <b>date</b></description>
 	///     </item>
 	///     <item>
-	///			<term>date</term> 
+	///			<term>date</term>
 	///			<description>
 	/// 			<para>
-	/// 			Used to output the date of the logging event in the local time zone. 
+	/// 			Used to output the date of the logging event in the local time zone.
 	/// 			To output the date in universal time use the <c>%utcdate</c> pattern.
-	/// 			The date conversion 
-	/// 			specifier may be followed by a <i>date format specifier</i> enclosed 
+	/// 			The date conversion
+	/// 			specifier may be followed by a <i>date format specifier</i> enclosed
 	/// 			between braces. For example, <b>%date{HH:mm:ss,fff}</b> or
-	/// 			<b>%date{dd MMM yyyy HH:mm:ss,fff}</b>.  If no date format specifier is 
+	/// 			<b>%date{dd MMM yyyy HH:mm:ss,fff}</b>.  If no date format specifier is
 	/// 			given then ISO8601 format is
 	/// 			assumed (<see cref="log4net.DateFormatter.Iso8601DateFormatter"/>).
 	/// 			</para>
@@ -186,10 +186,10 @@
 	/// 			<para>
 	/// 			For better results it is recommended to use the log4net date
 	/// 			formatters. These can be specified using one of the strings
-	/// 			"ABSOLUTE", "DATE" and "ISO8601" for specifying 
-	/// 			<see cref="log4net.DateFormatter.AbsoluteTimeDateFormatter"/>, 
-	/// 			<see cref="log4net.DateFormatter.DateTimeDateFormatter"/> and respectively 
-	/// 			<see cref="log4net.DateFormatter.Iso8601DateFormatter"/>. For example, 
+	/// 			"ABSOLUTE", "DATE" and "ISO8601" for specifying
+	/// 			<see cref="log4net.DateFormatter.AbsoluteTimeDateFormatter"/>,
+	/// 			<see cref="log4net.DateFormatter.DateTimeDateFormatter"/> and respectively
+	/// 			<see cref="log4net.DateFormatter.Iso8601DateFormatter"/>. For example,
 	/// 			<b>%date{ISO8601}</b> or <b>%date{ABSOLUTE}</b>.
 	/// 			</para>
 	/// 			<para>
@@ -338,7 +338,7 @@
 	///			<term>message</term>
 	///			<description>
 	/// 			<para>
-	/// 			Used to output the application supplied message associated with 
+	/// 			Used to output the application supplied message associated with
 	/// 			the logging event.
 	/// 			</para>
 	///			</description>
@@ -382,10 +382,10 @@
 	/// 			characters.
 	/// 			</para>
 	/// 			<para>
-	/// 			This conversion pattern offers the same performance as using 
-	/// 			non-portable line separator strings such as	"\n", or "\r\n". 
+	/// 			This conversion pattern offers the same performance as using
+	/// 			non-portable line separator strings such as	"\n", or "\r\n".
 	/// 			Thus, it is the preferred way of specifying a line separator.
-	/// 			</para> 
+	/// 			</para>
 	///			</description>
 	///		</item>
 	///		<item>
@@ -413,13 +413,13 @@
 	///			<term>property</term>
 	///			<description>
 	/// 			<para>
-	/// 			Used to output the an event specific property. The key to 
+	/// 			Used to output the an event specific property. The key to
 	/// 			lookup must be specified within braces and directly following the
 	/// 			pattern specifier, e.g. <b>%property{user}</b> would include the value
 	/// 			from the property that is keyed by the string 'user'. Each property value
 	/// 			that is to be included in the log must be specified separately.
-	/// 			Properties are added to events by loggers or appenders. By default 
-	/// 			the <c>log4net:HostName</c> property is set to the name of machine on 
+	/// 			Properties are added to events by loggers or appenders. By default
+	/// 			the <c>log4net:HostName</c> property is set to the name of machine on
 	/// 			which the event was originally logged.
 	/// 			</para>
 	/// 			<para>
@@ -434,7 +434,7 @@
 	/// 				<item>
 	/// 					<term>the event properties</term>
 	/// 					<description>
-	/// 					The event has <see cref="LoggingEvent.Properties"/> that can be set. These 
+	/// 					The event has <see cref="LoggingEvent.Properties"/> that can be set. These
 	/// 					properties are specific to this event only.
 	/// 					</description>
 	/// 				</item>
@@ -448,12 +448,12 @@
 	/// 				<item>
 	/// 					<term>the global properties</term>
 	/// 					<description>
-	/// 					The <see cref="GlobalContext.Properties"/> that are set globally. These 
+	/// 					The <see cref="GlobalContext.Properties"/> that are set globally. These
 	/// 					properties are shared by all the threads in the AppDomain.
 	/// 					</description>
 	/// 				</item>
 	/// 			</list>
-	/// 			
+	///
 	///			</description>
 	///		</item>
 	///     <item>
@@ -461,42 +461,42 @@
 	///         <description>Equivalent to <b>timestamp</b></description>
 	///     </item>
 	/// 	<item>
-	///			<term>stacktrace</term> 
+	///			<term>stacktrace</term>
 	///			<description>
 	/// 			<para>
 	/// 			Used to output the stack trace of the logging event
-	/// 			The stack trace level specifier may be enclosed 
-	/// 			between braces. For example, <b>%stacktrace{level}</b>.  
-	/// 			If no stack trace level specifier is given then 1 is assumed 
+	/// 			The stack trace level specifier may be enclosed
+	/// 			between braces. For example, <b>%stacktrace{level}</b>.
+	/// 			If no stack trace level specifier is given then 1 is assumed
 	/// 			</para>
-    /// 			<para>
-    /// 			Output uses the format:
-    /// 			type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1
-    /// 			</para>
-    ///             <para>
-    ///             This pattern is not available for Compact Framework assemblies.
-    ///             </para>
-    ///			</description>
+	/// 			<para>
+	/// 			Output uses the format:
+	/// 			type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1
+	/// 			</para>
+	///             <para>
+	///             This pattern is not available for Compact Framework assemblies.
+	///             </para>
+	///			</description>
 	///		</item>
-    /// 	<item>
-    ///			<term>stacktracedetail</term> 
-    ///			<description>
-    /// 			<para>
-    /// 			Used to output the stack trace of the logging event
-    /// 			The stack trace level specifier may be enclosed 
-    /// 			between braces. For example, <b>%stacktracedetail{level}</b>.  
-    /// 			If no stack trace level specifier is given then 1 is assumed 
-    /// 			</para>
-    /// 			<para>
-    /// 			Output uses the format:
-    ///             type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...)
-    /// 			</para>
-    ///             <para>
-    ///             This pattern is not available for Compact Framework assemblies.
-    ///             </para>
-    ///			</description>
-    ///		</item>
-    ///     <item>
+	/// 	<item>
+	///			<term>stacktracedetail</term>
+	///			<description>
+	/// 			<para>
+	/// 			Used to output the stack trace of the logging event
+	/// 			The stack trace level specifier may be enclosed
+	/// 			between braces. For example, <b>%stacktracedetail{level}</b>.
+	/// 			If no stack trace level specifier is given then 1 is assumed
+	/// 			</para>
+	/// 			<para>
+	/// 			Output uses the format:
+	///             type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...)
+	/// 			</para>
+	///             <para>
+	///             This pattern is not available for Compact Framework assemblies.
+	///             </para>
+	///			</description>
+	///		</item>
+	///     <item>
 	///         <term>t</term>
 	///         <description>Equivalent to <b>thread</b></description>
 	///     </item>
@@ -519,7 +519,7 @@
 	///			</description>
 	///		</item>
 	///     <item>
-	///			<term>type</term> 
+	///			<term>type</term>
 	///			<description>
 	/// 			<para>
 	/// 			Used to output the fully qualified type name of the caller
@@ -565,14 +565,14 @@
 	///			</description>
 	///		</item>
 	///     <item>
-	///			<term>utcdate</term> 
+	///			<term>utcdate</term>
 	///			<description>
 	/// 			<para>
-	/// 			Used to output the date of the logging event in universal time. 
-	/// 			The date conversion 
-	/// 			specifier may be followed by a <i>date format specifier</i> enclosed 
+	/// 			Used to output the date of the logging event in universal time.
+	/// 			The date conversion
+	/// 			specifier may be followed by a <i>date format specifier</i> enclosed
 	/// 			between braces. For example, <b>%utcdate{HH:mm:ss,fff}</b> or
-	/// 			<b>%utcdate{dd MMM yyyy HH:mm:ss,fff}</b>.  If no date format specifier is 
+	/// 			<b>%utcdate{dd MMM yyyy HH:mm:ss,fff}</b>.  If no date format specifier is
 	/// 			given then ISO8601 format is
 	/// 			assumed (<see cref="log4net.DateFormatter.Iso8601DateFormatter"/>).
 	/// 			</para>
@@ -583,10 +583,10 @@
 	/// 			<para>
 	/// 			For better results it is recommended to use the log4net date
 	/// 			formatters. These can be specified using one of the strings
-	/// 			"ABSOLUTE", "DATE" and "ISO8601" for specifying 
-	/// 			<see cref="log4net.DateFormatter.AbsoluteTimeDateFormatter"/>, 
-	/// 			<see cref="log4net.DateFormatter.DateTimeDateFormatter"/> and respectively 
-	/// 			<see cref="log4net.DateFormatter.Iso8601DateFormatter"/>. For example, 
+	/// 			"ABSOLUTE", "DATE" and "ISO8601" for specifying
+	/// 			<see cref="log4net.DateFormatter.AbsoluteTimeDateFormatter"/>,
+	/// 			<see cref="log4net.DateFormatter.DateTimeDateFormatter"/> and respectively
+	/// 			<see cref="log4net.DateFormatter.Iso8601DateFormatter"/>. For example,
 	/// 			<b>%utcdate{ISO8601}</b> or <b>%utcdate{ABSOLUTE}</b>.
 	/// 			</para>
 	/// 			<para>
@@ -617,7 +617,7 @@
 	///		</item>
 	/// </list>
 	/// <para>
-	/// The single letter patterns are deprecated in favor of the 
+	/// The single letter patterns are deprecated in favor of the
 	/// longer more descriptive pattern names.
 	/// </para>
 	/// <para>
@@ -685,7 +685,7 @@
 	///				<td align="center">none</td>
 	///				<td>
 	///					<para>
-	///					Right pad with spaces if the logger 
+	///					Right pad with spaces if the logger
 	///					name is less than 20 characters long.
 	///					</para>
 	///				</td>
@@ -697,7 +697,7 @@
 	///				<td align="center">30</td>
 	///				<td>
 	///					<para>
-	///					Truncate from the beginning if the logger 
+	///					Truncate from the beginning if the logger
 	///					name is longer than 30 characters.
 	///					</para>
 	///				</td>
@@ -732,14 +732,14 @@
 	///	</div>
 	///	<para>
 	///	<b>Note about caller location information.</b><br />
-	///	The following patterns <c>%type %file %line %method %location %class %C %F %L %l %M</c> 
+	///	The following patterns <c>%type %file %line %method %location %class %C %F %L %l %M</c>
 	///	all generate caller location information.
 	/// Location information uses the <c>System.Diagnostics.StackTrace</c> class to generate
 	/// a call stack. The caller's information is then extracted from this stack.
 	/// </para>
 	/// <note type="caution">
 	/// <para>
-	/// The <c>System.Diagnostics.StackTrace</c> class is not supported on the 
+	/// The <c>System.Diagnostics.StackTrace</c> class is not supported on the
 	/// .NET Compact Framework 1.0 therefore caller location information is not
 	/// available on that framework.
 	/// </para>
@@ -749,15 +749,15 @@
 	/// The <c>System.Diagnostics.StackTrace</c> class has this to say about Release builds:
 	/// </para>
 	/// <para>
-	/// "StackTrace information will be most informative with Debug build configurations. 
-	/// By default, Debug builds include debug symbols, while Release builds do not. The 
-	/// debug symbols contain most of the file, method name, line number, and column 
-	/// information used in constructing StackFrame and StackTrace objects. StackTrace 
-	/// might not report as many method calls as expected, due to code transformations 
+	/// "StackTrace information will be most informative with Debug build configurations.
+	/// By default, Debug builds include debug symbols, while Release builds do not. The
+	/// debug symbols contain most of the file, method name, line number, and column
+	/// information used in constructing StackFrame and StackTrace objects. StackTrace
+	/// might not report as many method calls as expected, due to code transformations
 	/// that occur during optimization."
 	/// </para>
 	/// <para>
-	/// This means that in a Release build the caller information may be incomplete or may 
+	/// This means that in a Release build the caller information may be incomplete or may
 	/// not exist at all! Therefore caller location information cannot be relied upon in a Release build.
 	/// </para>
 	/// </note>
@@ -787,13 +787,13 @@
 		#region Constants
 
 		/// <summary>
-		/// Default pattern string for log output. 
+		/// Default pattern string for log output.
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Default pattern string for log output. 
-		/// Currently set to the string <b>"%message%newline"</b> 
-		/// which just prints the application supplied message. 
+		/// Default pattern string for log output.
+		/// Currently set to the string <b>"%message%newline"</b>
+		/// which just prints the application supplied message.
 		/// </para>
 		/// </remarks>
 		public const string DefaultConversionPattern ="%message%newline";
@@ -826,12 +826,12 @@
 		#endregion Static Fields
 
 		#region Member Variables
-    
+
 		/// <summary>
 		/// the pattern
 		/// </summary>
 		private string m_pattern;
-  
+
 		/// <summary>
 		/// the head of the pattern converter chain
 		/// </summary>
@@ -907,10 +907,10 @@
 
 			s_globalRulesRegistry.Add("r", typeof(RelativeTimePatternConverter));
 			s_globalRulesRegistry.Add("timestamp", typeof(RelativeTimePatternConverter));
-			
+
 #if !(NETCF || NETSTANDARD1_3)
 			s_globalRulesRegistry.Add("stacktrace", typeof(StackTracePatternConverter));
-            s_globalRulesRegistry.Add("stacktracedetail", typeof(StackTraceDetailPatternConverter));
+			s_globalRulesRegistry.Add("stacktracedetail", typeof(StackTraceDetailPatternConverter));
 #endif
 
 			s_globalRulesRegistry.Add("t", typeof(ThreadPatternConverter));
@@ -975,11 +975,11 @@
 		/// aware that it will be called before your is called constructor.
 		/// </para>
 		/// <para>
-		/// When using this constructor the <see cref="ActivateOptions"/> method 
+		/// When using this constructor the <see cref="ActivateOptions"/> method
 		/// need not be called. This may not be the case when using a subclass.
 		/// </para>
 		/// </remarks>
-		public PatternLayout(string pattern) 
+		public PatternLayout(string pattern)
 		{
 			// By default we do not process the exception
 			IgnoresException = true;
@@ -994,7 +994,7 @@
 		}
 
 		#endregion
-  
+
 		/// <summary>
 		/// The pattern formatting string
 		/// </summary>
@@ -1022,17 +1022,17 @@
 		/// global and instance rules on the <see cref="PatternParser"/>.
 		/// </para>
 		/// </remarks>
-		virtual protected PatternParser CreatePatternParser(string pattern) 
+		virtual protected PatternParser CreatePatternParser(string pattern)
 		{
 			PatternParser patternParser = new PatternParser(pattern);
 
 			// Add all the builtin patterns
 			foreach(DictionaryEntry entry in s_globalRulesRegistry)
 			{
-                ConverterInfo converterInfo = new ConverterInfo();
-                converterInfo.Name = (string)entry.Key;
-                converterInfo.Type = (Type)entry.Value;
-                patternParser.PatternConverters[entry.Key] = converterInfo;
+				ConverterInfo converterInfo = new ConverterInfo();
+				converterInfo.Name = (string)entry.Key;
+				converterInfo.Type = (Type)entry.Value;
+				patternParser.PatternConverters[entry.Key] = converterInfo;
 			}
 			// Add the instance patterns
 			foreach(DictionaryEntry entry in m_instanceRulesRegistry)
@@ -1042,7 +1042,7 @@
 
 			return patternParser;
 		}
-  
+
 		#region Implementation of IOptionHandler
 
 		/// <summary>
@@ -1051,17 +1051,17 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
-		override public void ActivateOptions() 
+		override public void ActivateOptions()
 		{
 			m_head = CreatePatternParser(m_pattern).Parse();
 
@@ -1098,7 +1098,7 @@
 		/// specified in the <see cref="ConversionPattern"/> property.
 		/// </para>
 		/// </remarks>
-		override public void Format(TextWriter writer, LoggingEvent loggingEvent) 
+		override public void Format(TextWriter writer, LoggingEvent loggingEvent)
 		{
 			if (writer == null)
 			{
@@ -1112,7 +1112,7 @@
 			PatternConverter c = m_head;
 
 			// loop through the chain of pattern converters
-			while(c != null) 
+			while(c != null)
 			{
 				c.Format(writer, loggingEvent);
 				c = c.Next;
@@ -1133,13 +1133,13 @@
 		/// </remarks>
 		public void AddConverter(ConverterInfo converterInfo)
 		{
-            if (converterInfo == null) throw new ArgumentNullException("converterInfo");
+			if (converterInfo == null) throw new ArgumentNullException("converterInfo");
 
-            if (!typeof(PatternConverter).IsAssignableFrom(converterInfo.Type))
-            {
-                throw new ArgumentException("The converter type specified [" + converterInfo.Type + "] must be a subclass of log4net.Util.PatternConverter", "converterInfo");
-            }
-            m_instanceRulesRegistry[converterInfo.Name] = converterInfo;
+			if (!typeof(PatternConverter).IsAssignableFrom(converterInfo.Type))
+			{
+				throw new ArgumentException("The converter type specified [" + converterInfo.Type + "] must be a subclass of log4net.Util.PatternConverter", "converterInfo");
+			}
+			m_instanceRulesRegistry[converterInfo.Name] = converterInfo;
 		}
 
 		/// <summary>
@@ -1154,20 +1154,20 @@
 		/// This method must be called before <see cref="ActivateOptions"/>.
 		/// </para>
 		/// <para>
-		/// The <paramref name="type"/> specified must extend the 
+		/// The <paramref name="type"/> specified must extend the
 		/// <see cref="PatternConverter"/> type.
 		/// </para>
 		/// </remarks>
 		public void AddConverter(string name, Type type)
 		{
-            if (name == null) throw new ArgumentNullException("name");
-            if (type == null) throw new ArgumentNullException("type");
+			if (name == null) throw new ArgumentNullException("name");
+			if (type == null) throw new ArgumentNullException("type");
 
-            ConverterInfo converterInfo = new ConverterInfo();
-            converterInfo.Name = name;
-            converterInfo.Type = type;
+			ConverterInfo converterInfo = new ConverterInfo();
+			converterInfo.Name = name;
+			converterInfo.Type = type;
 
-            AddConverter(converterInfo);
+			AddConverter(converterInfo);
 		}
 	}
 }
diff --git a/src/Layout/RawLayoutConverter.cs b/src/Layout/RawLayoutConverter.cs
index 7ccfe77..18132f3 100644
--- a/src/Layout/RawLayoutConverter.cs
+++ b/src/Layout/RawLayoutConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -56,7 +56,7 @@
 		/// as the <paramref name="sourceType"/>.
 		/// </para>
 		/// </remarks>
-		public bool CanConvertFrom(Type sourceType) 
+		public bool CanConvertFrom(Type sourceType)
 		{
 			// Accept an ILayout object
 			return (typeof(ILayout).IsAssignableFrom(sourceType));
@@ -69,17 +69,17 @@
 		/// <returns>the <see cref="IRawLayout"/> object</returns>
 		/// <remarks>
 		/// <para>
-		/// Convert the <paramref name="source"/> object to a 
+		/// Convert the <paramref name="source"/> object to a
 		/// <see cref="IRawLayout"/> object. If the <paramref name="source"/> object
 		/// is a <see cref="ILayout"/> then the <see cref="Layout2RawLayoutAdapter"/>
 		/// is used to adapt between the two interfaces, otherwise an
 		/// exception is thrown.
 		/// </para>
 		/// </remarks>
-		public object ConvertFrom(object source) 
+		public object ConvertFrom(object source)
 		{
 			ILayout layout = source as ILayout;
-			if (layout != null) 
+			if (layout != null)
 			{
 				return new Layout2RawLayoutAdapter(layout);
 			}
diff --git a/src/Layout/RawPropertyLayout.cs b/src/Layout/RawPropertyLayout.cs
index f50dda2..09819f2 100644
--- a/src/Layout/RawPropertyLayout.cs
+++ b/src/Layout/RawPropertyLayout.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -65,7 +65,7 @@
 			get { return m_key; }
 			set { m_key = value; }
 		}
-  
+
 		#region Implementation of IRawLayout
 
 		/// <summary>
diff --git a/src/Layout/RawTimeStampLayout.cs b/src/Layout/RawTimeStampLayout.cs
index 66a4dec..8109f11 100644
--- a/src/Layout/RawTimeStampLayout.cs
+++ b/src/Layout/RawTimeStampLayout.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -47,7 +47,7 @@
 		}
 
 		#endregion
-  
+
 		#region Implementation of IRawLayout
 
 		/// <summary>
diff --git a/src/Layout/RawUtcTimeStampLayout.cs b/src/Layout/RawUtcTimeStampLayout.cs
index 2c232ae..d502618 100644
--- a/src/Layout/RawUtcTimeStampLayout.cs
+++ b/src/Layout/RawUtcTimeStampLayout.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -47,7 +47,7 @@
 		}
 
 		#endregion
-  
+
 		#region Implementation of IRawLayout
 
 		/// <summary>
diff --git a/src/Layout/SimpleLayout.cs b/src/Layout/SimpleLayout.cs
index b330ee7..a8f97db 100644
--- a/src/Layout/SimpleLayout.cs
+++ b/src/Layout/SimpleLayout.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -53,7 +53,7 @@
 		}
 
 		#endregion
-  
+
 		#region Implementation of IOptionHandler
 
 		/// <summary>
@@ -62,17 +62,17 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
-		override public void ActivateOptions() 
+		override public void ActivateOptions()
 		{
 			// nothing to do.
 		}
@@ -93,7 +93,7 @@
 		/// output is terminated by a newline.
 		/// </para>
 		/// </remarks>
-		override public void Format(TextWriter writer, LoggingEvent loggingEvent) 
+		override public void Format(TextWriter writer, LoggingEvent loggingEvent)
 		{
 			if (loggingEvent == null)
 			{
diff --git a/src/Layout/XmlLayout.cs b/src/Layout/XmlLayout.cs
index 34f9750..a0f05d4 100644
--- a/src/Layout/XmlLayout.cs
+++ b/src/Layout/XmlLayout.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -31,19 +31,19 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// The output of the <see cref="XmlLayout" /> consists of a series of 
-	/// log4net:event elements. It does not output a complete well-formed XML 
+	/// The output of the <see cref="XmlLayout" /> consists of a series of
+	/// log4net:event elements. It does not output a complete well-formed XML
 	/// file. The output is designed to be included as an <em>external entity</em>
 	/// in a separate file to form a correct XML file.
 	/// </para>
 	/// <para>
 	/// For example, if <c>abc</c> is the name of the file where
-	/// the <see cref="XmlLayout" /> output goes, then a well-formed XML file would 
+	/// the <see cref="XmlLayout" /> output goes, then a well-formed XML file would
 	/// be:
 	/// </para>
 	/// <code lang="XML">
 	/// &lt;?xml version="1.0" ?&gt;
-	/// 
+	///
 	/// &lt;!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [&lt;!ENTITY data SYSTEM "abc"&gt;]&gt;
 	///
 	/// &lt;log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2&gt;
@@ -51,12 +51,12 @@
 	/// &lt;/log4net:events&gt;
 	/// </code>
 	/// <para>
-	/// This approach enforces the independence of the <see cref="XmlLayout" /> 
+	/// This approach enforces the independence of the <see cref="XmlLayout" />
 	/// and the appender where it is embedded.
 	/// </para>
 	/// <para>
 	/// The <c>version</c> attribute helps components to correctly
-	/// interpret output generated by <see cref="XmlLayout" />. The value of 
+	/// interpret output generated by <see cref="XmlLayout" />. The value of
 	/// this attribute should be "1.2" for release 1.2 and later.
 	/// </para>
 	/// <para>
@@ -89,11 +89,11 @@
 		/// default, it is set to false which means there will be no location
 		/// information output by this layout. If the the option is set to
 		/// true, then the file name and line number of the statement
-		/// at the origin of the log statement will be output. 
+		/// at the origin of the log statement will be output.
 		/// </para>
 		/// <para>
 		/// If you are embedding this layout within an SmtpAppender
-		/// then make sure to set the <b>LocationInfo</b> option of that 
+		/// then make sure to set the <b>LocationInfo</b> option of that
 		/// appender as well.
 		/// </para>
 		/// </remarks>
@@ -121,7 +121,7 @@
 			set { m_prefix = value; }
 		}
 
-		
+
 		/// <summary>
 		/// Set whether or not to base64 encode the message.
 		/// </summary>
@@ -171,20 +171,20 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// <para>
 		/// Builds a cache of the element names
 		/// </para>
 		/// </remarks>
-		override public void ActivateOptions() 
+		override public void ActivateOptions()
 		{
 			base.ActivateOptions();
 
@@ -241,7 +241,7 @@
 			{
 				writer.WriteAttributeString(ATTR_USERNAME, loggingEvent.UserName);
 			}
-    
+
 			// Append the message text
 			writer.WriteStartElement(m_elmMessage);
 			if (!this.Base64EncodeMessage)
@@ -295,7 +295,7 @@
 			}
 
 			if (LocationInfo)
-			{ 
+			{
 				LocationInfo locationInfo = loggingEvent.LocationInformation;
 
 				writer.WriteStartElement(m_elmLocation);
@@ -312,7 +312,7 @@
 		#endregion Override implementation of XMLLayoutBase
 
 		#region Private Instance Fields
-  
+
 		/// <summary>
 		/// The prefix to use for all generated element names
 		/// </summary>
diff --git a/src/Layout/XmlLayoutBase.cs b/src/Layout/XmlLayoutBase.cs
index 9b51653..8159c11 100644
--- a/src/Layout/XmlLayoutBase.cs
+++ b/src/Layout/XmlLayoutBase.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -32,7 +32,7 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// This is an abstract class that must be subclassed by an implementation 
+	/// This is an abstract class that must be subclassed by an implementation
 	/// to conform to a specific schema.
 	/// </para>
 	/// <para>
@@ -64,15 +64,15 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// The <paramref name="locationInfo" /> parameter determines whether 
-		/// location information will be output by the layout. If 
-		/// <paramref name="locationInfo" /> is set to <c>true</c>, then the 
-		/// file name and line number of the statement at the origin of the log 
-		/// statement will be output. 
+		/// The <paramref name="locationInfo" /> parameter determines whether
+		/// location information will be output by the layout. If
+		/// <paramref name="locationInfo" /> is set to <c>true</c>, then the
+		/// file name and line number of the statement at the origin of the log
+		/// statement will be output.
 		/// </para>
 		/// <para>
 		/// If you are embedding this layout within an SMTPAppender
-		/// then make sure to set the <b>LocationInfo</b> option of that 
+		/// then make sure to set the <b>LocationInfo</b> option of that
 		/// appender as well.
 		/// </para>
 		/// </remarks>
@@ -87,22 +87,22 @@
 		#region Public Instance Properties
 
 		/// <summary>
-		/// Gets a value indicating whether to include location information in 
+		/// Gets a value indicating whether to include location information in
 		/// the XML events.
 		/// </summary>
 		/// <value>
-		/// <c>true</c> if location information should be included in the XML 
+		/// <c>true</c> if location information should be included in the XML
 		/// events; otherwise, <c>false</c>.
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// If <see cref="LocationInfo" /> is set to <c>true</c>, then the file 
-		/// name and line number of the statement at the origin of the log 
-		/// statement will be output. 
+		/// If <see cref="LocationInfo" /> is set to <c>true</c>, then the file
+		/// name and line number of the statement at the origin of the log
+		/// statement will be output.
 		/// </para>
 		/// <para>
 		/// If you are embedding this layout within an <c>SMTPAppender</c>
-		/// then make sure to set the <b>LocationInfo</b> option of that 
+		/// then make sure to set the <b>LocationInfo</b> option of that
 		/// appender as well.
 		/// </para>
 		/// </remarks>
@@ -119,7 +119,7 @@
 		/// string to replace those that can not with. This defaults to a ?. Set it
 		/// to the empty string to simply remove offending characters. For more
 		/// details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets
-		/// Character replacement will occur in  the log message, the property names 
+		/// Character replacement will occur in  the log message, the property names
 		/// and the property values.
 		/// </para>
 		/// </remarks>
@@ -139,17 +139,17 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
-		override public void ActivateOptions() 
+		override public void ActivateOptions()
 		{
 			// nothing to do
 		}
@@ -159,7 +159,7 @@
 		#region Override implementation of LayoutSkeleton
 
 		/// <summary>
-		/// Gets the content type output by this layout. 
+		/// Gets the content type output by this layout.
 		/// </summary>
 		/// <value>
 		/// As this is the XML layout, the value is always <c>"text/xml"</c>.
@@ -185,12 +185,12 @@
 		/// </para>
 		/// <para>
 		/// This method creates an <see cref="XmlTextWriter"/> that writes to the
-		/// <paramref name="writer"/>. The <see cref="XmlTextWriter"/> is passed 
+		/// <paramref name="writer"/>. The <see cref="XmlTextWriter"/> is passed
 		/// to the <see cref="FormatXml"/> method. Subclasses should override the
 		/// <see cref="FormatXml"/> method rather than this method.
 		/// </para>
 		/// </remarks>
-		override public void Format(TextWriter writer, LoggingEvent loggingEvent) 
+		override public void Format(TextWriter writer, LoggingEvent loggingEvent)
 		{
 			if (loggingEvent == null)
 			{
@@ -238,7 +238,7 @@
 		#endregion Protected Instance Methods
 
 		#region Private Instance Fields
-  
+
 		/// <summary>
 		/// Flag to indicate if location information should be included in
 		/// the XML events.
diff --git a/src/Layout/XmlLayoutSchemaLog4j.cs b/src/Layout/XmlLayoutSchemaLog4j.cs
index b479102..c7dda6f 100644
--- a/src/Layout/XmlLayoutSchemaLog4j.cs
+++ b/src/Layout/XmlLayoutSchemaLog4j.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -65,11 +65,11 @@
 		/// default, it is set to false which means there will be no location
 		/// information output by this layout. If the the option is set to
 		/// true, then the file name and line number of the statement
-		/// at the origin of the log statement will be output. 
+		/// at the origin of the log statement will be output.
 		/// </para>
 		/// <para>
 		/// If you are embedding this layout within an SMTPAppender
-		/// then make sure to set the <b>LocationInfo</b> option of that 
+		/// then make sure to set the <b>LocationInfo</b> option of that
 		/// appender as well.
 		/// </para>
 		/// </remarks>
@@ -92,8 +92,8 @@
 		public string Version
 		{
 			get { return "1.2"; }
-			set 
-			{ 
+			set
+			{
 				if (value != "1.2")
 				{
 					throw new ArgumentException("Only version 1.2 of the log4j schema is currently supported");
@@ -109,16 +109,16 @@
   <log4j:message><![CDATA[errormsg 3]]></log4j:message>
   <log4j:NDC><![CDATA[third]]></log4j:NDC>
   <log4j:MDC>
-    <log4j:data name="some string" value="some valuethird"/>
+	<log4j:data name="some string" value="some valuethird"/>
   </log4j:MDC>
   <log4j:throwable><![CDATA[java.lang.Exception: someexception-third
- 	at org.apache.log4j.chainsaw.Generator.run(Generator.java:94)
+	at org.apache.log4j.chainsaw.Generator.run(Generator.java:94)
 ]]></log4j:throwable>
   <log4j:locationInfo class="org.apache.log4j.chainsaw.Generator"
 method="run" file="Generator.java" line="94"/>
   <log4j:properties>
-    <log4j:data name="log4jmachinename" value="windows"/>
-    <log4j:data name="log4japp" value="udp-generator"/>
+	<log4j:data name="log4jmachinename" value="windows"/>
+	<log4j:data name="log4japp" value="udp-generator"/>
   </log4j:properties>
 </log4j:event>
 
@@ -141,31 +141,31 @@
 			// Translate logging events for log4j
 
 			// Translate hostname property
-			if (loggingEvent.LookupProperty(LoggingEvent.HostNameProperty) != null && 
+			if (loggingEvent.LookupProperty(LoggingEvent.HostNameProperty) != null &&
 				loggingEvent.LookupProperty("log4jmachinename") == null)
 			{
 				loggingEvent.GetProperties()["log4jmachinename"] = loggingEvent.LookupProperty(LoggingEvent.HostNameProperty);
 			}
 
 			// translate appdomain name
-			if (loggingEvent.LookupProperty("log4japp") == null && 
-				loggingEvent.Domain != null && 
+			if (loggingEvent.LookupProperty("log4japp") == null &&
+				loggingEvent.Domain != null &&
 				loggingEvent.Domain.Length > 0)
 			{
 				loggingEvent.GetProperties()["log4japp"] = loggingEvent.Domain;
 			}
 
 			// translate identity name
-			if (loggingEvent.Identity != null && 
-				loggingEvent.Identity.Length > 0 && 
+			if (loggingEvent.Identity != null &&
+				loggingEvent.Identity.Length > 0 &&
 				loggingEvent.LookupProperty(LoggingEvent.IdentityProperty) == null)
 			{
 				loggingEvent.GetProperties()[LoggingEvent.IdentityProperty] = loggingEvent.Identity;
 			}
 
 			// translate user name
-			if (loggingEvent.UserName != null && 
-				loggingEvent.UserName.Length > 0 && 
+			if (loggingEvent.UserName != null &&
+				loggingEvent.UserName.Length > 0 &&
 				loggingEvent.LookupProperty(LoggingEvent.UserNameProperty) == null)
 			{
 				loggingEvent.GetProperties()[LoggingEvent.UserNameProperty] = loggingEvent.UserName;
@@ -176,7 +176,7 @@
 			writer.WriteAttributeString("logger", loggingEvent.LoggerName);
 
 			// Calculate the timestamp as the number of milliseconds since january 1970
-			// 
+			//
 			// We must convert the TimeStamp to UTC before performing any mathematical
 			// operations. This allows use to take into account discontinuities
 			// caused by daylight savings time transitions.
@@ -185,7 +185,7 @@
 			writer.WriteAttributeString("timestamp", XmlConvert.ToString((long)timeSince1970.TotalMilliseconds));
 			writer.WriteAttributeString("level", loggingEvent.Level.DisplayName);
 			writer.WriteAttributeString("thread", loggingEvent.ThreadName);
-    
+
 			// Append the message text
 			writer.WriteStartElement("log4j:message");
 			Transform.WriteEscapedXmlString(writer, loggingEvent.RenderedMessage,this.InvalidCharReplacement);
@@ -234,7 +234,7 @@
 			}
 
 			if (LocationInfo)
-			{ 
+			{
 				LocationInfo locationInfo = loggingEvent.LocationInformation;
 
 				writer.WriteStartElement("log4j:locationInfo");
diff --git a/src/Log4netAssemblyInfo.cs b/src/Log4netAssemblyInfo.cs
index 78f1a01..5c84181 100644
--- a/src/Log4netAssemblyInfo.cs
+++ b/src/Log4netAssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -19,78 +19,78 @@
 
 namespace log4net {
 
-    /// <summary>
-    /// Provides information about the environment the assembly has
-    /// been built for.
-    /// </summary>
-    public sealed class AssemblyInfo {
-        /// <summary>Version of the assembly</summary>
-        public const string Version = "2.0.9";
+	/// <summary>
+	/// Provides information about the environment the assembly has
+	/// been built for.
+	/// </summary>
+	public sealed class AssemblyInfo {
+		/// <summary>Version of the assembly</summary>
+		public const string Version = "2.0.9";
 
-        /// <summary>Version of the framework targeted</summary>
+		/// <summary>Version of the framework targeted</summary>
 #if NET_1_1
-        public const decimal TargetFrameworkVersion = 1.1M;
+		public const decimal TargetFrameworkVersion = 1.1M;
 #elif NET_4_5
-        public const decimal TargetFrameworkVersion = 4.5M;
+		public const decimal TargetFrameworkVersion = 4.5M;
 #elif NET_4_0 || MONO_4_0
-        public const decimal TargetFrameworkVersion = 4.5M;
+		public const decimal TargetFrameworkVersion = 4.5M;
 #elif FRAMEWORK_4_0_OR_ABOVE
-        public const decimal TargetFrameworkVersion = 4.0M;
+		public const decimal TargetFrameworkVersion = 4.0M;
 #elif MONO_3_5
-        public const decimal TargetFrameworkVersion = 3.5M;
+		public const decimal TargetFrameworkVersion = 3.5M;
 #elif NET_2_0 || NETCF_2_0 || MONO_2_0
 #if !CLIENT_PROFILE
-        public const decimal TargetFrameworkVersion = 2.0M;
+		public const decimal TargetFrameworkVersion = 2.0M;
 #else
-        public const decimal TargetFrameworkVersion = 3.5M;
+		public const decimal TargetFrameworkVersion = 3.5M;
 #endif  // Client Profile
 #else
-        public const decimal TargetFrameworkVersion = 1.0M;
+		public const decimal TargetFrameworkVersion = 1.0M;
 #endif
 
-        /// <summary>Type of framework targeted</summary>
+		/// <summary>Type of framework targeted</summary>
 #if CLI
-        public const string TargetFramework = "CLI Compatible Frameworks";
+		public const string TargetFramework = "CLI Compatible Frameworks";
 #elif NET
-        public const string TargetFramework = ".NET Framework";
+		public const string TargetFramework = ".NET Framework";
 #elif NETCF
-        public const string TargetFramework = ".NET Compact Framework";
+		public const string TargetFramework = ".NET Compact Framework";
 #elif MONO
-        public const string TargetFramework = "Mono";
+		public const string TargetFramework = "Mono";
 #elif SSCLI
-        public const string TargetFramework = "Shared Source CLI";
+		public const string TargetFramework = "Shared Source CLI";
 #elif NETSTANDARD1_3
-        public const string TargetFramework = ".NET Core";
+		public const string TargetFramework = ".NET Core";
 #else
-        public const string TargetFramework = "Unknown";
+		public const string TargetFramework = "Unknown";
 #endif
 
-        /// <summary>Does it target a client profile?</summary>
+		/// <summary>Does it target a client profile?</summary>
 #if !CLIENT_PROFILE
-        public const bool ClientProfile = false;
+		public const bool ClientProfile = false;
 #else
-        public const bool ClientProfile = true;
+		public const bool ClientProfile = true;
 #endif
 
-        /// <summary>
-        /// Identifies the version and target for this assembly.
-        /// </summary>
-        public static string Info {
-            get {
-                return string.Format("Apache log4net version {0} compiled for {1}{2} {3}",
-                                     Version, TargetFramework,
-                                     /* Can't use
-                                     ClientProfile && true ? " Client Profile" :
-                                        or the compiler whines about unreachable expressions
-                                     */
+		/// <summary>
+		/// Identifies the version and target for this assembly.
+		/// </summary>
+		public static string Info {
+			get {
+				return string.Format("Apache log4net version {0} compiled for {1}{2} {3}",
+									 Version, TargetFramework,
+									 /* Can't use
+									 ClientProfile && true ? " Client Profile" :
+										or the compiler whines about unreachable expressions
+									 */
 #if !CLIENT_PROFILE
-                                     string.Empty,
+									 string.Empty,
 #else
-                                     " Client Profile",
+									 " Client Profile",
 #endif
-                                     TargetFrameworkVersion);
-            }
-        }
-    }
+									 TargetFrameworkVersion);
+			}
+		}
+	}
 
 }
diff --git a/src/LogManager.cs b/src/LogManager.cs
index 59f6b53..2c96943 100644
--- a/src/LogManager.cs
+++ b/src/LogManager.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -31,7 +31,7 @@
 	/// <remarks>
 	/// <para>
 	/// This class has static methods that are used by a client to request
-	/// a logger instance. The <see cref="M:GetLogger(string)"/> method is 
+	/// a logger instance. The <see cref="M:GetLogger(string)"/> method is
 	/// used to retrieve a logger.
 	/// </para>
 	/// <para>
@@ -41,10 +41,10 @@
 	/// <example>Simple example of logging messages
 	/// <code lang="C#">
 	/// ILog log = LogManager.GetLogger("application-log");
-	/// 
+	///
 	/// log.Info("Application Start");
 	/// log.Debug("This is a debug message");
-	/// 
+	///
 	/// if (log.IsDebugEnabled)
 	/// {
 	///		log.Debug("This is another debug message");
@@ -60,7 +60,7 @@
 		#region Private Instance Constructors
 
 		/// <summary>
-		/// Initializes a new instance of the <see cref="LogManager" /> class. 
+		/// Initializes a new instance of the <see cref="LogManager" /> class.
 		/// </summary>
 		/// <remarks>
 		/// Uses a private access modifier to prevent instantiation of this class.
@@ -86,11 +86,11 @@
 		/// </remarks>
 		/// <param name="name">The fully qualified logger name to look for.</param>
 		/// <returns>The logger found, or <c>null</c> if no logger could be found.</returns>
-		public static ILog Exists(string name) 
+		public static ILog Exists(string name)
 		{
 			return Exists(Assembly.GetCallingAssembly(), name);
 		}
-        
+
 		/// <overloads>Get the currently defined loggers.</overloads>
 		/// <summary>
 		/// Returns all the currently defined loggers in the default repository.
@@ -103,7 +103,7 @@
 		{
 			return GetCurrentLoggers(Assembly.GetCallingAssembly());
 		}
-        
+
 		/// <overloads>Get or create a logger.</overloads>
 		/// <summary>
 		/// Retrieves or creates a named logger.
@@ -128,23 +128,23 @@
 		}
 #endif // !NETSTANDARD1_3
 
-        /// <summary>
-        /// Returns the named logger if it exists.
-        /// </summary>
-        /// <remarks>
-        /// <para>
-        /// If the named logger exists (in the specified repository) then it
-        /// returns a reference to the logger, otherwise it returns
-        /// <c>null</c>.
-        /// </para>
-        /// </remarks>
-        /// <param name="repository">The repository to lookup in.</param>
-        /// <param name="name">The fully qualified logger name to look for.</param>
-        /// <returns>
-        /// The logger found, or <c>null</c> if the logger doesn't exist in the specified 
-        /// repository.
-        /// </returns>
-        public static ILog Exists(string repository, string name) 
+		/// <summary>
+		/// Returns the named logger if it exists.
+		/// </summary>
+		/// <remarks>
+		/// <para>
+		/// If the named logger exists (in the specified repository) then it
+		/// returns a reference to the logger, otherwise it returns
+		/// <c>null</c>.
+		/// </para>
+		/// </remarks>
+		/// <param name="repository">The repository to lookup in.</param>
+		/// <param name="name">The fully qualified logger name to look for.</param>
+		/// <returns>
+		/// The logger found, or <c>null</c> if the logger doesn't exist in the specified
+		/// repository.
+		/// </returns>
+		public static ILog Exists(string repository, string name)
 		{
 			return WrapLogger(LoggerManager.Exists(repository, name));
 		}
@@ -165,7 +165,7 @@
 		/// The logger, or <c>null</c> if the logger doesn't exist in the specified
 		/// assembly's repository.
 		/// </returns>
-		public static ILog Exists(Assembly repositoryAssembly, string name) 
+		public static ILog Exists(Assembly repositoryAssembly, string name)
 		{
 			return WrapLogger(LoggerManager.Exists(repositoryAssembly, name));
 		}
@@ -242,7 +242,7 @@
 		public static ILog GetLogger(Assembly repositoryAssembly, string name)
 		{
 			return WrapLogger(LoggerManager.GetLogger(repositoryAssembly, name));
-		}	
+		}
 
 		/// <summary>
 		/// Shorthand for <see cref="M:LogManager.GetLogger(string)"/>.
@@ -252,7 +252,7 @@
 		/// </remarks>
 		/// <param name="type">The full name of <paramref name="type"/> will be used as the name of the logger to retrieve.</param>
 		/// <returns>The logger with the name specified.</returns>
-		public static ILog GetLogger(Type type) 
+		public static ILog GetLogger(Type type)
 		{
 #if NETSTANDARD1_3
 			return GetLogger(type.GetTypeInfo().Assembly, type.FullName);
@@ -270,7 +270,7 @@
 		/// <param name="repository">The repository to lookup in.</param>
 		/// <param name="type">The full name of <paramref name="type"/> will be used as the name of the logger to retrieve.</param>
 		/// <returns>The logger with the name specified.</returns>
-		public static ILog GetLogger(string repository, Type type) 
+		public static ILog GetLogger(string repository, Type type)
 		{
 			return WrapLogger(LoggerManager.GetLogger(repository, type));
 		}
@@ -284,7 +284,7 @@
 		/// <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
 		/// <param name="type">The full name of <paramref name="type"/> will be used as the name of the logger to retrieve.</param>
 		/// <returns>The logger with the name specified.</returns>
-		public static ILog GetLogger(Assembly repositoryAssembly, Type type) 
+		public static ILog GetLogger(Assembly repositoryAssembly, Type type)
 		{
 			return WrapLogger(LoggerManager.GetLogger(repositoryAssembly, type));
 		}
@@ -303,7 +303,7 @@
 		/// default repositories.
 		/// </para>
 		/// <para>
-		/// Some appenders need to be closed before the application exists. 
+		/// Some appenders need to be closed before the application exists.
 		/// Otherwise, pending logging events might be lost.
 		/// </para>
 		/// <para>The <c>shutdown</c> method is careful to close nested
@@ -312,7 +312,7 @@
 		/// and again to a nested appender.
 		/// </para>
 		/// </remarks>
-		public static void Shutdown() 
+		public static void Shutdown()
 		{
 			LoggerManager.Shutdown();
 		}
@@ -328,7 +328,7 @@
 		/// appenders in all the loggers including root contained in the
 		/// default repository.
 		/// </para>
-		/// <para>Some appenders need to be closed before the application exists. 
+		/// <para>Some appenders need to be closed before the application exists.
 		/// Otherwise, pending logging events might be lost.
 		/// </para>
 		/// <para>The <c>shutdown</c> method is careful to close nested
@@ -337,7 +337,7 @@
 		/// and again to a nested appender.
 		/// </para>
 		/// </remarks>
-		public static void ShutdownRepository() 
+		public static void ShutdownRepository()
 		{
 			ShutdownRepository(Assembly.GetCallingAssembly());
 		}
@@ -353,7 +353,7 @@
 		/// <paramref name="repository"/> specified.
 		/// </para>
 		/// <para>
-		/// Some appenders need to be closed before the application exists. 
+		/// Some appenders need to be closed before the application exists.
 		/// Otherwise, pending logging events might be lost.
 		/// </para>
 		/// <para>The <c>shutdown</c> method is careful to close nested
@@ -363,7 +363,7 @@
 		/// </para>
 		/// </remarks>
 		/// <param name="repository">The repository to shutdown.</param>
-		public static void ShutdownRepository(string repository) 
+		public static void ShutdownRepository(string repository)
 		{
 			LoggerManager.ShutdownRepository(repository);
 		}
@@ -379,7 +379,7 @@
 		/// the <paramref name="repositoryAssembly"/> specified.
 		/// </para>
 		/// <para>
-		/// Some appenders need to be closed before the application exists. 
+		/// Some appenders need to be closed before the application exists.
 		/// Otherwise, pending logging events might be lost.
 		/// </para>
 		/// <para>
@@ -390,7 +390,7 @@
 		/// </para>
 		/// </remarks>
 		/// <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
-		public static void ShutdownRepository(Assembly repositoryAssembly) 
+		public static void ShutdownRepository(Assembly repositoryAssembly)
 		{
 			LoggerManager.ShutdownRepository(repositoryAssembly);
 		}
@@ -408,9 +408,9 @@
 		/// sets their additivity flag to <c>true</c> and sets the level
 		/// of the root logger to <see cref="Level.Debug"/>. Moreover,
 		/// message disabling is set to its default "off" value.
-		/// </para>		
+		/// </para>
 		/// </remarks>
-		public static void ResetConfiguration() 
+		public static void ResetConfiguration()
 		{
 			ResetConfiguration(Assembly.GetCallingAssembly());
 		}
@@ -427,10 +427,10 @@
 		/// sets their additivity flag to <c>true</c> and sets the level
 		/// of the root logger to <see cref="Level.Debug"/>. Moreover,
 		/// message disabling is set to its default "off" value.
-		/// </para>		
+		/// </para>
 		/// </remarks>
 		/// <param name="repository">The repository to reset.</param>
-		public static void ResetConfiguration(string repository) 
+		public static void ResetConfiguration(string repository)
 		{
 			LoggerManager.ResetConfiguration(repository);
 		}
@@ -446,10 +446,10 @@
 		/// sets their additivity flag to <c>true</c> and sets the level
 		/// of the root logger to <see cref="Level.Debug"/>. Moreover,
 		/// message disabling is set to its default "off" value.
-		/// </para>		
+		/// </para>
 		/// </remarks>
 		/// <param name="repositoryAssembly">The assembly to use to lookup the repository to reset.</param>
-		public static void ResetConfiguration(Assembly repositoryAssembly) 
+		public static void ResetConfiguration(Assembly repositoryAssembly)
 		{
 			LoggerManager.ResetConfiguration(repositoryAssembly);
 		}
@@ -568,7 +568,7 @@
 		/// </para>
 		/// <para>
 		/// The <see cref="ILoggerRepository"/> created will be associated with the repository
-		/// specified such that a call to <see cref="M:GetRepository()"/> will return 
+		/// specified such that a call to <see cref="M:GetRepository()"/> will return
 		/// the same repository instance.
 		/// </para>
 		/// </remarks>
@@ -593,7 +593,7 @@
 		/// <remarks>
 		/// <para>
 		/// The <see cref="ILoggerRepository"/> created will be associated with the repository
-		/// specified such that a call to <see cref="M:GetRepository()"/> will return 
+		/// specified such that a call to <see cref="M:GetRepository()"/> will return
 		/// the same repository instance.
 		/// </para>
 		/// </remarks>
@@ -751,27 +751,27 @@
 			return LoggerManager.GetAllRepositories();
 		}
 
-            /// <summary>
-            /// Flushes logging events buffered in all configured appenders in the default repository.
-            /// </summary>
-            /// <param name="millisecondsTimeout">The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed.</param>
-            /// <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
-            public static bool Flush(int millisecondsTimeout)
-            {
+			/// <summary>
+			/// Flushes logging events buffered in all configured appenders in the default repository.
+			/// </summary>
+			/// <param name="millisecondsTimeout">The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed.</param>
+			/// <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
+			public static bool Flush(int millisecondsTimeout)
+			{
 #if !NETSTANDARD1_3 // Excluded because GetCallingAssembly() is not available in CoreFX (https://github.com/dotnet/corefx/issues/2221).
-                Appender.IFlushable flushableRepository = LoggerManager.GetRepository(Assembly.GetCallingAssembly()) as Appender.IFlushable;
-                if (flushableRepository == null)
-                {
-                    return false;
-                }
-                else
-                {
-                    return flushableRepository.Flush(millisecondsTimeout);
-                }
+				Appender.IFlushable flushableRepository = LoggerManager.GetRepository(Assembly.GetCallingAssembly()) as Appender.IFlushable;
+				if (flushableRepository == null)
+				{
+					return false;
+				}
+				else
+				{
+					return flushableRepository.Flush(millisecondsTimeout);
+				}
 #else
-                return false;
+				return false;
 #endif
-            }
+			}
 
 		#endregion Domain & Repository Manager Methods
 
diff --git a/src/LogicalThreadContext.cs b/src/LogicalThreadContext.cs
index 0403c42..894a64f 100644
--- a/src/LogicalThreadContext.cs
+++ b/src/LogicalThreadContext.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -32,7 +32,7 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// The <c>LogicalThreadContext</c> provides a location for <see cref="System.Runtime.Remoting.Messaging.CallContext"/> specific debugging 
+	/// The <c>LogicalThreadContext</c> provides a location for <see cref="System.Runtime.Remoting.Messaging.CallContext"/> specific debugging
 	/// information to be stored.
 	/// The <c>LogicalThreadContext</c> properties override any <see cref="ThreadContext"/> or <see cref="GlobalContext"/>
 	/// properties with the same name.
@@ -44,12 +44,12 @@
 	/// </para>
 	/// <para>
 	/// The Logical Thread Context has a properties map and a stack.
-	/// The properties and stack can 
+	/// The properties and stack can
 	/// be included in the output of log messages. The <see cref="log4net.Layout.PatternLayout"/>
 	/// supports selecting and outputting these properties.
 	/// </para>
 	/// <para>
-	/// The Logical Thread Context provides a diagnostic context for the current call context. 
+	/// The Logical Thread Context provides a diagnostic context for the current call context.
 	/// This is an instrument for distinguishing interleaved log
 	/// output from different sources. Log output is typically interleaved
 	/// when a server handles multiple clients near-simultaneously.
@@ -58,7 +58,7 @@
 	/// The Logical Thread Context is managed on a per <see cref="System.Runtime.Remoting.Messaging.CallContext"/> basis.
 	/// </para>
 	/// <para>
-	/// The <see cref="System.Runtime.Remoting.Messaging.CallContext"/> requires a link time 
+	/// The <see cref="System.Runtime.Remoting.Messaging.CallContext"/> requires a link time
 	/// <see cref="System.Security.Permissions.SecurityPermission"/> for the
 	/// <see cref="System.Security.Permissions.SecurityPermissionFlag.Infrastructure"/>.
 	/// If the calling code does not have this permission then this context will be disabled.
@@ -76,8 +76,8 @@
 	///	using(LogicalThreadContext.Stacks["LDC"].Push("my context message"))
 	///	{
 	///		log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'");
-	///	
-	///	} // at the end of the using block the message is automatically popped 
+	///
+	///	} // at the end of the using block the message is automatically popped
 	/// </code>
 	/// </example>
 	/// <threadsafety static="true" instance="true" />
@@ -87,7 +87,7 @@
 		#region Private Instance Constructors
 
 		/// <summary>
-		/// Private Constructor. 
+		/// Private Constructor.
 		/// </summary>
 		/// <remarks>
 		/// <para>
@@ -110,7 +110,7 @@
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// The <c>LogicalThreadContext</c> properties override any <see cref="ThreadContext"/> 
+		/// The <c>LogicalThreadContext</c> properties override any <see cref="ThreadContext"/>
 		/// or <see cref="GlobalContext"/> properties with the same name.
 		/// </para>
 		/// </remarks>
diff --git a/src/MDC.cs b/src/MDC.cs
index 06e1b1d..0b049e0 100644
--- a/src/MDC.cs
+++ b/src/MDC.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -53,7 +53,7 @@
 		#region Private Instance Constructors
 
 		/// <summary>
-		/// Initializes a new instance of the <see cref="MDC" /> class. 
+		/// Initializes a new instance of the <see cref="MDC" /> class.
 		/// </summary>
 		/// <remarks>
 		/// Uses a private access modifier to prevent instantiation of this class.
@@ -113,7 +113,7 @@
 		/// </para>
 		/// <para>
 		/// If a value is already defined for the <paramref name="key" />
-		/// specified then the value will be replaced. If the <paramref name="value" /> 
+		/// specified then the value will be replaced. If the <paramref name="value" />
 		/// is specified as <c>null</c> then the key value mapping will be removed.
 		/// </para>
 		/// </remarks>
diff --git a/src/NDC.cs b/src/NDC.cs
index 6b79619..7d0008b 100644
--- a/src/NDC.cs
+++ b/src/NDC.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -58,8 +58,8 @@
 	///	using(NDC.Push("my context message"))
 	///	{
 	///		... all log calls will have 'my context message' included ...
-	///	
-	///	} // at the end of the using block the message is automatically removed 
+	///
+	///	} // at the end of the using block the message is automatically removed
 	/// </code>
 	/// </example>
 	/// <threadsafety static="true" instance="true" />
@@ -71,7 +71,7 @@
 		#region Private Instance Constructors
 
 		/// <summary>
-		/// Initializes a new instance of the <see cref="NDC" /> class. 
+		/// Initializes a new instance of the <see cref="NDC" /> class.
 		/// </summary>
 		/// <remarks>
 		/// Uses a private access modifier to prevent instantiation of this class.
@@ -99,7 +99,7 @@
 		/// The number of context values pushed onto the context stack.
 		/// </para>
 		/// <para>
-		/// Used to record the current depth of the context. This can then 
+		/// Used to record the current depth of the context. This can then
 		/// be restored using the <see cref="SetMaxDepth"/> method.
 		/// </para>
 		/// </remarks>
@@ -129,7 +129,7 @@
 		/// </para>
 		/// </remarks>
 		/*[Obsolete("NDC has been replaced by ThreadContext.Stacks")]*/
-		public static void Clear() 
+		public static void Clear()
 		{
 			ThreadContext.Stacks["NDC"].Clear();
 		}
@@ -146,13 +146,13 @@
 		/// </para>
 		/// </note>
 		/// <para>
-		/// The results of this method can be passed to the <see cref="Inherit"/> 
-		/// method to allow child threads to inherit the context of their 
+		/// The results of this method can be passed to the <see cref="Inherit"/>
+		/// method to allow child threads to inherit the context of their
 		/// parent thread.
 		/// </para>
 		/// </remarks>
 		/*[Obsolete("NDC has been replaced by ThreadContext.Stacks")]*/
-		public static Stack CloneStack() 
+		public static Stack CloneStack()
 		{
 			return ThreadContext.Stacks["NDC"].InternalStack;
 		}
@@ -179,7 +179,7 @@
 		/// </para>
 		/// </remarks>
 		/*[Obsolete("NDC has been replaced by ThreadContext.Stacks", true)]*/
-		public static void Inherit(Stack stack) 
+		public static void Inherit(Stack stack)
 		{
 			ThreadContext.Stacks["NDC"].InternalStack = stack;
 		}
@@ -188,7 +188,7 @@
 		/// Removes the top context from the stack.
 		/// </summary>
 		/// <returns>
-		/// The message in the context that was removed from the top 
+		/// The message in the context that was removed from the top
 		/// of the stack.
 		/// </returns>
 		/// <remarks>
@@ -205,7 +205,7 @@
 		/// </para>
 		/// </remarks>
 		/*[Obsolete("NDC has been replaced by ThreadContext.Stacks")]*/
-		public static string Pop() 
+		public static string Pop()
 		{
 			return ThreadContext.Stacks["NDC"].Pop();
 		}
@@ -215,7 +215,7 @@
 		/// </summary>
 		/// <param name="message">The new context message.</param>
 		/// <returns>
-		/// An <see cref="IDisposable"/> that can be used to clean up 
+		/// An <see cref="IDisposable"/> that can be used to clean up
 		/// the context stack.
 		/// </returns>
 		/// <remarks>
@@ -241,7 +241,7 @@
 		/// </code>
 		/// </example>
 		/*[Obsolete("NDC has been replaced by ThreadContext.Stacks")]*/
-		public static IDisposable Push(string message) 
+		public static IDisposable Push(string message)
 		{
 			return ThreadContext.Stacks["NDC"].Push(message);
 		}
@@ -252,7 +252,7 @@
 		/// <param name="messageFormat">The new context message string format.</param>
 		/// <param name="args">Arguments to be passed into messageFormat.</param>
 		/// <returns>
-		/// An <see cref="IDisposable"/> that can be used to clean up 
+		/// An <see cref="IDisposable"/> that can be used to clean up
 		/// the context stack.
 		/// </returns>
 		/// <remarks>
@@ -300,7 +300,7 @@
 		/// </para>
 		/// </remarks>
 		/*[Obsolete("NDC has been replaced by ThreadContext.Stacks")]*/
-		public static void Remove() 
+		public static void Remove()
 		{
 		}
 
@@ -317,14 +317,14 @@
 		/// </note>
 		/// <para>
 		/// Forces the stack depth to be at most <paramref name="maxDepth"/>.
-		/// This may truncate the head of the stack. This only affects the 
+		/// This may truncate the head of the stack. This only affects the
 		/// stack in the current thread. Also it does not prevent it from
 		/// growing, it only sets the maximum depth at the time of the
 		/// call. This can be used to return to a known context depth.
 		/// </para>
 		/// </remarks>
 		/*[Obsolete("NDC has been replaced by ThreadContext.Stacks")]*/
-		public static void SetMaxDepth(int maxDepth) 
+		public static void SetMaxDepth(int maxDepth)
 		{
 			if (maxDepth >= 0)
 			{
diff --git a/src/ObjectRenderer/DefaultRenderer.cs b/src/ObjectRenderer/DefaultRenderer.cs
index 8dc603d..5617e22 100644
--- a/src/ObjectRenderer/DefaultRenderer.cs
+++ b/src/ObjectRenderer/DefaultRenderer.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -97,13 +97,13 @@
 		///			For a one dimensional array this is the
 		///			array type name, an open brace, followed by a comma
 		///			separated list of the elements (using the appropriate
-		///			renderer), followed by a close brace. 
+		///			renderer), followed by a close brace.
 		///			</para>
 		///			<para>
 		///			For example: <c>int[] {1, 2, 3}</c>.
 		///			</para>
 		///			<para>
-		///			If the array is not one dimensional the 
+		///			If the array is not one dimensional the
 		///			<c>Array.ToString()</c> is returned.
 		///			</para>
 		///			</description>
@@ -120,23 +120,23 @@
 		///			For example: <c>{a, b, c}</c>.
 		///			</para>
 		///			<para>
-		///			All collection classes that implement <see cref="ICollection"/> its subclasses, 
+		///			All collection classes that implement <see cref="ICollection"/> its subclasses,
 		///			or generic equivalents all implement the <see cref="IEnumerable"/> interface.
 		///			</para>
 		///			</description>
-		///		</item>		
+		///		</item>
 		///		<item>
 		///			<term><see cref="DictionaryEntry"/></term>
 		///			<description>
 		///			<para>
 		///			Rendered as the key, an equals sign ('='), and the value (using the appropriate
-		///			renderer). 
+		///			renderer).
 		///			</para>
 		///			<para>
 		///			For example: <c>key=value</c>.
 		///			</para>
 		///			</description>
-		///		</item>		
+		///		</item>
 		///		<item>
 		///			<term>other</term>
 		///			<description>
@@ -157,7 +157,7 @@
 				writer.Write(SystemInfo.NullText);
 				return;
 			}
-			
+
 			Array objArray = obj as Array;
 			if (objArray != null)
 			{
@@ -177,11 +177,11 @@
 					writer.Write("{}");
 					return;
 				}
-				
+
 				// This is a special check to allow us to get the enumerator from the IDictionary
 				// interface as this guarantees us DictionaryEntry objects. Note that in .NET 2.0
 				// the generic IDictionary<> interface enumerates KeyValuePair objects rather than
-				// DictionaryEntry ones. However the implementation of the plain IDictionary 
+				// DictionaryEntry ones. However the implementation of the plain IDictionary
 				// interface on the generic Dictionary<> still returns DictionaryEntry objects.
 				IDictionary objDictionary = obj as IDictionary;
 				if (objDictionary != null)
@@ -200,7 +200,7 @@
 				RenderEnumerator(rendererMap, objEnumerator, writer);
 				return;
 			}
-			
+
 			if (obj is DictionaryEntry)
 			{
 				RenderDictionaryEntry(rendererMap, (DictionaryEntry)obj, writer);
@@ -228,7 +228,7 @@
 		///	<c>int[] {1, 2, 3}</c>.
 		///	</para>
 		///	<para>
-		///	If the array is not one dimensional the 
+		///	If the array is not one dimensional the
 		///	<c>Array.ToString()</c> is returned.
 		///	</para>
 		/// </remarks>
@@ -305,6 +305,6 @@
 			rendererMap.FindAndRender(entry.Key, writer);
 			writer.Write("=");
 			rendererMap.FindAndRender(entry.Value, writer);
-		}	
+		}
 	}
 }
diff --git a/src/ObjectRenderer/IObjectRenderer.cs b/src/ObjectRenderer/IObjectRenderer.cs
index 3a79d1e..92c4dfe 100644
--- a/src/ObjectRenderer/IObjectRenderer.cs
+++ b/src/ObjectRenderer/IObjectRenderer.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -45,7 +45,7 @@
 		/// <param name="writer">The writer to render to</param>
 		/// <remarks>
 		/// <para>
-		/// Render the object <paramref name="obj"/> to a 
+		/// Render the object <paramref name="obj"/> to a
 		/// string.
 		/// </para>
 		/// <para>
diff --git a/src/ObjectRenderer/RendererMap.cs b/src/ObjectRenderer/RendererMap.cs
index 7f4db96..ba805ce 100644
--- a/src/ObjectRenderer/RendererMap.cs
+++ b/src/ObjectRenderer/RendererMap.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -45,7 +45,7 @@
 	/// <author>Gert Driesen</author>
 	public class RendererMap
 	{
-        private readonly static Type declaringType = typeof(RendererMap);
+		private readonly static Type declaringType = typeof(RendererMap);
 
 		#region Member Variables
 
@@ -66,7 +66,7 @@
 		/// Default constructor.
 		/// </para>
 		/// </remarks>
-		public RendererMap() 
+		public RendererMap()
 		{
 			m_map = System.Collections.Hashtable.Synchronized(new System.Collections.Hashtable());
 		}
@@ -113,13 +113,13 @@
 		/// as a <see cref="string"/>.
 		/// </para>
 		/// </remarks>
-		public void FindAndRender(object obj, TextWriter writer) 
+		public void FindAndRender(object obj, TextWriter writer)
 		{
 			if (obj == null)
 			{
 				writer.Write(SystemInfo.NullText);
 			}
-			else 
+			else
 			{
 				// Optimisation for strings
 				string str = obj as string;
@@ -178,13 +178,13 @@
 		/// Gets the renderer for the specified object type.
 		/// </param>
 		/// <param>
-		/// Syntactic sugar method that calls <see cref="M:Get(Type)"/> 
+		/// Syntactic sugar method that calls <see cref="M:Get(Type)"/>
 		/// with the type of the object parameter.
 		/// </param>
 		/// </remarks>
-		public IObjectRenderer Get(Object obj) 
+		public IObjectRenderer Get(Object obj)
 		{
-			if (obj == null) 
+			if (obj == null)
 			{
 				return null;
 			}
@@ -193,7 +193,7 @@
 				return Get(obj.GetType());
 			}
 		}
-  
+
 		/// <summary>
 		/// Gets the renderer for the specified type
 		/// </summary>
@@ -206,7 +206,7 @@
 		/// <see cref="DefaultRenderer"/> will be returned.
 		/// </para>
 		/// </remarks>
-		public IObjectRenderer Get(Type type) 
+		public IObjectRenderer Get(Type type)
 		{
 			if (type == null)
 			{
@@ -245,28 +245,28 @@
 			}
 
 			return result;
-		}  
+		}
 
 		/// <summary>
 		/// Internal function to recursively search interfaces
 		/// </summary>
 		/// <param name="type">the type to lookup the renderer for</param>
 		/// <returns>the renderer for the specified type</returns>
-		private IObjectRenderer SearchTypeAndInterfaces(Type type) 
+		private IObjectRenderer SearchTypeAndInterfaces(Type type)
 		{
 			IObjectRenderer r = (IObjectRenderer)m_map[type];
-			if (r != null) 
+			if (r != null)
 			{
 				return r;
-			} 
-			else 
+			}
+			else
 			{
 				foreach(Type t in type.GetInterfaces())
 				{
 					r = SearchTypeAndInterfaces(t);
 					if (r != null)
 					{
-						return r; 
+						return r;
 					}
 				}
 			}
@@ -297,14 +297,14 @@
 		/// cannot be removed.
 		/// </para>
 		/// </remarks>
-		public void Clear() 
+		public void Clear()
 		{
 			m_map.Clear();
 			m_cache.Clear();
 		}
 
 		/// <summary>
-		/// Register an <see cref="IObjectRenderer"/> for <paramref name="typeToRender"/>. 
+		/// Register an <see cref="IObjectRenderer"/> for <paramref name="typeToRender"/>.
 		/// </summary>
 		/// <param name="typeToRender">the type that will be rendered by <paramref name="renderer"/></param>
 		/// <param name="renderer">the renderer for <paramref name="typeToRender"/></param>
@@ -315,7 +315,7 @@
 		/// specifying the same <paramref name="typeToRender"/> as an argument.
 		/// </para>
 		/// </remarks>
-		public void Put(Type typeToRender, IObjectRenderer renderer) 
+		public void Put(Type typeToRender, IObjectRenderer renderer)
 		{
 			m_cache.Clear();
 
@@ -329,6 +329,6 @@
 			}
 
 			m_map[typeToRender] = renderer;
-		}	
+		}
 	}
 }
diff --git a/src/Plugin/IPlugin.cs b/src/Plugin/IPlugin.cs
index 065898e..d6c0d2b 100644
--- a/src/Plugin/IPlugin.cs
+++ b/src/Plugin/IPlugin.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -75,7 +75,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// This method is called to notify the plugin that 
+		/// This method is called to notify the plugin that
 		/// it should stop operating and should detach from
 		/// the repository.
 		/// </para>
diff --git a/src/Plugin/IPluginFactory.cs b/src/Plugin/IPluginFactory.cs
index 460a4d4..a09543b 100644
--- a/src/Plugin/IPluginFactory.cs
+++ b/src/Plugin/IPluginFactory.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/Plugin/PluginCollection.cs b/src/Plugin/PluginCollection.cs
index 7e7d4e2..eeea65b 100644
--- a/src/Plugin/PluginCollection.cs
+++ b/src/Plugin/PluginCollection.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -48,7 +48,7 @@
 			///	Advances the enumerator to the next element in the collection.
 			/// </summary>
 			/// <returns>
-			///	<c>true</c> if the enumerator was successfully advanced to the next element; 
+			///	<c>true</c> if the enumerator was successfully advanced to the next element;
 			///	<c>false</c> if the enumerator has passed the end of the collection.
 			/// </returns>
 			/// <exception cref="InvalidOperationException">
@@ -73,7 +73,7 @@
 		private int m_version = 0;
 
 		#endregion Implementation (data)
-	
+
 		#region Static Wrappers
 
 		/// <summary>
@@ -102,7 +102,7 @@
 		{
 			m_array = new IPlugin[DEFAULT_CAPACITY];
 		}
-		
+
 		/// <summary>
 		/// Initializes a new instance of the <c>PluginCollection</c> class
 		/// that has the specified initial capacity.
@@ -136,7 +136,7 @@
 			m_array = new IPlugin[a.Length];
 			AddRange(a);
 		}
-		
+
 		/// <summary>
 		/// Initializes a new instance of the <c>PluginCollection</c> class
 		/// that contains elements copied from the specified <see cref="IPlugin"/> collection.
@@ -153,7 +153,7 @@
 		/// Used to access protected constructor
 		/// </summary>
 		/// <exclude/>
-		protected internal enum Tag 
+		protected internal enum Tag
 		{
 			/// <summary>
 			/// A value
@@ -172,7 +172,7 @@
 		}
 
 		#endregion
-		
+
 		#region Operations (type-safe ICollection)
 
 		/// <summary>
@@ -205,8 +205,8 @@
 			{
 				throw new System.ArgumentException("Destination array was not long enough.");
 			}
-			
-			Array.Copy(m_array, 0, array, start, m_count); 
+
+			Array.Copy(m_array, 0, array, start, m_count);
 		}
 
 		/// <summary>
@@ -230,7 +230,7 @@
 		}
 
 		#endregion
-		
+
 		#region Operations (type-safe IList)
 
 		/// <summary>
@@ -250,13 +250,13 @@
 			get
 			{
 				ValidateIndex(index); // throws
-				return m_array[index]; 
+				return m_array[index];
 			}
 			set
 			{
 				ValidateIndex(index); // throws
-				++m_version; 
-				m_array[index] = value; 
+				++m_version;
+				m_array[index] = value;
 			}
 		}
 
@@ -277,7 +277,7 @@
 
 			return m_count++;
 		}
-		
+
 		/// <summary>
 		/// Removes all elements from the <c>PluginCollection</c>.
 		/// </summary>
@@ -287,7 +287,7 @@
 			m_array = new IPlugin[DEFAULT_CAPACITY];
 			m_count = 0;
 		}
-		
+
 		/// <summary>
 		/// Creates a shallow copy of the <see cref="PluginCollection"/>.
 		/// </summary>
@@ -325,7 +325,7 @@
 		/// </summary>
 		/// <param name="item">The <see cref="IPlugin"/> to locate in the <c>PluginCollection</c>.</param>
 		/// <returns>
-		/// The zero-based index of the first occurrence of <paramref name="item"/> 
+		/// The zero-based index of the first occurrence of <paramref name="item"/>
 		/// in the entire <c>PluginCollection</c>, if found; otherwise, -1.
 		/// </returns>
 		public virtual int IndexOf(IPlugin item)
@@ -353,7 +353,7 @@
 		public virtual void Insert(int index, IPlugin item)
 		{
 			ValidateIndex(index, true); // throws
-			
+
 			if (m_count == m_array.Length)
 			{
 				EnsureCapacity(m_count + 1);
@@ -377,7 +377,7 @@
 		/// The specified <see cref="IPlugin"/> was not found in the <c>PluginCollection</c>.
 		/// </exception>
 		public virtual void Remove(IPlugin item)
-		{		   
+		{
 			int i = IndexOf(item);
 			if (i < 0)
 			{
@@ -399,16 +399,16 @@
 		public virtual void RemoveAt(int index)
 		{
 			ValidateIndex(index); // throws
-			
+
 			m_count--;
 
 			if (index < m_count)
 			{
 				Array.Copy(m_array, index + 1, m_array, index, m_count - index);
 			}
-			
+
 			// We can't set the deleted entry equal to null, because it might be a value type.
-			// Instead, we'll create an empty single-element array of the right type and copy it 
+			// Instead, we'll create an empty single-element array of the right type and copy it
 			// over the entry we want to erase.
 			IPlugin[] temp = new IPlugin[1];
 			Array.Copy(temp, 0, m_array, m_count, 1);
@@ -436,7 +436,7 @@
 		#endregion
 
 		#region Operations (type-safe IEnumerable)
-		
+
 		/// <summary>
 		/// Returns an enumerator that can iterate through the <c>PluginCollection</c>.
 		/// </summary>
@@ -449,7 +449,7 @@
 		#endregion
 
 		#region Public helpers (just to mimic some nice features of ArrayList)
-		
+
 		/// <summary>
 		/// Gets or sets the number of elements the <c>PluginCollection</c> can contain.
 		/// </summary>
@@ -458,9 +458,9 @@
 		/// </value>
 		public virtual int Capacity
 		{
-			get 
-			{ 
-				return m_array.Length; 
+			get
+			{
+				return m_array.Length;
 			}
 			set
 			{
@@ -496,7 +496,7 @@
 			{
 				EnsureCapacity(m_count + x.Count);
 			}
-			
+
 			Array.Copy(x.m_array, 0, m_array, m_count, x.Count);
 			m_count += x.Count;
 			m_version++;
@@ -542,7 +542,7 @@
 
 			return m_count;
 		}
-		
+
 		/// <summary>
 		/// Sets the capacity to the actual number of elements.
 		/// </summary>
@@ -591,7 +591,7 @@
 		}
 
 		#endregion
-		
+
 		#region Implementation (ICollection)
 
 		void ICollection.CopyTo(Array array, int start)
@@ -659,15 +659,15 @@
 		private sealed class Enumerator : IEnumerator, IPluginCollectionEnumerator
 		{
 			#region Implementation (data)
-			
+
 			private readonly PluginCollection m_collection;
 			private int m_index;
 			private int m_version;
-			
+
 			#endregion Implementation (data)
-		
+
 			#region Construction
-			
+
 			/// <summary>
 			/// Initializes a new instance of the <c>Enumerator</c> class.
 			/// </summary>
@@ -678,11 +678,11 @@
 				m_index = -1;
 				m_version = tc.m_version;
 			}
-			
+
 			#endregion
-	
+
 			#region Operations (type-safe IEnumerator)
-			
+
 			/// <summary>
 			/// Gets the current element in the collection.
 			/// </summary>
@@ -698,7 +698,7 @@
 			/// Advances the enumerator to the next element in the collection.
 			/// </summary>
 			/// <returns>
-			/// <c>true</c> if the enumerator was successfully advanced to the next element; 
+			/// <c>true</c> if the enumerator was successfully advanced to the next element;
 			/// <c>false</c> if the enumerator has passed the end of the collection.
 			/// </returns>
 			/// <exception cref="InvalidOperationException">
@@ -724,14 +724,14 @@
 			}
 
 			#endregion
-	
+
 			#region Implementation (IEnumerator)
-			
+
 			object IEnumerator.Current
 			{
 				get { return this.Current; }
 			}
-			
+
 			#endregion
 		}
 
@@ -797,7 +797,7 @@
 			{
 				throw new NotSupportedException("This is a Read Only Collection and can not be modified");
 			}
-            
+
 			public override void Clear()
 			{
 				throw new NotSupportedException("This is a Read Only Collection and can not be modified");
@@ -819,7 +819,7 @@
 			}
 
 			public override void Remove(IPlugin x)
-			{           
+			{
 				throw new NotSupportedException("This is a Read Only Collection and can not be modified");
 			}
 
diff --git a/src/Plugin/PluginMap.cs b/src/Plugin/PluginMap.cs
index d05223f..d561600 100644
--- a/src/Plugin/PluginMap.cs
+++ b/src/Plugin/PluginMap.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -46,7 +46,7 @@
 		/// <param name="repository">The repository that the plugins should be attached to.</param>
 		/// <remarks>
 		/// <para>
-		/// Initialize a new instance of the <see cref="PluginMap" /> class with a 
+		/// Initialize a new instance of the <see cref="PluginMap" /> class with a
 		/// repository that the plugins should be attached to.
 		/// </para>
 		/// </remarks>
@@ -64,7 +64,7 @@
 		/// </summary>
 		/// <param name="name">The name of the <see cref="IPlugin" /> to lookup.</param>
 		/// <returns>
-		/// The <see cref="IPlugin" /> from the map with the name specified, or 
+		/// The <see cref="IPlugin" /> from the map with the name specified, or
 		/// <c>null</c> if no plugin is found.
 		/// </returns>
 		/// <remarks>
@@ -108,7 +108,7 @@
 				}
 			}
 		}
-		
+
 		#endregion Public Instance Properties
 
 		#region Public Instance Methods
@@ -122,7 +122,7 @@
 		/// The <see cref="IPlugin" /> will be attached to the repository when added.
 		/// </para>
 		/// <para>
-		/// If there already exists a plugin with the same name 
+		/// If there already exists a plugin with the same name
 		/// attached to the repository then the old plugin will
 		/// be <see cref="IPlugin.Shutdown"/> and replaced with
 		/// the new plugin.
diff --git a/src/Plugin/PluginSkeleton.cs b/src/Plugin/PluginSkeleton.cs
index 56ce5c3..e949e92 100644
--- a/src/Plugin/PluginSkeleton.cs
+++ b/src/Plugin/PluginSkeleton.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -66,12 +66,12 @@
 		/// repository must be a unique name.
 		/// </para>
 		/// <para>
-		/// The name of the plugin must not change one the 
+		/// The name of the plugin must not change one the
 		/// plugin has been attached to a repository.
 		/// </para>
 		/// </remarks>
-		public virtual string Name 
-		{ 
+		public virtual string Name
+		{
 			get { return m_name; }
 			set { m_name = value; }
 		}
@@ -98,7 +98,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// This method is called to notify the plugin that 
+		/// This method is called to notify the plugin that
 		/// it should stop operating and should detach from
 		/// the repository.
 		/// </para>
@@ -119,11 +119,11 @@
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// Gets or sets the <see cref="ILoggerRepository" /> that this plugin is 
+		/// Gets or sets the <see cref="ILoggerRepository" /> that this plugin is
 		/// attached to.
 		/// </para>
 		/// </remarks>
-		protected virtual ILoggerRepository LoggerRepository 
+		protected virtual ILoggerRepository LoggerRepository
 		{
 			get { return this.m_repository;	}
 			set { this.m_repository = value; }
diff --git a/src/Plugin/RemoteLoggingServerPlugin.cs b/src/Plugin/RemoteLoggingServerPlugin.cs
index dfe24e2..3462e6f 100644
--- a/src/Plugin/RemoteLoggingServerPlugin.cs
+++ b/src/Plugin/RemoteLoggingServerPlugin.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -35,7 +35,7 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// This plugin publishes an instance of <see cref="IRemoteLoggingSink"/> 
+	/// This plugin publishes an instance of <see cref="IRemoteLoggingSink"/>
 	/// on a specified <see cref="SinkUri"/>. This listens for logging events delivered from
 	/// a remote <see cref="log4net.Appender.RemotingAppender"/>.
 	/// </para>
@@ -68,7 +68,7 @@
 		/// <summary>
 		/// Construct with sink Uri.
 		/// </summary>
-		/// <param name="sinkUri">The name to publish the sink under in the remoting infrastructure. 
+		/// <param name="sinkUri">The name to publish the sink under in the remoting infrastructure.
 		/// See <see cref="SinkUri"/> for more details.</param>
 		/// <remarks>
 		/// <para>
@@ -97,8 +97,8 @@
 		/// <see cref="M:RemotingServices.Marshal(MarshalByRefObject,String,Type)"/>
 		/// </para>
 		/// </remarks>
-		public virtual string SinkUri 
-		{ 
+		public virtual string SinkUri
+		{
 			get { return m_sinkUri; }
 			set { m_sinkUri = value; }
 		}
@@ -127,11 +127,11 @@
 			base.Attach(repository);
 
 			// Create the sink and marshal it
-			m_sink = new RemoteLoggingSinkImpl(repository); 
+			m_sink = new RemoteLoggingSinkImpl(repository);
 
 			try
 			{
-				RemotingServices.Marshal(m_sink, m_sinkUri, typeof(IRemoteLoggingSink));		
+				RemotingServices.Marshal(m_sink, m_sinkUri, typeof(IRemoteLoggingSink));
 			}
 			catch(Exception ex)
 			{
@@ -149,9 +149,9 @@
 		/// </para>
 		/// </remarks>
 #if NET_4_0 || MONO_4_0
-        [System.Security.SecuritySafeCritical]
+		[System.Security.SecuritySafeCritical]
 #endif
-        override public void Shutdown()
+		override public void Shutdown()
 		{
 			// Stops the sink from receiving messages
 			RemotingServices.Disconnect(m_sink);
@@ -169,18 +169,18 @@
 
 		#endregion Private Instance Fields
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the RemoteLoggingServerPlugin class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(RemoteLoggingServerPlugin);
+		/// <summary>
+		/// The fully qualified type of the RemoteLoggingServerPlugin class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(RemoteLoggingServerPlugin);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 
 		/// <summary>
 		/// Delivers <see cref="LoggingEvent"/> objects to a remote sink.
@@ -242,21 +242,21 @@
 			#region Override implementation of MarshalByRefObject
 
 			/// <summary>
-			/// Obtains a lifetime service object to control the lifetime 
+			/// Obtains a lifetime service object to control the lifetime
 			/// policy for this instance.
 			/// </summary>
 			/// <returns><c>null</c> to indicate that this instance should live forever.</returns>
 			/// <remarks>
 			/// <para>
-			/// Obtains a lifetime service object to control the lifetime 
+			/// Obtains a lifetime service object to control the lifetime
 			/// policy for this instance. This object should live forever
 			/// therefore this implementation returns <c>null</c>.
 			/// </para>
 			/// </remarks>
 #if NET_4_0 || MONO_4_0
-            [System.Security.SecurityCritical]
+			[System.Security.SecurityCritical]
 #endif
-            public override object InitializeLifetimeService()
+			public override object InitializeLifetimeService()
 			{
 				return null;
 			}
diff --git a/src/Repository/ConfigurationChangedEventArgs.cs b/src/Repository/ConfigurationChangedEventArgs.cs
index 77df7d4..fada00c 100644
--- a/src/Repository/ConfigurationChangedEventArgs.cs
+++ b/src/Repository/ConfigurationChangedEventArgs.cs
@@ -24,28 +24,28 @@
 
 namespace log4net.Repository
 {
-    /// <summary>
-    /// 
-    /// </summary>
-    public class ConfigurationChangedEventArgs : EventArgs
-    {
-        private readonly ICollection configurationMessages;
+	/// <summary>
+	///
+	/// </summary>
+	public class ConfigurationChangedEventArgs : EventArgs
+	{
+		private readonly ICollection configurationMessages;
 
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="configurationMessages"></param>
-        public ConfigurationChangedEventArgs(ICollection configurationMessages)
-        {
-            this.configurationMessages = configurationMessages;
-        }
+		/// <summary>
+		///
+		/// </summary>
+		/// <param name="configurationMessages"></param>
+		public ConfigurationChangedEventArgs(ICollection configurationMessages)
+		{
+			this.configurationMessages = configurationMessages;
+		}
 
-        /// <summary>
-        /// 
-        /// </summary>
-        public ICollection ConfigurationMessages
-        {
-            get { return configurationMessages; }
-        }
-    }
+		/// <summary>
+		///
+		/// </summary>
+		public ICollection ConfigurationMessages
+		{
+			get { return configurationMessages; }
+		}
+	}
 }
diff --git a/src/Repository/Hierarchy/DefaultLoggerFactory.cs b/src/Repository/Hierarchy/DefaultLoggerFactory.cs
index 78239c5..5650e9a 100644
--- a/src/Repository/Hierarchy/DefaultLoggerFactory.cs
+++ b/src/Repository/Hierarchy/DefaultLoggerFactory.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -42,7 +42,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Initializes a new instance of the <see cref="DefaultLoggerFactory" /> class. 
+		/// Initializes a new instance of the <see cref="DefaultLoggerFactory" /> class.
 		/// </para>
 		/// </remarks>
 		internal DefaultLoggerFactory()
@@ -61,7 +61,7 @@
 		/// <returns>The <see cref="Logger" /> instance for the specified name.</returns>
 		/// <remarks>
 		/// <para>
-		/// Create a new <see cref="Logger" /> instance with the 
+		/// Create a new <see cref="Logger" /> instance with the
 		/// specified name.
 		/// </para>
 		/// <para>
@@ -73,7 +73,7 @@
 		/// must be returned.
 		/// </para>
 		/// </remarks>
-		public Logger CreateLogger(ILoggerRepository repository, string name) 
+		public Logger CreateLogger(ILoggerRepository repository, string name)
 		{
 			if (name == null)
 			{
@@ -103,7 +103,7 @@
 			/// <remarks>
 			/// <para>
 			/// Initializes a new instance of the <see cref="LoggerImpl" /> class
-			/// with the specified name. 
+			/// with the specified name.
 			/// </para>
 			/// </remarks>
 			internal LoggerImpl(string name) : base(name)
diff --git a/src/Repository/Hierarchy/Hierarchy.cs b/src/Repository/Hierarchy/Hierarchy.cs
index 0f4138f..c45a56a 100644
--- a/src/Repository/Hierarchy/Hierarchy.cs
+++ b/src/Repository/Hierarchy/Hierarchy.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -62,7 +62,7 @@
 		/// <param name="log">The <see cref="Logger"/> that has been created.</param>
 		/// <remarks>
 		/// <para>
-		/// Initializes a new instance of the <see cref="LoggerCreationEventArgs" /> event argument 
+		/// Initializes a new instance of the <see cref="LoggerCreationEventArgs" /> event argument
 		/// class,with the specified <see cref="Logger"/>.
 		/// </para>
 		/// </remarks>
@@ -100,7 +100,7 @@
 	/// </para>
 	/// <para>
 	/// This class is specialized in retrieving loggers by name and
-	/// also maintaining the logger hierarchy. Implements the 
+	/// also maintaining the logger hierarchy. Implements the
 	/// <see cref="ILoggerRepository"/> interface.
 	/// </para>
 	/// <para>
@@ -172,7 +172,7 @@
 		/// <param name="loggerFactory">The factory to use to create new logger instances.</param>
 		/// <remarks>
 		/// <para>
-		/// Initializes a new instance of the <see cref="Hierarchy" /> class with 
+		/// Initializes a new instance of the <see cref="Hierarchy" /> class with
 		/// the specified <see cref="ILoggerFactory" />.
 		/// </para>
 		/// </remarks>
@@ -187,7 +187,7 @@
 		/// <param name="loggerFactory">The factory to use to create new logger instances.</param>
 		/// <remarks>
 		/// <para>
-		/// Initializes a new instance of the <see cref="Hierarchy" /> class with 
+		/// Initializes a new instance of the <see cref="Hierarchy" /> class with
 		/// the specified <see cref="ILoggerFactory" />.
 		/// </para>
 		/// </remarks>
@@ -232,8 +232,8 @@
 		/// </remarks>
 		public Logger Root
 		{
-			get 
-			{ 
+			get
+			{
 				if (m_root == null)
 				{
 					lock(this)
@@ -249,7 +249,7 @@
 						}
 					}
 				}
-				return m_root; 
+				return m_root;
 			}
 		}
 
@@ -290,14 +290,14 @@
 		/// its reference, otherwise returns <c>null</c>.
 		/// </para>
 		/// </remarks>
-		override public ILogger Exists(string name) 
-		{	
+		override public ILogger Exists(string name)
+		{
 			if (name == null)
 			{
 				throw new ArgumentNullException("name");
 			}
 
-			lock(m_ht) 
+			lock(m_ht)
 			{
 				return m_ht[new LoggerKey(name)] as Logger;
 			}
@@ -314,19 +314,19 @@
 		/// enumeration.
 		/// </para>
 		/// </remarks>
-		override public ILogger[] GetCurrentLoggers() 
+		override public ILogger[] GetCurrentLoggers()
 		{
 			// The accumulation in loggers is necessary because not all elements in
 			// ht are Logger objects as there might be some ProvisionNodes
 			// as well.
-			lock(m_ht) 
+			lock(m_ht)
 			{
 				System.Collections.ArrayList loggers = new System.Collections.ArrayList(m_ht.Count);
-	
+
 				// Iterate through m_ht values
 				foreach(object node in m_ht.Values)
 				{
-					if (node is Logger) 
+					if (node is Logger)
 					{
 						loggers.Add(node);
 					}
@@ -352,7 +352,7 @@
 		/// </remarks>
 		/// <param name="name">The name of the logger to retrieve</param>
 		/// <returns>The logger object with the name specified</returns>
-		override public ILogger GetLogger(string name) 
+		override public ILogger GetLogger(string name)
 		{
 			if (name == null)
 			{
@@ -383,14 +383,14 @@
 		/// and again to a nested appender.
 		/// </para>
 		/// </remarks>
-		override public void Shutdown() 
+		override public void Shutdown()
 		{
 			LogLog.Debug(declaringType, "Shutdown called on Hierarchy ["+this.Name+"]");
 
 			// begin by closing nested appenders
 			Root.CloseNestedAppenders();
 
-			lock(m_ht) 
+			lock(m_ht)
 			{
 				ILogger[] currentLoggers = this.GetCurrentLoggers();
 
@@ -431,16 +431,16 @@
 		/// block all logging until it is completed.
 		/// </para>
 		/// </remarks>
-		override public void ResetConfiguration() 
+		override public void ResetConfiguration()
 		{
 			Root.Level = LevelMap.LookupWithDefault(Level.Debug);
 			Threshold = LevelMap.LookupWithDefault(Level.All);
-	
+
 			// the synchronization is needed to prevent hashtable surprises
-			lock(m_ht) 
-			{	
-				Shutdown(); // nested locks are OK	
-	
+			lock(m_ht)
+			{
+				Shutdown(); // nested locks are OK
+
 				foreach(Logger l in this.GetCurrentLoggers())
 				{
 					l.Level = null;
@@ -461,7 +461,7 @@
 		/// <remarks>
 		/// <para>
 		/// This method should not normally be used to log.
-		/// The <see cref="ILog"/> interface should be used 
+		/// The <see cref="ILog"/> interface should be used
 		/// for routine logging. This interface can be obtained
 		/// using the <see cref="M:log4net.LogManager.GetLogger(string)"/> method.
 		/// </para>
@@ -510,9 +510,9 @@
 
 		#endregion Override Implementation of LoggerRepositorySkeleton
 
-        #region Private Static Methods
+		#region Private Static Methods
 
-        /// <summary>
+		/// <summary>
 		/// Collect the appenders from an <see cref="IAppenderAttachable"/>.
 		/// The appender may also be a container.
 		/// </summary>
@@ -543,13 +543,13 @@
 			{
 				CollectAppender(appenderList, appender);
 			}
-        }
+		}
 
-        #endregion
+		#endregion
 
-        #region Implementation of IBasicRepositoryConfigurator
+		#region Implementation of IBasicRepositoryConfigurator
 
-        /// <summary>
+		/// <summary>
 		/// Initialize the log4net system using the specified appender
 		/// </summary>
 		/// <param name="appender">the appender to use to log all logging events</param>
@@ -558,14 +558,14 @@
 			BasicRepositoryConfigure(appender);
 		}
 
-        /// <summary>
-        /// Initialize the log4net system using the specified appenders
-        /// </summary>
-        /// <param name="appenders">the appenders to use to log all logging events</param>
-        void IBasicRepositoryConfigurator.Configure(params IAppender[] appenders)
-        {
-            BasicRepositoryConfigure(appenders);
-        }
+		/// <summary>
+		/// Initialize the log4net system using the specified appenders
+		/// </summary>
+		/// <param name="appenders">the appenders to use to log all logging events</param>
+		void IBasicRepositoryConfigurator.Configure(params IAppender[] appenders)
+		{
+			BasicRepositoryConfigure(appenders);
+		}
 
 		/// <summary>
 		/// Initialize the log4net system using the specified appenders
@@ -573,32 +573,32 @@
 		/// <param name="appenders">the appenders to use to log all logging events</param>
 		/// <remarks>
 		/// <para>
-		/// This method provides the same functionality as the 
+		/// This method provides the same functionality as the
 		/// <see cref="M:IBasicRepositoryConfigurator.Configure(IAppender)"/> method implemented
 		/// on this object, but it is protected and therefore can be called by subclasses.
 		/// </para>
 		/// </remarks>
 		protected void BasicRepositoryConfigure(params IAppender[] appenders)
 		{
-            ArrayList configurationMessages = new ArrayList();
+			ArrayList configurationMessages = new ArrayList();
 
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-            {
-                foreach (IAppender appender in appenders)
-                {
-                    Root.AddAppender(appender);
-                }
-            }
+			using (new LogLog.LogReceivedAdapter(configurationMessages))
+			{
+				foreach (IAppender appender in appenders)
+				{
+					Root.AddAppender(appender);
+				}
+			}
 
-		    Configured = true;
+			Configured = true;
 
-            ConfigurationMessages = configurationMessages;
+			ConfigurationMessages = configurationMessages;
 
 			// Notify listeners
-            OnConfigurationChanged(new ConfigurationChangedEventArgs(configurationMessages));
+			OnConfigurationChanged(new ConfigurationChangedEventArgs(configurationMessages));
 		}
 
-	    #endregion Implementation of IBasicRepositoryConfigurator
+		#endregion Implementation of IBasicRepositoryConfigurator
 
 		#region Implementation of IXmlRepositoryConfigurator
 
@@ -617,27 +617,27 @@
 		/// <param name="element">the element containing the root of the config</param>
 		/// <remarks>
 		/// <para>
-		/// This method provides the same functionality as the 
+		/// This method provides the same functionality as the
 		/// <see cref="M:IBasicRepositoryConfigurator.Configure(IAppender)"/> method implemented
 		/// on this object, but it is protected and therefore can be called by subclasses.
 		/// </para>
 		/// </remarks>
 		protected void XmlRepositoryConfigure(System.Xml.XmlElement element)
 		{
-            ArrayList configurationMessages = new ArrayList();
+			ArrayList configurationMessages = new ArrayList();
 
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-		    {
-		        XmlHierarchyConfigurator config = new XmlHierarchyConfigurator(this);
-                config.Configure(element);
-		    }
+			using (new LogLog.LogReceivedAdapter(configurationMessages))
+			{
+				XmlHierarchyConfigurator config = new XmlHierarchyConfigurator(this);
+				config.Configure(element);
+			}
 
-		    Configured = true;
+			Configured = true;
 
-            ConfigurationMessages = configurationMessages;
+			ConfigurationMessages = configurationMessages;
 
 			// Notify listeners
-            OnConfigurationChanged(new ConfigurationChangedEventArgs(configurationMessages));
+			OnConfigurationChanged(new ConfigurationChangedEventArgs(configurationMessages));
 		}
 
 		#endregion Implementation of IXmlRepositoryConfigurator
@@ -665,7 +665,7 @@
 		/// See also the <see cref="ILoggerRepository.Threshold"/> property.
 		/// </para>
 		/// </remarks>
-		public bool IsDisabled(Level level) 
+		public bool IsDisabled(Level level)
 		{
 			// Cast level to object for performance
 			if ((object)level == null)
@@ -698,9 +698,9 @@
 		/// invoking this method.
 		/// </para>
 		/// </remarks>
-		public void Clear() 
+		public void Clear()
 		{
-			lock(m_ht) 
+			lock(m_ht)
 			{
 				m_ht.Clear();
 			}
@@ -721,7 +721,7 @@
 		/// ancestors as well as children.
 		/// </para>
 		/// </remarks>
-		public Logger GetLogger(string name, ILoggerFactory factory) 
+		public Logger GetLogger(string name, ILoggerFactory factory)
 		{
 			if (name == null)
 			{
@@ -732,41 +732,41 @@
 				throw new ArgumentNullException("factory");
 			}
 
-			LoggerKey key = new LoggerKey(name);   
- 
+			LoggerKey key = new LoggerKey(name);
+
 			// Synchronize to prevent write conflicts. Read conflicts (in
 			// GetEffectiveLevel() method) are possible only if variable
 			// assignments are non-atomic.
 
-			lock(m_ht) 
+			lock(m_ht)
 			{
 				Logger logger = null;
 
 				Object node = m_ht[key];
-				if (node == null) 
+				if (node == null)
 				{
 					logger = factory.CreateLogger(this, name);
 					logger.Hierarchy = this;
-					m_ht[key] = logger;	  
+					m_ht[key] = logger;
 					UpdateParents(logger);
 					OnLoggerCreationEvent(logger);
 					return logger;
-				} 
-				
+				}
+
 				Logger nodeLogger = node as Logger;
-				if (nodeLogger != null) 
+				if (nodeLogger != null)
 				{
 					return nodeLogger;
-				} 
-				
+				}
+
 				ProvisionNode nodeProvisionNode = node as ProvisionNode;
-				if (nodeProvisionNode != null) 
+				if (nodeProvisionNode != null)
 				{
 					logger = factory.CreateLogger(this, name);
-					logger.Hierarchy = this; 
+					logger.Hierarchy = this;
 					m_ht[key] = logger;
 					UpdateChildren(nodeProvisionNode, logger);
-					UpdateParents(logger);	
+					UpdateParents(logger);
 					OnLoggerCreationEvent(logger);
 					return logger;
 				}
@@ -787,7 +787,7 @@
 		/// <remarks>
 		/// Raises the logger creation event.
 		/// </remarks>
-		protected virtual void OnLoggerCreationEvent(Logger logger) 
+		protected virtual void OnLoggerCreationEvent(Logger logger)
 		{
 			LoggerCreationEventHandler handler = m_loggerCreatedEvent;
 			if (handler != null)
@@ -813,47 +813,47 @@
 		///		<item>
 		///			<term>No entry for the potential parent of <paramref name="log"/> exists</term>
 		///			<description>
-		///			We create a ProvisionNode for this potential 
+		///			We create a ProvisionNode for this potential
 		///			parent and insert <paramref name="log"/> in that provision node.
 		///			</description>
 		///		</item>
 		///		<item>
 		///			<term>The entry is of type Logger for the potential parent.</term>
 		///			<description>
-		///			The entry is <paramref name="log"/>'s nearest existing parent. We 
-		///			update <paramref name="log"/>'s parent field with this entry. We also break from 
-		///			he loop because updating our parent's parent is our parent's 
+		///			The entry is <paramref name="log"/>'s nearest existing parent. We
+		///			update <paramref name="log"/>'s parent field with this entry. We also break from
+		///			he loop because updating our parent's parent is our parent's
 		///			responsibility.
 		///			</description>
 		///		</item>
 		///		<item>
 		///			<term>The entry is of type ProvisionNode for this potential parent.</term>
 		///			<description>
-		///			We add <paramref name="log"/> to the list of children for this 
+		///			We add <paramref name="log"/> to the list of children for this
 		///			potential parent.
 		///			</description>
 		///		</item>
 		/// </list>
 		/// </remarks>
-		private void UpdateParents(Logger log) 
+		private void UpdateParents(Logger log)
 		{
 			string name = log.Name;
 			int length = name.Length;
 			bool parentFound = false;
-	
-			// if name = "w.x.y.z", loop through "w.x.y", "w.x" and "w", but not "w.x.y.z" 
-			for(int i = name.LastIndexOf('.', length-1); i >= 0; i = name.LastIndexOf('.', i-1))  
+
+			// if name = "w.x.y.z", loop through "w.x.y", "w.x" and "w", but not "w.x.y.z"
+			for(int i = name.LastIndexOf('.', length-1); i >= 0; i = name.LastIndexOf('.', i-1))
 			{
 				string substr = name.Substring(0, i);
 
 				LoggerKey key = new LoggerKey(substr); // simple constructor
 				Object node = m_ht[key];
 				// Create a provision node for a future parent.
-				if (node == null) 
+				if (node == null)
 				{
 					ProvisionNode pn = new ProvisionNode(log);
 					m_ht[key] = pn;
-				} 
+				}
 				else
 				{
 					Logger nodeLogger = node as Logger;
@@ -874,17 +874,17 @@
 						{
 							LogLog.Error(declaringType, "Unexpected object type ["+node.GetType()+"] in ht.", new LogException());
 						}
-					} 
+					}
 				}
 				if (i == 0) {
-				    // logger name starts with a dot
-				    // and we've hit the start
-				    break;
+					// logger name starts with a dot
+					// and we've hit the start
+					break;
 				}
 			}
 
 			// If we could not find any existing parents, then link with root.
-			if (!parentFound) 
+			if (!parentFound)
 			{
 				log.Parent = this.Root;
 			}
@@ -914,18 +914,18 @@
 		/// c's parent field to log.
 		/// </para>
 		/// </remarks>
-		private static void UpdateChildren(ProvisionNode pn, Logger log) 
+		private static void UpdateChildren(ProvisionNode pn, Logger log)
 		{
-			for(int i = 0; i < pn.Count; i++) 
+			for(int i = 0; i < pn.Count; i++)
 			{
 				Logger childLogger = (Logger)pn[i];
 
 				// Unless this child already points to a correct (lower) parent,
 				// make log.Parent point to childLogger.Parent and childLogger.Parent to log.
-				if (!childLogger.Parent.Name.StartsWith(log.Name)) 
+				if (!childLogger.Parent.Name.StartsWith(log.Name))
 				{
 					log.Parent = childLogger.Parent;
-					childLogger.Parent = log;	  
+					childLogger.Parent = log;
 				}
 			}
 		}
@@ -1063,24 +1063,24 @@
 
 		private System.Collections.Hashtable m_ht;
 		private Logger m_root;
-  
+
 		private bool m_emittedNoAppenderWarning = false;
 
-	    private event LoggerCreationEventHandler m_loggerCreatedEvent;
+		private event LoggerCreationEventHandler m_loggerCreatedEvent;
 
 		#endregion Private Instance Fields
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the Hierarchy class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(Hierarchy);
+		/// <summary>
+		/// The fully qualified type of the Hierarchy class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(Hierarchy);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
diff --git a/src/Repository/Hierarchy/ILoggerFactory.cs b/src/Repository/Hierarchy/ILoggerFactory.cs
index 52966f4..0bdda14 100644
--- a/src/Repository/Hierarchy/ILoggerFactory.cs
+++ b/src/Repository/Hierarchy/ILoggerFactory.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -24,7 +24,7 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// This interface is used by the <see cref="Hierarchy"/> to 
+	/// This interface is used by the <see cref="Hierarchy"/> to
 	/// create new <see cref="Logger"/> objects.
 	/// </para>
 	/// <para>
@@ -47,7 +47,7 @@
 		/// <returns>The <see cref="Logger" /> instance for the specified name.</returns>
 		/// <remarks>
 		/// <para>
-		/// Create a new <see cref="Logger" /> instance with the 
+		/// Create a new <see cref="Logger" /> instance with the
 		/// specified name.
 		/// </para>
 		/// <para>
diff --git a/src/Repository/Hierarchy/Logger.cs b/src/Repository/Hierarchy/Logger.cs
index 34735a7..d65be9b 100644
--- a/src/Repository/Hierarchy/Logger.cs
+++ b/src/Repository/Hierarchy/Logger.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -66,12 +66,12 @@
 		/// a subclass that is not abstract.
 		/// </para>
 		/// <para>
-		/// Loggers are constructed by <see cref="ILoggerFactory"/> 
+		/// Loggers are constructed by <see cref="ILoggerFactory"/>
 		/// objects. See <see cref="DefaultLoggerFactory"/> for the default
 		/// logger creator.
 		/// </para>
 		/// </remarks>
-		protected Logger(string name) 
+		protected Logger(string name)
 		{
 #if NETCF || NETSTANDARD1_3
 			// NETCF: String.Intern causes Native Exception
@@ -141,14 +141,14 @@
 		/// </remarks>
 		virtual public Level EffectiveLevel
 		{
-			get 
+			get
 			{
-				for(Logger c = this; c != null; c = c.m_parent) 
+				for(Logger c = this; c != null; c = c.m_parent)
 				{
 					Level level = c.m_level;
 
 					// Casting level to Object for performance, otherwise the overloaded operator is called
-					if ((object)level != null) 
+					if ((object)level != null)
 					{
 						return level;
 					}
@@ -158,7 +158,7 @@
 		}
 
 		/// <summary>
-		/// Gets or sets the <see cref="Hierarchy"/> where this 
+		/// Gets or sets the <see cref="Hierarchy"/> where this
 		/// <c>Logger</c> instance is attached to.
 		/// </summary>
 		/// <value>The hierarchy that this logger belongs to.</value>
@@ -174,7 +174,7 @@
 		}
 
 		/// <summary>
-		/// Gets or sets the assigned <see cref="Level"/>, if any, for this Logger.  
+		/// Gets or sets the assigned <see cref="Level"/>, if any, for this Logger.
 		/// </summary>
 		/// <value>
 		/// The <see cref="Level"/> of this logger.
@@ -209,7 +209,7 @@
 		/// appenders, then it won't be added again.
 		/// </para>
 		/// </remarks>
-		virtual public void AddAppender(IAppender newAppender) 
+		virtual public void AddAppender(IAppender newAppender)
 		{
 			if (newAppender == null)
 			{
@@ -219,7 +219,7 @@
 			m_appenderLock.AcquireWriterLock();
 			try
 			{
-				if (m_appenderAttachedImpl == null) 
+				if (m_appenderAttachedImpl == null)
 				{
 					m_appenderAttachedImpl = new log4net.Util.AppenderAttachedImpl();
 				}
@@ -232,18 +232,18 @@
 		}
 
 		/// <summary>
-		/// Get the appenders contained in this logger as an 
+		/// Get the appenders contained in this logger as an
 		/// <see cref="System.Collections.ICollection"/>.
 		/// </summary>
 		/// <returns>A collection of the appenders in this logger</returns>
 		/// <remarks>
 		/// <para>
-		/// Get the appenders contained in this logger as an 
-		/// <see cref="System.Collections.ICollection"/>. If no appenders 
+		/// Get the appenders contained in this logger as an
+		/// <see cref="System.Collections.ICollection"/>. If no appenders
 		/// can be found, then a <see cref="EmptyCollection"/> is returned.
 		/// </para>
 		/// </remarks>
-		virtual public AppenderCollection Appenders 
+		virtual public AppenderCollection Appenders
 		{
 			get
 			{
@@ -254,7 +254,7 @@
 					{
 						return AppenderCollection.EmptyCollection;
 					}
-					else 
+					else
 					{
 						return m_appenderAttachedImpl.Appenders;
 					}
@@ -276,7 +276,7 @@
 		/// Returns the named appender, or null if the appender is not found.
 		/// </para>
 		/// </remarks>
-		virtual public IAppender GetAppender(string name) 
+		virtual public IAppender GetAppender(string name)
 		{
 			m_appenderLock.AcquireReaderLock();
 			try
@@ -305,12 +305,12 @@
 		/// This is useful when re-reading configuration information.
 		/// </para>
 		/// </remarks>
-		virtual public void RemoveAllAppenders() 
+		virtual public void RemoveAllAppenders()
 		{
 			m_appenderLock.AcquireWriterLock();
 			try
 			{
-				if (m_appenderAttachedImpl != null) 
+				if (m_appenderAttachedImpl != null)
 				{
 					m_appenderAttachedImpl.RemoveAllAppenders();
 					m_appenderAttachedImpl = null;
@@ -335,12 +335,12 @@
 		/// <see cref="IAppender.Close"/> on the appender removed.
 		/// </para>
 		/// </remarks>
-		virtual public IAppender RemoveAppender(IAppender appender) 
+		virtual public IAppender RemoveAppender(IAppender appender)
 		{
 			m_appenderLock.AcquireWriterLock();
 			try
 			{
-				if (appender != null && m_appenderAttachedImpl != null) 
+				if (appender != null && m_appenderAttachedImpl != null)
 				{
 					return m_appenderAttachedImpl.RemoveAppender(appender);
 				}
@@ -365,7 +365,7 @@
 		/// <see cref="IAppender.Close"/> on the appender removed.
 		/// </para>
 		/// </remarks>
-		virtual public IAppender RemoveAppender(string name) 
+		virtual public IAppender RemoveAppender(string name)
 		{
 			m_appenderLock.AcquireWriterLock();
 			try
@@ -381,7 +381,7 @@
 			}
 			return null;
 		}
-  
+
 		#endregion
 
 		#region Implementation of ILogger
@@ -419,13 +419,13 @@
 		/// This method must not throw any exception to the caller.
 		/// </para>
 		/// </remarks>
-		virtual public void Log(Type callerStackBoundaryDeclaringType, Level level, object message, Exception exception) 
+		virtual public void Log(Type callerStackBoundaryDeclaringType, Level level, object message, Exception exception)
 		{
 			try
 			{
 				if (IsEnabledFor(level))
 				{
-                    ForcedLog((callerStackBoundaryDeclaringType != null) ? callerStackBoundaryDeclaringType : declaringType, level, message, exception);
+					ForcedLog((callerStackBoundaryDeclaringType != null) ? callerStackBoundaryDeclaringType : declaringType, level, message, exception);
 				}
 			}
 			catch (Exception ex)
@@ -441,7 +441,7 @@
 		}
 
 		/// <summary>
-		/// This is the most generic printing method that is intended to be used 
+		/// This is the most generic printing method that is intended to be used
 		/// by wrappers.
 		/// </summary>
 		/// <param name="logEvent">The event being logged.</param>
@@ -519,7 +519,7 @@
 		}
 
 		/// <summary>
-		/// Gets the <see cref="ILoggerRepository"/> where this 
+		/// Gets the <see cref="ILoggerRepository"/> where this
 		/// <c>Logger</c> instance is attached to.
 		/// </summary>
 		/// <value>
@@ -527,16 +527,16 @@
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// Gets the <see cref="ILoggerRepository"/> where this 
+		/// Gets the <see cref="ILoggerRepository"/> where this
 		/// <c>Logger</c> instance is attached to.
 		/// </para>
 		/// </remarks>
 		public ILoggerRepository Repository
-		{ 
+		{
 			get { return m_hierarchy; }
 		}
 
-  		#endregion Implementation of ILogger
+		#endregion Implementation of ILogger
 
 		/// <summary>
 		/// Deliver the <see cref="LoggingEvent"/> to the attached appenders.
@@ -554,7 +554,7 @@
 		/// to log the particular log request.
 		/// </para>
 		/// </remarks>
-		virtual protected void CallAppenders(LoggingEvent loggingEvent) 
+		virtual protected void CallAppenders(LoggingEvent loggingEvent)
 		{
 			if (loggingEvent == null)
 			{
@@ -563,15 +563,15 @@
 
 			int writes = 0;
 
-			for(Logger c=this; c != null; c=c.m_parent) 
+			for(Logger c=this; c != null; c=c.m_parent)
 			{
-				if (c.m_appenderAttachedImpl != null) 
+				if (c.m_appenderAttachedImpl != null)
 				{
 					// Protected against simultaneous call to addAppender, removeAppender,...
 					c.m_appenderLock.AcquireReaderLock();
 					try
 					{
-						if (c.m_appenderAttachedImpl != null) 
+						if (c.m_appenderAttachedImpl != null)
 						{
 							writes += c.m_appenderAttachedImpl.AppendLoopOnAppenders(loggingEvent);
 						}
@@ -582,12 +582,12 @@
 					}
 				}
 
-				if (!c.m_additive) 
+				if (!c.m_additive)
 				{
 					break;
 				}
 			}
-			
+
 			// No appenders in hierarchy, warn user only once.
 			//
 			// Note that by including the AppDomain values for the currently running
@@ -597,7 +597,7 @@
 			// or impossible to determine which .config file is missing appender
 			// definitions.
 			//
-			if (!m_hierarchy.EmittedNoAppenderWarning && writes == 0) 
+			if (!m_hierarchy.EmittedNoAppenderWarning && writes == 0)
 			{
 				m_hierarchy.EmittedNoAppenderWarning = true;
 				LogLog.Debug(declaringType, "No appenders could be found for logger [" + Name + "] repository [" + Repository.Name + "]");
@@ -626,7 +626,7 @@
 		/// Used to ensure that the appenders are correctly shutdown.
 		/// </para>
 		/// </remarks>
-		virtual public void CloseNestedAppenders() 
+		virtual public void CloseNestedAppenders()
 		{
 			m_appenderLock.AcquireWriterLock();
 			try
@@ -661,11 +661,11 @@
 		/// the <paramref name="message"/>.
 		/// </para>
 		/// </remarks>
-		virtual public void Log(Level level, object message, Exception exception) 
+		virtual public void Log(Level level, object message, Exception exception)
 		{
 			if (IsEnabledFor(level))
 			{
-                ForcedLog(declaringType, level, message, exception);
+				ForcedLog(declaringType, level, message, exception);
 			}
 		}
 
@@ -683,7 +683,7 @@
 		/// appenders.
 		/// </para>
 		/// </remarks>
-		virtual protected void ForcedLog(Type callerStackBoundaryDeclaringType, Level level, object message, Exception exception) 
+		virtual protected void ForcedLog(Type callerStackBoundaryDeclaringType, Level level, object message, Exception exception)
 		{
 			CallAppenders(new LoggingEvent(callerStackBoundaryDeclaringType, this.Hierarchy, this.Name, level, message, exception));
 		}
@@ -697,7 +697,7 @@
 		/// Delivers the logging event to the attached appenders.
 		/// </para>
 		/// </remarks>
-		virtual protected void ForcedLog(LoggingEvent logEvent) 
+		virtual protected void ForcedLog(LoggingEvent logEvent)
 		{
 			// The logging event may not have been created by this logger
 			// the Repository may not be correctly set on the event. This
@@ -709,10 +709,10 @@
 
 		#region Private Static Fields
 
-        /// <summary>
-        /// The fully qualified type of the Logger class.
-        /// </summary>
-        private readonly static Type declaringType = typeof(Logger);
+		/// <summary>
+		/// The fully qualified type of the Logger class.
+		/// </summary>
+		private readonly static Type declaringType = typeof(Logger);
 
 		#endregion Private Static Fields
 
@@ -721,15 +721,15 @@
 		/// <summary>
 		/// The name of this logger.
 		/// </summary>
-		private readonly string m_name;  
+		private readonly string m_name;
 
 		/// <summary>
-		/// The assigned level of this logger. 
+		/// The assigned level of this logger.
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// The <c>level</c> variable need not be 
-		/// assigned a value in which case it is inherited 
+		/// The <c>level</c> variable need not be
+		/// assigned a value in which case it is inherited
 		/// form the hierarchy.
 		/// </para>
 		/// </remarks>
@@ -740,7 +740,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// The parent of this logger. 
+		/// The parent of this logger.
 		/// All loggers have at least one ancestor which is the root logger.
 		/// </para>
 		/// </remarks>
@@ -783,7 +783,7 @@
 		/// Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl
 		/// </summary>
 		private readonly ReaderWriterLock m_appenderLock = new ReaderWriterLock();
-  
+
 		#endregion
 	}
 }
diff --git a/src/Repository/Hierarchy/LoggerKey.cs b/src/Repository/Hierarchy/LoggerKey.cs
index ccc566b..7b69766 100644
--- a/src/Repository/Hierarchy/LoggerKey.cs
+++ b/src/Repository/Hierarchy/LoggerKey.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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,13 +26,13 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// Internal class used to improve performance of 
+	/// Internal class used to improve performance of
 	/// string keyed hashtables.
 	/// </para>
 	/// <para>
 	/// The hashcode of the string is cached for reuse.
 	/// The string is stored as an interned value.
-	/// When comparing two <see cref="LoggerKey"/> objects for equality 
+	/// When comparing two <see cref="LoggerKey"/> objects for equality
 	/// the reference equality of the interned strings is compared.
 	/// </para>
 	/// </remarks>
@@ -47,7 +47,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Initializes a new instance of the <see cref="LoggerKey" /> class 
+		/// Initializes a new instance of the <see cref="LoggerKey" /> class
 		/// with the specified name.
 		/// </para>
 		/// <para>
@@ -62,7 +62,7 @@
 		/// </note>
 		/// </remarks>
 		/// <param name="name">The name of the logger.</param>
-		internal LoggerKey(string name) 
+		internal LoggerKey(string name)
 		{
 #if NETCF || NETSTANDARD1_3
 			// NETCF: String.Intern causes Native Exception
@@ -86,13 +86,13 @@
 		/// Returns the cached hashcode.
 		/// </para>
 		/// </remarks>
-		override public int GetHashCode() 
+		override public int GetHashCode()
 		{
 			return m_hashCache;
 		}
 
 		/// <summary>
-		/// Determines whether two <see cref="LoggerKey" /> instances 
+		/// Determines whether two <see cref="LoggerKey" /> instances
 		/// are equal.
 		/// </summary>
 		/// <param name="obj">The <see cref="object" /> to compare with the current <see cref="LoggerKey" />.</param>
@@ -104,16 +104,16 @@
 		/// Compares the references of the interned strings.
 		/// </para>
 		/// </remarks>
-		override public bool Equals(object obj) 
+		override public bool Equals(object obj)
 		{
 			// Compare reference type of this against argument
 			if (((object)this) == obj)
 			{
 				return true;
 			}
-			
+
 			LoggerKey objKey = obj as LoggerKey;
-			if (objKey != null) 
+			if (objKey != null)
 			{
 #if NETCF || NETSTANDARD1_3
 				return ( m_name == objKey.m_name );
@@ -129,10 +129,10 @@
 
 		#region Private Instance Fields
 
-		private readonly string m_name;  
+		private readonly string m_name;
 		private readonly int m_hashCache;
 
 		#endregion Private Instance Fields
-	}	
+	}
 }
 
diff --git a/src/Repository/Hierarchy/ProvisionNode.cs b/src/Repository/Hierarchy/ProvisionNode.cs
index 50f4e16..e30bba3 100644
--- a/src/Repository/Hierarchy/ProvisionNode.cs
+++ b/src/Repository/Hierarchy/ProvisionNode.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -27,8 +27,8 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// <see cref="ProvisionNode"/> instances are used in the 
-	/// <see cref="Hierarchy" /> when there is no specified 
+	/// <see cref="ProvisionNode"/> instances are used in the
+	/// <see cref="Hierarchy" /> when there is no specified
 	/// <see cref="Logger" /> for that node.
 	/// </para>
 	/// <para>
@@ -46,7 +46,7 @@
 		/// <param name="log">A child logger to add to this node.</param>
 		/// <remarks>
 		/// <para>
-		/// Initializes a new instance of the <see cref="ProvisionNode" /> class 
+		/// Initializes a new instance of the <see cref="ProvisionNode" /> class
 		/// with the specified child logger.
 		/// </para>
 		/// </remarks>
diff --git a/src/Repository/Hierarchy/RootLogger.cs b/src/Repository/Hierarchy/RootLogger.cs
index e178bb7..e839817 100644
--- a/src/Repository/Hierarchy/RootLogger.cs
+++ b/src/Repository/Hierarchy/RootLogger.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -25,11 +25,11 @@
 namespace log4net.Repository.Hierarchy
 {
 	/// <summary>
-	/// The <see cref="RootLogger" /> sits at the root of the logger hierarchy tree. 
+	/// The <see cref="RootLogger" /> sits at the root of the logger hierarchy tree.
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// The <see cref="RootLogger" /> is a regular <see cref="Logger" /> except 
+	/// The <see cref="RootLogger" /> is a regular <see cref="Logger" /> except
 	/// that it provides several guarantees.
 	/// </para>
 	/// <para>
@@ -79,16 +79,16 @@
 		/// value of <see cref="Logger.Level"/>.
 		/// </para>
 		/// </remarks>
-		override public Level EffectiveLevel 
+		override public Level EffectiveLevel
 		{
-			get 
+			get
 			{
 				return base.Level;
 			}
 		}
 
 		/// <summary>
-		/// Gets or sets the assigned <see cref="Level"/> for the root logger.  
+		/// Gets or sets the assigned <see cref="Level"/> for the root logger.
 		/// </summary>
 		/// <value>
 		/// The <see cref="Level"/> of the root logger.
@@ -104,11 +104,11 @@
 			get { return base.Level; }
 			set
 			{
-				if (value == null) 
+				if (value == null)
 				{
 					LogLog.Error(declaringType, "You have tried to set a null level to root.", new LogException());
 				}
-				else 
+				else
 				{
 					base.Level = value;
 				}
@@ -117,17 +117,17 @@
 
 		#endregion Override implementation of Logger
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the RootLogger class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(RootLogger);
+		/// <summary>
+		/// The fully qualified type of the RootLogger class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(RootLogger);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
diff --git a/src/Repository/Hierarchy/XmlHierarchyConfigurator.cs b/src/Repository/Hierarchy/XmlHierarchyConfigurator.cs
index f5021c1..064b5e6 100644
--- a/src/Repository/Hierarchy/XmlHierarchyConfigurator.cs
+++ b/src/Repository/Hierarchy/XmlHierarchyConfigurator.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -44,7 +44,7 @@
 	{
 		private enum ConfigUpdateMode
 		{
-			Merge, 
+			Merge,
 			Overwrite
 		}
 
@@ -60,7 +60,7 @@
 		/// with the specified <see cref="Hierarchy" />.
 		/// </para>
 		/// </remarks>
-		public XmlHierarchyConfigurator(Hierarchy hierarchy) 
+		public XmlHierarchyConfigurator(Hierarchy hierarchy)
 		{
 			m_hierarchy = hierarchy;
 			m_appenderBag = new Hashtable();
@@ -79,11 +79,11 @@
 		/// Configure the hierarchy by parsing a DOM tree of XML elements.
 		/// </para>
 		/// </remarks>
-		public void Configure(XmlElement element) 
+		public void Configure(XmlElement element)
 		{
 			if (element == null || m_hierarchy == null)
 			{
-                return;
+				return;
 			}
 
 			string rootElementName = element.LocalName;
@@ -91,43 +91,43 @@
 			if (rootElementName != CONFIGURATION_TAG)
 			{
 				LogLog.Error(declaringType, "Xml element is - not a <" + CONFIGURATION_TAG + "> element.");
-                return;
+				return;
 			}
 
-            if (!LogLog.EmitInternalMessages)
-            {
-                // Look for a emitDebug attribute to enable internal debug
-                string emitDebugAttribute = element.GetAttribute(EMIT_INTERNAL_DEBUG_ATTR);
-                LogLog.Debug(declaringType, EMIT_INTERNAL_DEBUG_ATTR + " attribute [" + emitDebugAttribute + "].");
+			if (!LogLog.EmitInternalMessages)
+			{
+				// Look for a emitDebug attribute to enable internal debug
+				string emitDebugAttribute = element.GetAttribute(EMIT_INTERNAL_DEBUG_ATTR);
+				LogLog.Debug(declaringType, EMIT_INTERNAL_DEBUG_ATTR + " attribute [" + emitDebugAttribute + "].");
 
-                if (emitDebugAttribute.Length > 0 && emitDebugAttribute != "null")
-                {
-                    LogLog.EmitInternalMessages = OptionConverter.ToBoolean(emitDebugAttribute, true);
-                }
-                else
-                {
-                    LogLog.Debug(declaringType, "Ignoring " + EMIT_INTERNAL_DEBUG_ATTR + " attribute.");
-                }
-            }
+				if (emitDebugAttribute.Length > 0 && emitDebugAttribute != "null")
+				{
+					LogLog.EmitInternalMessages = OptionConverter.ToBoolean(emitDebugAttribute, true);
+				}
+				else
+				{
+					LogLog.Debug(declaringType, "Ignoring " + EMIT_INTERNAL_DEBUG_ATTR + " attribute.");
+				}
+			}
 
-		    if (!LogLog.InternalDebugging)
+			if (!LogLog.InternalDebugging)
 			{
 				// Look for a debug attribute to enable internal debug
 				string debugAttribute = element.GetAttribute(INTERNAL_DEBUG_ATTR);
 				LogLog.Debug(declaringType, INTERNAL_DEBUG_ATTR+" attribute [" + debugAttribute + "].");
 
-				if (debugAttribute.Length>0 && debugAttribute != "null") 
-				{	  
+				if (debugAttribute.Length>0 && debugAttribute != "null")
+				{
 					LogLog.InternalDebugging = OptionConverter.ToBoolean(debugAttribute, true);
 				}
-				else 
+				else
 				{
 					LogLog.Debug(declaringType, "Ignoring " + INTERNAL_DEBUG_ATTR + " attribute.");
 				}
 
 				string confDebug = element.GetAttribute(CONFIG_DEBUG_ATTR);
 				if (confDebug.Length>0 && confDebug != "null")
-				{	  
+				{
 					LogLog.Warn(declaringType, "The \"" + CONFIG_DEBUG_ATTR + "\" attribute is deprecated.");
 					LogLog.Warn(declaringType, "Use the \"" + INTERNAL_DEBUG_ATTR + "\" attribute instead.");
 					LogLog.InternalDebugging = OptionConverter.ToBoolean(confDebug, true);
@@ -170,23 +170,23 @@
 
 			foreach (XmlNode currentNode in element.ChildNodes)
 			{
-				if (currentNode.NodeType == XmlNodeType.Element) 
+				if (currentNode.NodeType == XmlNodeType.Element)
 				{
 					XmlElement currentElement = (XmlElement)currentNode;
 
 					if (currentElement.LocalName == LOGGER_TAG)
 					{
 						ParseLogger(currentElement);
-					} 
+					}
 					else if (currentElement.LocalName == CATEGORY_TAG)
 					{
 						// TODO: deprecated use of category
 						ParseLogger(currentElement);
-					} 
+					}
 					else if (currentElement.LocalName == ROOT_TAG)
 					{
 						ParseRoot(currentElement);
-					} 
+					}
 					else if (currentElement.LocalName == RENDERER_TAG)
 					{
 						ParseRenderer(currentElement);
@@ -207,7 +207,7 @@
 			// Lastly set the hierarchy threshold
 			string thresholdStr = element.GetAttribute(THRESHOLD_ATTR);
 			LogLog.Debug(declaringType, "Hierarchy Threshold [" + thresholdStr + "]");
-			if (thresholdStr.Length > 0 && thresholdStr != "null") 
+			if (thresholdStr.Length > 0 && thresholdStr != "null")
 			{
 				Level thresholdLevel = (Level) ConvertStringTo(typeof(Level), thresholdStr);
 				if (thresholdLevel != null)
@@ -223,7 +223,7 @@
 			// Done reading config
 		}
 
-	    #endregion Public Instance Methods
+		#endregion Public Instance Methods
 
 		#region Protected Instance Methods
 
@@ -234,20 +234,20 @@
 		/// <returns>The instance of the appender that the ref refers to.</returns>
 		/// <remarks>
 		/// <para>
-		/// Parse an XML element that represents an appender and return 
+		/// Parse an XML element that represents an appender and return
 		/// the appender.
 		/// </para>
 		/// </remarks>
-		protected IAppender FindAppenderByReference(XmlElement appenderRef) 
-		{	
+		protected IAppender FindAppenderByReference(XmlElement appenderRef)
+		{
 			string appenderName = appenderRef.GetAttribute(REF_ATTR);
 
 			IAppender appender = (IAppender)m_appenderBag[appenderName];
-			if (appender != null) 
+			if (appender != null)
 			{
 				return appender;
-			} 
-			else 
+			}
+			else
 			{
 				// Find the element with that id
 				XmlElement element = null;
@@ -264,11 +264,11 @@
 					}
 				}
 
-				if (element == null) 
+				if (element == null)
 				{
-					LogLog.Error(declaringType, "XmlHierarchyConfigurator: No appender named [" + appenderName + "] could be found."); 
+					LogLog.Error(declaringType, "XmlHierarchyConfigurator: No appender named [" + appenderName + "] could be found.");
 					return null;
-				} 
+				}
 				else
 				{
 					appender = ParseAppender(element);
@@ -278,7 +278,7 @@
 					}
 					return appender;
 				}
-			} 
+			}
 		}
 
 		/// <summary>
@@ -292,13 +292,13 @@
 		/// the appender instance.
 		/// </para>
 		/// </remarks>
-		protected IAppender ParseAppender(XmlElement appenderElement) 
+		protected IAppender ParseAppender(XmlElement appenderElement)
 		{
 			string appenderName = appenderElement.GetAttribute(NAME_ATTR);
 			string typeName = appenderElement.GetAttribute(TYPE_ATTR);
 
 			LogLog.Debug(declaringType, "Loading Appender [" + appenderName + "] type: [" + typeName + "]");
-			try 
+			try
 			{
 #if NETSTANDARD1_3
 				IAppender appender = (IAppender)Activator.CreateInstance(SystemInfo.GetTypeFromString(this.GetType().GetTypeInfo().Assembly, typeName, true, true));
@@ -310,7 +310,7 @@
 				foreach (XmlNode currentNode in appenderElement.ChildNodes)
 				{
 					/* We're only interested in Elements */
-					if (currentNode.NodeType == XmlNodeType.Element) 
+					if (currentNode.NodeType == XmlNodeType.Element)
 					{
 						XmlElement currentElement = (XmlElement)currentNode;
 
@@ -320,7 +320,7 @@
 							string refName = currentElement.GetAttribute(REF_ATTR);
 
 							IAppenderAttachable appenderContainer = appender as IAppenderAttachable;
-							if (appenderContainer != null) 
+							if (appenderContainer != null)
 							{
 								LogLog.Debug(declaringType, "Attaching appender named [" + refName + "] to appender named [" + appender.Name + "].");
 
@@ -329,8 +329,8 @@
 								{
 									appenderContainer.AddAppender(referencedAppender);
 								}
-							} 
-							else 
+							}
+							else
 							{
 								LogLog.Error(declaringType, "Requesting attachment of appender named ["+refName+ "] to appender named [" + appender.Name + "] which does not implement log4net.Core.IAppenderAttachable.");
 							}
@@ -344,15 +344,15 @@
 				}
 
 				IOptionHandler optionHandler = appender as IOptionHandler;
-				if (optionHandler != null) 
+				if (optionHandler != null)
 				{
 					optionHandler.ActivateOptions();
 				}
 
-				LogLog.Debug(declaringType, "Created Appender [" + appenderName + "]");	
+				LogLog.Debug(declaringType, "Created Appender [" + appenderName + "]");
 				return appender;
 			}
-			catch (Exception ex) 
+			catch (Exception ex)
 			{
 				// Yes, it's ugly.  But all exceptions point to the same problem: we can't create an Appender
 
@@ -370,7 +370,7 @@
 		/// Parse an XML element that represents a logger.
 		/// </para>
 		/// </remarks>
-		protected void ParseLogger(XmlElement loggerElement) 
+		protected void ParseLogger(XmlElement loggerElement)
 		{
 			// Create a new log4net.Logger object from the <logger> element.
 			string loggerName = loggerElement.GetAttribute(NAME_ATTR);
@@ -381,10 +381,10 @@
 			// Setting up a logger needs to be an atomic operation, in order
 			// to protect potential log operations while logger
 			// configuration is in progress.
-			lock(log) 
+			lock(log)
 			{
 				bool additivity = OptionConverter.ToBoolean(loggerElement.GetAttribute(ADDITIVITY_ATTR), true);
-	
+
 				LogLog.Debug(declaringType, "Setting [" + log.Name + "] additivity to [" + additivity + "].");
 				log.Additivity = additivity;
 				ParseChildrenOfLoggerElement(loggerElement, log, false);
@@ -400,12 +400,12 @@
 		/// Parse an XML element that represents the root logger.
 		/// </para>
 		/// </remarks>
-		protected void ParseRoot(XmlElement rootElement) 
+		protected void ParseRoot(XmlElement rootElement)
 		{
 			Logger root = m_hierarchy.Root;
 			// logger configuration needs to be atomic
-			lock(root) 
-			{	
+			lock(root)
+			{
 				ParseChildrenOfLoggerElement(rootElement, root, true);
 			}
 		}
@@ -421,7 +421,7 @@
 		/// Parse the child elements of a &lt;logger&gt; element.
 		/// </para>
 		/// </remarks>
-		protected void ParseChildrenOfLoggerElement(XmlElement catElement, Logger log, bool isRoot) 
+		protected void ParseChildrenOfLoggerElement(XmlElement catElement, Logger log, bool isRoot)
 		{
 			// Remove all existing appenders from log. They will be
 			// reconstructed if need be.
@@ -429,10 +429,10 @@
 
 			foreach (XmlNode currentNode in catElement.ChildNodes)
 			{
-				if (currentNode.NodeType == XmlNodeType.Element) 
+				if (currentNode.NodeType == XmlNodeType.Element)
 				{
 					XmlElement currentElement = (XmlElement) currentNode;
-	
+
 					if (currentElement.LocalName == APPENDER_REF_TAG)
 					{
 						IAppender appender = FindAppenderByReference(currentElement);
@@ -442,15 +442,15 @@
 							LogLog.Debug(declaringType, "Adding appender named [" + refName + "] to logger [" + log.Name + "].");
 							log.AddAppender(appender);
 						}
-						else 
+						else
 						{
 							LogLog.Error(declaringType, "Appender named [" + refName + "] not found.");
 						}
-					} 
-					else if (currentElement.LocalName == LEVEL_TAG || currentElement.LocalName == PRIORITY_TAG) 
+					}
+					else if (currentElement.LocalName == LEVEL_TAG || currentElement.LocalName == PRIORITY_TAG)
 					{
-						ParseLevel(currentElement, log, isRoot);	
-					} 
+						ParseLevel(currentElement, log, isRoot);
+					}
 					else
 					{
 						SetParameter(currentElement, log);
@@ -459,7 +459,7 @@
 			}
 
 			IOptionHandler optionHandler = log as IOptionHandler;
-			if (optionHandler != null) 
+			if (optionHandler != null)
 			{
 				optionHandler.ActivateOptions();
 			}
@@ -474,29 +474,29 @@
 		/// Parse an XML element that represents a renderer.
 		/// </para>
 		/// </remarks>
-		protected void ParseRenderer(XmlElement element) 
+		protected void ParseRenderer(XmlElement element)
 		{
 			string renderingClassName = element.GetAttribute(RENDERING_TYPE_ATTR);
 			string renderedClassName = element.GetAttribute(RENDERED_TYPE_ATTR);
 
 			LogLog.Debug(declaringType, "Rendering class [" + renderingClassName + "], Rendered class [" + renderedClassName + "].");
 			IObjectRenderer renderer = (IObjectRenderer)OptionConverter.InstantiateByClassName(renderingClassName, typeof(IObjectRenderer), null);
-			if (renderer == null) 
+			if (renderer == null)
 			{
 				LogLog.Error(declaringType, "Could not instantiate renderer [" + renderingClassName + "].");
 				return;
-			} 
-			else 
+			}
+			else
 			{
-				try 
+				try
 				{
 #if NETSTANDARD1_3
 					m_hierarchy.RendererMap.Put(SystemInfo.GetTypeFromString(this.GetType().GetTypeInfo().Assembly, renderedClassName, true, true), renderer);
 #else
 					m_hierarchy.RendererMap.Put(SystemInfo.GetTypeFromString(renderedClassName, true, true), renderer);
 #endif
-				} 
-				catch(Exception e) 
+				}
+				catch(Exception e)
 				{
 					LogLog.Error(declaringType, "Could not find class [" + renderedClassName + "].", e);
 				}
@@ -514,30 +514,30 @@
 		/// Parse an XML element that represents a level.
 		/// </para>
 		/// </remarks>
-		protected void ParseLevel(XmlElement element, Logger log, bool isRoot) 
+		protected void ParseLevel(XmlElement element, Logger log, bool isRoot)
 		{
 			string loggerName = log.Name;
-			if (isRoot) 
+			if (isRoot)
 			{
 				loggerName = "root";
 			}
 
 			string levelStr = element.GetAttribute(VALUE_ATTR);
 			LogLog.Debug(declaringType, "Logger [" + loggerName + "] Level string is [" + levelStr + "].");
-	
-			if (INHERITED == levelStr) 
+
+			if (INHERITED == levelStr)
 			{
-				if (isRoot) 
+				if (isRoot)
 				{
 					LogLog.Error(declaringType, "Root level cannot be inherited. Ignoring directive.");
-				} 
-				else 
+				}
+				else
 				{
-					LogLog.Debug(declaringType, "Logger [" + loggerName + "] level set to inherit from parent.");	
+					LogLog.Debug(declaringType, "Logger [" + loggerName + "] level set to inherit from parent.");
 					log.Level = null;
 				}
-			} 
-			else 
+			}
+			else
 			{
 				log.Level = log.Hierarchy.LevelMap[levelStr];
 				if (log.Level == null)
@@ -546,7 +546,7 @@
 				}
 				else
 				{
-					LogLog.Debug(declaringType, "Logger [" + loggerName + "] level set to [name=\"" + log.Level.Name + "\",value=" + log.Level.Value + "].");	
+					LogLog.Debug(declaringType, "Logger [" + loggerName + "] level set to [name=\"" + log.Level.Name + "\",value=" + log.Level.Value + "].");
 				}
 			}
 		}
@@ -567,7 +567,7 @@
 		/// string argument and return a value that can be used to
 		/// set the property.
 		/// </remarks>
-		protected void SetParameter(XmlElement element, object target) 
+		protected void SetParameter(XmlElement element, object target)
 		{
 			// Get the property name
 			string name = element.GetAttribute(NAME_ATTR);
@@ -642,16 +642,16 @@
 					try
 					{
 						// Expand environment variables in the string.
-					    IDictionary environmentVariables = Environment.GetEnvironmentVariables();
-					    if (HasCaseInsensitiveEnvironment) {
+						IDictionary environmentVariables = Environment.GetEnvironmentVariables();
+						if (HasCaseInsensitiveEnvironment) {
 						environmentVariables = CreateCaseInsensitiveWrapper(environmentVariables);
-					    }
+						}
 						propertyValue = OptionConverter.SubstituteVariables(propertyValue, environmentVariables);
 					}
 					catch(System.Security.SecurityException)
 					{
-						// This security exception will occur if the caller does not have 
-						// unrestricted environment permission. If this occurs the expansion 
+						// This security exception will occur if the caller does not have
+						// unrestricted environment permission. If this occurs the expansion
 						// will be skipped with the following warning message.
 						LogLog.Debug(declaringType, "Security exception while trying to expand environment variables. Error Ignored. No Expansion.");
 					}
@@ -707,7 +707,7 @@
 					// to pass to this property.
 
 					object convertedValue = ConvertStringTo(propertyType, propertyValue);
-					
+
 					// Check if we need to do an additional conversion
 					if (convertedValue != null && parsedObjectConversionTargetType != null)
 					{
@@ -902,7 +902,7 @@
 					string methodInfoName = methInfo.Name;
 
 					if (SystemInfo.EqualsIgnoringCase(methodInfoName, requiredMethodNameA) ||
-					    SystemInfo.EqualsIgnoringCase(methodInfoName, requiredMethodNameB))
+						SystemInfo.EqualsIgnoringCase(methodInfoName, requiredMethodNameB))
 					{
 						// Found matching method name
 
@@ -925,7 +925,7 @@
 		/// <param name="value">The string value to use as the value of the object.</param>
 		/// <returns>
 		/// <para>
-		/// An object of type <paramref name="type"/> with value <paramref name="value"/> or 
+		/// An object of type <paramref name="type"/> with value <paramref name="value"/> or
 		/// <c>null</c> when the conversion could not be performed.
 		/// </para>
 		/// </returns>
@@ -966,7 +966,7 @@
 		/// <paramref name="typeConstraint"/> type.
 		/// </para>
 		/// </remarks>
-		protected object CreateObjectFromXml(XmlElement element, Type defaultTargetType, Type typeConstraint) 
+		protected object CreateObjectFromXml(XmlElement element, Type defaultTargetType, Type typeConstraint)
 		{
 			Type objectType = null;
 
@@ -1037,7 +1037,7 @@
 			// Set any params on object
 			foreach (XmlNode currentNode in element.ChildNodes)
 			{
-				if (currentNode.NodeType == XmlNodeType.Element) 
+				if (currentNode.NodeType == XmlNodeType.Element)
 				{
 					SetParameter((XmlElement)currentNode, createdObject);
 				}
@@ -1068,9 +1068,9 @@
 
 #if !(NETCF || NETSTANDARD1_3) // NETSTANDARD1_3: System.Runtime.InteropServices.RuntimeInformation not available on desktop 4.6
 		private bool HasCaseInsensitiveEnvironment
-	        {
-		    get
-		    {
+			{
+			get
+			{
 #if NET_1_0 || NET_1_1 || CLI_1_0
 			// actually there is no guarantee, but we don't know better
 			return true;
@@ -1081,20 +1081,20 @@
 			PlatformID platform = Environment.OSVersion.Platform;
 			return platform != PlatformID.Unix && platform != PlatformID.MacOSX;
 #endif
-		    }
+			}
 		}
 
-	        private IDictionary CreateCaseInsensitiveWrapper(IDictionary dict)
-	        {
-		    if (dict == null)
-		    {
+			private IDictionary CreateCaseInsensitiveWrapper(IDictionary dict)
+			{
+			if (dict == null)
+			{
 			return dict;
-		    }
-		    Hashtable hash = SystemInfo.CreateCaseInsensitiveHashtable();
-		    foreach (DictionaryEntry entry in dict) {
+			}
+			Hashtable hash = SystemInfo.CreateCaseInsensitiveHashtable();
+			foreach (DictionaryEntry entry in dict) {
 			hash[entry.Key] = entry.Value;
-		    }
-		    return hash;
+			}
+			return hash;
 		}
 #endif
 
@@ -1104,7 +1104,7 @@
 		private const string CONFIGURATION_TAG			= "log4net";
 		private const string RENDERER_TAG				= "renderer";
 		private const string APPENDER_TAG 				= "appender";
-		private const string APPENDER_REF_TAG 			= "appender-ref";  
+		private const string APPENDER_REF_TAG 			= "appender-ref";
 		private const string PARAM_TAG					= "param";
 
 		// TODO: Deprecate use of category tags
@@ -1119,7 +1119,7 @@
 		private const string ROOT_TAG					= "root";
 		private const string LEVEL_TAG					= "level";
 		private const string REF_ATTR					= "ref";
-		private const string ADDITIVITY_ATTR			= "additivity";  
+		private const string ADDITIVITY_ATTR			= "additivity";
 		private const string THRESHOLD_ATTR				= "threshold";
 		private const string CONFIG_DEBUG_ATTR			= "configDebug";
 		private const string INTERNAL_DEBUG_ATTR		= "debug";
@@ -1147,17 +1147,17 @@
 
 		#endregion Private Instance Fields
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the XmlHierarchyConfigurator class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(XmlHierarchyConfigurator);
+		/// <summary>
+		/// The fully qualified type of the XmlHierarchyConfigurator class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(XmlHierarchyConfigurator);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
diff --git a/src/Repository/IBasicRepositoryConfigurator.cs b/src/Repository/IBasicRepositoryConfigurator.cs
index 7fdbb70..0fd5d7b 100644
--- a/src/Repository/IBasicRepositoryConfigurator.cs
+++ b/src/Repository/IBasicRepositoryConfigurator.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -46,18 +46,18 @@
 		/// specified appender.
 		/// </para>
 		/// </remarks>
-        void Configure(Appender.IAppender appender);
+		void Configure(Appender.IAppender appender);
 
-        /// <summary>
-        /// Initialize the repository using the specified appenders
-        /// </summary>
-        /// <param name="appenders">the appenders to use to log all logging events</param>
-        /// <remarks>
-        /// <para>
-        /// Configure the repository to route all logging events to the
-        /// specified appenders.
-        /// </para>
-        /// </remarks>
-        void Configure(params Appender.IAppender[] appenders);
+		/// <summary>
+		/// Initialize the repository using the specified appenders
+		/// </summary>
+		/// <param name="appenders">the appenders to use to log all logging events</param>
+		/// <remarks>
+		/// <para>
+		/// Configure the repository to route all logging events to the
+		/// specified appenders.
+		/// </para>
+		/// </remarks>
+		void Configure(params Appender.IAppender[] appenders);
 	}
 }
diff --git a/src/Repository/ILoggerRepository.cs b/src/Repository/ILoggerRepository.cs
index 30ef5b3..a878b55 100644
--- a/src/Repository/ILoggerRepository.cs
+++ b/src/Repository/ILoggerRepository.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -74,14 +74,14 @@
 	/// </remarks>
 	public delegate void LoggerRepositoryConfigurationChangedEventHandler(object sender, EventArgs e);
 
-    #endregion
-	
+	#endregion
+
 	/// <summary>
 	/// Interface implemented by logger repositories.
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// This interface is implemented by logger repositories. e.g. 
+	/// This interface is implemented by logger repositories. e.g.
 	/// <see cref="Hierarchy"/>.
 	/// </para>
 	/// <para>
@@ -252,7 +252,7 @@
 		/// <remarks>
 		/// <para>
 		/// This method should not normally be used to log.
-		/// The <see cref="ILog"/> interface should be used 
+		/// The <see cref="ILog"/> interface should be used
 		/// for routine logging. This interface can be obtained
 		/// using the <see cref="M:log4net.LogManager.GetLogger(string)"/> method.
 		/// </para>
@@ -276,11 +276,11 @@
 		/// </remarks>
 		bool Configured { get; set; }
 
-        /// <summary>
-        /// Collection of internal messages captured during the most 
-        /// recent configuration process.
-        /// </summary>
-        ICollection ConfigurationMessages { get; set; }
+		/// <summary>
+		/// Collection of internal messages captured during the most
+		/// recent configuration process.
+		/// </summary>
+		ICollection ConfigurationMessages { get; set; }
 
 		/// <summary>
 		/// Event to notify that the repository has been shutdown.
diff --git a/src/Repository/IXmlRepositoryConfigurator.cs b/src/Repository/IXmlRepositoryConfigurator.cs
index 6fd657c..006b10c 100644
--- a/src/Repository/IXmlRepositoryConfigurator.cs
+++ b/src/Repository/IXmlRepositoryConfigurator.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/Repository/LoggerRepositorySkeleton.cs b/src/Repository/LoggerRepositorySkeleton.cs
index e4f06f8..035835a 100644
--- a/src/Repository/LoggerRepositorySkeleton.cs
+++ b/src/Repository/LoggerRepositorySkeleton.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -51,7 +51,7 @@
 		private LevelMap m_levelMap;
 		private Level m_threshold;
 		private bool m_configured;
-        private ICollection m_configurationMessages;
+		private ICollection m_configurationMessages;
 		private event LoggerRepositoryShutdownEventHandler m_shutdownEvent;
 		private event LoggerRepositoryConfigurationResetEventHandler m_configurationResetEvent;
 		private event LoggerRepositoryConfigurationChangedEventHandler m_configurationChangedEvent;
@@ -88,7 +88,7 @@
 			m_rendererMap = new RendererMap();
 			m_pluginMap = new PluginMap(this);
 			m_levelMap = new LevelMap();
-            m_configurationMessages = EmptyCollection.Instance;
+			m_configurationMessages = EmptyCollection.Instance;
 			m_configured = false;
 
 			AddBuiltinLevels();
@@ -110,7 +110,7 @@
 		/// <remarks>
 		/// <para>
 		/// The name of this repository. The name is
-		/// used to store and lookup the repositories 
+		/// used to store and lookup the repositories
 		/// stored by the <see cref="IRepositorySelector"/>.
 		/// </para>
 		/// </remarks>
@@ -135,10 +135,10 @@
 		{
 			get { return m_threshold; }
 			set
-			{ 
+			{
 				if (value != null)
 				{
-					m_threshold = value; 
+					m_threshold = value;
 				}
 				else
 				{
@@ -255,7 +255,7 @@
 		/// listeners and all attached plugins of the shutdown event.
 		/// </para>
 		/// </remarks>
-		virtual public void Shutdown() 
+		virtual public void Shutdown()
 		{
 			// Shutdown attached plugins
 			foreach(IPlugin plugin in PluginMap.AllPlugins)
@@ -283,12 +283,12 @@
 		/// block all logging until it is completed.
 		/// </para>
 		/// </remarks>
-		virtual public void ResetConfiguration() 
+		virtual public void ResetConfiguration()
 		{
 			// Clear internal data structures
 			m_rendererMap.Clear();
 			m_levelMap.Clear();
-            m_configurationMessages = EmptyCollection.Instance;
+			m_configurationMessages = EmptyCollection.Instance;
 
 			// Add the predefined levels to the map
 			AddBuiltinLevels();
@@ -306,7 +306,7 @@
 		/// <remarks>
 		/// <para>
 		/// This method should not normally be used to log.
-		/// The <see cref="ILog"/> interface should be used 
+		/// The <see cref="ILog"/> interface should be used
 		/// for routine logging. This interface can be obtained
 		/// using the <see cref="M:log4net.LogManager.GetLogger(string)"/> method.
 		/// </para>
@@ -328,23 +328,23 @@
 		/// Flag indicates if this repository has been configured.
 		/// </para>
 		/// </remarks>
-		virtual public bool Configured 
-		{ 
+		virtual public bool Configured
+		{
 			get { return m_configured; }
 			set { m_configured = value; }
 		}
 
-        /// <summary>
-        /// Contains a list of internal messages captures during the 
-        /// last configuration.
-        /// </summary>
-	    virtual public ICollection ConfigurationMessages
-	    {
-            get { return m_configurationMessages; }
-            set { m_configurationMessages = value; }
-	    }
+		/// <summary>
+		/// Contains a list of internal messages captures during the
+		/// last configuration.
+		/// </summary>
+		virtual public ICollection ConfigurationMessages
+		{
+			get { return m_configurationMessages; }
+			set { m_configurationMessages = value; }
+		}
 
-	    /// <summary>
+		/// <summary>
 		/// Event to notify that the repository has been shutdown.
 		/// </summary>
 		/// <value>
@@ -405,9 +405,9 @@
 		/// <remarks>
 		/// These properties can be specified on a repository specific basis
 		/// </remarks>
-		public PropertiesDictionary Properties 
-		{ 
-			get { return m_properties; } 
+		public PropertiesDictionary Properties
+		{
+			get { return m_properties; }
 		}
 
 		/// <summary>
@@ -423,18 +423,18 @@
 
 		#endregion
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the LoggerRepositorySkeleton class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(LoggerRepositorySkeleton);
+		/// <summary>
+		/// The fully qualified type of the LoggerRepositorySkeleton class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(LoggerRepositorySkeleton);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 
 		private void AddBuiltinLevels()
 		{
@@ -444,17 +444,17 @@
 			// Unrecoverable errors
 			m_levelMap.Add(Level.Emergency);
 			m_levelMap.Add(Level.Fatal);
-			m_levelMap.Add(Level.Alert); 
+			m_levelMap.Add(Level.Alert);
 
 			// Recoverable errors
-			m_levelMap.Add(Level.Critical); 
-			m_levelMap.Add(Level.Severe); 
-			m_levelMap.Add(Level.Error); 
+			m_levelMap.Add(Level.Critical);
+			m_levelMap.Add(Level.Severe);
+			m_levelMap.Add(Level.Error);
 			m_levelMap.Add(Level.Warn);
 
 			// Information
-			m_levelMap.Add(Level.Notice); 
-			m_levelMap.Add(Level.Info); 
+			m_levelMap.Add(Level.Notice);
+			m_levelMap.Add(Level.Info);
 
 			// Debug
 			m_levelMap.Add(Level.Debug);
@@ -468,16 +468,16 @@
 		}
 
 		/// <summary>
-		/// Adds an object renderer for a specific class. 
+		/// Adds an object renderer for a specific class.
 		/// </summary>
 		/// <param name="typeToRender">The type that will be rendered by the renderer supplied.</param>
 		/// <param name="rendererInstance">The object renderer used to render the object.</param>
 		/// <remarks>
 		/// <para>
-		/// Adds an object renderer for a specific class. 
+		/// Adds an object renderer for a specific class.
 		/// </para>
 		/// </remarks>
-		virtual public void AddRenderer(Type typeToRender, IObjectRenderer rendererInstance) 
+		virtual public void AddRenderer(Type typeToRender, IObjectRenderer rendererInstance)
 		{
 			if (typeToRender == null)
 			{
@@ -575,58 +575,58 @@
 			OnConfigurationChanged(e);
 		}
 
-        private static int GetWaitTime(DateTime startTimeUtc, int millisecondsTimeout)
-        {
-            if (millisecondsTimeout == Timeout.Infinite) return Timeout.Infinite;
-            if (millisecondsTimeout == 0) return 0;
+		private static int GetWaitTime(DateTime startTimeUtc, int millisecondsTimeout)
+		{
+			if (millisecondsTimeout == Timeout.Infinite) return Timeout.Infinite;
+			if (millisecondsTimeout == 0) return 0;
 
-            int elapsedMilliseconds = (int)(DateTime.UtcNow - startTimeUtc).TotalMilliseconds;
-            int timeout = millisecondsTimeout - elapsedMilliseconds;
-            if (timeout < 0) timeout = 0;
-            return timeout;
-        }
+			int elapsedMilliseconds = (int)(DateTime.UtcNow - startTimeUtc).TotalMilliseconds;
+			int timeout = millisecondsTimeout - elapsedMilliseconds;
+			if (timeout < 0) timeout = 0;
+			return timeout;
+		}
 
-        /// <summary>
-        /// Flushes all configured Appenders that implement <see cref="log4net.Appender.IFlushable"/>.
-        /// </summary>
-        /// <param name="millisecondsTimeout">The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed,
-        /// or <see cref="Timeout.Infinite"/> to wait indefinitely.</param>
-        /// <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
-        public bool Flush(int millisecondsTimeout)
-        {
-            if (millisecondsTimeout < -1) throw new ArgumentOutOfRangeException("millisecondsTimeout", "Timeout must be -1 (Timeout.Infinite) or non-negative");
+		/// <summary>
+		/// Flushes all configured Appenders that implement <see cref="log4net.Appender.IFlushable"/>.
+		/// </summary>
+		/// <param name="millisecondsTimeout">The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed,
+		/// or <see cref="Timeout.Infinite"/> to wait indefinitely.</param>
+		/// <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
+		public bool Flush(int millisecondsTimeout)
+		{
+			if (millisecondsTimeout < -1) throw new ArgumentOutOfRangeException("millisecondsTimeout", "Timeout must be -1 (Timeout.Infinite) or non-negative");
 
-            // Assume success until one of the appenders fails
-            bool result = true;
+			// Assume success until one of the appenders fails
+			bool result = true;
 
-            // Use DateTime.UtcNow rather than a System.Diagnostics.Stopwatch for compatibility with .NET 1.x
-            DateTime startTimeUtc = DateTime.UtcNow;
+			// Use DateTime.UtcNow rather than a System.Diagnostics.Stopwatch for compatibility with .NET 1.x
+			DateTime startTimeUtc = DateTime.UtcNow;
 
-            // Do buffering appenders first.  These may be forwarding to other appenders
-            foreach(log4net.Appender.IAppender appender in GetAppenders())
-            {
-                log4net.Appender.IFlushable flushable = appender as log4net.Appender.IFlushable;
-                if (flushable == null) continue;
-                if (appender is Appender.BufferingAppenderSkeleton)
-                {
-                    int timeout = GetWaitTime(startTimeUtc, millisecondsTimeout);
-                    if (!flushable.Flush(timeout)) result = false;
-                }
-            }
+			// Do buffering appenders first.  These may be forwarding to other appenders
+			foreach(log4net.Appender.IAppender appender in GetAppenders())
+			{
+				log4net.Appender.IFlushable flushable = appender as log4net.Appender.IFlushable;
+				if (flushable == null) continue;
+				if (appender is Appender.BufferingAppenderSkeleton)
+				{
+					int timeout = GetWaitTime(startTimeUtc, millisecondsTimeout);
+					if (!flushable.Flush(timeout)) result = false;
+				}
+			}
 
-            // Do non-buffering appenders.
-            foreach (log4net.Appender.IAppender appender in GetAppenders())
-            {
-                log4net.Appender.IFlushable flushable = appender as log4net.Appender.IFlushable;
-                if (flushable == null) continue;
-                if (!(appender is Appender.BufferingAppenderSkeleton))
-                {
-                    int timeout = GetWaitTime(startTimeUtc, millisecondsTimeout);
-                    if (!flushable.Flush(timeout)) result = false;
-                }
-            }
+			// Do non-buffering appenders.
+			foreach (log4net.Appender.IAppender appender in GetAppenders())
+			{
+				log4net.Appender.IFlushable flushable = appender as log4net.Appender.IFlushable;
+				if (flushable == null) continue;
+				if (!(appender is Appender.BufferingAppenderSkeleton))
+				{
+					int timeout = GetWaitTime(startTimeUtc, millisecondsTimeout);
+					if (!flushable.Flush(timeout)) result = false;
+				}
+			}
 
-            return result;
-        }
+			return result;
+		}
 	}
 }
diff --git a/src/ThreadContext.cs b/src/ThreadContext.cs
index 9d668f7..21b2e28 100644
--- a/src/ThreadContext.cs
+++ b/src/ThreadContext.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -29,19 +29,19 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// The <c>ThreadContext</c> provides a location for thread specific debugging 
+	/// The <c>ThreadContext</c> provides a location for thread specific debugging
 	/// information to be stored.
 	/// The <c>ThreadContext</c> properties override any <see cref="GlobalContext"/>
 	/// properties with the same name.
 	/// </para>
 	/// <para>
 	/// The thread context has a properties map and a stack.
-	/// The properties and stack can 
+	/// The properties and stack can
 	/// be included in the output of log messages. The <see cref="log4net.Layout.PatternLayout"/>
 	/// supports selecting and outputting these properties.
 	/// </para>
 	/// <para>
-	/// The Thread Context provides a diagnostic context for the current thread. 
+	/// The Thread Context provides a diagnostic context for the current thread.
 	/// This is an instrument for distinguishing interleaved log
 	/// output from different sources. Log output is typically interleaved
 	/// when a server handles multiple clients near-simultaneously.
@@ -61,8 +61,8 @@
 	///	using(ThreadContext.Stacks["NDC"].Push("my context message"))
 	///	{
 	///		log.Info("This log message has a ThreadContext Stack message that includes 'my context message'");
-	///	
-	///	} // at the end of the using block the message is automatically popped 
+	///
+	///	} // at the end of the using block the message is automatically popped
 	/// </code>
 	/// </example>
 	/// <threadsafety static="true" instance="true" />
@@ -72,7 +72,7 @@
 		#region Private Instance Constructors
 
 		/// <summary>
-		/// Private Constructor. 
+		/// Private Constructor.
 		/// </summary>
 		/// <remarks>
 		/// <para>
diff --git a/src/Util/AppenderAttachedImpl.cs b/src/Util/AppenderAttachedImpl.cs
index fafb0b8..f374db1 100644
--- a/src/Util/AppenderAttachedImpl.cs
+++ b/src/Util/AppenderAttachedImpl.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -63,11 +63,11 @@
 		/// <returns>The number of appenders called.</returns>
 		/// <remarks>
 		/// <para>
-		/// Calls the <see cref="IAppender.DoAppend" /> method on all 
+		/// Calls the <see cref="IAppender.DoAppend" /> method on all
 		/// attached appenders.
 		/// </para>
 		/// </remarks>
-		public int AppendLoopOnAppenders(LoggingEvent loggingEvent) 
+		public int AppendLoopOnAppenders(LoggingEvent loggingEvent)
 		{
 			if (loggingEvent == null)
 			{
@@ -75,7 +75,7 @@
 			}
 
 			// m_appenderList is null when empty
-			if (m_appenderList == null) 
+			if (m_appenderList == null)
 			{
 				return 0;
 			}
@@ -106,11 +106,11 @@
 		/// <returns>The number of appenders called.</returns>
 		/// <remarks>
 		/// <para>
-		/// Calls the <see cref="IAppender.DoAppend" /> method on all 
+		/// Calls the <see cref="IAppender.DoAppend" /> method on all
 		/// attached appenders.
 		/// </para>
 		/// </remarks>
-		public int AppendLoopOnAppenders(LoggingEvent[] loggingEvents) 
+		public int AppendLoopOnAppenders(LoggingEvent[] loggingEvents)
 		{
 			if (loggingEvents == null)
 			{
@@ -127,7 +127,7 @@
 			}
 
 			// m_appenderList is null when empty
-			if (m_appenderList == null) 
+			if (m_appenderList == null)
 			{
 				return 0;
 			}
@@ -153,10 +153,10 @@
 
 		#endregion Public Instance Methods
 
-        #region Private Static Methods
+		#region Private Static Methods
 
-        /// <summary>
-		/// Calls the DoAppende method on the <see cref="IAppender"/> with 
+		/// <summary>
+		/// Calls the DoAppende method on the <see cref="IAppender"/> with
 		/// the <see cref="LoggingEvent"/> objects supplied.
 		/// </summary>
 		/// <param name="appender">The appender</param>
@@ -164,7 +164,7 @@
 		/// <remarks>
 		/// <para>
 		/// If the <paramref name="appender" /> supports the <see cref="IBulkAppender"/>
-		/// interface then the <paramref name="loggingEvents" /> will be passed 
+		/// interface then the <paramref name="loggingEvents" /> will be passed
 		/// through using that interface. Otherwise the <see cref="LoggingEvent"/>
 		/// objects in the array will be passed one at a time.
 		/// </para>
@@ -183,13 +183,13 @@
 					appender.DoAppend(loggingEvent);
 				}
 			}
-        }
+		}
 
-        #endregion
+		#endregion
 
-        #region Implementation of IAppenderAttachable
+		#region Implementation of IAppenderAttachable
 
-        /// <summary>
+		/// <summary>
 		/// Attaches an appender.
 		/// </summary>
 		/// <param name="newAppender">The appender to add.</param>
@@ -198,16 +198,16 @@
 		/// If the appender is already in the list it won't be added again.
 		/// </para>
 		/// </remarks>
-		public void AddAppender(IAppender newAppender) 
+		public void AddAppender(IAppender newAppender)
 		{
 			// Null values for newAppender parameter are strictly forbidden.
 			if (newAppender == null)
 			{
 				throw new ArgumentNullException("newAppender");
 			}
-	
+
 			m_appenderArray = null;
-			if (m_appenderList == null) 
+			if (m_appenderList == null)
 			{
 				m_appenderList = new AppenderCollection(1);
 			}
@@ -229,7 +229,7 @@
 		/// The read only collection of all currently attached appenders.
 		/// </para>
 		/// </remarks>
-		public AppenderCollection Appenders 
+		public AppenderCollection Appenders
 		{
 			get
 			{
@@ -238,7 +238,7 @@
 					// We must always return a valid collection
 					return AppenderCollection.EmptyCollection;
 				}
-				else 
+				else
 				{
 					return AppenderCollection.ReadOnly(m_appenderList);
 				}
@@ -258,7 +258,7 @@
 		/// Lookup an attached appender by name.
 		/// </para>
 		/// </remarks>
-		public IAppender GetAppender(string name) 
+		public IAppender GetAppender(string name)
 		{
 			if (m_appenderList != null && name != null)
 			{
@@ -270,7 +270,7 @@
 					}
 				}
 			}
-			return null;   
+			return null;
 		}
 
 		/// <summary>
@@ -281,9 +281,9 @@
 		/// Removes and closes all attached appenders
 		/// </para>
 		/// </remarks>
-		public void RemoveAllAppenders() 
+		public void RemoveAllAppenders()
 		{
-			if (m_appenderList != null) 
+			if (m_appenderList != null)
 			{
 				foreach(IAppender appender in m_appenderList)
 				{
@@ -296,7 +296,7 @@
 						LogLog.Error(declaringType, "Failed to Close appender ["+appender.Name+"]", ex);
 					}
 				}
-				m_appenderList = null;	  
+				m_appenderList = null;
 				m_appenderArray = null;
 			}
 		}
@@ -313,9 +313,9 @@
 		/// <see cref="IAppender.Close"/> on the appender removed.
 		/// </para>
 		/// </remarks>
-		public IAppender RemoveAppender(IAppender appender) 
+		public IAppender RemoveAppender(IAppender appender)
 		{
-			if (appender != null && m_appenderList != null) 
+			if (appender != null && m_appenderList != null)
 			{
 				m_appenderList.Remove(appender);
 				if (m_appenderList.Count == 0)
@@ -339,7 +339,7 @@
 		/// <see cref="IAppender.Close"/> on the appender removed.
 		/// </para>
 		/// </remarks>
-		public IAppender RemoveAppender(string name) 
+		public IAppender RemoveAppender(string name)
 		{
 			return RemoveAppender(GetAppender(name));
 		}
@@ -360,17 +360,17 @@
 
 		#endregion Private Instance Fields
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the AppenderAttachedImpl class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(AppenderAttachedImpl);
+		/// <summary>
+		/// The fully qualified type of the AppenderAttachedImpl class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(AppenderAttachedImpl);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
diff --git a/src/Util/CompositeProperties.cs b/src/Util/CompositeProperties.cs
index b491197..f23c8aa 100644
--- a/src/Util/CompositeProperties.cs
+++ b/src/Util/CompositeProperties.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -80,7 +80,7 @@
 		/// </remarks>
 		public object this[string key]
 		{
-			get 
+			get
 			{
 				// Look in the flattened properties first
 				if (m_flattened != null)
diff --git a/src/Util/ContextPropertiesBase.cs b/src/Util/ContextPropertiesBase.cs
index 9d79fee..29f95f0 100644
--- a/src/Util/ContextPropertiesBase.cs
+++ b/src/Util/ContextPropertiesBase.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/Util/ConverterInfo.cs b/src/Util/ConverterInfo.cs
index b64edc9..f0e656c 100644
--- a/src/Util/ConverterInfo.cs
+++ b/src/Util/ConverterInfo.cs
@@ -23,72 +23,72 @@
 
 namespace log4net.Util
 {
-    /// <summary>
-    /// Wrapper class used to map converter names to converter types
-    /// </summary>
-    /// <remarks>
-    /// <para>
-    /// Pattern converter info class used during configuration by custom
-    /// PatternString and PatternLayer converters.
-    /// </para>
-    /// </remarks>
-    public sealed class ConverterInfo
-    {
-        private string m_name;
-        private Type m_type;
-        private readonly PropertiesDictionary properties = new PropertiesDictionary();
+	/// <summary>
+	/// Wrapper class used to map converter names to converter types
+	/// </summary>
+	/// <remarks>
+	/// <para>
+	/// Pattern converter info class used during configuration by custom
+	/// PatternString and PatternLayer converters.
+	/// </para>
+	/// </remarks>
+	public sealed class ConverterInfo
+	{
+		private string m_name;
+		private Type m_type;
+		private readonly PropertiesDictionary properties = new PropertiesDictionary();
 
-        /// <summary>
-        /// default constructor
-        /// </summary>
-        public ConverterInfo()
-        {
-        }
+		/// <summary>
+		/// default constructor
+		/// </summary>
+		public ConverterInfo()
+		{
+		}
 
-        /// <summary>
-        /// Gets or sets the name of the conversion pattern
-        /// </summary>
-        /// <remarks>
-        /// <para>
-        /// The name of the pattern in the format string
-        /// </para>
-        /// </remarks>
-        public string Name
-        {
-            get { return m_name; }
-            set { m_name = value; }
-        }
+		/// <summary>
+		/// Gets or sets the name of the conversion pattern
+		/// </summary>
+		/// <remarks>
+		/// <para>
+		/// The name of the pattern in the format string
+		/// </para>
+		/// </remarks>
+		public string Name
+		{
+			get { return m_name; }
+			set { m_name = value; }
+		}
 
-        /// <summary>
-        /// Gets or sets the type of the converter
-        /// </summary>
-        /// <remarks>
-        /// <para>
-        /// The value specified must extend the 
-        /// <see cref="PatternConverter"/> type.
-        /// </para>
-        /// </remarks>
-        public Type Type
-        {
-            get { return m_type; }
-            set { m_type = value; }
-        }
+		/// <summary>
+		/// Gets or sets the type of the converter
+		/// </summary>
+		/// <remarks>
+		/// <para>
+		/// The value specified must extend the
+		/// <see cref="PatternConverter"/> type.
+		/// </para>
+		/// </remarks>
+		public Type Type
+		{
+			get { return m_type; }
+			set { m_type = value; }
+		}
 
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="entry"></param>
-        public void AddProperty(PropertyEntry entry)
-        {
-            properties[entry.Key] = entry.Value;
-        }
+		/// <summary>
+		///
+		/// </summary>
+		/// <param name="entry"></param>
+		public void AddProperty(PropertyEntry entry)
+		{
+			properties[entry.Key] = entry.Value;
+		}
 
-        /// <summary>
-        /// 
-        /// </summary>
-        public PropertiesDictionary Properties
-        {
-            get { return properties; }
-        }
-    }
+		/// <summary>
+		///
+		/// </summary>
+		public PropertiesDictionary Properties
+		{
+			get { return properties; }
+		}
+	}
 }
diff --git a/src/Util/CountingQuietTextWriter.cs b/src/Util/CountingQuietTextWriter.cs
index aa2947a..0a4490e 100644
--- a/src/Util/CountingQuietTextWriter.cs
+++ b/src/Util/CountingQuietTextWriter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -25,7 +25,7 @@
 namespace log4net.Util
 {
 	/// <summary>
-	/// Subclass of <see cref="QuietTextWriter"/> that maintains a count of 
+	/// Subclass of <see cref="QuietTextWriter"/> that maintains a count of
 	/// the number of bytes written.
 	/// </summary>
 	/// <remarks>
@@ -35,7 +35,7 @@
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
 	/// <author>Gert Driesen</author>
-	public class CountingQuietTextWriter : QuietTextWriter 
+	public class CountingQuietTextWriter : QuietTextWriter
 	{
 		#region Public Instance Constructors
 
@@ -46,7 +46,7 @@
 		/// <param name="errorHandler">The <see cref="IErrorHandler" /> to report errors to.</param>
 		/// <remarks>
 		/// <para>
-		/// Creates a new instance of the <see cref="CountingQuietTextWriter" /> class 
+		/// Creates a new instance of the <see cref="CountingQuietTextWriter" /> class
 		/// with the specified <see cref="TextWriter" /> and <see cref="IErrorHandler" />.
 		/// </para>
 		/// </remarks>
@@ -58,7 +58,7 @@
 		#endregion Public Instance Constructors
 
 		#region Override implementation of QuietTextWriter
-  
+
 		/// <summary>
 		/// Writes a character to the underlying writer and counts the number of bytes written.
 		/// </summary>
@@ -69,22 +69,22 @@
 		/// the number of bytes written.
 		/// </para>
 		/// </remarks>
-		public override void Write(char value) 
+		public override void Write(char value)
 		{
-			try 
+			try
 			{
 				base.Write(value);
 
-				// get the number of bytes needed to represent the 
+				// get the number of bytes needed to represent the
 				// char using the supplied encoding.
 				m_countBytes += this.Encoding.GetByteCount(new char[] { value });
-			} 
-			catch(Exception e) 
+			}
+			catch(Exception e)
 			{
 				this.ErrorHandler.Error("Failed to write [" + value + "].", e, ErrorCode.WriteFailure);
 			}
 		}
-    
+
 		/// <summary>
 		/// Writes a buffer to the underlying writer and counts the number of bytes written.
 		/// </summary>
@@ -97,19 +97,19 @@
 		/// the number of bytes written.
 		/// </para>
 		/// </remarks>
-		public override void Write(char[] buffer, int index, int count) 
+		public override void Write(char[] buffer, int index, int count)
 		{
 			if (count > 0)
 			{
-				try 
+				try
 				{
 					base.Write(buffer, index, count);
 
-					// get the number of bytes needed to represent the 
+					// get the number of bytes needed to represent the
 					// char array using the supplied encoding.
 					m_countBytes += this.Encoding.GetByteCount(buffer, index, count);
-				} 
-				catch(Exception e) 
+				}
+				catch(Exception e)
 				{
 					this.ErrorHandler.Error("Failed to write buffer.", e, ErrorCode.WriteFailure);
 				}
@@ -126,25 +126,25 @@
 		/// the number of bytes written.
 		/// </para>
 		/// </remarks>
-		override public void Write(string str) 
+		override public void Write(string str)
 		{
 			if (str != null && str.Length > 0)
 			{
-				try 
+				try
 				{
 					base.Write(str);
 
-					// get the number of bytes needed to represent the 
+					// get the number of bytes needed to represent the
 					// string using the supplied encoding.
 					m_countBytes += this.Encoding.GetByteCount(str);
 				}
-				catch(Exception e) 
+				catch(Exception e)
 				{
 					this.ErrorHandler.Error("Failed to write [" + str + "].", e, ErrorCode.WriteFailure);
 				}
 			}
 		}
-		
+
 		#endregion Override implementation of QuietTextWriter
 
 		#region Public Instance Properties
@@ -160,14 +160,14 @@
 		/// Gets or sets the total number of bytes written.
 		/// </para>
 		/// </remarks>
-		public long Count 
+		public long Count
 		{
 			get { return m_countBytes; }
 			set { m_countBytes = value; }
 		}
 
 		#endregion Public Instance Properties
-  
+
 		#region Private Instance Fields
 
 		/// <summary>
diff --git a/src/Util/CyclicBuffer.cs b/src/Util/CyclicBuffer.cs
index bc8c902..eb9b5ec 100644
--- a/src/Util/CyclicBuffer.cs
+++ b/src/Util/CyclicBuffer.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -43,14 +43,14 @@
 		/// <param name="maxSize">The maximum number of logging events in the buffer.</param>
 		/// <remarks>
 		/// <para>
-		/// Initializes a new instance of the <see cref="CyclicBuffer" /> class with 
+		/// Initializes a new instance of the <see cref="CyclicBuffer" /> class with
 		/// the specified maximum number of buffered logging events.
 		/// </para>
 		/// </remarks>
 		/// <exception cref="ArgumentOutOfRangeException">The <paramref name="maxSize"/> argument is not a positive integer.</exception>
-		public CyclicBuffer(int maxSize) 
+		public CyclicBuffer(int maxSize)
 		{
-			if (maxSize < 1) 
+			if (maxSize < 1)
 			{
 				throw SystemInfo.CreateArgumentOutOfRangeException("maxSize", (object)maxSize, "Parameter: maxSize, Value: [" + maxSize + "] out of range. Non zero positive integer required");
 			}
@@ -65,7 +65,7 @@
 		#endregion Public Instance Constructors
 
 		#region Public Instance Methods
-	
+
 		/// <summary>
 		/// Appends a <paramref name="loggingEvent"/> to the buffer.
 		/// </summary>
@@ -79,7 +79,7 @@
 		/// </para>
 		/// </remarks>
 		public LoggingEvent Append(LoggingEvent loggingEvent)
-		{	
+		{
 			if (loggingEvent == null)
 			{
 				throw new ArgumentNullException("loggingEvent");
@@ -91,7 +91,7 @@
 				LoggingEvent discardedLoggingEvent = m_events[m_last];
 
 				// overwrite the last event position
-				m_events[m_last] = loggingEvent;	
+				m_events[m_last] = loggingEvent;
 				if (++m_last == m_maxSize)
 				{
 					m_last = 0;
@@ -125,16 +125,16 @@
 		/// <returns>The oldest logging event in the buffer</returns>
 		/// <remarks>
 		/// <para>
-		/// Gets the oldest (first) logging event in the buffer and removes it 
+		/// Gets the oldest (first) logging event in the buffer and removes it
 		/// from the buffer.
 		/// </para>
 		/// </remarks>
-		public LoggingEvent PopOldest() 
+		public LoggingEvent PopOldest()
 		{
 			lock(this)
 			{
 				LoggingEvent ret = null;
-				if (m_numElems > 0) 
+				if (m_numElems > 0)
 				{
 					m_numElems--;
 					ret = m_events[m_first];
@@ -143,7 +143,7 @@
 					{
 						m_first = 0;
 					}
-				} 
+				}
 				return ret;
 			}
 		}
@@ -217,11 +217,11 @@
 		/// </para>
 		/// </remarks>
 		/// <exception cref="ArgumentOutOfRangeException">The <paramref name="newSize"/> argument is not a positive integer.</exception>
-		public void Resize(int newSize) 
+		public void Resize(int newSize)
 		{
 			lock(this)
 			{
-				if (newSize < 0) 
+				if (newSize < 0)
 				{
 					throw log4net.Util.SystemInfo.CreateArgumentOutOfRangeException("newSize", (object)newSize, "Parameter: newSize, Value: [" + newSize + "] out of range. Non zero positive integer required");
 				}
@@ -229,17 +229,17 @@
 				{
 					return; // nothing to do
 				}
-	
+
 				LoggingEvent[] temp = new  LoggingEvent[newSize];
 
 				int loopLen = (newSize < m_numElems) ? newSize : m_numElems;
-	
-				for(int i = 0; i < loopLen; i++) 
+
+				for(int i = 0; i < loopLen; i++)
 				{
 					temp[i] = m_events[m_first];
 					m_events[m_first] = null;
 
-					if (++m_first == m_numElems) 
+					if (++m_first == m_numElems)
 					{
 						m_first = 0;
 					}
@@ -250,11 +250,11 @@
 				m_numElems = loopLen;
 				m_maxSize = newSize;
 
-				if (loopLen == newSize) 
+				if (loopLen == newSize)
 				{
 					m_last = 0;
-				} 
-				else 
+				}
+				else
 				{
 					m_last = loopLen;
 				}
@@ -276,7 +276,7 @@
 		/// currently in the buffer, then <c>null</c> is returned.
 		/// </para>
 		/// </remarks>
-		public LoggingEvent this[int i] 
+		public LoggingEvent this[int i]
 		{
 			get
 			{
@@ -301,20 +301,20 @@
 		/// Gets the maximum size of the buffer
 		/// </para>
 		/// </remarks>
-		public int MaxSize 
+		public int MaxSize
 		{
-			get 
-			{ 
+			get
+			{
 				lock(this)
 				{
-					return m_maxSize; 
+					return m_maxSize;
 				}
 			}
 #if RESIZABLE_CYCLIC_BUFFER
-			set 
-			{ 
+			set
+			{
 				/// Setting the MaxSize will cause the buffer to resize.
-				Resize(value); 
+				Resize(value);
 			}
 #endif
 		}
@@ -331,13 +331,13 @@
 		/// </remarks>
 		public int Length
 		{
-			get 
-			{ 
-				lock(this) 
-				{ 
-					return m_numElems; 
+			get
+			{
+				lock(this)
+				{
+					return m_numElems;
 				}
-			}									
+			}
 		}
 
 		#endregion Public Instance Properties
@@ -345,8 +345,8 @@
 		#region Private Instance Fields
 
 		private LoggingEvent[] m_events;
-		private int m_first; 
-		private int m_last; 
+		private int m_first;
+		private int m_last;
 		private int m_numElems;
 		private int m_maxSize;
 
diff --git a/src/Util/EmptyCollection.cs b/src/Util/EmptyCollection.cs
index ad5f1d8..342dd2b 100644
--- a/src/Util/EmptyCollection.cs
+++ b/src/Util/EmptyCollection.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -41,7 +41,7 @@
 		#region Private Instance Constructors
 
 		/// <summary>
-		/// Initializes a new instance of the <see cref="EmptyCollection" /> class. 
+		/// Initializes a new instance of the <see cref="EmptyCollection" /> class.
 		/// </summary>
 		/// <remarks>
 		/// <para>
@@ -53,7 +53,7 @@
 		}
 
 		#endregion Private Instance Constructors
-  
+
 		#region Public Static Properties
 
 		/// <summary>
@@ -75,14 +75,14 @@
 		#region Implementation of ICollection
 
 		/// <summary>
-		/// Copies the elements of the <see cref="ICollection"/> to an 
+		/// Copies the elements of the <see cref="ICollection"/> to an
 		/// <see cref="Array"/>, starting at a particular Array index.
 		/// </summary>
-		/// <param name="array">The one-dimensional <see cref="Array"/> 
-		/// that is the destination of the elements copied from 
-		/// <see cref="ICollection"/>. The Array must have zero-based 
+		/// <param name="array">The one-dimensional <see cref="Array"/>
+		/// that is the destination of the elements copied from
+		/// <see cref="ICollection"/>. The Array must have zero-based
 		/// indexing.</param>
-		/// <param name="index">The zero-based index in array at which 
+		/// <param name="index">The zero-based index in array at which
 		/// copying begins.</param>
 		/// <remarks>
 		/// <para>
@@ -151,7 +151,7 @@
 		/// Returns an enumerator that can iterate through a collection.
 		/// </summary>
 		/// <returns>
-		/// An <see cref="IEnumerator"/> that can be used to 
+		/// An <see cref="IEnumerator"/> that can be used to
 		/// iterate through the collection.
 		/// </returns>
 		/// <remarks>
@@ -172,7 +172,7 @@
 		/// The singleton instance of the empty collection.
 		/// </summary>
 		private readonly static EmptyCollection s_instance = new EmptyCollection();
-  
+
 		#endregion Private Static Fields
 	}
 }
diff --git a/src/Util/EmptyDictionary.cs b/src/Util/EmptyDictionary.cs
index 2c9192d..1a40c73 100644
--- a/src/Util/EmptyDictionary.cs
+++ b/src/Util/EmptyDictionary.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -41,7 +41,7 @@
 		#region Private Instance Constructors
 
 		/// <summary>
-		/// Initializes a new instance of the <see cref="EmptyDictionary" /> class. 
+		/// Initializes a new instance of the <see cref="EmptyDictionary" /> class.
 		/// </summary>
 		/// <remarks>
 		/// <para>
@@ -53,7 +53,7 @@
 		}
 
 		#endregion Private Instance Constructors
-  
+
 		#region Public Static Properties
 
 		/// <summary>
@@ -75,14 +75,14 @@
 		#region Implementation of ICollection
 
 		/// <summary>
-		/// Copies the elements of the <see cref="ICollection"/> to an 
+		/// Copies the elements of the <see cref="ICollection"/> to an
 		/// <see cref="Array"/>, starting at a particular Array index.
 		/// </summary>
-		/// <param name="array">The one-dimensional <see cref="Array"/> 
-		/// that is the destination of the elements copied from 
-		/// <see cref="ICollection"/>. The Array must have zero-based 
+		/// <param name="array">The one-dimensional <see cref="Array"/>
+		/// that is the destination of the elements copied from
+		/// <see cref="ICollection"/>. The Array must have zero-based
 		/// indexing.</param>
-		/// <param name="index">The zero-based index in array at which 
+		/// <param name="index">The zero-based index in array at which
 		/// copying begins.</param>
 		/// <remarks>
 		/// <para>
@@ -151,7 +151,7 @@
 		/// Returns an enumerator that can iterate through a collection.
 		/// </summary>
 		/// <returns>
-		/// An <see cref="IEnumerator"/> that can be used to 
+		/// An <see cref="IEnumerator"/> that can be used to
 		/// iterate through the collection.
 		/// </returns>
 		/// <remarks>
@@ -169,7 +169,7 @@
 		#region Implementation of IDictionary
 
 		/// <summary>
-		/// Adds an element with the provided key and value to the 
+		/// Adds an element with the provided key and value to the
 		/// <see cref="EmptyDictionary" />.
 		/// </summary>
 		/// <param name="key">The <see cref="object" /> to use as the key of the element to add.</param>
@@ -202,7 +202,7 @@
 		}
 
 		/// <summary>
-		/// Determines whether the <see cref="EmptyDictionary" /> contains an element 
+		/// Determines whether the <see cref="EmptyDictionary" /> contains an element
 		/// with the specified key.
 		/// </summary>
 		/// <param name="key">The key to locate in the <see cref="EmptyDictionary" />.</param>
@@ -221,7 +221,7 @@
 		/// Returns an enumerator that can iterate through a collection.
 		/// </summary>
 		/// <returns>
-		/// An <see cref="IEnumerator"/> that can be used to 
+		/// An <see cref="IEnumerator"/> that can be used to
 		/// iterate through the collection.
 		/// </returns>
 		/// <remarks>
@@ -313,7 +313,7 @@
 		/// <value><c>null</c></value>
 		/// <remarks>
 		/// <para>
-		/// As the collection is empty no values can be looked up or stored. 
+		/// As the collection is empty no values can be looked up or stored.
 		/// If the index getter is called then <c>null</c> is returned.
 		/// A <see cref="InvalidOperationException"/> is thrown if the setter is called.
 		/// </para>
@@ -333,7 +333,7 @@
 		/// The singleton instance of the empty dictionary.
 		/// </summary>
 		private readonly static EmptyDictionary s_instance = new EmptyDictionary();
-  
+
 		#endregion Private Static Fields
 	}
 }
diff --git a/src/Util/FormattingInfo.cs b/src/Util/FormattingInfo.cs
index 4a6c9bb..ccd71eb 100644
--- a/src/Util/FormattingInfo.cs
+++ b/src/Util/FormattingInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -23,7 +23,7 @@
 namespace log4net.Util
 {
 	/// <summary>
-	/// Contain the information obtained when parsing formatting modifiers 
+	/// Contain the information obtained when parsing formatting modifiers
 	/// in conversion modifiers.
 	/// </summary>
 	/// <remarks>
@@ -47,7 +47,7 @@
 		/// Initializes a new instance of the <see cref="FormattingInfo" /> class.
 		/// </para>
 		/// </remarks>
-		public FormattingInfo() 
+		public FormattingInfo()
 		{
 		}
 
@@ -60,7 +60,7 @@
 		/// with the specified parameters.
 		/// </para>
 		/// </remarks>
-		public FormattingInfo(int min, int max, bool leftAlign) 
+		public FormattingInfo(int min, int max, bool leftAlign)
 		{
 			m_min = min;
 			m_max = max;
diff --git a/src/Util/GlobalContextProperties.cs b/src/Util/GlobalContextProperties.cs
index b643107..b00ff6f 100644
--- a/src/Util/GlobalContextProperties.cs
+++ b/src/Util/GlobalContextProperties.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -89,14 +89,14 @@
 		/// <remarks>
 		/// <para>
 		/// Reading the value for a key is faster than setting the value.
-		/// When the value is written a new read only copy of 
+		/// When the value is written a new read only copy of
 		/// the properties is created.
 		/// </para>
 		/// </remarks>
 		override public object this[string key]
 		{
-			get 
-			{ 
+			get
+			{
 				return m_readOnlyProperties[key];
 			}
 			set
@@ -123,7 +123,7 @@
 		/// <remarks>
 		/// <para>
 		/// Removing an entry from the global context properties is relatively expensive compared
-		/// with reading a value. 
+		/// with reading a value.
 		/// </para>
 		/// </remarks>
 		public void Remove(string key)
diff --git a/src/Util/ILogExtensions.cs b/src/Util/ILogExtensions.cs
index 608d05d..5a2ad50 100644
--- a/src/Util/ILogExtensions.cs
+++ b/src/Util/ILogExtensions.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -39,9 +39,9 @@
 	/// <example>Simple example of logging messages
 	/// <code lang="C#">
 	/// using log4net.Util;
-	/// 
+	///
 	/// ILog log = LogManager.GetLogger("application-log");
-	/// 
+	///
 	/// log.InfoExt("Application Start");
 	/// log.DebugExt("This is a debug message");
 	/// </code>
@@ -71,16 +71,16 @@
 		/// This method first checks if this logger is <c>INFO</c>
 		/// enabled by reading the value <seealso cref="ILog.IsDebugEnabled"/> property.
 		/// This check happens always and does not depend on the <seealso cref="ILog"/>
-		/// implementation.  If this logger is <c>INFO</c> enabled, then it converts 
-		/// the message object (retrieved by invocation of the provided callback) to a 
+		/// implementation.  If this logger is <c>INFO</c> enabled, then it converts
+		/// the message object (retrieved by invocation of the provided callback) to a
 		/// string by invoking the appropriate <see cref="log4net.ObjectRenderer.IObjectRenderer"/>.
-		/// It then proceeds to call all the registered appenders in this logger 
-		/// and also higher in the hierarchy depending on the value of 
+		/// It then proceeds to call all the registered appenders in this logger
+		/// and also higher in the hierarchy depending on the value of
 		/// the additivity flag.
 		/// </para>
-		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/> 
-		/// to this method will print the name of the <see cref="Exception"/> 
-		/// but no stack trace. To print a stack trace use the 
+		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/>
+		/// to this method will print the name of the <see cref="Exception"/>
+		/// but no stack trace. To print a stack trace use the
 		/// <see cref="DebugExt(ILog,Func{object},Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
@@ -146,16 +146,16 @@
 		/// This method first checks if this logger is <c>INFO</c>
 		/// enabled by reading the value <seealso cref="ILog.IsDebugEnabled"/> property.
 		/// This check happens always and does not depend on the <seealso cref="ILog"/>
-		/// implementation. If this logger is <c>INFO</c> enabled, then it converts 
+		/// implementation. If this logger is <c>INFO</c> enabled, then it converts
 		/// the message object (passed as parameter) to a string by invoking the appropriate
-		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-		/// proceeds to call all the registered appenders in this logger 
-		/// and also higher in the hierarchy depending on the value of 
+		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then
+		/// proceeds to call all the registered appenders in this logger
+		/// and also higher in the hierarchy depending on the value of
 		/// the additivity flag.
 		/// </para>
-		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/> 
-		/// to this method will print the name of the <see cref="Exception"/> 
-		/// but no stack trace. To print a stack trace use the 
+		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/>
+		/// to this method will print the name of the <see cref="Exception"/>
+		/// but no stack trace. To print a stack trace use the
 		/// <see cref="DebugExt(ILog,object,Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
@@ -407,16 +407,16 @@
 		/// This method first checks if this logger is <c>INFO</c>
 		/// enabled by reading the value <seealso cref="ILog.IsInfoEnabled"/> property.
 		/// This check happens always and does not depend on the <seealso cref="ILog"/>
-		/// implementation.  If this logger is <c>INFO</c> enabled, then it converts 
-		/// the message object (retrieved by invocation of the provided callback) to a 
+		/// implementation.  If this logger is <c>INFO</c> enabled, then it converts
+		/// the message object (retrieved by invocation of the provided callback) to a
 		/// string by invoking the appropriate <see cref="log4net.ObjectRenderer.IObjectRenderer"/>.
-		/// It then proceeds to call all the registered appenders in this logger 
-		/// and also higher in the hierarchy depending on the value of 
+		/// It then proceeds to call all the registered appenders in this logger
+		/// and also higher in the hierarchy depending on the value of
 		/// the additivity flag.
 		/// </para>
-		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/> 
-		/// to this method will print the name of the <see cref="Exception"/> 
-		/// but no stack trace. To print a stack trace use the 
+		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/>
+		/// to this method will print the name of the <see cref="Exception"/>
+		/// but no stack trace. To print a stack trace use the
 		/// <see cref="InfoExt(ILog,Func{object},Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
@@ -482,16 +482,16 @@
 		/// This method first checks if this logger is <c>INFO</c>
 		/// enabled by reading the value <seealso cref="ILog.IsInfoEnabled"/> property.
 		/// This check happens always and does not depend on the <seealso cref="ILog"/>
-		/// implementation. If this logger is <c>INFO</c> enabled, then it converts 
+		/// implementation. If this logger is <c>INFO</c> enabled, then it converts
 		/// the message object (passed as parameter) to a string by invoking the appropriate
-		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-		/// proceeds to call all the registered appenders in this logger 
-		/// and also higher in the hierarchy depending on the value of 
+		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then
+		/// proceeds to call all the registered appenders in this logger
+		/// and also higher in the hierarchy depending on the value of
 		/// the additivity flag.
 		/// </para>
-		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/> 
-		/// to this method will print the name of the <see cref="Exception"/> 
-		/// but no stack trace. To print a stack trace use the 
+		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/>
+		/// to this method will print the name of the <see cref="Exception"/>
+		/// but no stack trace. To print a stack trace use the
 		/// <see cref="InfoExt(ILog,object,Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
@@ -743,16 +743,16 @@
 		/// This method first checks if this logger is <c>WARN</c>
 		/// enabled by reading the value <seealso cref="ILog.IsWarnEnabled"/> property.
 		/// This check happens always and does not depend on the <seealso cref="ILog"/>
-		/// implementation.  If this logger is <c>WARN</c> enabled, then it converts 
-		/// the message object (retrieved by invocation of the provided callback) to a 
+		/// implementation.  If this logger is <c>WARN</c> enabled, then it converts
+		/// the message object (retrieved by invocation of the provided callback) to a
 		/// string by invoking the appropriate <see cref="log4net.ObjectRenderer.IObjectRenderer"/>.
-		/// It then proceeds to call all the registered appenders in this logger 
-		/// and also higher in the hierarchy depending on the value of 
+		/// It then proceeds to call all the registered appenders in this logger
+		/// and also higher in the hierarchy depending on the value of
 		/// the additivity flag.
 		/// </para>
-		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/> 
-		/// to this method will print the name of the <see cref="Exception"/> 
-		/// but no stack trace. To print a stack trace use the 
+		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/>
+		/// to this method will print the name of the <see cref="Exception"/>
+		/// but no stack trace. To print a stack trace use the
 		/// <see cref="WarnExt(ILog,Func{object},Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
@@ -818,16 +818,16 @@
 		/// This method first checks if this logger is <c>WARN</c>
 		/// enabled by reading the value <seealso cref="ILog.IsWarnEnabled"/> property.
 		/// This check happens always and does not depend on the <seealso cref="ILog"/>
-		/// implementation. If this logger is <c>WARN</c> enabled, then it converts 
+		/// implementation. If this logger is <c>WARN</c> enabled, then it converts
 		/// the message object (passed as parameter) to a string by invoking the appropriate
-		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-		/// proceeds to call all the registered appenders in this logger 
-		/// and also higher in the hierarchy depending on the value of 
+		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then
+		/// proceeds to call all the registered appenders in this logger
+		/// and also higher in the hierarchy depending on the value of
 		/// the additivity flag.
 		/// </para>
-		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/> 
-		/// to this method will print the name of the <see cref="Exception"/> 
-		/// but no stack trace. To print a stack trace use the 
+		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/>
+		/// to this method will print the name of the <see cref="Exception"/>
+		/// but no stack trace. To print a stack trace use the
 		/// <see cref="WarnExt(ILog,object,Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
@@ -1079,16 +1079,16 @@
 		/// This method first checks if this logger is <c>ERROR</c>
 		/// enabled by reading the value <seealso cref="ILog.IsErrorEnabled"/> property.
 		/// This check happens always and does not depend on the <seealso cref="ILog"/>
-		/// implementation.  If this logger is <c>ERROR</c> enabled, then it converts 
-		/// the message object (retrieved by invocation of the provided callback) to a 
+		/// implementation.  If this logger is <c>ERROR</c> enabled, then it converts
+		/// the message object (retrieved by invocation of the provided callback) to a
 		/// string by invoking the appropriate <see cref="log4net.ObjectRenderer.IObjectRenderer"/>.
-		/// It then proceeds to call all the registered appenders in this logger 
-		/// and also higher in the hierarchy depending on the value of 
+		/// It then proceeds to call all the registered appenders in this logger
+		/// and also higher in the hierarchy depending on the value of
 		/// the additivity flag.
 		/// </para>
-		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/> 
-		/// to this method will print the name of the <see cref="Exception"/> 
-		/// but no stack trace. To print a stack trace use the 
+		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/>
+		/// to this method will print the name of the <see cref="Exception"/>
+		/// but no stack trace. To print a stack trace use the
 		/// <see cref="ErrorExt(ILog,Func{object},Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
@@ -1154,16 +1154,16 @@
 		/// This method first checks if this logger is <c>ERROR</c>
 		/// enabled by reading the value <seealso cref="ILog.IsErrorEnabled"/> property.
 		/// This check happens always and does not depend on the <seealso cref="ILog"/>
-		/// implementation. If this logger is <c>ERROR</c> enabled, then it converts 
+		/// implementation. If this logger is <c>ERROR</c> enabled, then it converts
 		/// the message object (passed as parameter) to a string by invoking the appropriate
-		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-		/// proceeds to call all the registered appenders in this logger 
-		/// and also higher in the hierarchy depending on the value of 
+		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then
+		/// proceeds to call all the registered appenders in this logger
+		/// and also higher in the hierarchy depending on the value of
 		/// the additivity flag.
 		/// </para>
-		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/> 
-		/// to this method will print the name of the <see cref="Exception"/> 
-		/// but no stack trace. To print a stack trace use the 
+		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/>
+		/// to this method will print the name of the <see cref="Exception"/>
+		/// but no stack trace. To print a stack trace use the
 		/// <see cref="ErrorExt(ILog,object,Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
@@ -1415,16 +1415,16 @@
 		/// This method first checks if this logger is <c>FATAL</c>
 		/// enabled by reading the value <seealso cref="ILog.IsFatalEnabled"/> property.
 		/// This check happens always and does not depend on the <seealso cref="ILog"/>
-		/// implementation.  If this logger is <c>FATAL</c> enabled, then it converts 
-		/// the message object (retrieved by invocation of the provided callback) to a 
+		/// implementation.  If this logger is <c>FATAL</c> enabled, then it converts
+		/// the message object (retrieved by invocation of the provided callback) to a
 		/// string by invoking the appropriate <see cref="log4net.ObjectRenderer.IObjectRenderer"/>.
-		/// It then proceeds to call all the registered appenders in this logger 
-		/// and also higher in the hierarchy depending on the value of 
+		/// It then proceeds to call all the registered appenders in this logger
+		/// and also higher in the hierarchy depending on the value of
 		/// the additivity flag.
 		/// </para>
-		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/> 
-		/// to this method will print the name of the <see cref="Exception"/> 
-		/// but no stack trace. To print a stack trace use the 
+		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/>
+		/// to this method will print the name of the <see cref="Exception"/>
+		/// but no stack trace. To print a stack trace use the
 		/// <see cref="FatalExt(ILog,Func{object},Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
@@ -1490,16 +1490,16 @@
 		/// This method first checks if this logger is <c>FATAL</c>
 		/// enabled by reading the value <seealso cref="ILog.IsFatalEnabled"/> property.
 		/// This check happens always and does not depend on the <seealso cref="ILog"/>
-		/// implementation. If this logger is <c>FATAL</c> enabled, then it converts 
+		/// implementation. If this logger is <c>FATAL</c> enabled, then it converts
 		/// the message object (passed as parameter) to a string by invoking the appropriate
-		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-		/// proceeds to call all the registered appenders in this logger 
-		/// and also higher in the hierarchy depending on the value of 
+		/// <see cref="log4net.ObjectRenderer.IObjectRenderer"/>. It then
+		/// proceeds to call all the registered appenders in this logger
+		/// and also higher in the hierarchy depending on the value of
 		/// the additivity flag.
 		/// </para>
-		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/> 
-		/// to this method will print the name of the <see cref="Exception"/> 
-		/// but no stack trace. To print a stack trace use the 
+		/// <para><b>WARNING</b> Note that passing an <see cref="Exception"/>
+		/// to this method will print the name of the <see cref="Exception"/>
+		/// but no stack trace. To print a stack trace use the
 		/// <see cref="FatalExt(ILog,object,Exception)"/> form instead.
 		/// </para>
 		/// </remarks>
diff --git a/src/Util/LevelMapping.cs b/src/Util/LevelMapping.cs
index a2d4aff..01d0dc6 100644
--- a/src/Util/LevelMapping.cs
+++ b/src/Util/LevelMapping.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -29,7 +29,7 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// Manages an ordered mapping from <see cref="Level"/> instances 
+	/// Manages an ordered mapping from <see cref="Level"/> instances
 	/// to <see cref="LevelMappingEntry"/> subclasses.
 	/// </para>
 	/// </remarks>
@@ -46,14 +46,14 @@
 		/// Initialise a new instance of <see cref="LevelMapping"/>.
 		/// </para>
 		/// </remarks>
-		public LevelMapping() 
+		public LevelMapping()
 		{
 		}
 
 		#endregion // Public Instance Constructors
 
 		#region Public Instance Methods
-	
+
 		/// <summary>
 		/// Add a <see cref="LevelMappingEntry"/> to this mapping
 		/// </summary>
@@ -61,7 +61,7 @@
 		/// <remarks>
 		/// <para>
 		/// If a <see cref="LevelMappingEntry"/> has previously been added
-		/// for the same <see cref="Level"/> then that entry will be 
+		/// for the same <see cref="Level"/> then that entry will be
 		/// overwritten.
 		/// </para>
 		/// </remarks>
diff --git a/src/Util/LevelMappingEntry.cs b/src/Util/LevelMappingEntry.cs
index bfed35b..9791a59 100644
--- a/src/Util/LevelMappingEntry.cs
+++ b/src/Util/LevelMappingEntry.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -46,7 +46,7 @@
 		/// Default protected constructor
 		/// </para>
 		/// </remarks>
-		protected LevelMappingEntry() 
+		protected LevelMappingEntry()
 		{
 		}
 
@@ -55,10 +55,10 @@
 		#region Public Instance Properties
 
 		/// <summary>
-		/// The level that is the key for this mapping 
+		/// The level that is the key for this mapping
 		/// </summary>
 		/// <value>
-		/// The <see cref="Level"/> that is the key for this mapping 
+		/// The <see cref="Level"/> that is the key for this mapping
 		/// </value>
 		/// <remarks>
 		/// <para>
@@ -93,7 +93,7 @@
 
 		#region Private Instance Fields
 
-		private Level m_level; 
+		private Level m_level;
 
 		#endregion // Private Instance Fields
 	}
diff --git a/src/Util/LogLog.cs b/src/Util/LogLog.cs
index 9a9b4da..523aebf 100644
--- a/src/Util/LogLog.cs
+++ b/src/Util/LogLog.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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,12 +26,12 @@
 
 namespace log4net.Util
 {
-    /// <summary>
-    /// 
-    /// </summary>
-    /// <param name="source"></param>
-    /// <param name="e"></param>
-    public delegate void LogReceivedEventHandler(object source, LogReceivedEventArgs e);
+	/// <summary>
+	///
+	/// </summary>
+	/// <param name="source"></param>
+	/// <param name="e"></param>
+	public delegate void LogReceivedEventHandler(object source, LogReceivedEventArgs e);
 
 	/// <summary>
 	/// Outputs log statements from within the log4net assembly.
@@ -44,7 +44,7 @@
 	/// </para>
 	/// <para>
 	/// All log4net internal debug calls go to the standard output stream
-	/// whereas internal error messages are sent to the standard error output 
+	/// whereas internal error messages are sent to the standard error output
 	/// stream.
 	/// </para>
 	/// </remarks>
@@ -52,108 +52,108 @@
 	/// <author>Gert Driesen</author>
 	public sealed class LogLog
 	{
-        /// <summary>
-        /// The event raised when an internal message has been received.
-        /// </summary>
-        public static event LogReceivedEventHandler LogReceived;
+		/// <summary>
+		/// The event raised when an internal message has been received.
+		/// </summary>
+		public static event LogReceivedEventHandler LogReceived;
 
-        private readonly Type source;
-        private readonly DateTime timeStampUtc;
-        private readonly string prefix;
-        private readonly string message;
-        private readonly Exception exception;
+		private readonly Type source;
+		private readonly DateTime timeStampUtc;
+		private readonly string prefix;
+		private readonly string message;
+		private readonly Exception exception;
 
-        /// <summary>
-        /// The Type that generated the internal message.
-        /// </summary>
-	    public Type Source
-	    {
-	        get { return source; }
-	    }
+		/// <summary>
+		/// The Type that generated the internal message.
+		/// </summary>
+		public Type Source
+		{
+			get { return source; }
+		}
 
-        /// <summary>
-        /// The DateTime stamp of when the internal message was received.
-        /// </summary>
-	    public DateTime TimeStamp
-	    {
-            get { return timeStampUtc.ToLocalTime(); }
-	    }
+		/// <summary>
+		/// The DateTime stamp of when the internal message was received.
+		/// </summary>
+		public DateTime TimeStamp
+		{
+			get { return timeStampUtc.ToLocalTime(); }
+		}
 
-        /// <summary>
-        /// The UTC DateTime stamp of when the internal message was received.
-        /// </summary>
-        public DateTime TimeStampUtc
-        {
-            get { return timeStampUtc; }
-	    }
+		/// <summary>
+		/// The UTC DateTime stamp of when the internal message was received.
+		/// </summary>
+		public DateTime TimeStampUtc
+		{
+			get { return timeStampUtc; }
+		}
 
-        /// <summary>
-        /// A string indicating the severity of the internal message.
-        /// </summary>
-        /// <remarks>
-        /// "log4net: ", 
-        /// "log4net:ERROR ", 
-        /// "log4net:WARN "
-        /// </remarks>
-	    public string Prefix
-	    {
-	        get { return prefix; }
-	    }
+		/// <summary>
+		/// A string indicating the severity of the internal message.
+		/// </summary>
+		/// <remarks>
+		/// "log4net: ",
+		/// "log4net:ERROR ",
+		/// "log4net:WARN "
+		/// </remarks>
+		public string Prefix
+		{
+			get { return prefix; }
+		}
 
-        /// <summary>
-        /// The internal log message.
-        /// </summary>
-	    public string Message
-	    {
-	        get { return message; }
-	    }
+		/// <summary>
+		/// The internal log message.
+		/// </summary>
+		public string Message
+		{
+			get { return message; }
+		}
 
-        /// <summary>
-        /// The Exception related to the message.
-        /// </summary>
-        /// <remarks>
-        /// Optional. Will be null if no Exception was passed.
-        /// </remarks>
-	    public Exception Exception
-	    {
-	        get { return exception; }
-	    }
+		/// <summary>
+		/// The Exception related to the message.
+		/// </summary>
+		/// <remarks>
+		/// Optional. Will be null if no Exception was passed.
+		/// </remarks>
+		public Exception Exception
+		{
+			get { return exception; }
+		}
 
-        /// <summary>
-        /// Formats Prefix, Source, and Message in the same format as the value
-        /// sent to Console.Out and Trace.Write.
-        /// </summary>
-        /// <returns></returns>
-	    public override string ToString()
-	    {
-            return Prefix + Source.Name + ": " + Message;
-	    }
+		/// <summary>
+		/// Formats Prefix, Source, and Message in the same format as the value
+		/// sent to Console.Out and Trace.Write.
+		/// </summary>
+		/// <returns></returns>
+		public override string ToString()
+		{
+			return Prefix + Source.Name + ": " + Message;
+		}
 
-	    #region Private Instance Constructors
+		#region Private Instance Constructors
 
-        /// <summary>
-        /// Initializes a new instance of the <see cref="LogLog" /> class. 
-        /// </summary>
-        /// <param name="source"></param>
-        /// <param name="prefix"></param>
-        /// <param name="message"></param>
-        /// <param name="exception"></param>
-	    public LogLog(Type source, string prefix, string message, Exception exception)
-	    {
-            timeStampUtc = DateTime.UtcNow;
-	        
-            this.source = source;
-	        this.prefix = prefix;
-	        this.message = message;
-	        this.exception = exception;
-	    }
+		/// <summary>
+		/// Initializes a new instance of the <see cref="LogLog" /> class.
+		/// </summary>
+		/// <param name="source"></param>
+		/// <param name="prefix"></param>
+		/// <param name="message"></param>
+		/// <param name="exception"></param>
+		public LogLog(Type source, string prefix, string message, Exception exception)
+		{
+			timeStampUtc = DateTime.UtcNow;
+
+			this.source = source;
+			this.prefix = prefix;
+			this.message = message;
+			this.exception = exception;
+		}
 
 		#endregion Private Instance Constructors
 
 		#region Static Constructor
 
 		/// <summary>
-		/// Static constructor that initializes logging by reading 
+		/// Static constructor that initializes logging by reading
 		/// settings from the application configuration file.
 		/// </summary>
 		/// <remarks>
@@ -164,7 +164,7 @@
 		/// </para>
 		/// <para>
 		/// The <c>log4net.Internal.Quiet</c> application setting
-		/// suppresses all internal logging including error messages. 
+		/// suppresses all internal logging including error messages.
 		/// This setting should be set to <c>true</c> to enable message
 		/// suppression.
 		/// </para>
@@ -198,16 +198,16 @@
 		/// is enabled or disabled.
 		/// </summary>
 		/// <value>
-		/// <c>true</c> if log4net internal logging is enabled, otherwise 
+		/// <c>true</c> if log4net internal logging is enabled, otherwise
 		/// <c>false</c>.
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// When set to <c>true</c>, internal debug level logging will be 
+		/// When set to <c>true</c>, internal debug level logging will be
 		/// displayed.
 		/// </para>
 		/// <para>
-		/// This value can be set by setting the application setting 
+		/// This value can be set by setting the application setting
 		/// <c>log4net.Internal.Debug</c> in the application configuration
 		/// file.
 		/// </para>
@@ -218,7 +218,7 @@
 		/// </remarks>
 		/// <example>
 		/// <para>
-		/// The following example enables internal debugging using the 
+		/// The following example enables internal debugging using the
 		/// application configuration file :
 		/// </para>
 		/// <code lang="XML" escaped="true">
@@ -237,17 +237,17 @@
 
 		/// <summary>
 		/// Gets or sets a value indicating whether log4net should generate no output
-		/// from internal logging, not even for errors. 
+		/// from internal logging, not even for errors.
 		/// </summary>
 		/// <value>
-		/// <c>true</c> if log4net should generate no output at all from internal 
+		/// <c>true</c> if log4net should generate no output at all from internal
 		/// logging, otherwise <c>false</c>.
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// When set to <c>true</c> will cause internal logging at all levels to be 
-		/// suppressed. This means that no warning or error reports will be logged. 
-		/// This option overrides the <see cref="InternalDebugging"/> setting and 
+		/// When set to <c>true</c> will cause internal logging at all levels to be
+		/// suppressed. This means that no warning or error reports will be logged.
+		/// This option overrides the <see cref="InternalDebugging"/> setting and
 		/// disables all debug also.
 		/// </para>
 		/// <para>This value can be set by setting the application setting
@@ -259,7 +259,7 @@
 		/// </para>
 		/// </remarks>
 		/// <example>
-		/// The following example disables internal logging using the 
+		/// The following example disables internal logging using the
 		/// application configuration file :
 		/// <code lang="XML" escaped="true">
 		/// <configuration>
@@ -275,35 +275,35 @@
 			set { s_quietMode = value; }
 		}
 
-        /// <summary>
-        /// 
-        /// </summary>
-        public static bool EmitInternalMessages
-        {
-            get { return s_emitInternalMessages; }
-            set { s_emitInternalMessages = value; }
-        }
+		/// <summary>
+		///
+		/// </summary>
+		public static bool EmitInternalMessages
+		{
+			get { return s_emitInternalMessages; }
+			set { s_emitInternalMessages = value; }
+		}
 
 		#endregion Public Static Properties
 
 		#region Public Static Methods
 
-        /// <summary>
-        /// Raises the LogReceived event when an internal messages is received.
-        /// </summary>
-        /// <param name="source"></param>
-        /// <param name="prefix"></param>
-        /// <param name="message"></param>
-        /// <param name="exception"></param>
-        public static void OnLogReceived(Type source, string prefix, string message, Exception exception)
-        {
-            if (LogReceived != null)
-            {
-                LogReceived(null, new LogReceivedEventArgs(new LogLog(source, prefix, message, exception)));
-            }
-        }
+		/// <summary>
+		/// Raises the LogReceived event when an internal messages is received.
+		/// </summary>
+		/// <param name="source"></param>
+		/// <param name="prefix"></param>
+		/// <param name="message"></param>
+		/// <param name="exception"></param>
+		public static void OnLogReceived(Type source, string prefix, string message, Exception exception)
+		{
+			if (LogReceived != null)
+			{
+				LogReceived(null, new LogReceivedEventArgs(new LogLog(source, prefix, message, exception)));
+			}
+		}
 
-	    /// <summary>
+		/// <summary>
 		/// Test if LogLog.Debug is enabled for output.
 		/// </summary>
 		/// <value>
@@ -320,60 +320,60 @@
 		}
 
 		/// <summary>
-		/// Writes log4net internal debug messages to the 
+		/// Writes log4net internal debug messages to the
 		/// standard output stream.
 		/// </summary>
-        /// <param name="source"></param>
+		/// <param name="source"></param>
 		/// <param name="message">The message to log.</param>
 		/// <remarks>
 		/// <para>
-		///	All internal debug messages are prepended with 
+		///	All internal debug messages are prepended with
 		///	the string "log4net: ".
 		/// </para>
 		/// </remarks>
-		public static void Debug(Type source, string message) 
+		public static void Debug(Type source, string message)
 		{
-			if (IsDebugEnabled) 
+			if (IsDebugEnabled)
 			{
-                if (EmitInternalMessages)
-                {
-                    EmitOutLine(PREFIX + message);
-                }
+				if (EmitInternalMessages)
+				{
+					EmitOutLine(PREFIX + message);
+				}
 
-                OnLogReceived(source, PREFIX, message, null);
+				OnLogReceived(source, PREFIX, message, null);
 			}
 		}
 
 		/// <summary>
-		/// Writes log4net internal debug messages to the 
+		/// Writes log4net internal debug messages to the
 		/// standard output stream.
 		/// </summary>
-        /// <param name="source">The Type that generated this message.</param>
+		/// <param name="source">The Type that generated this message.</param>
 		/// <param name="message">The message to log.</param>
 		/// <param name="exception">An exception to log.</param>
 		/// <remarks>
 		/// <para>
-		///	All internal debug messages are prepended with 
+		///	All internal debug messages are prepended with
 		///	the string "log4net: ".
 		/// </para>
 		/// </remarks>
-		public static void Debug(Type source, string message, Exception exception) 
+		public static void Debug(Type source, string message, Exception exception)
 		{
-			if (IsDebugEnabled) 
+			if (IsDebugEnabled)
 			{
-                if (EmitInternalMessages)
-                {
-                    EmitOutLine(PREFIX + message);
-                    if (exception != null)
-                    {
-                        EmitOutLine(exception.ToString());
-                    }
-                }
+				if (EmitInternalMessages)
+				{
+					EmitOutLine(PREFIX + message);
+					if (exception != null)
+					{
+						EmitOutLine(exception.ToString());
+					}
+				}
 
-                OnLogReceived(source, PREFIX, message, exception);
+				OnLogReceived(source, PREFIX, message, exception);
 			}
 		}
-  
+
 		/// <summary>
 		/// Test if LogLog.Warn is enabled for output.
 		/// </summary>
@@ -391,59 +391,59 @@
 		}
 
 		/// <summary>
-		/// Writes log4net internal warning messages to the 
+		/// Writes log4net internal warning messages to the
 		/// standard error stream.
 		/// </summary>
-        /// <param name="source">The Type that generated this message.</param>
+		/// <param name="source">The Type that generated this message.</param>
 		/// <param name="message">The message to log.</param>
 		/// <remarks>
 		/// <para>
-		///	All internal warning messages are prepended with 
+		///	All internal warning messages are prepended with
 		///	the string "log4net:WARN ".
 		/// </para>
 		/// </remarks>
-		public static void Warn(Type source, string message) 
+		public static void Warn(Type source, string message)
 		{
 			if (IsWarnEnabled)
 			{
-                if (EmitInternalMessages)
-                {
-                    EmitErrorLine(WARN_PREFIX + message);
-                }
+				if (EmitInternalMessages)
+				{
+					EmitErrorLine(WARN_PREFIX + message);
+				}
 
-                OnLogReceived(source, WARN_PREFIX, message, null);
+				OnLogReceived(source, WARN_PREFIX, message, null);
 			}
-		}  
+		}
 
 		/// <summary>
-		/// Writes log4net internal warning messages to the 
+		/// Writes log4net internal warning messages to the
 		/// standard error stream.
 		/// </summary>
-        /// <param name="source">The Type that generated this message.</param>
+		/// <param name="source">The Type that generated this message.</param>
 		/// <param name="message">The message to log.</param>
 		/// <param name="exception">An exception to log.</param>
 		/// <remarks>
 		/// <para>
-		///	All internal warning messages are prepended with 
+		///	All internal warning messages are prepended with
 		///	the string "log4net:WARN ".
 		/// </para>
 		/// </remarks>
-		public static void Warn(Type source, string message, Exception exception) 
+		public static void Warn(Type source, string message, Exception exception)
 		{
 			if (IsWarnEnabled)
 			{
-                if (EmitInternalMessages)
-                {
-                    EmitErrorLine(WARN_PREFIX + message);
-                    if (exception != null)
-                    {
-                        EmitErrorLine(exception.ToString());
-                    }
-                }
+				if (EmitInternalMessages)
+				{
+					EmitErrorLine(WARN_PREFIX + message);
+					if (exception != null)
+					{
+						EmitErrorLine(exception.ToString());
+					}
+				}
 
-                OnLogReceived(source, WARN_PREFIX, message, exception);
+				OnLogReceived(source, WARN_PREFIX, message, exception);
 			}
-		} 
+		}
 
 		/// <summary>
 		/// Test if LogLog.Error is enabled for output.
@@ -462,64 +462,64 @@
 		}
 
 		/// <summary>
-		/// Writes log4net internal error messages to the 
+		/// Writes log4net internal error messages to the
 		/// standard error stream.
 		/// </summary>
-        /// <param name="source">The Type that generated this message.</param>
+		/// <param name="source">The Type that generated this message.</param>
 		/// <param name="message">The message to log.</param>
 		/// <remarks>
 		/// <para>
-		///	All internal error messages are prepended with 
+		///	All internal error messages are prepended with
 		///	the string "log4net:ERROR ".
 		/// </para>
 		/// </remarks>
-		public static void Error(Type source, string message) 
+		public static void Error(Type source, string message)
 		{
 			if (IsErrorEnabled)
 			{
-                if (EmitInternalMessages)
-                {
-                    EmitErrorLine(ERR_PREFIX + message);
-                }
+				if (EmitInternalMessages)
+				{
+					EmitErrorLine(ERR_PREFIX + message);
+				}
 
-                OnLogReceived(source, ERR_PREFIX, message, null);
+				OnLogReceived(source, ERR_PREFIX, message, null);
 			}
-		}  
+		}
 
 		/// <summary>
-		/// Writes log4net internal error messages to the 
+		/// Writes log4net internal error messages to the
 		/// standard error stream.
 		/// </summary>
-        /// <param name="source">The Type that generated this message.</param>
+		/// <param name="source">The Type that generated this message.</param>
 		/// <param name="message">The message to log.</param>
 		/// <param name="exception">An exception to log.</param>
 		/// <remarks>
 		/// <para>
-		///	All internal debug messages are prepended with 
+		///	All internal debug messages are prepended with
 		///	the string "log4net:ERROR ".
 		/// </para>
 		/// </remarks>
-		public static void Error(Type source, string message, Exception exception) 
+		public static void Error(Type source, string message, Exception exception)
 		{
 			if (IsErrorEnabled)
 			{
-                if (EmitInternalMessages)
-                {
-                    EmitErrorLine(ERR_PREFIX + message);
-                    if (exception != null)
-                    {
-                        EmitErrorLine(exception.ToString());
-                    }
-                }
+				if (EmitInternalMessages)
+				{
+					EmitErrorLine(ERR_PREFIX + message);
+					if (exception != null)
+					{
+						EmitErrorLine(exception.ToString());
+					}
+				}
 
-                OnLogReceived(source, ERR_PREFIX, message, exception);
+				OnLogReceived(source, ERR_PREFIX, message, exception);
 			}
-		}  
+		}
 
 		#endregion Public Static Methods
 
 		/// <summary>
-		/// Writes output to the standard output stream.  
+		/// Writes output to the standard output stream.
 		/// </summary>
 		/// <param name="message">The message to log.</param>
 		/// <remarks>
@@ -553,7 +553,7 @@
 		}
 
 		/// <summary>
-		/// Writes output to the standard error stream.  
+		/// Writes output to the standard error stream.
 		/// </summary>
 		/// <param name="message">The message to log.</param>
 		/// <remarks>
@@ -598,7 +598,7 @@
 		/// </summary>
 		private static bool s_quietMode = false;
 
-        private static bool s_emitInternalMessages = true;
+		private static bool s_emitInternalMessages = true;
 
 		private const string PREFIX			= "log4net: ";
 		private const string ERR_PREFIX		= "log4net:ERROR ";
@@ -606,73 +606,73 @@
 
 		#endregion Private Static Fields
 
-        /// <summary>
-        /// Subscribes to the LogLog.LogReceived event and stores messages
-        /// to the supplied IList instance.
-        /// </summary>
-        public class LogReceivedAdapter : IDisposable
-        {
-            private readonly IList items;
-            private readonly LogReceivedEventHandler handler;
+		/// <summary>
+		/// Subscribes to the LogLog.LogReceived event and stores messages
+		/// to the supplied IList instance.
+		/// </summary>
+		public class LogReceivedAdapter : IDisposable
+		{
+			private readonly IList items;
+			private readonly LogReceivedEventHandler handler;
 
-            /// <summary>
-            /// 
-            /// </summary>
-            /// <param name="items"></param>
-            public LogReceivedAdapter(IList items)
-            {
-                this.items = items;
+			/// <summary>
+			///
+			/// </summary>
+			/// <param name="items"></param>
+			public LogReceivedAdapter(IList items)
+			{
+				this.items = items;
 
-                handler = new LogReceivedEventHandler(LogLog_LogReceived);
+				handler = new LogReceivedEventHandler(LogLog_LogReceived);
 
-                LogReceived += handler;
-            }
+				LogReceived += handler;
+			}
 
-            void LogLog_LogReceived(object source, LogReceivedEventArgs e)
-            {
-                items.Add(e.LogLog);
-            }
+			void LogLog_LogReceived(object source, LogReceivedEventArgs e)
+			{
+				items.Add(e.LogLog);
+			}
 
-            /// <summary>
-            /// 
-            /// </summary>
-            public IList Items
-            {
-                get { return items; }
-            }
+			/// <summary>
+			///
+			/// </summary>
+			public IList Items
+			{
+				get { return items; }
+			}
 
-            /// <summary>
-            /// 
-            /// </summary>
-            public void Dispose()
-            {
-                LogReceived -= handler;
-            }
-        }
+			/// <summary>
+			///
+			/// </summary>
+			public void Dispose()
+			{
+				LogReceived -= handler;
+			}
+		}
 	}
 
-    /// <summary>
-    /// 
-    /// </summary>
-    public class LogReceivedEventArgs : EventArgs
-    {
-        private readonly LogLog loglog;
+	/// <summary>
+	///
+	/// </summary>
+	public class LogReceivedEventArgs : EventArgs
+	{
+		private readonly LogLog loglog;
 
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="loglog"></param>
-        public LogReceivedEventArgs(LogLog loglog)
-        {
-            this.loglog = loglog;
-        }
+		/// <summary>
+		///
+		/// </summary>
+		/// <param name="loglog"></param>
+		public LogReceivedEventArgs(LogLog loglog)
+		{
+			this.loglog = loglog;
+		}
 
-        /// <summary>
-        /// 
-        /// </summary>
-        public LogLog LogLog
-        {
-            get { return loglog; }
-        }
-    }
+		/// <summary>
+		///
+		/// </summary>
+		public LogLog LogLog
+		{
+			get { return loglog; }
+		}
+	}
 }
diff --git a/src/Util/LogicalThreadContextProperties.cs b/src/Util/LogicalThreadContextProperties.cs
index c5879fc..6a75619 100644
--- a/src/Util/LogicalThreadContextProperties.cs
+++ b/src/Util/LogicalThreadContextProperties.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -49,7 +49,7 @@
 	/// cref="System.Runtime.Remoting.Messaging.CallContext"/>.
 	/// </para>
 	/// <para>
-	/// The <see cref="CallContext"/> requires a link time 
+	/// The <see cref="CallContext"/> requires a link time
 	/// <see cref="System.Security.Permissions.SecurityPermission"/> for the
 	/// <see cref="System.Security.Permissions.SecurityPermissionFlag.Infrastructure"/>.
 	/// If the calling code does not have this permission then this context will be disabled.
@@ -64,12 +64,12 @@
 		#else
 		private const string c_SlotName = "log4net.Util.LogicalThreadContextProperties";
 		#endif
-		
+
 		/// <summary>
 		/// Flag used to disable this context if we don't have permission to access the CallContext.
 		/// </summary>
 		private bool m_disabled = false;
-		
+
 		#region Public Instance Constructors
 
 		/// <summary>
@@ -101,17 +101,17 @@
 		/// </remarks>
 		override public object this[string key]
 		{
-			get 
-			{ 
+			get
+			{
 				// Don't create the dictionary if it does not already exist
 				PropertiesDictionary dictionary = GetProperties(false);
 				if (dictionary != null)
 				{
-					return dictionary[key]; 
+					return dictionary[key];
 				}
 				return null;
 			}
-			set 
+			set
 			{
 				// Force the dictionary to be created
 				PropertiesDictionary props = GetProperties(true);
@@ -177,7 +177,7 @@
 		/// <remarks>
 		/// <para>
 		/// The collection returned is only to be used on the calling thread. If the
-		/// caller needs to share the collection between different threads then the 
+		/// caller needs to share the collection between different threads then the
 		/// caller must clone the collection before doings so.
 		/// </para>
 		/// </remarks>
@@ -198,12 +198,12 @@
 				catch (SecurityException secEx)
 				{
 					m_disabled = true;
-					
+
 					// Thrown if we don't have permission to read or write the CallContext
 					LogLog.Warn(declaringType, "SecurityException while accessing CallContext. Disabling LogicalThreadContextProperties", secEx);
 				}
 			}
-			
+
 			// Only get here is we are disabled because of a security exception
 			if (create)
 			{
@@ -214,9 +214,9 @@
 
 		#endregion Internal Instance Methods
 
-        #region Private Static Methods
+		#region Private Static Methods
 
-        /// <summary>
+		/// <summary>
 		/// Gets the call context get data.
 		/// </summary>
 		/// <returns>The peroperties dictionary stored in the call context</returns>
@@ -226,14 +226,14 @@
 		/// that we can wrap in an exception handler.
 		/// </remarks>
 #if NET_4_0 || MONO_4_0
-        [System.Security.SecuritySafeCritical]
+		[System.Security.SecuritySafeCritical]
 #endif
-        private static PropertiesDictionary GetLogicalProperties()
+		private static PropertiesDictionary GetLogicalProperties()
 		{
 #if NETSTANDARD1_3
-            return AsyncLocalDictionary.Value;
+			return AsyncLocalDictionary.Value;
 #elif NET_2_0 || MONO_2_0 || MONO_3_5 || MONO_4_0
-            return CallContext.LogicalGetData(c_SlotName) as PropertiesDictionary;
+			return CallContext.LogicalGetData(c_SlotName) as PropertiesDictionary;
 #else
 			return CallContext.GetData(c_SlotName) as PropertiesDictionary;
 #endif
@@ -249,9 +249,9 @@
 		/// that we can wrap in an exception handler.
 		/// </remarks>
 #if NET_4_0 || MONO_4_0
-        [System.Security.SecuritySafeCritical]
+		[System.Security.SecuritySafeCritical]
 #endif
-        private static void SetLogicalProperties(PropertiesDictionary properties)
+		private static void SetLogicalProperties(PropertiesDictionary properties)
 		{
 #if NETSTANDARD1_3
 			AsyncLocalDictionary.Value = properties;
@@ -260,23 +260,23 @@
 #else
 			CallContext.SetData(c_SlotName, properties);
 #endif
-        }
+		}
 
-        #endregion
+		#endregion
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the LogicalThreadContextProperties class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(LogicalThreadContextProperties);
+		/// <summary>
+		/// The fully qualified type of the LogicalThreadContextProperties class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(LogicalThreadContextProperties);
 
-	    #endregion Private Static Fields
-    }
+		#endregion Private Static Fields
+	}
 }
 
 #endif
diff --git a/src/Util/LogicalThreadContextStack.cs b/src/Util/LogicalThreadContextStack.cs
index d251f75..b544834 100644
--- a/src/Util/LogicalThreadContextStack.cs
+++ b/src/Util/LogicalThreadContextStack.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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,16 +26,16 @@
 namespace log4net.Util
 {
 
-        /// <summary>
+		/// <summary>
 	/// Delegate type used for LogicalThreadContextStack's callbacks.
 	/// </summary>
-    #if NET_2_0 || MONO_2_0
+	#if NET_2_0 || MONO_2_0
 	public delegate void TwoArgAction<T1, T2>(T1 t1, T2 t2);
-    #else
+	#else
 	public delegate void TwoArgAction(string t1, LogicalThreadContextStack t2);
-    #endif
+	#endif
 
-        /// <summary>
+		/// <summary>
 	/// Implementation of Stack for the <see cref="log4net.LogicalThreadContext"/>
 	/// </summary>
 	/// <remarks>
@@ -65,7 +65,7 @@
 		/// </summary>
 		#if NET_2_0 || MONO_2_0
 		private TwoArgAction<string, LogicalThreadContextStack> m_registerNew;
-                #else
+				#else
 		private TwoArgAction m_registerNew;
 		#endif
 
@@ -78,12 +78,12 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Initializes a new instance of the <see cref="LogicalThreadContextStack" /> class. 
+		/// Initializes a new instance of the <see cref="LogicalThreadContextStack" /> class.
 		/// </para>
 		/// </remarks>
 		#if NET_2_0 || MONO_2_0
 		internal LogicalThreadContextStack(string propertyKey, TwoArgAction<string, LogicalThreadContextStack> registerNew)
-                #else
+				#else
 		internal LogicalThreadContextStack(string propertyKey, TwoArgAction registerNew)
 		#endif
 		{
@@ -128,7 +128,7 @@
 		/// You do not need to use this method if you always guarantee to call
 		/// the <see cref="IDisposable.Dispose"/> method of the <see cref="IDisposable"/>
 		/// returned from <see cref="Push"/> even in exceptional circumstances,
-		/// for example by using the <c>using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message"))</c> 
+		/// for example by using the <c>using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message"))</c>
 		/// syntax.
 		/// </para>
 		/// </remarks>
@@ -222,7 +222,7 @@
 		/// <value>The internal storage stack</value>
 		/// <remarks>
 		/// <para>
-		/// This property is provided only to support backward compatability 
+		/// This property is provided only to support backward compatability
 		/// of the <see cref="NDC"/>. Tytpically the internal stack should not
 		/// be modified.
 		/// </para>
diff --git a/src/Util/LogicalThreadContextStacks.cs b/src/Util/LogicalThreadContextStacks.cs
index 3554cf3..28bcb29 100644
--- a/src/Util/LogicalThreadContextStacks.cs
+++ b/src/Util/LogicalThreadContextStacks.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/Util/NativeError.cs b/src/Util/NativeError.cs
index 1aeab0b..73cc2f7 100644
--- a/src/Util/NativeError.cs
+++ b/src/Util/NativeError.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -28,7 +28,7 @@
 using System.Globalization;
 using System.Runtime.InteropServices;
 
-namespace log4net.Util 
+namespace log4net.Util
 {
 	/// <summary>
 	/// Represents a native error code and message.
@@ -40,23 +40,23 @@
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
 	/// <author>Gert Driesen</author>
-	public sealed class NativeError 
+	public sealed class NativeError
 	{
 		#region Protected Instance Constructors
 
 		/// <summary>
-		/// Create an instance of the <see cref="NativeError" /> class with the specified 
+		/// Create an instance of the <see cref="NativeError" /> class with the specified
 		/// error number and message.
 		/// </summary>
 		/// <param name="number">The number of the native error.</param>
 		/// <param name="message">The message of the native error.</param>
 		/// <remarks>
 		/// <para>
-		/// Create an instance of the <see cref="NativeError" /> class with the specified 
+		/// Create an instance of the <see cref="NativeError" /> class with the specified
 		/// error number and message.
 		/// </para>
 		/// </remarks>
-		private NativeError(int number, string message) 
+		private NativeError(int number, string message)
 		{
 			m_number = number;
 			m_message = message;
@@ -77,7 +77,7 @@
 		/// Gets the number of the native error.
 		/// </para>
 		/// </remarks>
-		public int Number 
+		public int Number
 		{
 			get { return m_number; }
 		}
@@ -93,7 +93,7 @@
 		/// </para>
 		/// Gets the message of the native error.
 		/// </remarks>
-		public string Message 
+		public string Message
 		{
 			get { return m_message; }
 		}
@@ -110,16 +110,16 @@
 		/// </returns>
 		/// <remarks>
 		/// <para>
-		/// The message for the <see cref="Marshal.GetLastWin32Error"/> error number is lookup up using the 
+		/// The message for the <see cref="Marshal.GetLastWin32Error"/> error number is lookup up using the
 		/// native Win32 <c>FormatMessage</c> function.
 		/// </para>
 		/// </remarks>
 #if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
-        [System.Security.SecuritySafeCritical]
+		[System.Security.SecuritySafeCritical]
 #elif !NETCF
-        [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode=true)]
+		[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode=true)]
 #endif
-        public static NativeError GetLastError() 
+		public static NativeError GetLastError()
 		{
 			int number = Marshal.GetLastWin32Error();
 			return new NativeError(number, NativeError.GetErrorMessage(number));
@@ -130,16 +130,16 @@
 		/// </summary>
 		/// <param name="number">the error number for the native error</param>
 		/// <returns>
-		/// An instance of the <see cref="NativeError" /> class for the specified 
+		/// An instance of the <see cref="NativeError" /> class for the specified
 		/// error number.
 		/// </returns>
 		/// <remarks>
 		/// <para>
-		/// The message for the specified error number is lookup up using the 
+		/// The message for the specified error number is lookup up using the
 		/// native Win32 <c>FormatMessage</c> function.
 		/// </para>
 		/// </remarks>
-		public static NativeError GetError(int number) 
+		public static NativeError GetError(int number)
 		{
 			return new NativeError(number, NativeError.GetErrorMessage(number));
 		}
@@ -158,11 +158,11 @@
 		/// </para>
 		/// </remarks>
 #if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
-        [System.Security.SecuritySafeCritical]
+		[System.Security.SecuritySafeCritical]
 #elif !NETCF
-        [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]
+		[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]
 #endif
-        public static string GetErrorMessage(int messageId) 
+		public static string GetErrorMessage(int messageId)
 		{
 			// Win32 constants
 			int FORMAT_MESSAGE_ALLOCATE_BUFFER = 0x00000100;	// The function should allocates a buffer large enough to hold the formatted message
@@ -173,30 +173,30 @@
 			IntPtr sourcePtr = new IntPtr();	// Location of the message definition, will be ignored
 			IntPtr argumentsPtr = new IntPtr();	// Pointer to array of values to insert, not supported as it requires unsafe code
 
-			if (messageId != 0) 
+			if (messageId != 0)
 			{
 				// If the function succeeds, the return value is the number of TCHARs stored in the output buffer, excluding the terminating null character
 				int messageSize = FormatMessage(
-					FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, 
-					ref sourcePtr, 
-					messageId, 
-					0, 
-					ref msgBuf, 
-					255, 
+					FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
+					ref sourcePtr,
+					messageId,
+					0,
+					ref msgBuf,
+					255,
 					argumentsPtr);
 
-				if (messageSize > 0) 
+				if (messageSize > 0)
 				{
 					// Remove trailing null-terminating characters (\r\n) from the message
 					msgBuf = msgBuf.TrimEnd(new char[] {'\r', '\n'});
 				}
-				else 
+				else
 				{
 					// A message could not be located.
 					msgBuf = null;
 				}
-			} 
-			else 
+			}
+			else
 			{
 				msgBuf = null;
 			}
@@ -217,7 +217,7 @@
 		/// Return error information string
 		/// </para>
 		/// </remarks>
-		public override string ToString() 
+		public override string ToString()
 		{
 			return string.Format(CultureInfo.InvariantCulture, "0x{0:x8}", this.Number) + (this.Message != null ? ": " + this.Message : "");
 		}
@@ -238,12 +238,12 @@
 		/// <param name="Arguments">Pointer to an array of values that are used as insert values in the formatted message.</param>
 		/// <remarks>
 		/// <para>
-		/// The function requires a message definition as input. The message definition can come from a 
-		/// buffer passed into the function. It can come from a message table resource in an 
-		/// already-loaded module. Or the caller can ask the function to search the system's message 
-		/// table resource(s) for the message definition. The function finds the message definition 
-		/// in a message table resource based on a message identifier and a language identifier. 
-		/// The function copies the formatted message text to an output buffer, processing any embedded 
+		/// The function requires a message definition as input. The message definition can come from a
+		/// buffer passed into the function. It can come from a message table resource in an
+		/// already-loaded module. Or the caller can ask the function to search the system's message
+		/// table resource(s) for the message definition. The function finds the message definition
+		/// in a message table resource based on a message identifier and a language identifier.
+		/// The function copies the formatted message text to an output buffer, processing any embedded
 		/// insert sequences if requested.
 		/// </para>
 		/// <para>
@@ -252,11 +252,11 @@
 		/// </remarks>
 		/// <returns>
 		/// <para>
-		/// If the function succeeds, the return value is the number of TCHARs stored in the output 
+		/// If the function succeeds, the return value is the number of TCHARs stored in the output
 		/// buffer, excluding the terminating null character.
 		/// </para>
 		/// <para>
-		/// If the function fails, the return value is zero. To get extended error information, 
+		/// If the function fails, the return value is zero. To get extended error information,
 		/// call <see cref="M:Marshal.GetLastWin32Error()" />.
 		/// </para>
 		/// </returns>
@@ -266,11 +266,11 @@
 		[DllImport("Kernel32.dll", SetLastError=true, CharSet=CharSet.Auto)]
 #endif
 		private static extern int FormatMessage(
-			int dwFlags, 
-			ref IntPtr lpSource, 
+			int dwFlags,
+			ref IntPtr lpSource,
 			int dwMessageId,
-			int dwLanguageId, 
-			ref String lpBuffer, 
+			int dwLanguageId,
+			ref String lpBuffer,
 			int nSize,
 			IntPtr Arguments);
 
diff --git a/src/Util/NullDictionaryEnumerator.cs b/src/Util/NullDictionaryEnumerator.cs
index e4564c8..98f6409 100644
--- a/src/Util/NullDictionaryEnumerator.cs
+++ b/src/Util/NullDictionaryEnumerator.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -38,7 +38,7 @@
 		#region Private Instance Constructors
 
 		/// <summary>
-		/// Initializes a new instance of the <see cref="NullDictionaryEnumerator" /> class. 
+		/// Initializes a new instance of the <see cref="NullDictionaryEnumerator" /> class.
 		/// </summary>
 		/// <remarks>
 		/// <para>
@@ -52,7 +52,7 @@
 		#endregion Private Instance Constructors
 
 		#region Public Static Properties
-  
+
 		/// <summary>
 		/// Gets the singleton instance of the <see cref="NullDictionaryEnumerator" />.
 		/// </summary>
@@ -75,7 +75,7 @@
 		/// Gets the current object from the enumerator.
 		/// </summary>
 		/// <remarks>
-		/// Throws an <see cref="InvalidOperationException" /> because the 
+		/// Throws an <see cref="InvalidOperationException" /> because the
 		/// <see cref="NullDictionaryEnumerator" /> never has a current value.
 		/// </remarks>
 		/// <remarks>
@@ -85,13 +85,13 @@
 		/// will throw an <see cref="InvalidOperationException"/>.
 		/// </para>
 		/// </remarks>
-		/// <exception cref="InvalidOperationException">The collection is empty and <see cref="Current"/> 
+		/// <exception cref="InvalidOperationException">The collection is empty and <see cref="Current"/>
 		/// cannot be positioned over a valid location.</exception>
-		public object Current 
+		public object Current
 		{
 			get	{ throw new InvalidOperationException(); }
 		}
-  
+
 		/// <summary>
 		/// Test if the enumerator can advance, if so advance.
 		/// </summary>
@@ -107,7 +107,7 @@
 		{
 			return false;
 		}
-  
+
 		/// <summary>
 		/// Resets the enumerator back to the start.
 		/// </summary>
@@ -116,7 +116,7 @@
 		/// As the enumerator is over an empty collection <see cref="Reset"/> does nothing.
 		/// </para>
 		/// </remarks>
-		public void Reset() 
+		public void Reset()
 		{
 		}
 
@@ -138,9 +138,9 @@
 		/// will throw an <see cref="InvalidOperationException"/>.
 		/// </para>
 		/// </remarks>
-		/// <exception cref="InvalidOperationException">The collection is empty and <see cref="Current"/> 
+		/// <exception cref="InvalidOperationException">The collection is empty and <see cref="Current"/>
 		/// cannot be positioned over a valid location.</exception>
-		public object Key 
+		public object Key
 		{
 			get	{ throw new InvalidOperationException(); }
 		}
@@ -150,7 +150,7 @@
 		/// </summary>
 		/// <value>The current value from the enumerator.</value>
 		/// <remarks>
-		/// Throws an <see cref="InvalidOperationException" /> because the 
+		/// Throws an <see cref="InvalidOperationException" /> because the
 		/// <see cref="NullDictionaryEnumerator" /> never has a current value.
 		/// </remarks>
 		/// <remarks>
@@ -160,9 +160,9 @@
 		/// will throw an <see cref="InvalidOperationException"/>.
 		/// </para>
 		/// </remarks>
-		/// <exception cref="InvalidOperationException">The collection is empty and <see cref="Current"/> 
+		/// <exception cref="InvalidOperationException">The collection is empty and <see cref="Current"/>
 		/// cannot be positioned over a valid location.</exception>
-		public object Value 
+		public object Value
 		{
 			get	{ throw new InvalidOperationException(); }
 		}
@@ -171,7 +171,7 @@
 		/// Gets the current entry from the enumerator.
 		/// </summary>
 		/// <remarks>
-		/// Throws an <see cref="InvalidOperationException" /> because the 
+		/// Throws an <see cref="InvalidOperationException" /> because the
 		/// <see cref="NullDictionaryEnumerator" /> never has a current entry.
 		/// </remarks>
 		/// <remarks>
@@ -181,13 +181,13 @@
 		/// will throw an <see cref="InvalidOperationException"/>.
 		/// </para>
 		/// </remarks>
-		/// <exception cref="InvalidOperationException">The collection is empty and <see cref="Current"/> 
+		/// <exception cref="InvalidOperationException">The collection is empty and <see cref="Current"/>
 		/// cannot be positioned over a valid location.</exception>
-		public DictionaryEntry Entry 
+		public DictionaryEntry Entry
 		{
 			get	{ throw new InvalidOperationException(); }
 		}
-  
+
 		#endregion Implementation of IDictionaryEnumerator
 
 		#region Private Static Fields
@@ -196,7 +196,7 @@
 		/// The singleton instance of the <see cref="NullDictionaryEnumerator" />.
 		/// </summary>
 		private readonly static NullDictionaryEnumerator s_instance = new NullDictionaryEnumerator();
-  
+
 		#endregion Private Static Fields
 	}
 }
diff --git a/src/Util/NullEnumerator.cs b/src/Util/NullEnumerator.cs
index 614d616..6106ed3 100644
--- a/src/Util/NullEnumerator.cs
+++ b/src/Util/NullEnumerator.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -38,7 +38,7 @@
 		#region Private Instance Constructors
 
 		/// <summary>
-		/// Initializes a new instance of the <see cref="NullEnumerator" /> class. 
+		/// Initializes a new instance of the <see cref="NullEnumerator" /> class.
 		/// </summary>
 		/// <remarks>
 		/// <para>
@@ -50,7 +50,7 @@
 		}
 
 		#endregion Private Instance Constructors
-  
+
 		#region Public Static Properties
 
 		/// <summary>
@@ -75,7 +75,7 @@
 		/// Gets the current object from the enumerator.
 		/// </summary>
 		/// <remarks>
-		/// Throws an <see cref="InvalidOperationException" /> because the 
+		/// Throws an <see cref="InvalidOperationException" /> because the
 		/// <see cref="NullDictionaryEnumerator" /> never has a current value.
 		/// </remarks>
 		/// <remarks>
@@ -85,13 +85,13 @@
 		/// will throw an <see cref="InvalidOperationException"/>.
 		/// </para>
 		/// </remarks>
-		/// <exception cref="InvalidOperationException">The collection is empty and <see cref="Current"/> 
+		/// <exception cref="InvalidOperationException">The collection is empty and <see cref="Current"/>
 		/// cannot be positioned over a valid location.</exception>
-		public object Current 
+		public object Current
 		{
 			get	{ throw new InvalidOperationException(); }
 		}
-  
+
 		/// <summary>
 		/// Test if the enumerator can advance, if so advance
 		/// </summary>
@@ -107,7 +107,7 @@
 		{
 			return false;
 		}
-  
+
 		/// <summary>
 		/// Resets the enumerator back to the start.
 		/// </summary>
@@ -116,7 +116,7 @@
 		/// As the enumerator is over an empty collection <see cref="Reset"/> does nothing.
 		/// </para>
 		/// </remarks>
-		public void Reset() 
+		public void Reset()
 		{
 		}
 
@@ -128,7 +128,7 @@
 		/// The singleton instance of the <see cref="NullEnumerator" />.
 		/// </summary>
 		private readonly static NullEnumerator s_instance = new NullEnumerator();
-  
+
 		#endregion Private Static Fields
 	}
 }
diff --git a/src/Util/NullSecurityContext.cs b/src/Util/NullSecurityContext.cs
index 3196d1d..e4cc290 100644
--- a/src/Util/NullSecurityContext.cs
+++ b/src/Util/NullSecurityContext.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/Util/OnlyOnceErrorHandler.cs b/src/Util/OnlyOnceErrorHandler.cs
index 8062962..745cf65 100644
--- a/src/Util/OnlyOnceErrorHandler.cs
+++ b/src/Util/OnlyOnceErrorHandler.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -24,8 +24,8 @@
 namespace log4net.Util
 {
 	/// <summary>
-	/// Implements log4net's default error handling policy which consists 
-	/// of emitting a message for the first error in an appender and 
+	/// Implements log4net's default error handling policy which consists
+	/// of emitting a message for the first error in an appender and
 	/// ignoring all subsequent errors.
 	/// </summary>
 	/// <remarks>
@@ -101,48 +101,48 @@
 		/// Invokes <see cref="FirstError"/> if and only if this is the first error or the first error after <see cref="Reset"/> has been called.
 		/// </para>
 		/// </remarks>
-		public void Error(string message, Exception e, ErrorCode errorCode) 
+		public void Error(string message, Exception e, ErrorCode errorCode)
 		{
 			if (m_firstTime)
 			{
-                FirstError(message, e, errorCode);
+				FirstError(message, e, errorCode);
 			}
 		}
 
-        /// <summary>
-        /// Log the very first error
-        /// </summary>
-        /// <param name="message">The error message.</param>
-        /// <param name="e">The exception.</param>
-        /// <param name="errorCode">The internal error code.</param>
-        /// <remarks>
-        /// <para>
-        /// Sends the error information to <see cref="LogLog"/>'s Error method.
-        /// </para>
-        /// </remarks>
-        public virtual void FirstError(string message, Exception e, ErrorCode errorCode) {
-            m_enabledDateUtc = DateTime.UtcNow;
-            m_errorCode = errorCode;
-            m_exception = e;
-            m_message = message;
-            m_firstTime = false;
+		/// <summary>
+		/// Log the very first error
+		/// </summary>
+		/// <param name="message">The error message.</param>
+		/// <param name="e">The exception.</param>
+		/// <param name="errorCode">The internal error code.</param>
+		/// <remarks>
+		/// <para>
+		/// Sends the error information to <see cref="LogLog"/>'s Error method.
+		/// </para>
+		/// </remarks>
+		public virtual void FirstError(string message, Exception e, ErrorCode errorCode) {
+			m_enabledDateUtc = DateTime.UtcNow;
+			m_errorCode = errorCode;
+			m_exception = e;
+			m_message = message;
+			m_firstTime = false;
 
-            if (LogLog.InternalDebugging && !LogLog.QuietMode) {
-                LogLog.Error(declaringType, "[" + m_prefix + "] ErrorCode: " + errorCode.ToString() + ". " + message, e);
-            }
-        }
+			if (LogLog.InternalDebugging && !LogLog.QuietMode) {
+				LogLog.Error(declaringType, "[" + m_prefix + "] ErrorCode: " + errorCode.ToString() + ". " + message, e);
+			}
+		}
 
-        /// <summary>
+		/// <summary>
 		/// Log an Error
 		/// </summary>
 		/// <param name="message">The error message.</param>
 		/// <param name="e">The exception.</param>
 		/// <remarks>
-        /// <para>
-        /// Invokes <see cref="FirstError"/> if and only if this is the first error or the first error after <see cref="Reset"/> has been called.
-        /// </para>
-        /// </remarks>
-		public void Error(string message, Exception e) 
+		/// <para>
+		/// Invokes <see cref="FirstError"/> if and only if this is the first error or the first error after <see cref="Reset"/> has been called.
+		/// </para>
+		/// </remarks>
+		public void Error(string message, Exception e)
 		{
 			Error(message, e, ErrorCode.GenericFailure);
 		}
@@ -152,11 +152,11 @@
 		/// </summary>
 		/// <param name="message">The error message.</param>
 		/// <remarks>
-        /// <para>
-        /// Invokes <see cref="FirstError"/> if and only if this is the first error or the first error after <see cref="Reset"/> has been called.
-        /// </para>
-        /// </remarks>
-		public void Error(string message) 
+		/// <para>
+		/// Invokes <see cref="FirstError"/> if and only if this is the first error or the first error after <see cref="Reset"/> has been called.
+		/// </para>
+		/// </remarks>
+		public void Error(string message)
 		{
 			Error(message, null, ErrorCode.GenericFailure);
 		}
@@ -186,20 +186,20 @@
 		/// </summary>
 		public DateTime EnabledDate
 		{
-			get 
-            {
-                if (m_enabledDateUtc == DateTime.MinValue) return DateTime.MinValue;
-                return m_enabledDateUtc.ToLocalTime(); 
-            }
+			get
+			{
+				if (m_enabledDateUtc == DateTime.MinValue) return DateTime.MinValue;
+				return m_enabledDateUtc.ToLocalTime();
+			}
 		}
 
-        /// <summary>
-        /// The UTC date the first error that trigged this error handler occured, or <see cref="DateTime.MinValue"/> if it has not been triggered.
-        /// </summary>
-        public DateTime EnabledDateUtc
-        {
-            get { return m_enabledDateUtc; }
-        }
+		/// <summary>
+		/// The UTC date the first error that trigged this error handler occured, or <see cref="DateTime.MinValue"/> if it has not been triggered.
+		/// </summary>
+		public DateTime EnabledDateUtc
+		{
+			get { return m_enabledDateUtc; }
+		}
 
 		/// <summary>
 		/// The message from the first error that trigged this error handler.
@@ -269,13 +269,13 @@
 
 		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the OnlyOnceErrorHandler class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
+		/// <summary>
+		/// The fully qualified type of the OnlyOnceErrorHandler class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
 		private readonly static Type declaringType = typeof(OnlyOnceErrorHandler);
 
 		#endregion
diff --git a/src/Util/OptionConverter.cs b/src/Util/OptionConverter.cs
index cc791dc..f721979 100644
--- a/src/Util/OptionConverter.cs
+++ b/src/Util/OptionConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -43,7 +43,7 @@
 		#region Private Instance Constructors
 
 		/// <summary>
-		/// Initializes a new instance of the <see cref="OptionConverter" /> class. 
+		/// Initializes a new instance of the <see cref="OptionConverter" /> class.
 		/// </summary>
 		/// <remarks>
 		/// <para>
@@ -64,7 +64,7 @@
 //		/// <param name="l">Left array.</param>
 //		/// <param name="r">Right array.</param>
 //		/// <returns>Array containing both left and right arrays.</returns>
-//		public static string[] ConcatenateArrays(string[] l, string[] r) 
+//		public static string[] ConcatenateArrays(string[] l, string[] r)
 //		{
 //			return (string[])ConcatenateArrays(l, r);
 //		}
@@ -75,7 +75,7 @@
 //		/// <param name="l">Left array</param>
 //		/// <param name="r">Right array</param>
 //		/// <returns>Array containing both left and right arrays.</returns>
-//		public static Array ConcatenateArrays(Array l, Array r) 
+//		public static Array ConcatenateArrays(Array l, Array r)
 //		{
 //			if (l == null)
 //			{
@@ -94,13 +94,13 @@
 //
 //			return a;
 //		}
-  
+
 //		/// <summary>
 //		/// Converts string escape characters back to their correct values.
 //		/// </summary>
 //		/// <param name="s">String to convert.</param>
 //		/// <returns>Converted result.</returns>
-//		public static string ConvertSpecialChars(string s) 
+//		public static string ConvertSpecialChars(string s)
 //		{
 //			if (s == null)
 //			{
@@ -109,24 +109,24 @@
 //			char c;
 //			int len = s.Length;
 //			StringBuilder buf = new StringBuilder(len);
-//	
+//
 //			int i = 0;
-//			while(i < len) 
+//			while(i < len)
 //			{
 //				c = s[i++];
-//				if (c == '\\') 
+//				if (c == '\\')
 //				{
 //					c =  s[i++];
 //					if (c == 'n')	  c = '\n';
 //					else if (c == 'r') c = '\r';
 //					else if (c == 't') c = '\t';
 //					else if (c == 'f') c = '\f';
-//					else if (c == '\b') c = '\b';					
-//					else if (c == '\"') c = '\"';				
-//					else if (c == '\'') c = '\'';			
-//					else if (c == '\\') c = '\\';			
+//					else if (c == '\b') c = '\b';
+//					else if (c == '\"') c = '\"';
+//					else if (c == '\'') c = '\'';
+//					else if (c == '\\') c = '\\';
 //				}
-//				buf.Append(c);	  
+//				buf.Append(c);
 //			}
 //			return buf.ToString();
 //		}
@@ -139,12 +139,12 @@
 		/// <returns>The <see cref="bool" /> value of <paramref name="argValue" />.</returns>
 		/// <remarks>
 		/// <para>
-		/// If <paramref name="argValue"/> is "true", then <c>true</c> is returned. 
-		/// If <paramref name="argValue"/> is "false", then <c>false</c> is returned. 
+		/// If <paramref name="argValue"/> is "true", then <c>true</c> is returned.
+		/// If <paramref name="argValue"/> is "false", then <c>false</c> is returned.
 		/// Otherwise, <paramref name="defaultValue"/> is returned.
 		/// </para>
 		/// </remarks>
-		public static bool ToBoolean(string argValue, bool defaultValue) 
+		public static bool ToBoolean(string argValue, bool defaultValue)
 		{
 			if (argValue != null && argValue.Length > 0)
 			{
@@ -172,16 +172,16 @@
 //		/// cannot be converted to a <see cref="int" /> value.
 //		/// </para>
 //		/// </remarks>
-//		public static int ToInt(string argValue, int defaultValue) 
+//		public static int ToInt(string argValue, int defaultValue)
 //		{
-//			if (argValue != null) 
+//			if (argValue != null)
 //			{
 //				string s = argValue.Trim();
-//				try 
+//				try
 //				{
 //					return int.Parse(s, NumberFormatInfo.InvariantInfo);
 //				}
-//				catch (Exception e) 
+//				catch (Exception e)
 //				{
 //					LogLog.Error(declaringType, "OptionConverter: [" + s + "] is not in proper int form.", e);
 //				}
@@ -205,37 +205,37 @@
 		/// cannot be converted to a <see cref="long" /> value.
 		/// </para>
 		/// </remarks>
-		public static long ToFileSize(string argValue, long defaultValue) 
+		public static long ToFileSize(string argValue, long defaultValue)
 		{
 			if (argValue == null)
 			{
 				return defaultValue;
 			}
-	
+
 			string s = argValue.Trim().ToUpper(CultureInfo.InvariantCulture);
 			long multiplier = 1;
 			int index;
-	
-			if ((index = s.IndexOf("KB")) != -1) 
-			{	  
+
+			if ((index = s.IndexOf("KB")) != -1)
+			{
 				multiplier = 1024;
 				s = s.Substring(0, index);
 			}
-			else if ((index = s.IndexOf("MB")) != -1) 
+			else if ((index = s.IndexOf("MB")) != -1)
 			{
 				multiplier = 1024 * 1024;
 				s = s.Substring(0, index);
 			}
-			else if ((index = s.IndexOf("GB")) != -1) 
+			else if ((index = s.IndexOf("GB")) != -1)
 			{
 				multiplier = 1024 * 1024 * 1024;
 				s = s.Substring(0, index);
-			}	
-			if (s != null) 
+			}
+			if (s != null)
 			{
 				// Try again to remove whitespace between the number and the size specifier
 				s = s.Trim();
-				
+
 				long longVal;
 				if (SystemInfo.TryParse(s, out longVal))
 				{
@@ -255,7 +255,7 @@
 		/// <param name="target">The target type to convert to.</param>
 		/// <param name="txt">The string to convert to an object.</param>
 		/// <returns>
-		/// The object converted from a string or <c>null</c> when the 
+		/// The object converted from a string or <c>null</c> when the
 		/// conversion failed.
 		/// </returns>
 		/// <remarks>
@@ -429,14 +429,14 @@
 		}
 
 //		/// <summary>
-//		/// Finds the value corresponding to <paramref name="key"/> in 
-//		/// <paramref name="props"/> and then perform variable substitution 
+//		/// Finds the value corresponding to <paramref name="key"/> in
+//		/// <paramref name="props"/> and then perform variable substitution
 //		/// on the found value.
 //		/// </summary>
 //		/// <param name="key">The key to lookup.</param>
 //		/// <param name="props">The association to use for lookups.</param>
 //		/// <returns>The substituted result.</returns>
-//		public static string FindAndSubst(string key, System.Collections.IDictionary props) 
+//		public static string FindAndSubst(string key, System.Collections.IDictionary props)
 //		{
 //			if (props == null)
 //			{
@@ -444,20 +444,20 @@
 //			}
 //
 //			string v = props[key] as string;
-//			if (v == null) 
+//			if (v == null)
 //			{
-//				return null;	  
+//				return null;
 //			}
-//	
-//			try 
+//
+//			try
 //			{
 //				return SubstituteVariables(v, props);
-//			} 
-//			catch(Exception e) 
+//			}
+//			catch(Exception e)
 //			{
 //				LogLog.Error(declaringType, "OptionConverter: Bad option value [" + v + "].", e);
 //				return v;
-//			}	
+//			}
 //		}
 
 		/// <summary>
@@ -477,34 +477,34 @@
 		/// not be instantiated, then <paramref name="defaultValue"/> is returned.
 		/// </para>
 		/// </remarks>
-		public static object InstantiateByClassName(string className, Type superClass, object defaultValue) 
+		public static object InstantiateByClassName(string className, Type superClass, object defaultValue)
 		{
-			if (className != null) 
+			if (className != null)
 			{
-				try 
+				try
 				{
 #if NETSTANDARD1_3
 					Type classObj = SystemInfo.GetTypeFromString(superClass.GetTypeInfo().Assembly, className, true, true);
 #else
 					Type classObj = SystemInfo.GetTypeFromString(className, true, true);
 #endif
-					if (!superClass.IsAssignableFrom(classObj)) 
+					if (!superClass.IsAssignableFrom(classObj))
 					{
 						LogLog.Error(declaringType, "OptionConverter: A [" + className + "] object is not assignable to a [" + superClass.FullName + "] variable.");
-						return defaultValue;	  
+						return defaultValue;
 					}
 					return Activator.CreateInstance(classObj);
 				}
-				catch (Exception e) 
+				catch (Exception e)
 				{
 					LogLog.Error(declaringType, "Could not instantiate class [" + className + "].", e);
 				}
 			}
-			return defaultValue;	
+			return defaultValue;
 		}
 
 		/// <summary>
-		/// Performs variable substitution in string <paramref name="value"/> from the 
+		/// Performs variable substitution in string <paramref name="value"/> from the
 		/// values of keys found in <paramref name="props"/>.
 		/// </summary>
 		/// <param name="value">The string on which variable substitution is performed.</param>
@@ -526,7 +526,7 @@
 		/// will set the variable <c>s</c> to "Value of key is value.".
 		/// </para>
 		/// <para>
-		/// If no value could be found for the specified key, then substitution 
+		/// If no value could be found for the specified key, then substitution
 		/// defaults to an empty string.
 		/// </para>
 		/// <para>
@@ -539,55 +539,55 @@
 		/// </code>
 		/// </para>
 		/// <para>
-		/// will set <s>s</s> to "Value of nonExistentKey is []".	 
+		/// will set <s>s</s> to "Value of nonExistentKey is []".
 		/// </para>
 		/// <para>
-		/// An Exception is thrown if <paramref name="value"/> contains a start 
-		/// delimiter "${" which is not balanced by a stop delimiter "}". 
+		/// An Exception is thrown if <paramref name="value"/> contains a start
+		/// delimiter "${" which is not balanced by a stop delimiter "}".
 		/// </para>
 		/// </remarks>
-		public static string SubstituteVariables(string value, System.Collections.IDictionary props) 
+		public static string SubstituteVariables(string value, System.Collections.IDictionary props)
 		{
 			StringBuilder buf = new StringBuilder();
 
 			int i = 0;
 			int j, k;
-	
-			while(true) 
+
+			while(true)
 			{
 				j = value.IndexOf(DELIM_START, i);
-				if (j == -1) 
+				if (j == -1)
 				{
 					if (i == 0)
 					{
 						return value;
 					}
-					else 
+					else
 					{
 						buf.Append(value.Substring(i, value.Length - i));
 						return buf.ToString();
 					}
 				}
-				else 
+				else
 				{
 					buf.Append(value.Substring(i, j - i));
 					k = value.IndexOf(DELIM_STOP, j);
-					if (k == -1) 
+					if (k == -1)
 					{
 						throw new LogException("[" + value + "] has no closing brace. Opening brace at position [" + j + "]");
 					}
-					else 
+					else
 					{
 						j += DELIM_START_LEN;
 						string key = value.Substring(j, k - j);
 
 						string replacement = props[key] as string;
 
-						if (replacement != null) 
+						if (replacement != null)
 						{
 							buf.Append(replacement);
 						}
-						i = k + DELIM_STOP_LEN;		
+						i = k + DELIM_STOP_LEN;
 					}
 				}
 			}
@@ -598,14 +598,14 @@
 		#region Private Static Methods
 
 		/// <summary>
-		/// Converts the string representation of the name or numeric value of one or 
+		/// Converts the string representation of the name or numeric value of one or
 		/// more enumerated constants to an equivalent enumerated object.
 		/// </summary>
 		/// <param name="enumType">The type to convert to.</param>
 		/// <param name="value">The enum string value.</param>
 		/// <param name="ignoreCase">If <c>true</c>, ignore case; otherwise, regard case.</param>
 		/// <returns>An object of type <paramref name="enumType" /> whose value is represented by <paramref name="value" />.</returns>
-		private static object ParseEnum(System.Type enumType, string value, bool ignoreCase) 
+		private static object ParseEnum(System.Type enumType, string value, bool ignoreCase)
 		{
 #if !NETCF
 			return Enum.Parse(enumType, value, ignoreCase);
@@ -613,53 +613,53 @@
 			FieldInfo[] fields = enumType.GetFields(BindingFlags.Public | BindingFlags.Static);
 
 			string[] names = value.Split(new char[] {','});
-			for (int i = 0; i < names.Length; ++i) 
+			for (int i = 0; i < names.Length; ++i)
 			{
 				names[i] = names [i].Trim();
 			}
 
 			long retVal = 0;
 
-			try 
+			try
 			{
 				// Attempt to convert to numeric type
 				return Enum.ToObject(enumType, Convert.ChangeType(value, typeof(long), CultureInfo.InvariantCulture));
-			} 
+			}
 			catch {}
 
-			foreach (string name in names) 
+			foreach (string name in names)
 			{
 				bool found = false;
-				foreach(FieldInfo field in fields) 
+				foreach(FieldInfo field in fields)
 				{
-					if (String.Compare(name, field.Name, ignoreCase) == 0) 
+					if (String.Compare(name, field.Name, ignoreCase) == 0)
 					{
 						retVal |= ((IConvertible) field.GetValue(null)).ToInt64(CultureInfo.InvariantCulture);
 						found = true;
 						break;
 					}
 				}
-				if (!found) 
+				if (!found)
 				{
 					throw new ArgumentException("Failed to lookup member [" + name + "] from Enum type [" + enumType.Name + "]");
 				}
 			}
 			return Enum.ToObject(enumType, retVal);
 #endif
-		}		
+		}
 
 		#endregion Private Static Methods
 
 		#region Private Static Fields
 
-        /// <summary>
-        /// The fully qualified type of the OptionConverter class.
-        /// </summary>
-        /// <remarks>
-        /// Used by the internal logger to record the Type of the
-        /// log message.
-        /// </remarks>
-        private readonly static Type declaringType = typeof(OptionConverter);
+		/// <summary>
+		/// The fully qualified type of the OptionConverter class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(OptionConverter);
 
 		private const string DELIM_START = "${";
 		private const char   DELIM_STOP  = '}';
diff --git a/src/Util/PatternConverter.cs b/src/Util/PatternConverter.cs
index 7b33395..0032fce 100644
--- a/src/Util/PatternConverter.cs
+++ b/src/Util/PatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -27,7 +27,7 @@
 namespace log4net.Util
 {
 	/// <summary>
-	/// Abstract class that provides the formatting functionality that 
+	/// Abstract class that provides the formatting functionality that
 	/// derived classes need.
 	/// </summary>
 	/// <remarks>
@@ -51,8 +51,8 @@
 		/// Initializes a new instance of the <see cref="PatternConverter" /> class.
 		/// </para>
 		/// </remarks>
-		protected PatternConverter() 
-		{  
+		protected PatternConverter()
+		{
 		}
 
 		#endregion Protected Instance Constructors
@@ -165,7 +165,7 @@
 		/// apply those formattings before writing the output.
 		/// </para>
 		/// </remarks>
-		virtual public void Format(TextWriter writer, object state) 
+		virtual public void Format(TextWriter writer, object state)
 		{
 			if (m_min < 0 && m_max == int.MaxValue)
 			{
@@ -174,35 +174,35 @@
 			}
 			else
 			{
-                string msg = null;
-                int len;
-                lock (m_formatWriter)
-                {
-                    m_formatWriter.Reset(c_renderBufferMaxCapacity, c_renderBufferSize);
-
-                    Convert(m_formatWriter, state);
-
-                    StringBuilder buf = m_formatWriter.GetStringBuilder();
-                    len = buf.Length;
-                    if (len > m_max)
-                    {
-                        msg = buf.ToString(len - m_max, m_max);
-                        len = m_max;
-                    }
-                    else
-                    {
-                        msg = buf.ToString();
-                    }
-                }
-
-				if (len < m_min) 
+				string msg = null;
+				int len;
+				lock (m_formatWriter)
 				{
-					if (m_leftAlign) 
-					{	
+					m_formatWriter.Reset(c_renderBufferMaxCapacity, c_renderBufferSize);
+
+					Convert(m_formatWriter, state);
+
+					StringBuilder buf = m_formatWriter.GetStringBuilder();
+					len = buf.Length;
+					if (len > m_max)
+					{
+						msg = buf.ToString(len - m_max, m_max);
+						len = m_max;
+					}
+					else
+					{
+						msg = buf.ToString();
+					}
+				}
+
+				if (len < m_min)
+				{
+					if (m_leftAlign)
+					{
 						writer.Write(msg);
 						SpacePad(writer, m_min - len);
 					}
-					else 
+					else
 					{
 						SpacePad(writer, m_min - len);
 						writer.Write(msg);
@@ -213,7 +213,7 @@
 					writer.Write(msg);
 				}
 			}
-		}	
+		}
 
 		private static readonly string[] SPACES = {	" ", "  ", "    ", "        ",			// 1,2,4,8 spaces
 													"                ",						// 16 spaces
@@ -229,22 +229,22 @@
 		/// Fast space padding method.
 		/// </para>
 		/// </remarks>
-		protected static void SpacePad(TextWriter writer, int length) 
+		protected static void SpacePad(TextWriter writer, int length)
 		{
-			while(length >= 32) 
+			while(length >= 32)
 			{
 				writer.Write(SPACES[5]);
 				length -= 32;
 			}
-    
-			for(int i = 4; i >= 0; i--) 
-			{	
-				if ((length & (1<<i)) != 0) 
+
+			for(int i = 4; i >= 0; i--)
+			{
+				if ((length & (1<<i)) != 0)
 				{
 					writer.Write(SPACES[i]);
 				}
 			}
-		}	
+		}
 
 		#endregion Public Instance Methods
 
@@ -383,15 +383,15 @@
 
 		#endregion
 
-        private PropertiesDictionary properties;
+		private PropertiesDictionary properties;
 
-        /// <summary>
-        /// 
-        /// </summary>
-        public PropertiesDictionary Properties
-	    {
-	        get { return properties; }
-	        set { properties = value; }
-	    }
+		/// <summary>
+		///
+		/// </summary>
+		public PropertiesDictionary Properties
+		{
+			get { return properties; }
+			set { properties = value; }
+		}
 	}
 }
diff --git a/src/Util/PatternParser.cs b/src/Util/PatternParser.cs
index bfe4452..f784eec 100644
--- a/src/Util/PatternParser.cs
+++ b/src/Util/PatternParser.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -48,11 +48,11 @@
 		/// <param name="pattern">The pattern to parse.</param>
 		/// <remarks>
 		/// <para>
-		/// Initializes a new instance of the <see cref="PatternParser" /> class 
+		/// Initializes a new instance of the <see cref="PatternParser" /> class
 		/// with the specified pattern string.
 		/// </para>
 		/// </remarks>
-		public PatternParser(string pattern) 
+		public PatternParser(string pattern)
 		{
 			m_pattern = pattern;
 		}
@@ -164,7 +164,7 @@
 
 				return s2.Length.CompareTo(s1.Length);
 			}
-		
+
 			#endregion
 		}
 
@@ -277,7 +277,7 @@
 										{
 											// Seen option start
 											offset++;
-											
+
 											int optEnd = pattern.IndexOf('}', offset);
 											if (optEnd < 0)
 											{
@@ -325,7 +325,7 @@
 			LogLog.Debug(declaringType, "Converter ["+converterName+"] Option ["+option+"] Format [min="+formattingInfo.Min+",max="+formattingInfo.Max+",leftAlign="+formattingInfo.LeftAlign+"]");
 
 			// Lookup the converter type
-            ConverterInfo converterInfo = (ConverterInfo)m_patternConverters[converterName];
+			ConverterInfo converterInfo = (ConverterInfo)m_patternConverters[converterName];
 			if (converterInfo == null)
 			{
 				LogLog.Error(declaringType, "Unknown converter name ["+converterName+"] in conversion pattern.");
@@ -336,20 +336,20 @@
 				PatternConverter pc = null;
 				try
 				{
-                    pc = (PatternConverter)Activator.CreateInstance(converterInfo.Type);
+					pc = (PatternConverter)Activator.CreateInstance(converterInfo.Type);
 				}
 				catch(Exception createInstanceEx)
 				{
-                    LogLog.Error(declaringType, "Failed to create instance of Type [" + converterInfo.Type.FullName + "] using default constructor. Exception: " + createInstanceEx.ToString());
+					LogLog.Error(declaringType, "Failed to create instance of Type [" + converterInfo.Type.FullName + "] using default constructor. Exception: " + createInstanceEx.ToString());
 				}
 
-				// formattingInfo variable is an instance variable, occasionally reset 
+				// formattingInfo variable is an instance variable, occasionally reset
 				// and used over and over again
 				pc.FormattingInfo = formattingInfo;
 				pc.Option = option;
-                pc.Properties = converterInfo.Properties;
+				pc.Properties = converterInfo.Properties;
 
-			    IOptionHandler optionHandler = pc as IOptionHandler;
+				IOptionHandler optionHandler = pc as IOptionHandler;
 				if (optionHandler != null)
 				{
 					optionHandler.ActivateOptions();
@@ -360,19 +360,19 @@
 		}
 
 		/// <summary>
-		/// Resets the internal state of the parser and adds the specified pattern converter 
+		/// Resets the internal state of the parser and adds the specified pattern converter
 		/// to the chain.
 		/// </summary>
 		/// <param name="pc">The pattern converter to add.</param>
-		private void AddConverter(PatternConverter pc) 
+		private void AddConverter(PatternConverter pc)
 		{
 			// Add the pattern converter to the list.
 
-			if (m_head == null) 
+			if (m_head == null)
 			{
 				m_head = m_tail = pc;
 			}
-			else 
+			else
 			{
 				// Set the next converter on the tail
 				// Update the tail reference
@@ -387,7 +387,7 @@
 		#region Private Constants
 
 		private const char ESCAPE_CHAR = '%';
-  
+
 		#endregion Private Constants
 
 		#region Private Instance Fields
@@ -419,17 +419,17 @@
 
 		#endregion Private Instance Fields
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the PatternParser class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(PatternParser);
+		/// <summary>
+		/// The fully qualified type of the PatternParser class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(PatternParser);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
diff --git a/src/Util/PatternString.cs b/src/Util/PatternString.cs
index a8f14ce..af61399 100644
--- a/src/Util/PatternString.cs
+++ b/src/Util/PatternString.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -40,7 +40,7 @@
 	/// </para>
 	/// <para>
 	/// This class functions similarly to the <see cref="log4net.Layout.PatternLayout"/>
-	/// in that it accepts a pattern and renders it to a string. Unlike the 
+	/// in that it accepts a pattern and renders it to a string. Unlike the
 	/// <see cref="log4net.Layout.PatternLayout"/> however the <c>PatternString</c>
 	/// does not render the properties of a specific <see cref="LoggingEvent"/> but
 	/// of the process in general.
@@ -74,12 +74,12 @@
 	///         <term>date</term>
 	///         <description>
 	/// 			<para>
-	/// 			Used to output the current date and time in the local time zone. 
+	/// 			Used to output the current date and time in the local time zone.
 	/// 			To output the date in universal time use the <c>%utcdate</c> pattern.
-	/// 			The date conversion 
-	/// 			specifier may be followed by a <i>date format specifier</i> enclosed 
+	/// 			The date conversion
+	/// 			specifier may be followed by a <i>date format specifier</i> enclosed
 	/// 			between braces. For example, <b>%date{HH:mm:ss,fff}</b> or
-	/// 			<b>%date{dd MMM yyyy HH:mm:ss,fff}</b>.  If no date format specifier is 
+	/// 			<b>%date{dd MMM yyyy HH:mm:ss,fff}</b>.  If no date format specifier is
 	/// 			given then ISO8601 format is
 	/// 			assumed (<see cref="log4net.DateFormatter.Iso8601DateFormatter"/>).
 	/// 			</para>
@@ -90,10 +90,10 @@
 	/// 			<para>
 	/// 			For better results it is recommended to use the log4net date
 	/// 			formatters. These can be specified using one of the strings
-	/// 			"ABSOLUTE", "DATE" and "ISO8601" for specifying 
-	/// 			<see cref="log4net.DateFormatter.AbsoluteTimeDateFormatter"/>, 
-	/// 			<see cref="log4net.DateFormatter.DateTimeDateFormatter"/> and respectively 
-	/// 			<see cref="log4net.DateFormatter.Iso8601DateFormatter"/>. For example, 
+	/// 			"ABSOLUTE", "DATE" and "ISO8601" for specifying
+	/// 			<see cref="log4net.DateFormatter.AbsoluteTimeDateFormatter"/>,
+	/// 			<see cref="log4net.DateFormatter.DateTimeDateFormatter"/> and respectively
+	/// 			<see cref="log4net.DateFormatter.Iso8601DateFormatter"/>. For example,
 	/// 			<b>%date{ISO8601}</b> or <b>%date{ABSOLUTE}</b>.
 	/// 			</para>
 	/// 			<para>
@@ -106,7 +106,7 @@
 	///         <term>env</term>
 	///         <description>
 	///             <para>
-	/// 			Used to output the a specific environment variable. The key to 
+	/// 			Used to output the a specific environment variable. The key to
 	/// 			lookup must be specified within braces and directly following the
 	/// 			pattern specifier, e.g. <b>%env{COMPUTERNAME}</b> would include the value
 	/// 			of the <c>COMPUTERNAME</c> environment variable.
@@ -133,10 +133,10 @@
 	/// 			characters.
 	/// 			</para>
 	/// 			<para>
-	/// 			This conversion pattern name offers the same performance as using 
-	/// 			non-portable line separator strings such as	"\n", or "\r\n". 
+	/// 			This conversion pattern name offers the same performance as using
+	/// 			non-portable line separator strings such as	"\n", or "\r\n".
 	/// 			Thus, it is the preferred way of specifying a line separator.
-	/// 			</para> 
+	/// 			</para>
 	///         </description>
 	///     </item>
 	///     <item>
@@ -151,13 +151,13 @@
 	///         <term>property</term>
 	///         <description>
 	/// 			<para>
-	/// 			Used to output a specific context property. The key to 
+	/// 			Used to output a specific context property. The key to
 	/// 			lookup must be specified within braces and directly following the
 	/// 			pattern specifier, e.g. <b>%property{user}</b> would include the value
 	/// 			from the property that is keyed by the string 'user'. Each property value
 	/// 			that is to be included in the log must be specified separately.
-	/// 			Properties are stored in logging contexts. By default 
-	/// 			the <c>log4net:HostName</c> property is set to the name of machine on 
+	/// 			Properties are stored in logging contexts. By default
+	/// 			the <c>log4net:HostName</c> property is set to the name of machine on
 	/// 			which the event was originally logged.
 	/// 			</para>
 	/// 			<para>
@@ -179,7 +179,7 @@
 	/// 				<item>
 	/// 					<term>the global properties</term>
 	/// 					<description>
-	/// 					The <see cref="GlobalContext.Properties"/> that are set globally. These 
+	/// 					The <see cref="GlobalContext.Properties"/> that are set globally. These
 	/// 					properties are shared by all the threads in the AppDomain.
 	/// 					</description>
 	/// 				</item>
@@ -210,11 +210,11 @@
 	///         <term>utcdate</term>
 	///         <description>
 	/// 			<para>
-	/// 			Used to output the date of the logging event in universal time. 
-	/// 			The date conversion 
-	/// 			specifier may be followed by a <i>date format specifier</i> enclosed 
+	/// 			Used to output the date of the logging event in universal time.
+	/// 			The date conversion
+	/// 			specifier may be followed by a <i>date format specifier</i> enclosed
 	/// 			between braces. For example, <b>%utcdate{HH:mm:ss,fff}</b> or
-	/// 			<b>%utcdate{dd MMM yyyy HH:mm:ss,fff}</b>.  If no date format specifier is 
+	/// 			<b>%utcdate{dd MMM yyyy HH:mm:ss,fff}</b>.  If no date format specifier is
 	/// 			given then ISO8601 format is
 	/// 			assumed (<see cref="log4net.DateFormatter.Iso8601DateFormatter"/>).
 	/// 			</para>
@@ -225,10 +225,10 @@
 	/// 			<para>
 	/// 			For better results it is recommended to use the log4net date
 	/// 			formatters. These can be specified using one of the strings
-	/// 			"ABSOLUTE", "DATE" and "ISO8601" for specifying 
-	/// 			<see cref="log4net.DateFormatter.AbsoluteTimeDateFormatter"/>, 
-	/// 			<see cref="log4net.DateFormatter.DateTimeDateFormatter"/> and respectively 
-	/// 			<see cref="log4net.DateFormatter.Iso8601DateFormatter"/>. For example, 
+	/// 			"ABSOLUTE", "DATE" and "ISO8601" for specifying
+	/// 			<see cref="log4net.DateFormatter.AbsoluteTimeDateFormatter"/>,
+	/// 			<see cref="log4net.DateFormatter.DateTimeDateFormatter"/> and respectively
+	/// 			<see cref="log4net.DateFormatter.Iso8601DateFormatter"/>. For example,
 	/// 			<b>%utcdate{ISO8601}</b> or <b>%utcdate{ABSOLUTE}</b>.
 	/// 			</para>
 	/// 			<para>
@@ -252,7 +252,7 @@
 	/// <see cref="M:AddConverter(string, Type)" />.
 	/// </para>
 	/// <para>
-	/// See the <see cref="log4net.Layout.PatternLayout"/> for details on the 
+	/// See the <see cref="log4net.Layout.PatternLayout"/> for details on the
 	/// <i>format modifiers</i> supported by the patterns.
 	/// </para>
 	/// </remarks>
@@ -269,12 +269,12 @@
 		#endregion Static Fields
 
 		#region Member Variables
-    
+
 		/// <summary>
 		/// the pattern
 		/// </summary>
 		private string m_pattern;
-  
+
 		/// <summary>
 		/// the head of the pattern converter chain
 		/// </summary>
@@ -356,7 +356,7 @@
 		}
 
 		#endregion
-  
+
 		/// <summary>
 		/// Gets or sets the pattern formatting string
 		/// </summary>
@@ -384,17 +384,17 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
-		virtual public void ActivateOptions() 
+		virtual public void ActivateOptions()
 		{
 			m_head = CreatePatternParser(m_pattern).Parse();
 		}
@@ -413,17 +413,17 @@
 		/// custom conversion pattern name.
 		/// </para>
 		/// </remarks>
-		private PatternParser CreatePatternParser(string pattern) 
+		private PatternParser CreatePatternParser(string pattern)
 		{
 			PatternParser patternParser = new PatternParser(pattern);
 
 			// Add all the builtin patterns
 			foreach(DictionaryEntry entry in s_globalRulesRegistry)
 			{
-                ConverterInfo converterInfo = new ConverterInfo();
-                converterInfo.Name = (string)entry.Key;
-                converterInfo.Type = (Type)entry.Value;
-                patternParser.PatternConverters.Add(entry.Key, converterInfo);
+				ConverterInfo converterInfo = new ConverterInfo();
+				converterInfo.Name = (string)entry.Key;
+				converterInfo.Type = (Type)entry.Value;
+				patternParser.PatternConverters.Add(entry.Key, converterInfo);
 			}
 			// Add the instance patterns
 			foreach(DictionaryEntry entry in m_instanceRulesRegistry)
@@ -433,7 +433,7 @@
 
 			return patternParser;
 		}
-  
+
 		/// <summary>
 		/// Produces a formatted string as specified by the conversion pattern.
 		/// </summary>
@@ -443,7 +443,7 @@
 		/// Format the pattern to the <paramref name="writer"/>.
 		/// </para>
 		/// </remarks>
-		public void Format(TextWriter writer) 
+		public void Format(TextWriter writer)
 		{
 			if (writer == null)
 			{
@@ -453,7 +453,7 @@
 			PatternConverter c = m_head;
 
 			// loop through the chain of pattern converters
-			while(c != null) 
+			while(c != null)
 			{
 				c.Format(writer, null);
 				c = c.Next;
@@ -469,7 +469,7 @@
 		/// Format the pattern to a string.
 		/// </para>
 		/// </remarks>
-		public string Format() 
+		public string Format()
 		{
 			StringWriter writer = new StringWriter(System.Globalization.CultureInfo.InvariantCulture);
 			Format(writer);
@@ -488,13 +488,13 @@
 		/// </remarks>
 		public void AddConverter(ConverterInfo converterInfo)
 		{
-            if (converterInfo == null) throw new ArgumentNullException("converterInfo");
+			if (converterInfo == null) throw new ArgumentNullException("converterInfo");
 
-            if (!typeof(PatternConverter).IsAssignableFrom(converterInfo.Type))
-            {
-                throw new ArgumentException("The converter type specified [" + converterInfo.Type + "] must be a subclass of log4net.Util.PatternConverter", "converterInfo");
-            }
-            m_instanceRulesRegistry[converterInfo.Name] = converterInfo;
+			if (!typeof(PatternConverter).IsAssignableFrom(converterInfo.Type))
+			{
+				throw new ArgumentException("The converter type specified [" + converterInfo.Type + "] must be a subclass of log4net.Util.PatternConverter", "converterInfo");
+			}
+			m_instanceRulesRegistry[converterInfo.Name] = converterInfo;
 		}
 
 		/// <summary>
@@ -512,11 +512,11 @@
 			if (name == null) throw new ArgumentNullException("name");
 			if (type == null) throw new ArgumentNullException("type");
 
-            ConverterInfo converterInfo = new ConverterInfo();
-            converterInfo.Name = name;
-            converterInfo.Type = type;
+			ConverterInfo converterInfo = new ConverterInfo();
+			converterInfo.Name = name;
+			converterInfo.Type = type;
 
-            AddConverter(converterInfo);
+			AddConverter(converterInfo);
 		}
 	}
 }
diff --git a/src/Util/PatternStringConverters/AppDomainPatternConverter.cs b/src/Util/PatternStringConverters/AppDomainPatternConverter.cs
index 9b11002..1e3f41a 100644
--- a/src/Util/PatternStringConverters/AppDomainPatternConverter.cs
+++ b/src/Util/PatternStringConverters/AppDomainPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -34,7 +34,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class AppDomainPatternConverter : PatternConverter 
+	internal sealed class AppDomainPatternConverter : PatternConverter
 	{
 		/// <summary>
 		/// Write the name of the current AppDomain to the output
@@ -46,7 +46,7 @@
 		/// Writes name of the current AppDomain to the output <paramref name="writer"/>.
 		/// </para>
 		/// </remarks>
-		override protected void Convert(TextWriter writer, object state) 
+		override protected void Convert(TextWriter writer, object state)
 		{
 			writer.Write( SystemInfo.ApplicationFriendlyName );
 		}
diff --git a/src/Util/PatternStringConverters/AppSettingPatternConverter.cs b/src/Util/PatternStringConverters/AppSettingPatternConverter.cs
index ce3bba4..3efe09c 100644
--- a/src/Util/PatternStringConverters/AppSettingPatternConverter.cs
+++ b/src/Util/PatternStringConverters/AppSettingPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -31,83 +31,83 @@
 
 namespace log4net.Util.PatternStringConverters
 {
-    /// <summary>
-    /// AppSetting pattern converter
-    /// </summary>
-    /// <remarks>
-    /// <para>
-    /// This pattern converter reads appSettings from the application configuration file.
-    /// </para>
-    /// <para>
-    /// If the <see cref="PatternConverter.Option"/> is specified then that will be used to
-    /// lookup a single appSettings value. If no <see cref="PatternConverter.Option"/> is specified
-    /// then all appSettings will be dumped as a list of key value pairs.
-    /// </para>
-    /// <para>
-    /// A typical use is to specify a base directory for log files, e.g.
-    /// <example>
-    /// <![CDATA[
-    /// <log4net>
-    ///    <appender name="MyAppender" type="log4net.Appender.RollingFileAppender">
-    ///      <file type="log4net.Util.PatternString" value="appsetting{LogDirectory}MyApp.log"/>
-    ///       ...
-    ///   </appender>
-    /// </log4net>
-    /// ]]>
-    /// </example>
-    /// </para>
-    /// </remarks>
-    internal sealed class AppSettingPatternConverter : PatternConverter
-    {
-        private static IDictionary AppSettingsDictionary
-        {
-            get
-            {
-                if (_appSettingsHashTable == null)
-                {
-                    Hashtable h = new Hashtable();
-                    foreach(string key in System.Configuration.ConfigurationManager.AppSettings)
-                    {
-                        h.Add(key, System.Configuration.ConfigurationManager.AppSettings[key]);
-                    }
-                    _appSettingsHashTable = h;
-                }
-                return _appSettingsHashTable;
-            }
+	/// <summary>
+	/// AppSetting pattern converter
+	/// </summary>
+	/// <remarks>
+	/// <para>
+	/// This pattern converter reads appSettings from the application configuration file.
+	/// </para>
+	/// <para>
+	/// If the <see cref="PatternConverter.Option"/> is specified then that will be used to
+	/// lookup a single appSettings value. If no <see cref="PatternConverter.Option"/> is specified
+	/// then all appSettings will be dumped as a list of key value pairs.
+	/// </para>
+	/// <para>
+	/// A typical use is to specify a base directory for log files, e.g.
+	/// <example>
+	/// <![CDATA[
+	/// <log4net>
+	///    <appender name="MyAppender" type="log4net.Appender.RollingFileAppender">
+	///      <file type="log4net.Util.PatternString" value="appsetting{LogDirectory}MyApp.log"/>
+	///       ...
+	///   </appender>
+	/// </log4net>
+	/// ]]>
+	/// </example>
+	/// </para>
+	/// </remarks>
+	internal sealed class AppSettingPatternConverter : PatternConverter
+	{
+		private static IDictionary AppSettingsDictionary
+		{
+			get
+			{
+				if (_appSettingsHashTable == null)
+				{
+					Hashtable h = new Hashtable();
+					foreach(string key in System.Configuration.ConfigurationManager.AppSettings)
+					{
+						h.Add(key, System.Configuration.ConfigurationManager.AppSettings[key]);
+					}
+					_appSettingsHashTable = h;
+				}
+				return _appSettingsHashTable;
+			}
 
-        }
-        private static Hashtable _appSettingsHashTable;
+		}
+		private static Hashtable _appSettingsHashTable;
 
-        /// <summary>
-        /// Write the property value to the output
-        /// </summary>
-        /// <param name="writer"><see cref="TextWriter" /> that will receive the formatted result.</param>
-        /// <param name="state">null, state is not set</param>
-        /// <remarks>
-        /// <para>
-        /// Writes out the value of a named property. The property name
-        /// should be set in the <see cref="log4net.Util.PatternConverter.Option"/>
-        /// property.
-        /// </para>
-        /// <para>
-        /// If the <see cref="log4net.Util.PatternConverter.Option"/> is set to <c>null</c>
-        /// then all the properties are written as key value pairs.
-        /// </para>
-        /// </remarks>
-        override protected void Convert(TextWriter writer, object state)
-        {
+		/// <summary>
+		/// Write the property value to the output
+		/// </summary>
+		/// <param name="writer"><see cref="TextWriter" /> that will receive the formatted result.</param>
+		/// <param name="state">null, state is not set</param>
+		/// <remarks>
+		/// <para>
+		/// Writes out the value of a named property. The property name
+		/// should be set in the <see cref="log4net.Util.PatternConverter.Option"/>
+		/// property.
+		/// </para>
+		/// <para>
+		/// If the <see cref="log4net.Util.PatternConverter.Option"/> is set to <c>null</c>
+		/// then all the properties are written as key value pairs.
+		/// </para>
+		/// </remarks>
+		override protected void Convert(TextWriter writer, object state)
+		{
 
-            if (Option != null)
-            {
-                // Write the value for the specified key
-                WriteObject(writer, null, System.Configuration.ConfigurationManager.AppSettings[Option]);
-            }
-            else
-            {
-                // Write all the key value pairs
-                WriteDictionary(writer, null, AppSettingsDictionary);
-            }
-        }
-    }
+			if (Option != null)
+			{
+				// Write the value for the specified key
+				WriteObject(writer, null, System.Configuration.ConfigurationManager.AppSettings[Option]);
+			}
+			else
+			{
+				// Write all the key value pairs
+				WriteDictionary(writer, null, AppSettingsDictionary);
+			}
+		}
+	}
 }
 #endif
diff --git a/src/Util/PatternStringConverters/DatePatternConverter.cs b/src/Util/PatternStringConverters/DatePatternConverter.cs
index 6def66f..af5ca86 100644
--- a/src/Util/PatternStringConverters/DatePatternConverter.cs
+++ b/src/Util/PatternStringConverters/DatePatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -30,11 +30,11 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// Date pattern converter, uses a <see cref="IDateFormatter"/> to format 
+	/// Date pattern converter, uses a <see cref="IDateFormatter"/> to format
 	/// the current date and time to the writer as a string.
 	/// </para>
 	/// <para>
-	/// The value of the <see cref="log4net.Util.PatternConverter.Option"/> determines 
+	/// The value of the <see cref="log4net.Util.PatternConverter.Option"/> determines
 	/// the formatting of the date. The following values are allowed:
 	/// <list type="definition">
 	///		<listheader>
@@ -44,31 +44,31 @@
 	///		<item>
 	/// 		<term>ISO8601</term>
 	/// 		<description>
-	/// 		Uses the <see cref="Iso8601DateFormatter"/> formatter. 
+	/// 		Uses the <see cref="Iso8601DateFormatter"/> formatter.
 	/// 		Formats using the <c>"yyyy-MM-dd HH:mm:ss,fff"</c> pattern.
 	/// 		</description>
 	/// 	</item>
 	/// 	<item>
 	/// 		<term>DATE</term>
 	/// 		<description>
-	/// 		Uses the <see cref="DateTimeDateFormatter"/> formatter. 
+	/// 		Uses the <see cref="DateTimeDateFormatter"/> formatter.
 	/// 		Formats using the <c>"dd MMM yyyy HH:mm:ss,fff"</c> for example, <c>"06 Nov 1994 15:49:37,459"</c>.
 	/// 		</description>
 	/// 	</item>
 	/// 	<item>
 	/// 		<term>ABSOLUTE</term>
 	/// 		<description>
-	/// 		Uses the <see cref="AbsoluteTimeDateFormatter"/> formatter. 
+	/// 		Uses the <see cref="AbsoluteTimeDateFormatter"/> formatter.
 	/// 		Formats using the <c>"HH:mm:ss,fff"</c> for example, <c>"15:49:37,459"</c>.
 	/// 		</description>
 	/// 	</item>
 	/// 	<item>
 	/// 		<term>other</term>
 	/// 		<description>
-	/// 		Any other pattern string uses the <see cref="SimpleDateFormatter"/> formatter. 
-	/// 		This formatter passes the pattern string to the <see cref="DateTime"/> 
+	/// 		Any other pattern string uses the <see cref="SimpleDateFormatter"/> formatter.
+	/// 		This formatter passes the pattern string to the <see cref="DateTime"/>
 	/// 		<see cref="M:DateTime.ToString(string)"/> method.
-	/// 		For details on valid patterns see 
+	/// 		For details on valid patterns see
 	/// 		<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemglobalizationdatetimeformatinfoclasstopic.asp">DateTimeFormatInfo Class</a>.
 	/// 		</description>
 	/// 	</item>
@@ -91,7 +91,7 @@
 		/// </para>
 		/// </remarks>
 		protected IDateFormatter m_dateFormatter;
-	
+
 		#region Implementation of IOptionHandler
 
 		/// <summary>
@@ -100,13 +100,13 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
@@ -118,7 +118,7 @@
 			{
 				dateFormatStr = AbsoluteTimeDateFormatter.Iso8601TimeDateFormat;
 			}
-			
+
 			if (SystemInfo.EqualsIgnoringCase(dateFormatStr, AbsoluteTimeDateFormatter.Iso8601TimeDateFormat))
 			{
 				m_dateFormatter = new Iso8601DateFormatter();
@@ -133,15 +133,15 @@
 			}
 			else
 			{
-				try 
+				try
 				{
 					m_dateFormatter = new SimpleDateFormatter(dateFormatStr);
 				}
-				catch (Exception e) 
+				catch (Exception e)
 				{
 					LogLog.Error(declaringType, "Could not instantiate SimpleDateFormatter with ["+dateFormatStr+"]", e);
 					m_dateFormatter = new Iso8601DateFormatter();
-				}	
+				}
 			}
 		}
 
@@ -161,29 +161,29 @@
 		/// The date and time passed is in the local time zone.
 		/// </para>
 		/// </remarks>
-		override protected void Convert(TextWriter writer, object state) 
+		override protected void Convert(TextWriter writer, object state)
 		{
-			try 
+			try
 			{
 				m_dateFormatter.FormatDate(DateTime.Now, writer);
 			}
-			catch (Exception ex) 
+			catch (Exception ex)
 			{
 				LogLog.Error(declaringType, "Error occurred while converting date.", ex);
 			}
 		}
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the DatePatternConverter class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(DatePatternConverter);
+		/// <summary>
+		/// The fully qualified type of the DatePatternConverter class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(DatePatternConverter);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
diff --git a/src/Util/PatternStringConverters/EnvironmentFolderPathPatternConverter.cs b/src/Util/PatternStringConverters/EnvironmentFolderPathPatternConverter.cs
index a6dd221..db3d65c 100644
--- a/src/Util/PatternStringConverters/EnvironmentFolderPathPatternConverter.cs
+++ b/src/Util/PatternStringConverters/EnvironmentFolderPathPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -24,75 +24,75 @@
 
 namespace log4net.Util.PatternStringConverters
 {
-    /// <summary>
-    /// Write an <see cref="System.Environment.SpecialFolder" /> folder path to the output
-    /// </summary>
-    /// <remarks>
-    /// <para>
-    /// Write an special path environment folder path to the output writer.
-    /// The value of the <see cref="log4net.Util.PatternConverter.Option"/> determines 
-    /// the name of the variable to output. <see cref="log4net.Util.PatternConverter.Option"/>
-    /// should be a value in the <see cref="System.Environment.SpecialFolder" /> enumeration.
-    /// </para>
-    /// </remarks>
-    /// <author>Ron Grabowski</author>
-    internal sealed class EnvironmentFolderPathPatternConverter : PatternConverter
-    {
-        /// <summary>
-        /// Write an special path environment folder path to the output
-        /// </summary>
-        /// <param name="writer">the writer to write to</param>
-        /// <param name="state">null, state is not set</param>
-        /// <remarks>
-        /// <para>
-        /// Writes the special path environment folder path to the output <paramref name="writer"/>.
-        /// The name of the special path environment folder path to output must be set
-        /// using the <see cref="log4net.Util.PatternConverter.Option"/>
-        /// property.
-        /// </para>
-        /// </remarks>
-        override protected void Convert(TextWriter writer, object state)
-        {
-            try
-            {
-                if (Option != null && Option.Length > 0)
-                {
-                    Environment.SpecialFolder specialFolder =
-                        (Environment.SpecialFolder)Enum.Parse(typeof(Environment.SpecialFolder), Option, true);
+	/// <summary>
+	/// Write an <see cref="System.Environment.SpecialFolder" /> folder path to the output
+	/// </summary>
+	/// <remarks>
+	/// <para>
+	/// Write an special path environment folder path to the output writer.
+	/// The value of the <see cref="log4net.Util.PatternConverter.Option"/> determines
+	/// the name of the variable to output. <see cref="log4net.Util.PatternConverter.Option"/>
+	/// should be a value in the <see cref="System.Environment.SpecialFolder" /> enumeration.
+	/// </para>
+	/// </remarks>
+	/// <author>Ron Grabowski</author>
+	internal sealed class EnvironmentFolderPathPatternConverter : PatternConverter
+	{
+		/// <summary>
+		/// Write an special path environment folder path to the output
+		/// </summary>
+		/// <param name="writer">the writer to write to</param>
+		/// <param name="state">null, state is not set</param>
+		/// <remarks>
+		/// <para>
+		/// Writes the special path environment folder path to the output <paramref name="writer"/>.
+		/// The name of the special path environment folder path to output must be set
+		/// using the <see cref="log4net.Util.PatternConverter.Option"/>
+		/// property.
+		/// </para>
+		/// </remarks>
+		override protected void Convert(TextWriter writer, object state)
+		{
+			try
+			{
+				if (Option != null && Option.Length > 0)
+				{
+					Environment.SpecialFolder specialFolder =
+						(Environment.SpecialFolder)Enum.Parse(typeof(Environment.SpecialFolder), Option, true);
 
-                    string envFolderPathValue = Environment.GetFolderPath(specialFolder);
-                    if (envFolderPathValue != null && envFolderPathValue.Length > 0)
-                    {
-                        writer.Write(envFolderPathValue);
-                    }
-                }
-            }
-            catch (System.Security.SecurityException secEx)
-            {
-                // This security exception will occur if the caller does not have 
-                // unrestricted environment permission. If this occurs the expansion 
-                // will be skipped with the following warning message.
-                LogLog.Debug(declaringType, "Security exception while trying to expand environment variables. Error Ignored. No Expansion.", secEx);
-            }
-            catch (Exception ex)
-            {
-                LogLog.Error(declaringType, "Error occurred while converting environment variable.", ex);
-            }
-        }
+					string envFolderPathValue = Environment.GetFolderPath(specialFolder);
+					if (envFolderPathValue != null && envFolderPathValue.Length > 0)
+					{
+						writer.Write(envFolderPathValue);
+					}
+				}
+			}
+			catch (System.Security.SecurityException secEx)
+			{
+				// This security exception will occur if the caller does not have
+				// unrestricted environment permission. If this occurs the expansion
+				// will be skipped with the following warning message.
+				LogLog.Debug(declaringType, "Security exception while trying to expand environment variables. Error Ignored. No Expansion.", secEx);
+			}
+			catch (Exception ex)
+			{
+				LogLog.Error(declaringType, "Error occurred while converting environment variable.", ex);
+			}
+		}
 
-        #region Private Static Fields
+		#region Private Static Fields
 
-        /// <summary>
-        /// The fully qualified type of the EnvironmentFolderPathPatternConverter class.
-        /// </summary>
-        /// <remarks>
-        /// Used by the internal logger to record the Type of the
-        /// log message.
-        /// </remarks>
-        private readonly static Type declaringType = typeof(EnvironmentFolderPathPatternConverter);
+		/// <summary>
+		/// The fully qualified type of the EnvironmentFolderPathPatternConverter class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(EnvironmentFolderPathPatternConverter);
 
-        #endregion Private Static Fields
-    }
+		#endregion Private Static Fields
+	}
 }
 
 #endif // !NETCF
\ No newline at end of file
diff --git a/src/Util/PatternStringConverters/EnvironmentPatternConverter.cs b/src/Util/PatternStringConverters/EnvironmentPatternConverter.cs
index 7674e37..32c346a 100644
--- a/src/Util/PatternStringConverters/EnvironmentPatternConverter.cs
+++ b/src/Util/PatternStringConverters/EnvironmentPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -36,7 +36,7 @@
 	/// <remarks>
 	/// <para>
 	/// Write an environment variable to the output writer.
-	/// The value of the <see cref="log4net.Util.PatternConverter.Option"/> determines 
+	/// The value of the <see cref="log4net.Util.PatternConverter.Option"/> determines
 	/// the name of the variable to output.
 	/// </para>
 	/// </remarks>
@@ -56,28 +56,28 @@
 		/// property.
 		/// </para>
 		/// </remarks>
-		override protected void Convert(TextWriter writer, object state) 
+		override protected void Convert(TextWriter writer, object state)
 		{
-			try 
+			try
 			{
 				if (this.Option != null && this.Option.Length > 0)
 				{
 					// Lookup the environment variable
 					string envValue = Environment.GetEnvironmentVariable(this.Option);
 
-#if NET_2_0					
-                    // If we didn't see it for the process, try a user level variable.
-				    if (envValue == null)
-				    {
-				        envValue = Environment.GetEnvironmentVariable(this.Option, EnvironmentVariableTarget.User);
-				    }
+#if NET_2_0
+					// If we didn't see it for the process, try a user level variable.
+					if (envValue == null)
+					{
+						envValue = Environment.GetEnvironmentVariable(this.Option, EnvironmentVariableTarget.User);
+					}
 
-                    // If we still didn't find it, try a system level one.
-				    if (envValue == null)
-				    {
-				        envValue = Environment.GetEnvironmentVariable(this.Option, EnvironmentVariableTarget.Machine);
-				    }
-#endif					
+					// If we still didn't find it, try a system level one.
+					if (envValue == null)
+					{
+						envValue = Environment.GetEnvironmentVariable(this.Option, EnvironmentVariableTarget.Machine);
+					}
+#endif
 
 					if (envValue != null && envValue.Length > 0)
 					{
@@ -87,29 +87,29 @@
 			}
 			catch(System.Security.SecurityException secEx)
 			{
-				// This security exception will occur if the caller does not have 
-				// unrestricted environment permission. If this occurs the expansion 
+				// This security exception will occur if the caller does not have
+				// unrestricted environment permission. If this occurs the expansion
 				// will be skipped with the following warning message.
 				LogLog.Debug(declaringType, "Security exception while trying to expand environment variables. Error Ignored. No Expansion.", secEx);
 			}
-			catch (Exception ex) 
+			catch (Exception ex)
 			{
 				LogLog.Error(declaringType, "Error occurred while converting environment variable.", ex);
 			}
 		}
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the EnvironmentPatternConverter class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(EnvironmentPatternConverter);
+		/// <summary>
+		/// The fully qualified type of the EnvironmentPatternConverter class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(EnvironmentPatternConverter);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
 
diff --git a/src/Util/PatternStringConverters/IdentityPatternConverter.cs b/src/Util/PatternStringConverters/IdentityPatternConverter.cs
index d92a292..d5144eb 100644
--- a/src/Util/PatternStringConverters/IdentityPatternConverter.cs
+++ b/src/Util/PatternStringConverters/IdentityPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -34,7 +34,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class IdentityPatternConverter : PatternConverter 
+	internal sealed class IdentityPatternConverter : PatternConverter
 	{
 		/// <summary>
 		/// Write the current thread identity to the output
@@ -46,7 +46,7 @@
 		/// Writes the current thread identity to the output <paramref name="writer"/>.
 		/// </para>
 		/// </remarks>
-		override protected void Convert(TextWriter writer, object state) 
+		override protected void Convert(TextWriter writer, object state)
 		{
 #if (NETCF || SSCLI || NETSTANDARD1_3)
 			// On compact framework there's no notion of current thread principals
@@ -54,7 +54,7 @@
 #else
 			try
 			{
-				if (System.Threading.Thread.CurrentPrincipal != null && 
+				if (System.Threading.Thread.CurrentPrincipal != null &&
 					System.Threading.Thread.CurrentPrincipal.Identity != null &&
 					System.Threading.Thread.CurrentPrincipal.Identity.Name != null)
 				{
@@ -63,7 +63,7 @@
 			}
 			catch(System.Security.SecurityException)
 			{
-				// This security exception will occur if the caller does not have 
+				// This security exception will occur if the caller does not have
 				// some undefined set of SecurityPermission flags.
 				LogLog.Debug(declaringType, "Security exception while trying to get current thread principal. Error Ignored.");
 
@@ -72,17 +72,17 @@
 #endif
 		}
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the IdentityPatternConverter class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(IdentityPatternConverter);
+		/// <summary>
+		/// The fully qualified type of the IdentityPatternConverter class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(IdentityPatternConverter);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
diff --git a/src/Util/PatternStringConverters/LiteralPatternConverter.cs b/src/Util/PatternStringConverters/LiteralPatternConverter.cs
index b40925a..1a80459 100644
--- a/src/Util/PatternStringConverters/LiteralPatternConverter.cs
+++ b/src/Util/PatternStringConverters/LiteralPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -30,13 +30,13 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// Writes the literal string value specified in the 
-	/// <see cref="log4net.Util.PatternConverter.Option"/> property to 
+	/// Writes the literal string value specified in the
+	/// <see cref="log4net.Util.PatternConverter.Option"/> property to
 	/// the output.
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal class LiteralPatternConverter : PatternConverter 
+	internal class LiteralPatternConverter : PatternConverter
 	{
 		/// <summary>
 		/// Set the next converter in the chain
@@ -48,7 +48,7 @@
 		/// Special case the building of the pattern converter chain
 		/// for <see cref="LiteralPatternConverter"/> instances. Two adjacent
 		/// literals in the pattern can be represented by a single combined
-		/// pattern converter. This implementation detects when a 
+		/// pattern converter. This implementation detects when a
 		/// <see cref="LiteralPatternConverter"/> is added to the chain
 		/// after this converter and combines its value with this converter's
 		/// literal value.
@@ -84,7 +84,7 @@
 		/// to the output <paramref name="writer"/>.
 		/// </para>
 		/// </remarks>
-		override public void Format(TextWriter writer, object state) 
+		override public void Format(TextWriter writer, object state)
 		{
 			writer.Write(Option);
 		}
@@ -99,7 +99,7 @@
 		/// This method is not used.
 		/// </para>
 		/// </remarks>
-		override protected void Convert(TextWriter writer, object state) 
+		override protected void Convert(TextWriter writer, object state)
 		{
 			throw new InvalidOperationException("Should never get here because of the overridden Format method");
 		}
diff --git a/src/Util/PatternStringConverters/NewLinePatternConverter.cs b/src/Util/PatternStringConverters/NewLinePatternConverter.cs
index 2ba276f..bfb47e3 100644
--- a/src/Util/PatternStringConverters/NewLinePatternConverter.cs
+++ b/src/Util/PatternStringConverters/NewLinePatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -55,13 +55,13 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
diff --git a/src/Util/PatternStringConverters/ProcessIdPatternConverter.cs b/src/Util/PatternStringConverters/ProcessIdPatternConverter.cs
index 2d6a5a1..33ec9b4 100644
--- a/src/Util/PatternStringConverters/ProcessIdPatternConverter.cs
+++ b/src/Util/PatternStringConverters/ProcessIdPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -34,7 +34,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class ProcessIdPatternConverter : PatternConverter 
+	internal sealed class ProcessIdPatternConverter : PatternConverter
 	{
 		/// <summary>
 		/// Write the current process ID to the output
@@ -47,9 +47,9 @@
 		/// </para>
 		/// </remarks>
 #if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
-        [System.Security.SecuritySafeCritical]
+		[System.Security.SecuritySafeCritical]
 #endif
-        override protected void Convert(TextWriter writer, object state) 
+		override protected void Convert(TextWriter writer, object state)
 		{
 #if (NETCF || SSCLI)
 			// On compact framework there is no System.Diagnostics.Process class
@@ -61,7 +61,7 @@
 			}
 			catch(System.Security.SecurityException)
 			{
-				// This security exception will occur if the caller does not have 
+				// This security exception will occur if the caller does not have
 				// some undefined set of SecurityPermission flags.
 				LogLog.Debug(declaringType, "Security exception while trying to get current process id. Error Ignored.");
 
@@ -70,17 +70,17 @@
 #endif
 		}
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the ProcessIdPatternConverter class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(ProcessIdPatternConverter);
+		/// <summary>
+		/// The fully qualified type of the ProcessIdPatternConverter class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(ProcessIdPatternConverter);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
diff --git a/src/Util/PatternStringConverters/PropertyPatternConverter.cs b/src/Util/PatternStringConverters/PropertyPatternConverter.cs
index 3124b31..4b3d47b 100644
--- a/src/Util/PatternStringConverters/PropertyPatternConverter.cs
+++ b/src/Util/PatternStringConverters/PropertyPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -35,7 +35,7 @@
 	/// <para>
 	/// This pattern converter reads the thread and global properties.
 	/// The thread properties take priority over global properties.
-	/// See <see cref="ThreadContext.Properties"/> for details of the 
+	/// See <see cref="ThreadContext.Properties"/> for details of the
 	/// thread properties. See <see cref="GlobalContext.Properties"/> for
 	/// details of the global properties.
 	/// </para>
@@ -46,7 +46,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class PropertyPatternConverter : PatternConverter 
+	internal sealed class PropertyPatternConverter : PatternConverter
 	{
 		/// <summary>
 		/// Write the property value to the output
@@ -64,7 +64,7 @@
 		/// then all the properties are written as key value pairs.
 		/// </para>
 		/// </remarks>
-		override protected void Convert(TextWriter writer, object state) 
+		override protected void Convert(TextWriter writer, object state)
 		{
 			CompositeProperties compositeProperties = new CompositeProperties();
 
diff --git a/src/Util/PatternStringConverters/RandomStringPatternConverter.cs b/src/Util/PatternStringConverters/RandomStringPatternConverter.cs
index dc11de9..e480b15 100644
--- a/src/Util/PatternStringConverters/RandomStringPatternConverter.cs
+++ b/src/Util/PatternStringConverters/RandomStringPatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -65,13 +65,13 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
@@ -88,7 +88,7 @@
 				else
 				{
 					LogLog.Error(declaringType, "RandomStringPatternConverter: Could not convert Option ["+optionStr+"] to Length Int32");
-				}	
+				}
 			}
 		}
 
@@ -104,9 +104,9 @@
 		/// Write a randoim string to the output <paramref name="writer"/>.
 		/// </para>
 		/// </remarks>
-		override protected void Convert(TextWriter writer, object state) 
+		override protected void Convert(TextWriter writer, object state)
 		{
-			try 
+			try
 			{
 				lock(s_random)
 				{
@@ -134,23 +134,23 @@
 					}
 				}
 			}
-			catch (Exception ex) 
+			catch (Exception ex)
 			{
 				LogLog.Error(declaringType, "Error occurred while converting.", ex);
 			}
 		}
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the RandomStringPatternConverter class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(RandomStringPatternConverter);
+		/// <summary>
+		/// The fully qualified type of the RandomStringPatternConverter class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(RandomStringPatternConverter);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
diff --git a/src/Util/PatternStringConverters/UserNamePatternConverter.cs b/src/Util/PatternStringConverters/UserNamePatternConverter.cs
index 0f8dffb..b4a15f9 100644
--- a/src/Util/PatternStringConverters/UserNamePatternConverter.cs
+++ b/src/Util/PatternStringConverters/UserNamePatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -34,7 +34,7 @@
 	/// </para>
 	/// </remarks>
 	/// <author>Nicko Cadell</author>
-	internal sealed class UserNamePatternConverter : PatternConverter 
+	internal sealed class UserNamePatternConverter : PatternConverter
 	{
 		/// <summary>
 		/// Write the current threads username to the output
@@ -46,7 +46,7 @@
 		/// Write the current threads username to the output <paramref name="writer"/>.
 		/// </para>
 		/// </remarks>
-		override protected void Convert(TextWriter writer, object state) 
+		override protected void Convert(TextWriter writer, object state)
 		{
 #if (NETCF || SSCLI || NETSTANDARD1_3)
 			// On compact framework there's no notion of current Windows user
@@ -63,7 +63,7 @@
 			}
 			catch(System.Security.SecurityException)
 			{
-				// This security exception will occur if the caller does not have 
+				// This security exception will occur if the caller does not have
 				// some undefined set of SecurityPermission flags.
 				LogLog.Debug(declaringType, "Security exception while trying to get current windows identity. Error Ignored.");
 
@@ -72,17 +72,17 @@
 #endif
 		}
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the UserNamePatternConverter class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(UserNamePatternConverter);
+		/// <summary>
+		/// The fully qualified type of the UserNamePatternConverter class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(UserNamePatternConverter);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
diff --git a/src/Util/PatternStringConverters/UtcDatePatternConverter.cs b/src/Util/PatternStringConverters/UtcDatePatternConverter.cs
index a2bf590..61d831a 100644
--- a/src/Util/PatternStringConverters/UtcDatePatternConverter.cs
+++ b/src/Util/PatternStringConverters/UtcDatePatternConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -32,7 +32,7 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// Date pattern converter, uses a <see cref="IDateFormatter"/> to format 
+	/// Date pattern converter, uses a <see cref="IDateFormatter"/> to format
 	/// the current date and time in Universal time.
 	/// </para>
 	/// <para>
@@ -60,27 +60,27 @@
 		/// <seealso cref="DatePatternConverter"/>
 		override protected void Convert(TextWriter writer, object state)
 		{
-			try 
+			try
 			{
 				m_dateFormatter.FormatDate(DateTime.UtcNow, writer);
 			}
-			catch (Exception ex) 
+			catch (Exception ex)
 			{
 				LogLog.Error(declaringType, "Error occurred while converting date.", ex);
 			}
 		}
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the UtcDatePatternConverter class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(UtcDatePatternConverter);
+		/// <summary>
+		/// The fully qualified type of the UtcDatePatternConverter class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(UtcDatePatternConverter);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
diff --git a/src/Util/PropertiesDictionary.cs b/src/Util/PropertiesDictionary.cs
index d2e48d5..7c6ec97 100644
--- a/src/Util/PropertiesDictionary.cs
+++ b/src/Util/PropertiesDictionary.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -31,7 +31,7 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// While this collection is serializable only member 
+	/// While this collection is serializable only member
 	/// objects that are serializable will
 	/// be serialized along with this collection.
 	/// </para>
@@ -77,7 +77,7 @@
 
 #if !(NETCF || NETSTANDARD1_3)
 		/// <summary>
-		/// Initializes a new instance of the <see cref="PropertiesDictionary" /> class 
+		/// Initializes a new instance of the <see cref="PropertiesDictionary" /> class
 		/// with serialized data.
 		/// </summary>
 		/// <param name="info">The <see cref="SerializationInfo" /> that holds the serialized object data.</param>
diff --git a/src/Util/PropertyEntry.cs b/src/Util/PropertyEntry.cs
index 3357d98..d34fcdb 100644
--- a/src/Util/PropertyEntry.cs
+++ b/src/Util/PropertyEntry.cs
@@ -21,60 +21,60 @@
 
 namespace log4net.Util
 {
-    /// <summary>
-    /// A class to hold the key and data for a property set in the config file
-    /// </summary>
-    /// <remarks>
-    /// <para>
-    /// A class to hold the key and data for a property set in the config file
-    /// </para>
-    /// </remarks>
-    public class PropertyEntry
-    {
-        private string m_key = null;
-        private object m_value = null;
+	/// <summary>
+	/// A class to hold the key and data for a property set in the config file
+	/// </summary>
+	/// <remarks>
+	/// <para>
+	/// A class to hold the key and data for a property set in the config file
+	/// </para>
+	/// </remarks>
+	public class PropertyEntry
+	{
+		private string m_key = null;
+		private object m_value = null;
 
-        /// <summary>
-        /// Property Key
-        /// </summary>
-        /// <value>
-        /// Property Key
-        /// </value>
-        /// <remarks>
-        /// <para>
-        /// Property Key.
-        /// </para>
-        /// </remarks>
-        public string Key
-        {
-            get { return m_key; }
-            set { m_key = value; }
-        }
+		/// <summary>
+		/// Property Key
+		/// </summary>
+		/// <value>
+		/// Property Key
+		/// </value>
+		/// <remarks>
+		/// <para>
+		/// Property Key.
+		/// </para>
+		/// </remarks>
+		public string Key
+		{
+			get { return m_key; }
+			set { m_key = value; }
+		}
 
-        /// <summary>
-        /// Property Value
-        /// </summary>
-        /// <value>
-        /// Property Value
-        /// </value>
-        /// <remarks>
-        /// <para>
-        /// Property Value.
-        /// </para>
-        /// </remarks>
-        public object Value
-        {
-            get { return m_value; }
-            set { m_value = value; }
-        }
+		/// <summary>
+		/// Property Value
+		/// </summary>
+		/// <value>
+		/// Property Value
+		/// </value>
+		/// <remarks>
+		/// <para>
+		/// Property Value.
+		/// </para>
+		/// </remarks>
+		public object Value
+		{
+			get { return m_value; }
+			set { m_value = value; }
+		}
 
-        /// <summary>
-        /// Override <c>Object.ToString</c> to return sensible debug info
-        /// </summary>
-        /// <returns>string info about this object</returns>
-        public override string ToString()
-        {
-            return "PropertyEntry(Key=" + m_key + ", Value=" + m_value + ")";
-        }
-    }
+		/// <summary>
+		/// Override <c>Object.ToString</c> to return sensible debug info
+		/// </summary>
+		/// <returns>string info about this object</returns>
+		public override string ToString()
+		{
+			return "PropertyEntry(Key=" + m_key + ", Value=" + m_value + ")";
+		}
+	}
 }
diff --git a/src/Util/ProtectCloseTextWriter.cs b/src/Util/ProtectCloseTextWriter.cs
index cd610e2..a15fcfd 100644
--- a/src/Util/ProtectCloseTextWriter.cs
+++ b/src/Util/ProtectCloseTextWriter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -30,7 +30,7 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// This writer is used in special cases where it is necessary 
+	/// This writer is used in special cases where it is necessary
 	/// to protect a writer from being closed by a client.
 	/// </para>
 	/// </remarks>
diff --git a/src/Util/QuietTextWriter.cs b/src/Util/QuietTextWriter.cs
index 81629b7..5363523 100644
--- a/src/Util/QuietTextWriter.cs
+++ b/src/Util/QuietTextWriter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -29,7 +29,7 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// <see cref="QuietTextWriter"/> does not throw exceptions when things go wrong. 
+	/// <see cref="QuietTextWriter"/> does not throw exceptions when things go wrong.
 	/// Instead, it delegates error handling to its <see cref="IErrorHandler"/>.
 	/// </para>
 	/// </remarks>
@@ -85,7 +85,7 @@
 				}
 				m_errorHandler = value;
 			}
-		}	
+		}
 
 		/// <summary>
 		/// Gets a value indicating whether this writer is closed.
@@ -116,18 +116,18 @@
 		/// Writes a character to the underlying writer
 		/// </para>
 		/// </remarks>
-		public override void Write(char value) 
+		public override void Write(char value)
 		{
-			try 
+			try
 			{
 				base.Write(value);
-			} 
-			catch(Exception e) 
+			}
+			catch(Exception e)
 			{
 				m_errorHandler.Error("Failed to write [" + value + "].", e, ErrorCode.WriteFailure);
 			}
 		}
-    
+
 		/// <summary>
 		/// Writes a buffer to the underlying writer
 		/// </summary>
@@ -139,18 +139,18 @@
 		/// Writes a buffer to the underlying writer
 		/// </para>
 		/// </remarks>
-		public override void Write(char[] buffer, int index, int count) 
+		public override void Write(char[] buffer, int index, int count)
 		{
-			try 
+			try
 			{
 				base.Write(buffer, index, count);
-			} 
-			catch(Exception e) 
+			}
+			catch(Exception e)
 			{
 				m_errorHandler.Error("Failed to write buffer.", e, ErrorCode.WriteFailure);
 			}
 		}
-    
+
 		/// <summary>
 		/// Writes a string to the output.
 		/// </summary>
@@ -160,13 +160,13 @@
 		/// Writes a string to the output.
 		/// </para>
 		/// </remarks>
-		override public void Write(string value) 
+		override public void Write(string value)
 		{
-			try 
+			try
 			{
 				base.Write(value);
-			} 
-			catch(Exception e) 
+			}
+			catch(Exception e)
 			{
 				m_errorHandler.Error("Failed to write [" + value + "].", e, ErrorCode.WriteFailure);
 			}
diff --git a/src/Util/ReadOnlyPropertiesDictionary.cs b/src/Util/ReadOnlyPropertiesDictionary.cs
index fba6c1a..e7e0fe1 100644
--- a/src/Util/ReadOnlyPropertiesDictionary.cs
+++ b/src/Util/ReadOnlyPropertiesDictionary.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -35,7 +35,7 @@
 	/// This collection is readonly and cannot be modified.
 	/// </para>
 	/// <para>
-	/// While this collection is serializable only member 
+	/// While this collection is serializable only member
 	/// objects that are serializable will
 	/// be serialized along with this collection.
 	/// </para>
@@ -100,7 +100,7 @@
 		/// <param name="context">The <see cref="StreamingContext" /> that contains contextual information about the source or destination.</param>
 		/// <remarks>
 		/// <para>
-		/// Initializes a new instance of the <see cref="ReadOnlyPropertiesDictionary" /> class 
+		/// Initializes a new instance of the <see cref="ReadOnlyPropertiesDictionary" /> class
 		/// with serialized data.
 		/// </para>
 		/// </remarks>
@@ -205,26 +205,26 @@
 		/// </para>
 		/// </remarks>
 #if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
-        [System.Security.SecurityCritical]
+		[System.Security.SecurityCritical]
 #else
 		[System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, SerializationFormatter=true)]
 #endif
-        public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
+		public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
 		{
 			foreach(DictionaryEntry entry in InnerHashtable.Clone() as IDictionary)
 			{
 				string entryKey = entry.Key as string;
 				object entryValue = entry.Value;
 
-                // If value is serializable then we add it to the list
+				// If value is serializable then we add it to the list
 #if NETSTANDARD1_3
-                bool isSerializable = entryValue.GetType().GetTypeInfo().IsSerializable;
+				bool isSerializable = entryValue.GetType().GetTypeInfo().IsSerializable;
 #else
-                bool isSerializable = entryValue.GetType().IsSerializable;
+				bool isSerializable = entryValue.GetType().IsSerializable;
 #endif
 				if (entryKey != null && entryValue != null && isSerializable)
 				{
-					// Store the keys as an Xml encoded local name as it may contain colons (':') 
+					// Store the keys as an Xml encoded local name as it may contain colons (':')
 					// which are NOT escaped by the Xml Serialization framework.
 					// This must be a bug in the serialization framework as we cannot be expected
 					// to know the implementation details of all the possible transport layers.
diff --git a/src/Util/ReaderWriterLock.cs b/src/Util/ReaderWriterLock.cs
index 807a3da..f5c69ac 100644
--- a/src/Util/ReaderWriterLock.cs
+++ b/src/Util/ReaderWriterLock.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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,16 +33,16 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// <c>ReaderWriterLock</c> is used to synchronize access to a resource. 
-	/// At any given time, it allows either concurrent read access for 
-	/// multiple threads, or write access for a single thread. In a 
-	/// situation where a resource is changed infrequently, a 
-	/// <c>ReaderWriterLock</c> provides better throughput than a simple 
+	/// <c>ReaderWriterLock</c> is used to synchronize access to a resource.
+	/// At any given time, it allows either concurrent read access for
+	/// multiple threads, or write access for a single thread. In a
+	/// situation where a resource is changed infrequently, a
+	/// <c>ReaderWriterLock</c> provides better throughput than a simple
 	/// one-at-a-time lock, such as <see cref="System.Threading.Monitor"/>.
 	/// </para>
 	/// <para>
-	/// If a platform does not support a <c>System.Threading.ReaderWriterLock</c> 
-	/// implementation then all readers and writers are serialized. Therefore 
+	/// If a platform does not support a <c>System.Threading.ReaderWriterLock</c>
+	/// implementation then all readers and writers are serialized. Therefore
 	/// the caller must not rely on multiple simultaneous readers.
 	/// </para>
 	/// </remarks>
@@ -72,7 +72,7 @@
 		}
 
 		#endregion Private Instance Constructors
-  
+
 		#region Public Methods
 
 		/// <summary>
@@ -80,7 +80,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// <see cref="AcquireReaderLock"/> blocks if a different thread has the writer 
+		/// <see cref="AcquireReaderLock"/> blocks if a different thread has the writer
 		/// lock, or if at least one thread is waiting for the writer lock.
 		/// </para>
 		/// </remarks>
@@ -88,12 +88,12 @@
 		{
 #if HAS_READERWRITERLOCK
 #if HAS_READERWRITERLOCKSLIM
-                    // prevent ThreadAbort while updating state, see https://issues.apache.org/jira/browse/LOG4NET-443
-                    try { } 
-                    finally
-                    {
+					// prevent ThreadAbort while updating state, see https://issues.apache.org/jira/browse/LOG4NET-443
+					try { }
+					finally
+					{
 			m_lock.EnterReadLock();
-                    }
+					}
 #else
 			m_lock.AcquireReaderLock(-1);
 #endif
@@ -107,7 +107,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// <see cref="ReleaseReaderLock"/> decrements the lock count. When the count 
+		/// <see cref="ReleaseReaderLock"/> decrements the lock count. When the count
 		/// reaches zero, the lock is released.
 		/// </para>
 		/// </remarks>
@@ -137,12 +137,12 @@
 		{
 #if HAS_READERWRITERLOCK
 #if HAS_READERWRITERLOCKSLIM
-                    // prevent ThreadAbort while updating state, see https://issues.apache.org/jira/browse/LOG4NET-443
-                    try { } 
-                    finally
-                    {
+					// prevent ThreadAbort while updating state, see https://issues.apache.org/jira/browse/LOG4NET-443
+					try { }
+					finally
+					{
 			m_lock.EnterWriteLock();
-                    }
+					}
 #else
 			m_lock.AcquireWriterLock(-1);
 #endif
@@ -156,7 +156,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// ReleaseWriterLock decrements the writer lock count. 
+		/// ReleaseWriterLock decrements the writer lock count.
 		/// When the count reaches zero, the writer lock is released.
 		/// </para>
 		/// </remarks>
diff --git a/src/Util/ReusableStringWriter.cs b/src/Util/ReusableStringWriter.cs
index 8c1aad1..f5d26c5 100644
--- a/src/Util/ReusableStringWriter.cs
+++ b/src/Util/ReusableStringWriter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -46,7 +46,7 @@
 		/// Create an instance of <see cref="ReusableStringWriter"/>
 		/// </para>
 		/// </remarks>
-		public ReusableStringWriter(IFormatProvider formatProvider) : base(formatProvider) 
+		public ReusableStringWriter(IFormatProvider formatProvider) : base(formatProvider)
 		{
 		}
 
@@ -83,12 +83,12 @@
 			StringBuilder sb = this.GetStringBuilder();
 
 			sb.Length = 0;
-			
+
 			// Check if over max size
-			if (sb.Capacity > maxCapacity) 
+			if (sb.Capacity > maxCapacity)
 			{
 				sb.Capacity = defaultSize;
-			} 
+			}
 		}
 	}
 }
diff --git a/src/Util/SystemInfo.cs b/src/Util/SystemInfo.cs
index c0b04f6..72e8453 100644
--- a/src/Util/SystemInfo.cs
+++ b/src/Util/SystemInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -61,7 +61,7 @@
 		/// Only static methods are exposed from this type.
 		/// </para>
 		/// </remarks>
-		private SystemInfo() 
+		private SystemInfo()
 		{
 		}
 
@@ -144,7 +144,7 @@
 		/// </remarks>
 		public static string ApplicationBaseDirectory
 		{
-			get 
+			get
 			{
 #if NETCF
 -				return System.IO.Path.GetDirectoryName(SystemInfo.EntryAssemblyLocation) + System.IO.Path.DirectorySeparatorChar;
@@ -172,7 +172,7 @@
 		/// </remarks>
 		public static string ConfigurationFileLocation
 		{
-			get 
+			get
 			{
 #if NETCF || NETSTANDARD1_3
 				return SystemInfo.EntryAssemblyLocation+".config";
@@ -193,7 +193,7 @@
 		/// </remarks>
 		public static string EntryAssemblyLocation
 		{
-			get 
+			get
 			{
 #if NETCF
 				return SystemInfo.NativeEntryAssemblyLocation;
@@ -212,24 +212,24 @@
 		/// <remarks>
 		/// <para>
 		/// On the .NET framework, the <c>AppDomain.GetCurrentThreadId</c> method
-		/// is used to obtain the thread ID for the current thread. This is the 
+		/// is used to obtain the thread ID for the current thread. This is the
 		/// operating system ID for the thread.
 		/// </para>
 		/// <para>
-		/// On the .NET Compact Framework 1.0 it is not possible to get the 
-		/// operating system thread ID for the current thread. The native method 
+		/// On the .NET Compact Framework 1.0 it is not possible to get the
+		/// operating system thread ID for the current thread. The native method
 		/// <c>GetCurrentThreadId</c> is implemented inline in a header file
 		/// and cannot be called.
 		/// </para>
 		/// <para>
 		/// On the .NET Framework 2.0 the <c>Thread.ManagedThreadId</c> is used as this
-		/// gives a stable id unrelated to the operating system thread ID which may 
+		/// gives a stable id unrelated to the operating system thread ID which may
 		/// change if the runtime is using fibers.
 		/// </para>
 		/// </remarks>
 		public static int CurrentThreadId
 		{
-			get 
+			get
 			{
 #if NETCF_1_0
 				return System.Threading.Thread.CurrentThread.GetHashCode();
@@ -347,7 +347,7 @@
 					}
 					catch(System.Security.SecurityException)
 					{
-						// This security exception will occur if the caller does not have 
+						// This security exception will occur if the caller does not have
 						// some undefined set of SecurityPermission flags.
 						LogLog.Debug(declaringType, "Security exception while trying to get current domain friendly name. Error Ignored.");
 					}
@@ -394,35 +394,35 @@
 		/// will be set per AppDomain.
 		/// </para>
 		/// </remarks>
-        [Obsolete("Use ProcessStartTimeUtc and convert to local time if needed.")]
+		[Obsolete("Use ProcessStartTimeUtc and convert to local time if needed.")]
 		public static DateTime ProcessStartTime
 		{
 			get { return s_processStartTimeUtc.ToLocalTime(); }
 		}
 
-        /// <summary>
-        /// Get the UTC start time for the current process.
-        /// </summary>
-        /// <remarks>
-        /// <para>
-        /// This is the UTC time at which the log4net library was loaded into the
-        /// AppDomain. Due to reports of a hang in the call to <c>System.Diagnostics.Process.StartTime</c>
-        /// this is not the start time for the current process.
-        /// </para>
-        /// <para>
-        /// The log4net library should be loaded by an application early during its
-        /// startup, therefore this start time should be a good approximation for
-        /// the actual start time.
-        /// </para>
-        /// <para>
-        /// Note that AppDomains may be loaded and unloaded within the
-        /// same process without the process terminating, however this start time
-        /// will be set per AppDomain.
-        /// </para>
-        /// </remarks>
-        public static DateTime ProcessStartTimeUtc
-        {
-            get { return s_processStartTimeUtc; }
+		/// <summary>
+		/// Get the UTC start time for the current process.
+		/// </summary>
+		/// <remarks>
+		/// <para>
+		/// This is the UTC time at which the log4net library was loaded into the
+		/// AppDomain. Due to reports of a hang in the call to <c>System.Diagnostics.Process.StartTime</c>
+		/// this is not the start time for the current process.
+		/// </para>
+		/// <para>
+		/// The log4net library should be loaded by an application early during its
+		/// startup, therefore this start time should be a good approximation for
+		/// the actual start time.
+		/// </para>
+		/// <para>
+		/// Note that AppDomains may be loaded and unloaded within the
+		/// same process without the process terminating, however this start time
+		/// will be set per AppDomain.
+		/// </para>
+		/// </remarks>
+		public static DateTime ProcessStartTimeUtc
+		{
+			get { return s_processStartTimeUtc; }
 		}
 
 		/// <summary>
@@ -485,7 +485,7 @@
 #if NETCF
 			return "Not supported on Microsoft .NET Compact Framework";
 #elif NETSTANDARD1_3  // TODO Assembly.Location available in netstandard1.5
-            return "Not supported on .NET Core";
+			return "Not supported on .NET Core";
 #else
 			if (myAssembly.GlobalAssemblyCache)
 			{
@@ -541,8 +541,8 @@
 		}
 
 		/// <summary>
-		/// Gets the fully qualified name of the <see cref="Type" />, including 
-		/// the name of the assembly from which the <see cref="Type" /> was 
+		/// Gets the fully qualified name of the <see cref="Type" />, including
+		/// the name of the assembly from which the <see cref="Type" /> was
 		/// loaded.
 		/// </summary>
 		/// <param name="type">The <see cref="Type" /> to get the fully qualified name for.</param>
@@ -571,8 +571,8 @@
 		/// <returns>The short name of the <see cref="Assembly" />.</returns>
 		/// <remarks>
 		/// <para>
-		/// The short name of the assembly is the <see cref="Assembly.FullName" /> 
-		/// without the version, culture, or public key. i.e. it is just the 
+		/// The short name of the assembly is the <see cref="Assembly.FullName" />
+		/// without the version, culture, or public key. i.e. it is just the
 		/// assembly's file name without the extension.
 		/// </para>
 		/// <para>
@@ -582,7 +582,7 @@
 		/// <para>
 		/// Because of a FileIOPermission security demand we cannot do
 		/// the obvious Assembly.GetName().Name. We are allowed to get
-		/// the <see cref="Assembly.FullName" /> of the assembly so we 
+		/// the <see cref="Assembly.FullName" /> of the assembly so we
 		/// start from there and strip out just the assembly name.
 		/// </para>
 		/// </remarks>
@@ -596,8 +596,8 @@
 			}
 			return name.Trim();
 
-			// TODO: Do we need to unescape the assembly name string? 
-			// Doc says '\' is an escape char but has this already been 
+			// TODO: Do we need to unescape the assembly name string?
+			// Doc says '\' is an escape char but has this already been
 			// done by the string loader?
 		}
 
@@ -646,13 +646,13 @@
 		/// <returns>The type loaded or <c>null</c> if it could not be loaded.</returns>
 		/// <remarks>
 		/// <para>
-		/// If the type name is fully qualified, i.e. if contains an assembly name in 
-		/// the type name, the type will be loaded from the system using 
+		/// If the type name is fully qualified, i.e. if contains an assembly name in
+		/// the type name, the type will be loaded from the system using
 		/// <see cref="M:Type.GetType(string,bool)"/>.
 		/// </para>
 		/// <para>
 		/// If the type name is not fully qualified, it will be loaded from the assembly
-		/// containing the specified relative type. If the type is not found in the assembly 
+		/// containing the specified relative type. If the type is not found in the assembly
 		/// then all the loaded assemblies will be searched for the type.
 		/// </para>
 		/// </remarks>
@@ -672,16 +672,16 @@
 		/// <param name="typeName">The name of the type to load.</param>
 		/// <param name="throwOnError">Flag set to <c>true</c> to throw an exception if the type cannot be loaded.</param>
 		/// <param name="ignoreCase"><c>true</c> to ignore the case of the type name; otherwise, <c>false</c></param>
-		/// <returns>The type loaded or <c>null</c> if it could not be loaded.</returns>		
+		/// <returns>The type loaded or <c>null</c> if it could not be loaded.</returns>
 		/// <remarks>
 		/// <para>
-		/// If the type name is fully qualified, i.e. if contains an assembly name in 
-		/// the type name, the type will be loaded from the system using 
+		/// If the type name is fully qualified, i.e. if contains an assembly name in
+		/// the type name, the type will be loaded from the system using
 		/// <see cref="M:Type.GetType(string,bool)"/>.
 		/// </para>
 		/// <para>
 		/// If the type name is not fully qualified it will be loaded from the
-		/// assembly that is directly calling this method. If the type is not found 
+		/// assembly that is directly calling this method. If the type is not found
 		/// in the assembly then all the loaded assemblies will be searched for the type.
 		/// </para>
 		/// </remarks>
@@ -701,13 +701,13 @@
 		/// <returns>The type loaded or <c>null</c> if it could not be loaded.</returns>
 		/// <remarks>
 		/// <para>
-		/// If the type name is fully qualified, i.e. if contains an assembly name in 
-		/// the type name, the type will be loaded from the system using 
+		/// If the type name is fully qualified, i.e. if contains an assembly name in
+		/// the type name, the type will be loaded from the system using
 		/// <see cref="M:Type.GetType(string,bool)"/>.
 		/// </para>
 		/// <para>
 		/// If the type name is not fully qualified it will be loaded from the specified
-		/// assembly. If the type is not found in the assembly then all the loaded assemblies 
+		/// assembly. If the type is not found in the assembly then all the loaded assemblies
 		/// will be searched for the type.
 		/// </para>
 		/// </remarks>
@@ -745,27 +745,27 @@
 				{
 					Type fallback = null;
 					// Search the loaded assemblies for the type
-					foreach (Assembly assembly in loadedAssemblies) 
+					foreach (Assembly assembly in loadedAssemblies)
 					{
 						Type t = assembly.GetType(typeName, false, ignoreCase);
 						if (t != null)
 						{
 							// Found type in loaded assembly
 							LogLog.Debug(declaringType, "Loaded type ["+typeName+"] from assembly ["+assembly.FullName+"] by searching loaded assemblies.");
-                                                        if (assembly.GlobalAssemblyCache)
-                                                        {
-                                                            fallback = t;
-                                                        }
-                                                        else
-                                                        {
-                                                            return t;
-                                                        }
+														if (assembly.GlobalAssemblyCache)
+														{
+															fallback = t;
+														}
+														else
+														{
+															return t;
+														}
 						}
 					}
-                                        if (fallback != null)
-                                        {
-                                            return fallback;
-                                        }
+										if (fallback != null)
+										{
+											return fallback;
+										}
 				}
 
 				// Didn't find the type
@@ -819,8 +819,8 @@
 		/// <returns>the ArgumentOutOfRangeException object</returns>
 		/// <remarks>
 		/// <para>
-		/// Create a new instance of the <see cref="ArgumentOutOfRangeException"/> class 
-		/// with a specified error message, the parameter name, and the value 
+		/// Create a new instance of the <see cref="ArgumentOutOfRangeException"/> class
+		/// with a specified error message, the parameter name, and the value
 		/// of the argument.
 		/// </para>
 		/// <para>
@@ -937,20 +937,20 @@
 #endif
 		}
 
-        /// <summary>
-        /// Parse a string into an <see cref="Int16"/> value
-        /// </summary>
-        /// <param name="s">the string to parse</param>
-        /// <param name="val">out param where the parsed value is placed</param>
-        /// <returns><c>true</c> if the string was able to be parsed into an integer</returns>
-        /// <remarks>
-        /// <para>
-        /// Attempts to parse the string into an integer. If the string cannot
-        /// be parsed then this method returns <c>false</c>. The method does not throw an exception.
-        /// </para>
-        /// </remarks>
-        public static bool TryParse(string s, out short val)
-        {
+		/// <summary>
+		/// Parse a string into an <see cref="Int16"/> value
+		/// </summary>
+		/// <param name="s">the string to parse</param>
+		/// <param name="val">out param where the parsed value is placed</param>
+		/// <returns><c>true</c> if the string was able to be parsed into an integer</returns>
+		/// <remarks>
+		/// <para>
+		/// Attempts to parse the string into an integer. If the string cannot
+		/// be parsed then this method returns <c>false</c>. The method does not throw an exception.
+		/// </para>
+		/// </remarks>
+		public static bool TryParse(string s, out short val)
+		{
 #if NETCF
 			val = 0;
 			try
@@ -964,28 +964,28 @@
 
 			return false;
 #else
-            // Initialise out param
-            val = 0;
+			// Initialise out param
+			val = 0;
 
-            try 
-            {
-                double doubleVal;
-                if (Double.TryParse(s, System.Globalization.NumberStyles.Integer, System.Globalization.CultureInfo.InvariantCulture, out doubleVal))
-                {
-                    val = Convert.ToInt16(doubleVal);
-                    return true;
-                }
-            }
-            catch
-            {
-                // Ignore exception, just return false
-            }
+			try
+			{
+				double doubleVal;
+				if (Double.TryParse(s, System.Globalization.NumberStyles.Integer, System.Globalization.CultureInfo.InvariantCulture, out doubleVal))
+				{
+					val = Convert.ToInt16(doubleVal);
+					return true;
+				}
+			}
+			catch
+			{
+				// Ignore exception, just return false
+			}
 
-            return false;
+			return false;
 #endif
-        }
+		}
 
-        /// <summary>
+		/// <summary>
 		/// Lookup an application setting
 		/// </summary>
 		/// <param name="key">the application settings key to lookup</param>
@@ -1024,7 +1024,7 @@
 		/// <para>
 		/// Converts the path specified to a fully
 		/// qualified path. If the path is relative it is
-		/// taken as relative from the application base 
+		/// taken as relative from the application base
 		/// directory.
 		/// </para>
 		/// <para>
@@ -1066,7 +1066,7 @@
 		}
 
 		/// <summary>
-		/// Creates a new case-insensitive instance of the <see cref="Hashtable"/> class with the default initial capacity. 
+		/// Creates a new case-insensitive instance of the <see cref="Hashtable"/> class with the default initial capacity.
 		/// </summary>
 		/// <returns>A new case-insensitive instance of the <see cref="Hashtable"/> class with the default initial capacity</returns>
 		/// <remarks>
@@ -1085,51 +1085,51 @@
 #endif
 		}
 
-        /// <summary>
-        /// Tests two strings for equality, the ignoring case.
-        /// </summary>
-        /// <remarks>
-        /// If the platform permits, culture information is ignored completely (ordinal comparison).
-        /// The aim of this method is to provide a fast comparison that deals with <c>null</c> and ignores different casing.
-        /// It is not supposed to deal with various, culture-specific habits.
-        /// Use it to compare against pure ASCII constants, like keywords etc.
-        /// </remarks>
-        /// <param name="a">The one string.</param>
-        /// <param name="b">The other string.</param>
-        /// <returns><c>true</c> if the strings are equal, <c>false</c> otherwise.</returns>
-        public static Boolean EqualsIgnoringCase(String a, String b)
-        {
+		/// <summary>
+		/// Tests two strings for equality, the ignoring case.
+		/// </summary>
+		/// <remarks>
+		/// If the platform permits, culture information is ignored completely (ordinal comparison).
+		/// The aim of this method is to provide a fast comparison that deals with <c>null</c> and ignores different casing.
+		/// It is not supposed to deal with various, culture-specific habits.
+		/// Use it to compare against pure ASCII constants, like keywords etc.
+		/// </remarks>
+		/// <param name="a">The one string.</param>
+		/// <param name="b">The other string.</param>
+		/// <returns><c>true</c> if the strings are equal, <c>false</c> otherwise.</returns>
+		public static Boolean EqualsIgnoringCase(String a, String b)
+		{
 #if NET_1_0 || NET_1_1 || NETCF_1_0
-            return string.Compare(a, b, true, System.Globalization.CultureInfo.InvariantCulture) == 0
+			return string.Compare(a, b, true, System.Globalization.CultureInfo.InvariantCulture) == 0
 #elif NETSTANDARD1_3
-            return CultureInfo.InvariantCulture.CompareInfo.Compare(a, b, CompareOptions.IgnoreCase) == 0;
+			return CultureInfo.InvariantCulture.CompareInfo.Compare(a, b, CompareOptions.IgnoreCase) == 0;
 #else // >= .NET-2.0
-            return String.Equals(a, b, StringComparison.OrdinalIgnoreCase);
+			return String.Equals(a, b, StringComparison.OrdinalIgnoreCase);
 #endif
-        }
+		}
 
 		#endregion Public Static Methods
 
 		#region Private Static Methods
 
 #if NETCF
-		private static string NativeEntryAssemblyLocation 
+		private static string NativeEntryAssemblyLocation
 		{
-			get 
+			get
 			{
 				StringBuilder moduleName = null;
 
 				IntPtr moduleHandle = GetModuleHandle(IntPtr.Zero);
 
-				if (moduleHandle != IntPtr.Zero) 
+				if (moduleHandle != IntPtr.Zero)
 				{
 					moduleName = new StringBuilder(255);
-					if (GetModuleFileName(moduleHandle, moduleName,	moduleName.Capacity) == 0) 
+					if (GetModuleFileName(moduleHandle, moduleName,	moduleName.Capacity) == 0)
 					{
 						throw new NotSupportedException(NativeError.GetLastError().ToString());
 					}
-				} 
-				else 
+				}
+				else
 				{
 					throw new NotSupportedException(NativeError.GetLastError().ToString());
 				}
@@ -1168,14 +1168,14 @@
 
 		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the SystemInfo class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(SystemInfo);
+		/// <summary>
+		/// The fully qualified type of the SystemInfo class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(SystemInfo);
 
 		/// <summary>
 		/// Cache the host name for the current machine
@@ -1252,16 +1252,16 @@
 				public const uint PROV_RSA_FULL = 1;
 				public const uint CRYPT_VERIFYCONTEXT = 0xf0000000;
 
-				[DllImport("CoreDll.dll")] 
+				[DllImport("CoreDll.dll")]
 				public static extern bool CryptAcquireContext(
 					ref IntPtr phProv, string pszContainer, string pszProvider,
 					uint dwProvType, uint dwFlags);
 
-				[DllImport("CoreDll.dll")] 
-				public static extern bool CryptReleaseContext( 
+				[DllImport("CoreDll.dll")]
+				public static extern bool CryptReleaseContext(
 					IntPtr hProv, uint dwFlags);
 
-				[DllImport("CoreDll.dll")] 
+				[DllImport("CoreDll.dll")]
 				public static extern bool CryptGenRandom(
 					IntPtr hProv, int dwLen, byte[] pbBuffer);
 			}
@@ -1285,7 +1285,7 @@
 					byte[] bits = new byte[Const.ByteArraySize];
 
 					// get crypto provider handle
-					if (!WinApi.CryptAcquireContext(ref hCryptProv, null, null, 
+					if (!WinApi.CryptAcquireContext(ref hCryptProv, null, null,
 						WinApi.PROV_RSA_FULL, WinApi.CRYPT_VERIFYCONTEXT))
 					{
 						throw new SystemException(
@@ -1301,12 +1301,12 @@
 
 					// set the variant
 					bits[Const.VariantByte] &= Const.VariantByteMask;
-					bits[Const.VariantByte] |= 
+					bits[Const.VariantByte] |=
 						((int)GuidVariant.Standard << Const.VariantByteShift);
 
 					// set the version
 					bits[Const.VersionByte] &= Const.VersionByteMask;
-					bits[Const.VersionByte] |= 
+					bits[Const.VersionByte] |=
 						((int)GuidVersion.Random << Const.VersionByteShift);
 
 					// create the new System.Guid object
diff --git a/src/Util/SystemStringFormat.cs b/src/Util/SystemStringFormat.cs
index a852f39..8a50433 100644
--- a/src/Util/SystemStringFormat.cs
+++ b/src/Util/SystemStringFormat.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -68,7 +68,7 @@
 		#region StringFormat
 
 		/// <summary>
-		/// Replaces the format item in a specified <see cref="System.String"/> with the text equivalent 
+		/// Replaces the format item in a specified <see cref="System.String"/> with the text equivalent
 		/// of the value of a corresponding <see cref="System.Object"/> instance in a specified array.
 		/// A specified parameter supplies culture-specific formatting information.
 		/// </summary>
@@ -76,7 +76,7 @@
 		/// <param name="format">A <see cref="System.String"/> containing zero or more format items.</param>
 		/// <param name="args">An <see cref="System.Object"/> array containing zero or more objects to format.</param>
 		/// <returns>
-		/// A copy of format in which the format items have been replaced by the <see cref="System.String"/> 
+		/// A copy of format in which the format items have been replaced by the <see cref="System.String"/>
 		/// equivalent of the corresponding instances of <see cref="System.Object"/> in args.
 		/// </returns>
 		/// <remarks>
@@ -221,17 +221,17 @@
 
 		#endregion StringFormat
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the SystemStringFormat class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(SystemStringFormat);
+		/// <summary>
+		/// The fully qualified type of the SystemStringFormat class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(SystemStringFormat);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
diff --git a/src/Util/TextWriterAdapter.cs b/src/Util/TextWriterAdapter.cs
index b68eae8..4f5af8d 100644
--- a/src/Util/TextWriterAdapter.cs
+++ b/src/Util/TextWriterAdapter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -79,7 +79,7 @@
 		/// Gets or sets the underlying <see cref="TextWriter" />.
 		/// </para>
 		/// </remarks>
-		protected TextWriter Writer 
+		protected TextWriter Writer
 		{
 			get { return m_writer; }
 			set { m_writer = value; }
@@ -88,7 +88,7 @@
 		#endregion Protected Instance Properties
 
 		#region Public Properties
-    
+
 		/// <summary>
 		/// The Encoding in which the output is written
 		/// </summary>
@@ -100,7 +100,7 @@
 		/// The Encoding in which the output is written
 		/// </para>
 		/// </remarks>
-		override public Encoding Encoding 
+		override public Encoding Encoding
 		{
 			get { return m_writer.Encoding; }
 		}
@@ -116,7 +116,7 @@
 		/// Gets an object that controls formatting
 		/// </para>
 		/// </remarks>
-		override public IFormatProvider FormatProvider 
+		override public IFormatProvider FormatProvider
 		{
 			get { return m_writer.FormatProvider; }
 		}
@@ -132,7 +132,7 @@
 		/// Gets or sets the line terminator string used by the TextWriter
 		/// </para>
 		/// </remarks>
-		override public String NewLine 
+		override public String NewLine
 		{
 			get { return m_writer.NewLine; }
 			set { m_writer.NewLine = value; }
@@ -155,7 +155,7 @@
 			m_writer.Dispose();
 		}
 #else
-		override public void Close() 
+		override public void Close()
 		{
 			m_writer.Close();
 		}
@@ -183,11 +183,11 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Clears all buffers for the writer and causes any buffered data to be written 
+		/// Clears all buffers for the writer and causes any buffered data to be written
 		/// to the underlying device
 		/// </para>
 		/// </remarks>
-		override public void Flush() 
+		override public void Flush()
 		{
 			m_writer.Flush();
 		}
@@ -201,11 +201,11 @@
 		/// Writes a character to the wrapped TextWriter
 		/// </para>
 		/// </remarks>
-		override public void Write(char value) 
+		override public void Write(char value)
 		{
 			m_writer.Write(value);
 		}
-    
+
 		/// <summary>
 		/// Writes a character buffer to the wrapped TextWriter
 		/// </summary>
@@ -217,11 +217,11 @@
 		/// Writes a character buffer to the wrapped TextWriter
 		/// </para>
 		/// </remarks>
-		override public void Write(char[] buffer, int index, int count) 
+		override public void Write(char[] buffer, int index, int count)
 		{
 			m_writer.Write(buffer, index, count);
 		}
-    
+
 		/// <summary>
 		/// Writes a string to the wrapped TextWriter
 		/// </summary>
@@ -231,7 +231,7 @@
 		/// Writes a string to the wrapped TextWriter
 		/// </para>
 		/// </remarks>
-		override public void Write(String value) 
+		override public void Write(String value)
 		{
 			m_writer.Write(value);
 		}
diff --git a/src/Util/ThreadContextProperties.cs b/src/Util/ThreadContextProperties.cs
index 1706085..f55528b 100644
--- a/src/Util/ThreadContextProperties.cs
+++ b/src/Util/ThreadContextProperties.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -175,7 +175,7 @@
 		/// <remarks>
 		/// <para>
 		/// The collection returned is only to be used on the calling thread. If the
-		/// caller needs to share the collection between different threads then the 
+		/// caller needs to share the collection between different threads then the
 		/// caller must clone the collection before doing so.
 		/// </para>
 		/// </remarks>
diff --git a/src/Util/ThreadContextStack.cs b/src/Util/ThreadContextStack.cs
index d723dca..82f154e 100644
--- a/src/Util/ThreadContextStack.cs
+++ b/src/Util/ThreadContextStack.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -54,7 +54,7 @@
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Initializes a new instance of the <see cref="ThreadContextStack" /> class. 
+		/// Initializes a new instance of the <see cref="ThreadContextStack" /> class.
 		/// </para>
 		/// </remarks>
 		internal ThreadContextStack()
@@ -98,11 +98,11 @@
 		/// You do not need to use this method if you always guarantee to call
 		/// the <see cref="IDisposable.Dispose"/> method of the <see cref="IDisposable"/>
 		/// returned from <see cref="Push"/> even in exceptional circumstances,
-		/// for example by using the <c>using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message"))</c> 
+		/// for example by using the <c>using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message"))</c>
 		/// syntax.
 		/// </para>
 		/// </remarks>
-		public void Clear() 
+		public void Clear()
 		{
 			m_stack.Clear();
 		}
@@ -118,7 +118,7 @@
 		/// empty string (not <see langword="null"/>) is returned.
 		/// </para>
 		/// </remarks>
-		public string Pop() 
+		public string Pop()
 		{
 			Stack stack = m_stack;
 			if (stack.Count > 0)
@@ -151,7 +151,7 @@
 		///	}
 		/// </code>
 		/// </example>
-		public IDisposable Push(string message) 
+		public IDisposable Push(string message)
 		{
 			Stack stack = m_stack;
 			stack.Push(new StackFrame(message, (stack.Count>0) ? (StackFrame)stack.Peek() : null));
@@ -167,7 +167,7 @@
 		/// Gets the current context information for this stack.
 		/// </summary>
 		/// <returns>The current context information.</returns>
-		internal string GetFullMessage() 
+		internal string GetFullMessage()
 		{
 			Stack stack = m_stack;
 			if (stack.Count > 0)
@@ -183,7 +183,7 @@
 		/// <value>The internal storage stack</value>
 		/// <remarks>
 		/// <para>
-		/// This property is provided only to support backward compatability 
+		/// This property is provided only to support backward compatability
 		/// of the <see cref="NDC"/>. Tytpically the internal stack should not
 		/// be modified.
 		/// </para>
@@ -193,7 +193,7 @@
 			get { return m_stack; }
 			set { m_stack = value; }
 		}
-  
+
 		#endregion Internal Methods
 
 		/// <summary>
@@ -232,14 +232,14 @@
 		/// Inner class used to represent a single context frame in the stack.
 		/// </para>
 		/// </remarks>
-		private sealed class StackFrame 
+		private sealed class StackFrame
 		{
 			#region Private Instance Fields
 
 			private readonly string m_message;
 			private readonly StackFrame m_parent;
 			private string m_fullMessage = null;
-    
+
 			#endregion
 
 			#region Internal Instance Constructors
@@ -255,15 +255,15 @@
 			/// with the specified message and parent context.
 			/// </para>
 			/// </remarks>
-			internal StackFrame(string message, StackFrame parent) 
+			internal StackFrame(string message, StackFrame parent)
 			{
 				m_message = message;
 				m_parent = parent;
 
-				if (parent == null) 
+				if (parent == null)
 				{
 					m_fullMessage = message;
-				} 
+				}
 			}
 
 			#endregion Internal Instance Constructors
@@ -297,13 +297,13 @@
 			/// </remarks>
 			internal string FullMessage
 			{
-				get 
+				get
 				{
 					if (m_fullMessage == null && m_parent != null)
 					{
 						m_fullMessage = string.Concat(m_parent.FullMessage, " ", m_message);
 					}
-					return m_fullMessage; 
+					return m_fullMessage;
 				}
 			}
 
diff --git a/src/Util/ThreadContextStacks.cs b/src/Util/ThreadContextStacks.cs
index 3fffb05..df7a312 100644
--- a/src/Util/ThreadContextStacks.cs
+++ b/src/Util/ThreadContextStacks.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -67,7 +67,7 @@
 		/// </remarks>
 		public ThreadContextStack this[string key]
 		{
-			get 
+			get
 			{
 				ThreadContextStack stack = null;
 
@@ -107,18 +107,18 @@
 
 		#endregion Public Instance Properties
 
-	    #region Private Static Fields
+		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the ThreadContextStacks class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(ThreadContextStacks);
+		/// <summary>
+		/// The fully qualified type of the ThreadContextStacks class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(ThreadContextStacks);
 
-	    #endregion Private Static Fields
+		#endregion Private Static Fields
 	}
 }
 
diff --git a/src/Util/Transform.cs b/src/Util/Transform.cs
index 7e8f408..2538419 100644
--- a/src/Util/Transform.cs
+++ b/src/Util/Transform.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -39,7 +39,7 @@
 		#region Private Instance Constructors
 
 		/// <summary>
-		/// Initializes a new instance of the <see cref="Transform" /> class. 
+		/// Initializes a new instance of the <see cref="Transform" /> class.
 		/// </summary>
 		/// <remarks>
 		/// <para>
@@ -84,15 +84,15 @@
 				// Write string using CDATA section
 
 				int end = stringData.IndexOf(CDATA_END);
-	
-				if (end < 0) 
+
+				if (end < 0)
 				{
 					writer.WriteCData(stringData);
 				}
 				else
 				{
 					int start = 0;
-					while (end > -1) 
+					while (end > -1)
 					{
 						writer.WriteCData(stringData.Substring(start, end - start));
 						if (end == stringData.Length - 3)
@@ -108,7 +108,7 @@
 							end = stringData.IndexOf(CDATA_END, start);
 						}
 					}
-	
+
 					if (start < stringData.Length)
 					{
 						writer.WriteCData(stringData.Substring(start));
@@ -191,9 +191,9 @@
 		private const string CDATA_END	= "]]>";
 		private const string CDATA_UNESCAPABLE_TOKEN	= "]]";
 
-        /// <summary>
-        /// Characters illegal in XML 1.0
-        /// </summary>
+		/// <summary>
+		/// Characters illegal in XML 1.0
+		/// </summary>
 		private static Regex INVALIDCHARS=new Regex(@"[^\x09\x0A\x0D\x20-\uD7FF\uE000-\uFFFD]",RegexOptions.Compiled);
 		#endregion Private Static Fields
 	}
diff --git a/src/Util/TypeConverters/BooleanConverter.cs b/src/Util/TypeConverters/BooleanConverter.cs
index 7853c45..ed08802 100644
--- a/src/Util/TypeConverters/BooleanConverter.cs
+++ b/src/Util/TypeConverters/BooleanConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -65,11 +65,11 @@
 		/// <see cref="String"/> argument to a <see cref="Boolean"/>.
 		/// </para>
 		/// </remarks>
- 		/// <exception cref="ConversionNotSupportedException">
- 		/// The <paramref name="source"/> object cannot be converted to the
- 		/// target type. To check for this condition use the <see cref="CanConvertFrom"/>
- 		/// method.
- 		/// </exception>
+		/// <exception cref="ConversionNotSupportedException">
+		/// The <paramref name="source"/> object cannot be converted to the
+		/// target type. To check for this condition use the <see cref="CanConvertFrom"/>
+		/// method.
+		/// </exception>
 		public object ConvertFrom(object source)
 		{
 			string str = source as string;
diff --git a/src/Util/TypeConverters/ConversionNotSupportedException.cs b/src/Util/TypeConverters/ConversionNotSupportedException.cs
index 86ae9fc..b9a3da6 100644
--- a/src/Util/TypeConverters/ConversionNotSupportedException.cs
+++ b/src/Util/TypeConverters/ConversionNotSupportedException.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -42,7 +42,7 @@
 #if NETSTANDARD1_3
 	public class ConversionNotSupportedException : Exception
 #else
-	public class ConversionNotSupportedException : ApplicationException 
+	public class ConversionNotSupportedException : ApplicationException
 #endif
 	{
 		#region Public Instance Constructors
@@ -69,10 +69,10 @@
 		/// with the specified message.
 		/// </para>
 		/// </remarks>
-		public ConversionNotSupportedException(String message) : base(message) 
+		public ConversionNotSupportedException(String message) : base(message)
 		{
 		}
-		
+
 		/// <summary>
 		/// Constructor
 		/// </summary>
@@ -84,7 +84,7 @@
 		/// with the specified message and inner exception.
 		/// </para>
 		/// </remarks>
-		public ConversionNotSupportedException(String message, Exception innerException) : base(message, innerException) 
+		public ConversionNotSupportedException(String message, Exception innerException) : base(message, innerException)
 		{
 		}
 
@@ -100,11 +100,11 @@
 		/// <param name="context">The <see cref="StreamingContext" /> that contains contextual information about the source or destination.</param>
 		/// <remarks>
 		/// <para>
-		/// Initializes a new instance of the <see cref="ConversionNotSupportedException" /> class 
+		/// Initializes a new instance of the <see cref="ConversionNotSupportedException" /> class
 		/// with serialized data.
 		/// </para>
 		/// </remarks>
-		protected ConversionNotSupportedException(SerializationInfo info, StreamingContext context) : base(info, context) 
+		protected ConversionNotSupportedException(SerializationInfo info, StreamingContext context) : base(info, context)
 		{
 		}
 #endif
diff --git a/src/Util/TypeConverters/ConverterRegistry.cs b/src/Util/TypeConverters/ConverterRegistry.cs
index 0ddfb12..17ceffb 100644
--- a/src/Util/TypeConverters/ConverterRegistry.cs
+++ b/src/Util/TypeConverters/ConverterRegistry.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -36,7 +36,7 @@
 	/// types.
 	/// </para>
 	/// <para>
-	/// Use the <see cref="M:AddConverter(Type, object)"/> and 
+	/// Use the <see cref="M:AddConverter(Type, object)"/> and
 	/// <see cref="M:AddConverter(Type, Type)"/> methods to register new converters.
 	/// The <see cref="GetConvertTo"/> and <see cref="GetConvertFrom"/> methods
 	/// lookup appropriate converters to use.
@@ -56,7 +56,7 @@
 		/// <remarks>
 		/// Initializes a new instance of the <see cref="ConverterRegistry" /> class.
 		/// </remarks>
-		private ConverterRegistry() 
+		private ConverterRegistry()
 		{
 		}
 
@@ -129,7 +129,7 @@
 		/// <param name="sourceType">The type being converted from.</param>
 		/// <param name="destinationType">The type being converted to.</param>
 		/// <returns>
-		/// The type converter instance to use for type conversions or <c>null</c> 
+		/// The type converter instance to use for type conversions or <c>null</c>
 		/// if no type converter is found.
 		/// </returns>
 		/// <remarks>
@@ -170,7 +170,7 @@
 		/// </summary>
 		/// <param name="destinationType">The type being converted to.</param>
 		/// <returns>
-		/// The type converter instance to use for type conversions or <c>null</c> 
+		/// The type converter instance to use for type conversions or <c>null</c>
 		/// if no type converter is found.
 		/// </returns>
 		/// <remarks>
@@ -203,14 +203,14 @@
 				return converter;
 			}
 		}
-		
+
 		/// <summary>
-		/// Lookups the type converter to use as specified by the attributes on the 
+		/// Lookups the type converter to use as specified by the attributes on the
 		/// destination type.
 		/// </summary>
 		/// <param name="destinationType">The type being converted to.</param>
 		/// <returns>
-		/// The type converter instance to use for type conversions or <c>null</c> 
+		/// The type converter instance to use for type conversions or <c>null</c>
 		/// if no type converter is found.
 		/// </returns>
 		private static object GetConverterFromAttribute(Type destinationType)
@@ -236,13 +236,13 @@
 		/// </summary>
 		/// <param name="converterType">The type of the type converter.</param>
 		/// <returns>
-		/// The type converter instance to use for type conversions or <c>null</c> 
+		/// The type converter instance to use for type conversions or <c>null</c>
 		/// if no type converter is found.
 		/// </returns>
 		/// <remarks>
 		/// <para>
-		/// The type specified for the type converter must implement 
-		/// the <see cref="IConvertFrom"/> or <see cref="IConvertTo"/> interfaces 
+		/// The type specified for the type converter must implement
+		/// the <see cref="IConvertFrom"/> or <see cref="IConvertTo"/> interfaces
 		/// and must have a public default (no argument) constructor.
 		/// </para>
 		/// </remarks>
@@ -277,14 +277,14 @@
 
 		#region Private Static Fields
 
-	    /// <summary>
-	    /// The fully qualified type of the ConverterRegistry class.
-	    /// </summary>
-	    /// <remarks>
-	    /// Used by the internal logger to record the Type of the
-	    /// log message.
-	    /// </remarks>
-	    private readonly static Type declaringType = typeof(ConverterRegistry);
+		/// <summary>
+		/// The fully qualified type of the ConverterRegistry class.
+		/// </summary>
+		/// <remarks>
+		/// Used by the internal logger to record the Type of the
+		/// log message.
+		/// </remarks>
+		private readonly static Type declaringType = typeof(ConverterRegistry);
 
 		/// <summary>
 		/// Mapping from <see cref="Type" /> to type converter.
diff --git a/src/Util/TypeConverters/EncodingConverter.cs b/src/Util/TypeConverters/EncodingConverter.cs
index 93c9eac..aeacc44 100644
--- a/src/Util/TypeConverters/EncodingConverter.cs
+++ b/src/Util/TypeConverters/EncodingConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -35,7 +35,7 @@
 	/// <seealso cref="IConvertTo"/>
 	/// <author>Nicko Cadell</author>
 	/// <author>Gert Driesen</author>
-	internal class EncodingConverter : IConvertFrom 
+	internal class EncodingConverter : IConvertFrom
 	{
 		#region Implementation of IConvertFrom
 
@@ -50,7 +50,7 @@
 		/// the <see cref="String"/> type.
 		/// </para>
 		/// </remarks>
-		public bool CanConvertFrom(Type sourceType) 
+		public bool CanConvertFrom(Type sourceType)
 		{
 			return (sourceType == typeof(string));
 		}
@@ -62,7 +62,7 @@
 		/// <returns>the encoding</returns>
 		/// <remarks>
 		/// <para>
-		/// Uses the <see cref="M:Encoding.GetEncoding(string)"/> method to 
+		/// Uses the <see cref="M:Encoding.GetEncoding(string)"/> method to
 		/// convert the <see cref="String"/> argument to an <see cref="Encoding"/>.
 		/// </para>
 		/// </remarks>
@@ -71,10 +71,10 @@
 		/// target type. To check for this condition use the <see cref="CanConvertFrom"/>
 		/// method.
 		/// </exception>
-		public object ConvertFrom(object source) 
+		public object ConvertFrom(object source)
 		{
 			string str = source as string;
-			if (str != null) 
+			if (str != null)
 			{
 				return Encoding.GetEncoding(str);
 			}
diff --git a/src/Util/TypeConverters/IConvertFrom.cs b/src/Util/TypeConverters/IConvertFrom.cs
index 1dbd473..b75097f 100644
--- a/src/Util/TypeConverters/IConvertFrom.cs
+++ b/src/Util/TypeConverters/IConvertFrom.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/Util/TypeConverters/IConvertTo.cs b/src/Util/TypeConverters/IConvertTo.cs
index e986372..7bf3bb9 100644
--- a/src/Util/TypeConverters/IConvertTo.cs
+++ b/src/Util/TypeConverters/IConvertTo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/src/Util/TypeConverters/IPAddressConverter.cs b/src/Util/TypeConverters/IPAddressConverter.cs
index d9cbf32..e904de3 100644
--- a/src/Util/TypeConverters/IPAddressConverter.cs
+++ b/src/Util/TypeConverters/IPAddressConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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,7 +33,7 @@
 	/// <seealso cref="ConverterRegistry"/>
 	/// <seealso cref="IConvertFrom"/>
 	/// <author>Nicko Cadell</author>
-	internal class IPAddressConverter : IConvertFrom 
+	internal class IPAddressConverter : IConvertFrom
 	{
 		#region Implementation of IConvertFrom
 
@@ -48,7 +48,7 @@
 		/// the <see cref="String"/> type.
 		/// </para>
 		/// </remarks>
-		public bool CanConvertFrom(Type sourceType) 
+		public bool CanConvertFrom(Type sourceType)
 		{
 			return (sourceType == typeof(string));
 		}
@@ -70,10 +70,10 @@
 		/// target type. To check for this condition use the <see cref="CanConvertFrom"/>
 		/// method.
 		/// </exception>
-		public object ConvertFrom(object source) 
+		public object ConvertFrom(object source)
 		{
 			string str = source as string;
-			if (str != null && str.Length > 0) 
+			if (str != null && str.Length > 0)
 			{
 				try
 				{
@@ -88,11 +88,11 @@
 					}
 #endif
 
-					// Try to resolve via DNS. This is a blocking call. 
+					// Try to resolve via DNS. This is a blocking call.
 					// GetHostEntry works with either an IPAddress string or a host name
 					IPHostEntry host = Dns.GetHostEntry(str);
-					if (host != null && 
-						host.AddressList != null && 
+					if (host != null &&
+						host.AddressList != null &&
 						host.AddressList.Length > 0 &&
 						host.AddressList[0] != null)
 					{
@@ -121,8 +121,8 @@
 #else
 					IPHostEntry host = Dns.GetHostByName(str);
 #endif
-					if (host != null && 
-						host.AddressList != null && 
+					if (host != null &&
+						host.AddressList != null &&
 						host.AddressList.Length > 0 &&
 						host.AddressList[0] != null)
 					{
diff --git a/src/Util/TypeConverters/PatternLayoutConverter.cs b/src/Util/TypeConverters/PatternLayoutConverter.cs
index c9942b2..992e3d9 100644
--- a/src/Util/TypeConverters/PatternLayoutConverter.cs
+++ b/src/Util/TypeConverters/PatternLayoutConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -32,7 +32,7 @@
 	/// Supports conversion from string to <see cref="PatternLayout"/> type.
 	/// </para>
 	/// <para>
-	/// The string is used as the <see cref="PatternLayout.ConversionPattern"/> 
+	/// The string is used as the <see cref="PatternLayout.ConversionPattern"/>
 	/// of the <see cref="PatternLayout"/>.
 	/// </para>
 	/// </remarks>
@@ -77,7 +77,7 @@
 		/// target type. To check for this condition use the <see cref="CanConvertFrom"/>
 		/// method.
 		/// </exception>
-		public object ConvertFrom(object source) 
+		public object ConvertFrom(object source)
 		{
 			string str = source as string;
 			if (str != null)
diff --git a/src/Util/TypeConverters/PatternStringConverter.cs b/src/Util/TypeConverters/PatternStringConverter.cs
index 723cc25..0b05bba 100644
--- a/src/Util/TypeConverters/PatternStringConverter.cs
+++ b/src/Util/TypeConverters/PatternStringConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -32,11 +32,11 @@
 	/// </summary>
 	/// <remarks>
 	/// <para>
-	/// Supports conversion from string to <see cref="PatternString"/> type, 
+	/// Supports conversion from string to <see cref="PatternString"/> type,
 	/// and from a <see cref="PatternString"/> type to a string.
 	/// </para>
 	/// <para>
-	/// The string is used as the <see cref="PatternString.ConversionPattern"/> 
+	/// The string is used as the <see cref="PatternString.ConversionPattern"/>
 	/// of the <see cref="PatternString"/>.
 	/// </para>
 	/// </remarks>
@@ -78,7 +78,7 @@
 		/// </remarks>
 		/// <exception cref="ConversionNotSupportedException">
 		/// The <paramref name="source"/> object cannot be converted to the
-		/// <paramref name="targetType"/>. To check for this condition use the 
+		/// <paramref name="targetType"/>. To check for this condition use the
 		/// <see cref="CanConvertTo"/> method.
 		/// </exception>
 		public object ConvertTo(object source, Type targetType)
@@ -128,7 +128,7 @@
 		/// target type. To check for this condition use the <see cref="CanConvertFrom"/>
 		/// method.
 		/// </exception>
-		public object ConvertFrom(object source) 
+		public object ConvertFrom(object source)
 		{
 			string str = source as string;
 			if (str != null)
diff --git a/src/Util/TypeConverters/TypeConverter.cs b/src/Util/TypeConverters/TypeConverter.cs
index 3a6d6a9..3f6885a 100644
--- a/src/Util/TypeConverters/TypeConverter.cs
+++ b/src/Util/TypeConverters/TypeConverter.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -37,7 +37,7 @@
 	/// <seealso cref="IConvertFrom"/>
 	/// <seealso cref="IConvertTo"/>
 	/// <author>Nicko Cadell</author>
-	internal class TypeConverter : IConvertFrom 
+	internal class TypeConverter : IConvertFrom
 	{
 		#region Implementation of IConvertFrom
 
@@ -52,7 +52,7 @@
 		/// the <see cref="String"/> type.
 		/// </para>
 		/// </remarks>
-		public bool CanConvertFrom(Type sourceType) 
+		public bool CanConvertFrom(Type sourceType)
 		{
 			return (sourceType == typeof(string));
 		}
@@ -75,7 +75,7 @@
 		/// target type. To check for this condition use the <see cref="CanConvertFrom"/>
 		/// method.
 		/// </exception>
-		public object ConvertFrom(object source) 
+		public object ConvertFrom(object source)
 		{
 			string str = source as string;
 			if (str != null)
diff --git a/src/Util/TypeConverters/TypeConverterAttribute.cs b/src/Util/TypeConverters/TypeConverterAttribute.cs
index 196c5a8..5237f47 100644
--- a/src/Util/TypeConverters/TypeConverterAttribute.cs
+++ b/src/Util/TypeConverters/TypeConverterAttribute.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -69,7 +69,7 @@
 		/// <param name="typeName">The string type name of the type converter</param>
 		/// <remarks>
 		/// <para>
-		/// The type specified must implement the <see cref="IConvertFrom"/> 
+		/// The type specified must implement the <see cref="IConvertFrom"/>
 		/// or the <see cref="IConvertTo"/> interfaces.
 		/// </para>
 		/// </remarks>
@@ -84,7 +84,7 @@
 		/// <param name="converterType">The type of the type converter</param>
 		/// <remarks>
 		/// <para>
-		/// The type specified must implement the <see cref="IConvertFrom"/> 
+		/// The type specified must implement the <see cref="IConvertFrom"/>
 		/// or the <see cref="IConvertTo"/> interfaces.
 		/// </para>
 		/// </remarks>
@@ -96,14 +96,14 @@
 		#endregion
 
 		/// <summary>
-		/// The string type name of the type converter 
+		/// The string type name of the type converter
 		/// </summary>
 		/// <value>
-		/// The string type name of the type converter 
+		/// The string type name of the type converter
 		/// </value>
 		/// <remarks>
 		/// <para>
-		/// The type specified must implement the <see cref="IConvertFrom"/> 
+		/// The type specified must implement the <see cref="IConvertFrom"/>
 		/// or the <see cref="IConvertTo"/> interfaces.
 		/// </para>
 		/// </remarks>
diff --git a/src/Util/WindowsSecurityContext.cs b/src/Util/WindowsSecurityContext.cs
index 0e902fa..9b4e6e0 100644
--- a/src/Util/WindowsSecurityContext.cs
+++ b/src/Util/WindowsSecurityContext.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -18,7 +18,7 @@
 #endregion
 
 // .NET Compact Framework 1.0 has no support for WindowsIdentity
-#if !NETCF 
+#if !NETCF
 // MONO 1.0 has no support for Win32 Logon APIs
 #if !MONO
 // SSCLI 1.0 has no support for Win32 Logon APIs
@@ -44,7 +44,7 @@
 	/// </para>
 	/// <para>
 	/// How the impersonation is done depends on the value of <see cref="Impersonate"/>.
-	/// This allows the context to either impersonate a set of user credentials specified 
+	/// This allows the context to either impersonate a set of user credentials specified
 	/// using username, domain name and password or to revert to the process credentials.
 	/// </para>
 	/// </remarks>
@@ -124,7 +124,7 @@
 		/// </para>
 		/// <para>
 		/// When the mode is set to <see cref="ImpersonationMode.Process"/>
-		/// no other properties need to be set. If the calling thread is 
+		/// no other properties need to be set. If the calling thread is
 		/// impersonating then it will be reverted back to the process credentials.
 		/// </para>
 		/// </remarks>
@@ -201,13 +201,13 @@
 		/// <remarks>
 		/// <para>
 		/// This is part of the <see cref="IOptionHandler"/> delayed object
-		/// activation scheme. The <see cref="ActivateOptions"/> method must 
+		/// activation scheme. The <see cref="ActivateOptions"/> method must
 		/// be called on this object after the configuration properties have
 		/// been set. Until <see cref="ActivateOptions"/> is called this
-		/// object is in an undefined state and must not be used. 
+		/// object is in an undefined state and must not be used.
 		/// </para>
 		/// <para>
-		/// If any of the configuration properties are modified then 
+		/// If any of the configuration properties are modified then
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// <para>
@@ -215,7 +215,7 @@
 		/// capture a primary token for impersonation.
 		/// </para>
 		/// </remarks>
-		/// <exception cref="ArgumentNullException">The required <see cref="UserName" />, 
+		/// <exception cref="ArgumentNullException">The required <see cref="UserName" />,
 		/// <see cref="DomainName" /> or <see cref="Password" /> properties were not specified.</exception>
 		public void ActivateOptions()
 		{
@@ -241,7 +241,7 @@
 		/// <remarks>
 		/// <para>
 		/// Depending on the <see cref="Credentials"/> property either
-		/// impersonate a user using credentials supplied or revert 
+		/// impersonate a user using credentials supplied or revert
 		/// to the process credentials.
 		/// </para>
 		/// </remarks>
@@ -276,10 +276,10 @@
 		/// </para>
 		/// </remarks>
 #if NET_4_0 || MONO_4_0
-        [System.Security.SecuritySafeCritical]
+		[System.Security.SecuritySafeCritical]
 #endif
-        [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]
-        private static WindowsIdentity LogonUser(string userName, string domainName, string password)
+		[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]
+		private static WindowsIdentity LogonUser(string userName, string domainName, string password)
 		{
 			const int LOGON32_PROVIDER_DEFAULT = 0;
 			//This parameter causes LogonUser to create a primary token.
@@ -308,7 +308,7 @@
 			WindowsIdentity identity = new WindowsIdentity(dupeTokenHandle);
 
 			// Free the tokens.
-			if (dupeTokenHandle != IntPtr.Zero) 
+			if (dupeTokenHandle != IntPtr.Zero)
 			{
 				CloseHandle(dupeTokenHandle);
 			}
diff --git a/tests/src/Appender/AdoNet/Log4NetCommand.cs b/tests/src/Appender/AdoNet/Log4NetCommand.cs
index 98beb8e..4c3aac0 100644
--- a/tests/src/Appender/AdoNet/Log4NetCommand.cs
+++ b/tests/src/Appender/AdoNet/Log4NetCommand.cs
@@ -24,121 +24,121 @@
 
 namespace log4net.Tests.Appender.AdoNet
 {
-    public class Log4NetCommand : IDbCommand
-    {
-        #region AdoNetAppender
+	public class Log4NetCommand : IDbCommand
+	{
+		#region AdoNetAppender
 
-        private static Log4NetCommand mostRecentInstance;
+		private static Log4NetCommand mostRecentInstance;
 
-        private IDbTransaction transaction;
-        private string commandText;
-        private readonly IDataParameterCollection parameters;
-        private CommandType commandType;
-        private int executeNonQueryCount;
+		private IDbTransaction transaction;
+		private string commandText;
+		private readonly IDataParameterCollection parameters;
+		private CommandType commandType;
+		private int executeNonQueryCount;
 
-        public Log4NetCommand()
-        {
-            mostRecentInstance = this;
+		public Log4NetCommand()
+		{
+			mostRecentInstance = this;
 
-            parameters = new Log4NetParameterCollection();
-        }
+			parameters = new Log4NetParameterCollection();
+		}
 
-        public void Dispose()
-        {
-            // empty
-        }
+		public void Dispose()
+		{
+			// empty
+		}
 
-        public IDbTransaction Transaction
-        {
-            get { return transaction; }
-            set { transaction = value; }
-        }
+		public IDbTransaction Transaction
+		{
+			get { return transaction; }
+			set { transaction = value; }
+		}
 
-        public int ExecuteNonQuery()
-        {
-            executeNonQueryCount++;
-            return 0;
-        }
+		public int ExecuteNonQuery()
+		{
+			executeNonQueryCount++;
+			return 0;
+		}
 
-        public int ExecuteNonQueryCount
-        {
-            get { return executeNonQueryCount; }
-        }
+		public int ExecuteNonQueryCount
+		{
+			get { return executeNonQueryCount; }
+		}
 
-        public IDbDataParameter CreateParameter()
-        {
-            return new Log4NetParameter();
-        }
+		public IDbDataParameter CreateParameter()
+		{
+			return new Log4NetParameter();
+		}
 
-        public string CommandText
-        {
-            get { return commandText; }
-            set { commandText = value; }
-        }
+		public string CommandText
+		{
+			get { return commandText; }
+			set { commandText = value; }
+		}
 
-        public CommandType CommandType
-        {
-            get { return commandType; }
-            set { commandType = value; }
-        }
+		public CommandType CommandType
+		{
+			get { return commandType; }
+			set { commandType = value; }
+		}
 
-        public void Prepare()
-        {
-            // empty
-        }
+		public void Prepare()
+		{
+			// empty
+		}
 
-        public IDataParameterCollection Parameters
-        {
-            get { return parameters; }
-        }
+		public IDataParameterCollection Parameters
+		{
+			get { return parameters; }
+		}
 
-        public static Log4NetCommand MostRecentInstance
-        {
-            get { return mostRecentInstance; }
-        }
+		public static Log4NetCommand MostRecentInstance
+		{
+			get { return mostRecentInstance; }
+		}
 
-        #endregion
+		#endregion
 
-        #region Not Implemented
+		#region Not Implemented
 
-        public void Cancel()
-        {
-            throw new NotImplementedException();
-        }
+		public void Cancel()
+		{
+			throw new NotImplementedException();
+		}
 
-        public IDataReader ExecuteReader()
-        {
-            throw new NotImplementedException();
-        }
+		public IDataReader ExecuteReader()
+		{
+			throw new NotImplementedException();
+		}
 
-        public IDataReader ExecuteReader(CommandBehavior behavior)
-        {
-            throw new NotImplementedException();
-        }
+		public IDataReader ExecuteReader(CommandBehavior behavior)
+		{
+			throw new NotImplementedException();
+		}
 
-        public object ExecuteScalar()
-        {
-            throw new NotImplementedException();
-        }
+		public object ExecuteScalar()
+		{
+			throw new NotImplementedException();
+		}
 
-        public IDbConnection Connection
-        {
-            get { throw new NotImplementedException(); }
-            set { throw new NotImplementedException(); }
-        }
+		public IDbConnection Connection
+		{
+			get { throw new NotImplementedException(); }
+			set { throw new NotImplementedException(); }
+		}
 
-        public int CommandTimeout
-        {
-            get { throw new NotImplementedException(); }
-            set { throw new NotImplementedException(); }
-        }
+		public int CommandTimeout
+		{
+			get { throw new NotImplementedException(); }
+			set { throw new NotImplementedException(); }
+		}
 
-        public UpdateRowSource UpdatedRowSource
-        {
-            get { throw new NotImplementedException(); }
-            set { throw new NotImplementedException(); }
-        }
+		public UpdateRowSource UpdatedRowSource
+		{
+			get { throw new NotImplementedException(); }
+			set { throw new NotImplementedException(); }
+		}
 
-        #endregion
-    }
+		#endregion
+	}
 }
diff --git a/tests/src/Appender/AdoNet/Log4NetConnection.cs b/tests/src/Appender/AdoNet/Log4NetConnection.cs
index 33bbcce..f734036 100644
--- a/tests/src/Appender/AdoNet/Log4NetConnection.cs
+++ b/tests/src/Appender/AdoNet/Log4NetConnection.cs
@@ -24,88 +24,88 @@
 
 namespace log4net.Tests.Appender.AdoNet
 {
-    public class Log4NetConnection : IDbConnection
-    {
-        #region AdoNetAppender
+	public class Log4NetConnection : IDbConnection
+	{
+		#region AdoNetAppender
 
-        private static Log4NetConnection mostRecentInstance;
+		private static Log4NetConnection mostRecentInstance;
 
-        private bool open;
-        private string connectionString;
+		private bool open;
+		private string connectionString;
 
-        public Log4NetConnection()
-        {
-            mostRecentInstance = this;
-        }
+		public Log4NetConnection()
+		{
+			mostRecentInstance = this;
+		}
 
-        public void Close()
-        {
-            open = false;
-        }
+		public void Close()
+		{
+			open = false;
+		}
 
-        public ConnectionState State
-        {
-            get 
-            {
-                return open ? ConnectionState.Open : ConnectionState.Closed;
-            }
-        }
+		public ConnectionState State
+		{
+			get
+			{
+				return open ? ConnectionState.Open : ConnectionState.Closed;
+			}
+		}
 
-        public string ConnectionString
-        {
-            get { return connectionString; }
-            set { connectionString = value; }
-        }
+		public string ConnectionString
+		{
+			get { return connectionString; }
+			set { connectionString = value; }
+		}
 
-        public IDbTransaction BeginTransaction()
-        {
-            return new Log4NetTransaction();
-        }
+		public IDbTransaction BeginTransaction()
+		{
+			return new Log4NetTransaction();
+		}
 
-        public IDbCommand CreateCommand()
-        {
-            return new Log4NetCommand();
-        }
+		public IDbCommand CreateCommand()
+		{
+			return new Log4NetCommand();
+		}
 
-        public void Open()
-        {
-            open = true;
-        }
+		public void Open()
+		{
+			open = true;
+		}
 
-        public static Log4NetConnection MostRecentInstance
-        {
-            get { return mostRecentInstance; }
-        }
+		public static Log4NetConnection MostRecentInstance
+		{
+			get { return mostRecentInstance; }
+		}
 
-        #endregion
+		#endregion
 
-        #region Not Implemented
+		#region Not Implemented
 
-        public IDbTransaction BeginTransaction(IsolationLevel il)
-        {
-            throw new NotImplementedException();
-        }
+		public IDbTransaction BeginTransaction(IsolationLevel il)
+		{
+			throw new NotImplementedException();
+		}
 
-        public void ChangeDatabase(string databaseName)
-        {
-            throw new NotImplementedException();
-        }
+		public void ChangeDatabase(string databaseName)
+		{
+			throw new NotImplementedException();
+		}
 
-        public int ConnectionTimeout
-        {
-            get { throw new NotImplementedException(); }
-        }
+		public int ConnectionTimeout
+		{
+			get { throw new NotImplementedException(); }
+		}
 
-        public string Database
-        {
-            get { throw new NotImplementedException(); }
-        }
+		public string Database
+		{
+			get { throw new NotImplementedException(); }
+		}
 
-        public void Dispose()
-        {
-            throw new NotImplementedException();
-        }
+		public void Dispose()
+		{
+			throw new NotImplementedException();
+		}
 
-        #endregion
-    }
+		#endregion
+	}
 }
diff --git a/tests/src/Appender/AdoNet/Log4NetParameter.cs b/tests/src/Appender/AdoNet/Log4NetParameter.cs
index 4eb038d..eb11b43 100644
--- a/tests/src/Appender/AdoNet/Log4NetParameter.cs
+++ b/tests/src/Appender/AdoNet/Log4NetParameter.cs
@@ -24,80 +24,80 @@
 
 namespace log4net.Tests.Appender.AdoNet
 {
-    public class Log4NetParameter : IDbDataParameter
-    {
-        #region AdoNetAppender
+	public class Log4NetParameter : IDbDataParameter
+	{
+		#region AdoNetAppender
 
-        private string parameterName;
-        private byte precision;
-        private byte scale;
-        private int size;
-        private DbType dbType;
-        private object value;
+		private string parameterName;
+		private byte precision;
+		private byte scale;
+		private int size;
+		private DbType dbType;
+		private object value;
 
-        public string ParameterName
-        {
-            get { return parameterName; }
-            set { parameterName = value; }
-        }
+		public string ParameterName
+		{
+			get { return parameterName; }
+			set { parameterName = value; }
+		}
 
-        public byte Precision
-        {
-            get { return precision; }
-            set { precision = value; }
-        }
+		public byte Precision
+		{
+			get { return precision; }
+			set { precision = value; }
+		}
 
-        public byte Scale
-        {
-            get { return scale; }
-            set { scale = value; }
-        }
+		public byte Scale
+		{
+			get { return scale; }
+			set { scale = value; }
+		}
 
-        public int Size
-        {
-            get { return size; }
-            set { size = value; }
-        }
+		public int Size
+		{
+			get { return size; }
+			set { size = value; }
+		}
 
-        public DbType DbType
-        {
-            get { return dbType; }
-            set { dbType = value; }
-        }
+		public DbType DbType
+		{
+			get { return dbType; }
+			set { dbType = value; }
+		}
 
-        public object Value
-        {
-            get { return value; }
-            set { this.value = value; }
-        }
+		public object Value
+		{
+			get { return value; }
+			set { this.value = value; }
+		}
 
-        #endregion
+		#endregion
 
-        #region Not Implemented
+		#region Not Implemented
 
-        public ParameterDirection Direction
-        {
-            get { throw new NotImplementedException(); }
-            set { throw new NotImplementedException(); }
-        }
+		public ParameterDirection Direction
+		{
+			get { throw new NotImplementedException(); }
+			set { throw new NotImplementedException(); }
+		}
 
-        public bool IsNullable
-        {
-            get { throw new NotImplementedException(); }
-        }
+		public bool IsNullable
+		{
+			get { throw new NotImplementedException(); }
+		}
 
-        public string SourceColumn
-        {
-            get { throw new NotImplementedException(); }
-            set { throw new NotImplementedException(); }
-        }
+		public string SourceColumn
+		{
+			get { throw new NotImplementedException(); }
+			set { throw new NotImplementedException(); }
+		}
 
-        public DataRowVersion SourceVersion
-        {
-            get { throw new NotImplementedException(); }
-            set { throw new NotImplementedException(); }
-        }
+		public DataRowVersion SourceVersion
+		{
+			get { throw new NotImplementedException(); }
+			set { throw new NotImplementedException(); }
+		}
 
-        #endregion
-    }
+		#endregion
+	}
 }
diff --git a/tests/src/Appender/AdoNet/Log4NetParameterCollection.cs b/tests/src/Appender/AdoNet/Log4NetParameterCollection.cs
index 8b0d041..4ca1a7d 100644
--- a/tests/src/Appender/AdoNet/Log4NetParameterCollection.cs
+++ b/tests/src/Appender/AdoNet/Log4NetParameterCollection.cs
@@ -25,45 +25,45 @@
 
 namespace log4net.Tests.Appender.AdoNet
 {
-    public class Log4NetParameterCollection : CollectionBase, IDataParameterCollection
-    {
-        #region AdoNetAppender
+	public class Log4NetParameterCollection : CollectionBase, IDataParameterCollection
+	{
+		#region AdoNetAppender
 
-        private readonly Hashtable parameterNameToIndex = new Hashtable();
+		private readonly Hashtable parameterNameToIndex = new Hashtable();
 
-        protected override void OnInsertComplete(int index, object value)
-        {
-            base.OnInsertComplete(index, value);
+		protected override void OnInsertComplete(int index, object value)
+		{
+			base.OnInsertComplete(index, value);
 
-            IDataParameter param = (IDataParameter)value;
-            parameterNameToIndex[param.ParameterName] = index;
-        }
+			IDataParameter param = (IDataParameter)value;
+			parameterNameToIndex[param.ParameterName] = index;
+		}
 
-        public int IndexOf(string parameterName)
-        {
-            return (int)parameterNameToIndex[parameterName];
-        }
+		public int IndexOf(string parameterName)
+		{
+			return (int)parameterNameToIndex[parameterName];
+		}
 
-        public object this[string parameterName]
-        {
-            get { return InnerList[IndexOf(parameterName)]; }
-            set { InnerList[IndexOf(parameterName)] = value; }
-        }
+		public object this[string parameterName]
+		{
+			get { return InnerList[IndexOf(parameterName)]; }
+			set { InnerList[IndexOf(parameterName)] = value; }
+		}
 
-        #endregion
+		#endregion
 
-        #region Not Implemented
+		#region Not Implemented
 
-        public void RemoveAt(string parameterName)
-        {
-            throw new NotImplementedException();
-        }
+		public void RemoveAt(string parameterName)
+		{
+			throw new NotImplementedException();
+		}
 
-        public bool Contains(string parameterName)
-        {
-            throw new NotImplementedException();
-        }
+		public bool Contains(string parameterName)
+		{
+			throw new NotImplementedException();
+		}
 
-        #endregion
-    }
+		#endregion
+	}
 }
diff --git a/tests/src/Appender/AdoNet/Log4NetTransaction.cs b/tests/src/Appender/AdoNet/Log4NetTransaction.cs
index d52e364..1b985f6 100644
--- a/tests/src/Appender/AdoNet/Log4NetTransaction.cs
+++ b/tests/src/Appender/AdoNet/Log4NetTransaction.cs
@@ -24,39 +24,39 @@
 
 namespace log4net.Tests.Appender.AdoNet
 {
-    public class Log4NetTransaction : IDbTransaction
-    {
-        #region AdoNetAppender
+	public class Log4NetTransaction : IDbTransaction
+	{
+		#region AdoNetAppender
 
-        public void Commit()
-        {
-            // empty
-        }
+		public void Commit()
+		{
+			// empty
+		}
 
-        public void Rollback()
-        {
-            // empty
-        }
+		public void Rollback()
+		{
+			// empty
+		}
 
-        #endregion
+		#endregion
 
-        #region Not Implemented
+		#region Not Implemented
 
-        public IDbConnection Connection
-        {
-            get { throw new NotImplementedException(); }
-        }
+		public IDbConnection Connection
+		{
+			get { throw new NotImplementedException(); }
+		}
 
-        public IsolationLevel IsolationLevel
-        {
-            get { throw new NotImplementedException(); }
-        }
+		public IsolationLevel IsolationLevel
+		{
+			get { throw new NotImplementedException(); }
+		}
 
-        public void Dispose()
-        {
-            throw new NotImplementedException();
-        }
+		public void Dispose()
+		{
+			throw new NotImplementedException();
+		}
 
-        #endregion
-    }
+		#endregion
+	}
 }
diff --git a/tests/src/Appender/AdoNetAppenderTest.cs b/tests/src/Appender/AdoNetAppenderTest.cs
index 76f44f7..63b112e 100644
--- a/tests/src/Appender/AdoNetAppenderTest.cs
+++ b/tests/src/Appender/AdoNetAppenderTest.cs
@@ -33,298 +33,298 @@
 
 namespace log4net.Tests.Appender
 {
-    [TestFixture]
-    public class AdoNetAppenderTest
-    {
-        [Test]
-        public void NoBufferingTest()
-        {
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+	[TestFixture]
+	public class AdoNetAppenderTest
+	{
+		[Test]
+		public void NoBufferingTest()
+		{
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
 
-            AdoNetAppender adoNetAppender = new AdoNetAppender();
-            adoNetAppender.BufferSize = -1;
-            adoNetAppender.ConnectionType = "log4net.Tests.Appender.AdoNet.Log4NetConnection";
-            adoNetAppender.ActivateOptions();
+			AdoNetAppender adoNetAppender = new AdoNetAppender();
+			adoNetAppender.BufferSize = -1;
+			adoNetAppender.ConnectionType = "log4net.Tests.Appender.AdoNet.Log4NetConnection";
+			adoNetAppender.ActivateOptions();
 
-            BasicConfigurator.Configure(rep, adoNetAppender);
+			BasicConfigurator.Configure(rep, adoNetAppender);
 
-            ILog log = LogManager.GetLogger(rep.Name, "NoBufferingTest");
-            log.Debug("Message");
-            Assert.AreEqual(1, Log4NetCommand.MostRecentInstance.ExecuteNonQueryCount);
-        }
+			ILog log = LogManager.GetLogger(rep.Name, "NoBufferingTest");
+			log.Debug("Message");
+			Assert.AreEqual(1, Log4NetCommand.MostRecentInstance.ExecuteNonQueryCount);
+		}
 
-        [Test]
-        public void BufferingTest()
-        {
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+		[Test]
+		public void BufferingTest()
+		{
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
 
-            int bufferSize = 5;
+			int bufferSize = 5;
 
-            AdoNetAppender adoNetAppender = new AdoNetAppender();
-            adoNetAppender.BufferSize = bufferSize;
-            adoNetAppender.ConnectionType = "log4net.Tests.Appender.AdoNet.Log4NetConnection";
-            adoNetAppender.ActivateOptions();
+			AdoNetAppender adoNetAppender = new AdoNetAppender();
+			adoNetAppender.BufferSize = bufferSize;
+			adoNetAppender.ConnectionType = "log4net.Tests.Appender.AdoNet.Log4NetConnection";
+			adoNetAppender.ActivateOptions();
 
-            BasicConfigurator.Configure(rep, adoNetAppender);
+			BasicConfigurator.Configure(rep, adoNetAppender);
 
-            ILog log = LogManager.GetLogger(rep.Name, "BufferingTest");
-            for (int i = 0; i < bufferSize; i++)
-            {
-                log.Debug("Message");
-                Assert.IsNull(Log4NetCommand.MostRecentInstance);
-            }
-            log.Debug("Message");
-            Assert.AreEqual(bufferSize+1, Log4NetCommand.MostRecentInstance.ExecuteNonQueryCount);
-        }
+			ILog log = LogManager.GetLogger(rep.Name, "BufferingTest");
+			for (int i = 0; i < bufferSize; i++)
+			{
+				log.Debug("Message");
+				Assert.IsNull(Log4NetCommand.MostRecentInstance);
+			}
+			log.Debug("Message");
+			Assert.AreEqual(bufferSize+1, Log4NetCommand.MostRecentInstance.ExecuteNonQueryCount);
+		}
 
-        [Test]
-        public void WebsiteExample()
-        {
-            XmlDocument log4netConfig = new XmlDocument();
-            #region Load log4netConfig
-            log4netConfig.LoadXml(@"
-                <log4net>
-                <appender name=""AdoNetAppender"" type=""log4net.Appender.AdoNetAppender"">
-                    <bufferSize value=""-1"" />
-                    <connectionType value=""log4net.Tests.Appender.AdoNet.Log4NetConnection"" />
-                    <connectionString value=""data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]"" />
-                    <commandText value=""INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"" />
-                    <parameter>
-                        <parameterName value=""@log_date"" />
-                        <dbType value=""DateTime"" />
-                        <layout type=""log4net.Layout.RawTimeStampLayout"" />
-                    </parameter>
-                    <parameter>
-                        <parameterName value=""@thread"" />
-                        <dbType value=""String"" />
-                        <size value=""255"" />
-                        <layout type=""log4net.Layout.PatternLayout"">
-                            <conversionPattern value=""%thread"" />
-                        </layout>
-                    </parameter>
-                    <parameter>
-                        <parameterName value=""@log_level"" />
-                        <dbType value=""String"" />
-                        <size value=""50"" />
-                        <layout type=""log4net.Layout.PatternLayout"">
-                            <conversionPattern value=""%level"" />
-                        </layout>
-                    </parameter>
-                    <parameter>
-                        <parameterName value=""@logger"" />
-                        <dbType value=""String"" />
-                        <size value=""255"" />
-                        <layout type=""log4net.Layout.PatternLayout"">
-                            <conversionPattern value=""%logger"" />
-                        </layout>
-                    </parameter>
-                    <parameter>
-                        <parameterName value=""@message"" />
-                        <dbType value=""String"" />
-                        <size value=""4000"" />
-                        <layout type=""log4net.Layout.PatternLayout"">
-                            <conversionPattern value=""%message"" />
-                        </layout>
-                    </parameter>
-                    <parameter>
-                        <parameterName value=""@exception"" />
-                        <dbType value=""String"" />
-                        <size value=""2000"" />
-                        <layout type=""log4net.Layout.ExceptionLayout"" />
-                    </parameter>
-                </appender>
-                <root>
-                    <level value=""ALL"" />
-                    <appender-ref ref=""AdoNetAppender"" />
-                  </root>  
-                </log4net>");
-            #endregion
+		[Test]
+		public void WebsiteExample()
+		{
+			XmlDocument log4netConfig = new XmlDocument();
+			#region Load log4netConfig
+			log4netConfig.LoadXml(@"
+				<log4net>
+				<appender name=""AdoNetAppender"" type=""log4net.Appender.AdoNetAppender"">
+					<bufferSize value=""-1"" />
+					<connectionType value=""log4net.Tests.Appender.AdoNet.Log4NetConnection"" />
+					<connectionString value=""data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]"" />
+					<commandText value=""INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"" />
+					<parameter>
+						<parameterName value=""@log_date"" />
+						<dbType value=""DateTime"" />
+						<layout type=""log4net.Layout.RawTimeStampLayout"" />
+					</parameter>
+					<parameter>
+						<parameterName value=""@thread"" />
+						<dbType value=""String"" />
+						<size value=""255"" />
+						<layout type=""log4net.Layout.PatternLayout"">
+							<conversionPattern value=""%thread"" />
+						</layout>
+					</parameter>
+					<parameter>
+						<parameterName value=""@log_level"" />
+						<dbType value=""String"" />
+						<size value=""50"" />
+						<layout type=""log4net.Layout.PatternLayout"">
+							<conversionPattern value=""%level"" />
+						</layout>
+					</parameter>
+					<parameter>
+						<parameterName value=""@logger"" />
+						<dbType value=""String"" />
+						<size value=""255"" />
+						<layout type=""log4net.Layout.PatternLayout"">
+							<conversionPattern value=""%logger"" />
+						</layout>
+					</parameter>
+					<parameter>
+						<parameterName value=""@message"" />
+						<dbType value=""String"" />
+						<size value=""4000"" />
+						<layout type=""log4net.Layout.PatternLayout"">
+							<conversionPattern value=""%message"" />
+						</layout>
+					</parameter>
+					<parameter>
+						<parameterName value=""@exception"" />
+						<dbType value=""String"" />
+						<size value=""2000"" />
+						<layout type=""log4net.Layout.ExceptionLayout"" />
+					</parameter>
+				</appender>
+				<root>
+					<level value=""ALL"" />
+					<appender-ref ref=""AdoNetAppender"" />
+				  </root>
+				</log4net>");
+			#endregion
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
-            ILog log = LogManager.GetLogger(rep.Name, "WebsiteExample");
-            log.Debug("Message");
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
+			ILog log = LogManager.GetLogger(rep.Name, "WebsiteExample");
+			log.Debug("Message");
 
-            IDbCommand command = Log4NetCommand.MostRecentInstance;
-            
-            Assert.AreEqual(
-                "INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)",
-                command.CommandText);
-            
-            Assert.AreEqual(6, command.Parameters.Count);
+			IDbCommand command = Log4NetCommand.MostRecentInstance;
 
-            IDbDataParameter param = (IDbDataParameter)command.Parameters["@message"];
-            Assert.AreEqual("Message", param.Value);
+			Assert.AreEqual(
+				"INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)",
+				command.CommandText);
 
-            param = (IDbDataParameter)command.Parameters["@log_level"];
-            Assert.AreEqual(Level.Debug.ToString(), param.Value);
+			Assert.AreEqual(6, command.Parameters.Count);
 
-            param = (IDbDataParameter)command.Parameters["@logger"];
-            Assert.AreEqual("WebsiteExample", param.Value);
+			IDbDataParameter param = (IDbDataParameter)command.Parameters["@message"];
+			Assert.AreEqual("Message", param.Value);
 
-            param = (IDbDataParameter)command.Parameters["@exception"];
-            Assert.IsEmpty((string)param.Value);
-        }
+			param = (IDbDataParameter)command.Parameters["@log_level"];
+			Assert.AreEqual(Level.Debug.ToString(), param.Value);
 
-        [Test]
-        public void BufferingWebsiteExample()
-        {
-            XmlDocument log4netConfig = new XmlDocument();
-            #region Load log4netConfig
-            log4netConfig.LoadXml(@"
-                <log4net>
-                <appender name=""AdoNetAppender"" type=""log4net.Appender.AdoNetAppender"">
-                    <bufferSize value=""2"" />
-                    <connectionType value=""log4net.Tests.Appender.AdoNet.Log4NetConnection"" />
-                    <connectionString value=""data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]"" />
-                    <commandText value=""INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"" />
-                    <parameter>
-                        <parameterName value=""@log_date"" />
-                        <dbType value=""DateTime"" />
-                        <layout type=""log4net.Layout.RawTimeStampLayout"" />
-                    </parameter>
-                    <parameter>
-                        <parameterName value=""@thread"" />
-                        <dbType value=""String"" />
-                        <size value=""255"" />
-                        <layout type=""log4net.Layout.PatternLayout"">
-                            <conversionPattern value=""%thread"" />
-                        </layout>
-                    </parameter>
-                    <parameter>
-                        <parameterName value=""@log_level"" />
-                        <dbType value=""String"" />
-                        <size value=""50"" />
-                        <layout type=""log4net.Layout.PatternLayout"">
-                            <conversionPattern value=""%level"" />
-                        </layout>
-                    </parameter>
-                    <parameter>
-                        <parameterName value=""@logger"" />
-                        <dbType value=""String"" />
-                        <size value=""255"" />
-                        <layout type=""log4net.Layout.PatternLayout"">
-                            <conversionPattern value=""%logger"" />
-                        </layout>
-                    </parameter>
-                    <parameter>
-                        <parameterName value=""@message"" />
-                        <dbType value=""String"" />
-                        <size value=""4000"" />
-                        <layout type=""log4net.Layout.PatternLayout"">
-                            <conversionPattern value=""%message"" />
-                        </layout>
-                    </parameter>
-                    <parameter>
-                        <parameterName value=""@exception"" />
-                        <dbType value=""String"" />
-                        <size value=""2000"" />
-                        <layout type=""log4net.Layout.ExceptionLayout"" />
-                    </parameter>
-                </appender>
-                <root>
-                    <level value=""ALL"" />
-                    <appender-ref ref=""AdoNetAppender"" />
-                  </root>  
-                </log4net>");
-            #endregion
+			param = (IDbDataParameter)command.Parameters["@logger"];
+			Assert.AreEqual("WebsiteExample", param.Value);
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
-            ILog log = LogManager.GetLogger(rep.Name, "WebsiteExample");
+			param = (IDbDataParameter)command.Parameters["@exception"];
+			Assert.IsEmpty((string)param.Value);
+		}
 
-            for (int i = 0; i < 3; i++)
-            {
-                log.Debug("Message");
-            }
+		[Test]
+		public void BufferingWebsiteExample()
+		{
+			XmlDocument log4netConfig = new XmlDocument();
+			#region Load log4netConfig
+			log4netConfig.LoadXml(@"
+				<log4net>
+				<appender name=""AdoNetAppender"" type=""log4net.Appender.AdoNetAppender"">
+					<bufferSize value=""2"" />
+					<connectionType value=""log4net.Tests.Appender.AdoNet.Log4NetConnection"" />
+					<connectionString value=""data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]"" />
+					<commandText value=""INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"" />
+					<parameter>
+						<parameterName value=""@log_date"" />
+						<dbType value=""DateTime"" />
+						<layout type=""log4net.Layout.RawTimeStampLayout"" />
+					</parameter>
+					<parameter>
+						<parameterName value=""@thread"" />
+						<dbType value=""String"" />
+						<size value=""255"" />
+						<layout type=""log4net.Layout.PatternLayout"">
+							<conversionPattern value=""%thread"" />
+						</layout>
+					</parameter>
+					<parameter>
+						<parameterName value=""@log_level"" />
+						<dbType value=""String"" />
+						<size value=""50"" />
+						<layout type=""log4net.Layout.PatternLayout"">
+							<conversionPattern value=""%level"" />
+						</layout>
+					</parameter>
+					<parameter>
+						<parameterName value=""@logger"" />
+						<dbType value=""String"" />
+						<size value=""255"" />
+						<layout type=""log4net.Layout.PatternLayout"">
+							<conversionPattern value=""%logger"" />
+						</layout>
+					</parameter>
+					<parameter>
+						<parameterName value=""@message"" />
+						<dbType value=""String"" />
+						<size value=""4000"" />
+						<layout type=""log4net.Layout.PatternLayout"">
+							<conversionPattern value=""%message"" />
+						</layout>
+					</parameter>
+					<parameter>
+						<parameterName value=""@exception"" />
+						<dbType value=""String"" />
+						<size value=""2000"" />
+						<layout type=""log4net.Layout.ExceptionLayout"" />
+					</parameter>
+				</appender>
+				<root>
+					<level value=""ALL"" />
+					<appender-ref ref=""AdoNetAppender"" />
+				  </root>
+				</log4net>");
+			#endregion
 
-            IDbCommand command = Log4NetCommand.MostRecentInstance;
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
+			ILog log = LogManager.GetLogger(rep.Name, "WebsiteExample");
 
-            Assert.AreEqual(
-                "INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)",
-                command.CommandText);
+			for (int i = 0; i < 3; i++)
+			{
+				log.Debug("Message");
+			}
 
-            Assert.AreEqual(6, command.Parameters.Count);
+			IDbCommand command = Log4NetCommand.MostRecentInstance;
 
-            IDbDataParameter param = (IDbDataParameter)command.Parameters["@message"];
-            Assert.AreEqual("Message", param.Value);
+			Assert.AreEqual(
+				"INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)",
+				command.CommandText);
 
-            param = (IDbDataParameter)command.Parameters["@log_level"];
-            Assert.AreEqual(Level.Debug.ToString(), param.Value);
+			Assert.AreEqual(6, command.Parameters.Count);
 
-            param = (IDbDataParameter)command.Parameters["@logger"];
-            Assert.AreEqual("WebsiteExample", param.Value);
+			IDbDataParameter param = (IDbDataParameter)command.Parameters["@message"];
+			Assert.AreEqual("Message", param.Value);
 
-            param = (IDbDataParameter)command.Parameters["@exception"];
-            Assert.IsEmpty((string)param.Value);
-        }
+			param = (IDbDataParameter)command.Parameters["@log_level"];
+			Assert.AreEqual(Level.Debug.ToString(), param.Value);
 
-        [Test]
-        public void NullPropertyXmlConfig()
-        {
-            XmlDocument log4netConfig = new XmlDocument();
-            #region Load log4netConfig
-            log4netConfig.LoadXml(@"
-                <log4net>
-                <appender name=""AdoNetAppender"" type=""log4net.Appender.AdoNetAppender"">
-                    <bufferSize value=""-1"" />
-                    <connectionType value=""log4net.Tests.Appender.AdoNet.Log4NetConnection"" />
-                    <connectionString value=""data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]"" />
-                    <commandText value=""INSERT INTO Log ([ProductId]) VALUES (@productId)"" />
-                    <parameter>
-                        <parameterName value=""@productId"" />
-                        <dbType value=""String"" />
-                        <size value=""50"" />
-                        <layout type="" log4net.Layout.RawPropertyLayout"">
-                           <key value=""ProductId"" />
-                        </layout>
-                    </parameter>                    
-                </appender>
-                <root>
-                    <level value=""ALL"" />
-                    <appender-ref ref=""AdoNetAppender"" />
-                  </root>  
-                </log4net>");
-            #endregion
+			param = (IDbDataParameter)command.Parameters["@logger"];
+			Assert.AreEqual("WebsiteExample", param.Value);
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
-            ILog log = LogManager.GetLogger(rep.Name, "NullPropertyXmlConfig");
-            
-            log.Debug("Message");
-            IDbCommand command = Log4NetCommand.MostRecentInstance;
-            IDbDataParameter param = (IDbDataParameter)command.Parameters["@productId"];
-            Assert.AreNotEqual(SystemInfo.NullText, param.Value);
-            Assert.AreEqual(DBNull.Value, param.Value);
-        }
+			param = (IDbDataParameter)command.Parameters["@exception"];
+			Assert.IsEmpty((string)param.Value);
+		}
 
-        [Test]
-        public void NullPropertyProgmaticConfig()
-        {
-            AdoNetAppenderParameter productIdParam = new AdoNetAppenderParameter();
-            productIdParam.ParameterName = "@productId";
-            productIdParam.DbType = DbType.String;
-            productIdParam.Size = 50;
-            RawPropertyLayout rawPropertyLayout = new RawPropertyLayout();
-            rawPropertyLayout.Key = "ProductId";
-            productIdParam.Layout = rawPropertyLayout;
+		[Test]
+		public void NullPropertyXmlConfig()
+		{
+			XmlDocument log4netConfig = new XmlDocument();
+			#region Load log4netConfig
+			log4netConfig.LoadXml(@"
+				<log4net>
+				<appender name=""AdoNetAppender"" type=""log4net.Appender.AdoNetAppender"">
+					<bufferSize value=""-1"" />
+					<connectionType value=""log4net.Tests.Appender.AdoNet.Log4NetConnection"" />
+					<connectionString value=""data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]"" />
+					<commandText value=""INSERT INTO Log ([ProductId]) VALUES (@productId)"" />
+					<parameter>
+						<parameterName value=""@productId"" />
+						<dbType value=""String"" />
+						<size value=""50"" />
+						<layout type="" log4net.Layout.RawPropertyLayout"">
+						   <key value=""ProductId"" />
+						</layout>
+					</parameter>
+				</appender>
+				<root>
+					<level value=""ALL"" />
+					<appender-ref ref=""AdoNetAppender"" />
+				  </root>
+				</log4net>");
+			#endregion
 
-            AdoNetAppender appender = new AdoNetAppender();
-            appender.ConnectionType = typeof(Log4NetConnection).FullName;
-            appender.BufferSize = -1;
-            appender.CommandText = "INSERT INTO Log ([productId]) VALUES (@productId)";
-            appender.AddParameter(productIdParam);
-            appender.ActivateOptions();
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
+			ILog log = LogManager.GetLogger(rep.Name, "NullPropertyXmlConfig");
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            BasicConfigurator.Configure(rep, appender);
-            ILog log = LogManager.GetLogger(rep.Name, "NullPropertyProgmaticConfig");
-            
-            log.Debug("Message");
-            IDbCommand command = Log4NetCommand.MostRecentInstance;
-            IDbDataParameter param = (IDbDataParameter)command.Parameters["@productId"];
-            Assert.AreNotEqual(SystemInfo.NullText, param.Value);
-            Assert.AreEqual(DBNull.Value, param.Value);
-        }
-    }
+			log.Debug("Message");
+			IDbCommand command = Log4NetCommand.MostRecentInstance;
+			IDbDataParameter param = (IDbDataParameter)command.Parameters["@productId"];
+			Assert.AreNotEqual(SystemInfo.NullText, param.Value);
+			Assert.AreEqual(DBNull.Value, param.Value);
+		}
+
+		[Test]
+		public void NullPropertyProgmaticConfig()
+		{
+			AdoNetAppenderParameter productIdParam = new AdoNetAppenderParameter();
+			productIdParam.ParameterName = "@productId";
+			productIdParam.DbType = DbType.String;
+			productIdParam.Size = 50;
+			RawPropertyLayout rawPropertyLayout = new RawPropertyLayout();
+			rawPropertyLayout.Key = "ProductId";
+			productIdParam.Layout = rawPropertyLayout;
+
+			AdoNetAppender appender = new AdoNetAppender();
+			appender.ConnectionType = typeof(Log4NetConnection).FullName;
+			appender.BufferSize = -1;
+			appender.CommandText = "INSERT INTO Log ([productId]) VALUES (@productId)";
+			appender.AddParameter(productIdParam);
+			appender.ActivateOptions();
+
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			BasicConfigurator.Configure(rep, appender);
+			ILog log = LogManager.GetLogger(rep.Name, "NullPropertyProgmaticConfig");
+
+			log.Debug("Message");
+			IDbCommand command = Log4NetCommand.MostRecentInstance;
+			IDbDataParameter param = (IDbDataParameter)command.Parameters["@productId"];
+			Assert.AreNotEqual(SystemInfo.NullText, param.Value);
+			Assert.AreEqual(DBNull.Value, param.Value);
+		}
+	}
 }
diff --git a/tests/src/Appender/AppenderCollectionTest.cs b/tests/src/Appender/AppenderCollectionTest.cs
index e22c364..4abbc30 100644
--- a/tests/src/Appender/AppenderCollectionTest.cs
+++ b/tests/src/Appender/AppenderCollectionTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/tests/src/Appender/BufferingAppenderTest.cs b/tests/src/Appender/BufferingAppenderTest.cs
index ca65663..32c003b 100644
--- a/tests/src/Appender/BufferingAppenderTest.cs
+++ b/tests/src/Appender/BufferingAppenderTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/tests/src/Appender/CountingAppender.cs b/tests/src/Appender/CountingAppender.cs
index 0e0aa15..3e8f8bb 100644
--- a/tests/src/Appender/CountingAppender.cs
+++ b/tests/src/Appender/CountingAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/tests/src/Appender/DebugAppenderTest.cs b/tests/src/Appender/DebugAppenderTest.cs
index 53cb116..121c604 100644
--- a/tests/src/Appender/DebugAppenderTest.cs
+++ b/tests/src/Appender/DebugAppenderTest.cs
@@ -29,145 +29,145 @@
 
 namespace log4net.Tests.Appender
 {
-    [TestFixture]
-    public class DebugAppenderTest
-    {
-        [Test]
-        public void NullCategoryTest()
-        {
-            CategoryTraceListener categoryTraceListener = new CategoryTraceListener();
-            Debug.Listeners.Add(categoryTraceListener);
+	[TestFixture]
+	public class DebugAppenderTest
+	{
+		[Test]
+		public void NullCategoryTest()
+		{
+			CategoryTraceListener categoryTraceListener = new CategoryTraceListener();
+			Debug.Listeners.Add(categoryTraceListener);
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
 
-            DebugAppender debugAppender = new DebugAppender();
-            debugAppender.Layout = new SimpleLayout();
-            debugAppender.ActivateOptions();
+			DebugAppender debugAppender = new DebugAppender();
+			debugAppender.Layout = new SimpleLayout();
+			debugAppender.ActivateOptions();
 
-            debugAppender.Category = null;
+			debugAppender.Category = null;
 
-            TestErrorHandler testErrHandler = new TestErrorHandler();
-            debugAppender.ErrorHandler = testErrHandler;            
+			TestErrorHandler testErrHandler = new TestErrorHandler();
+			debugAppender.ErrorHandler = testErrHandler;
 
-            BasicConfigurator.Configure(rep, debugAppender);
+			BasicConfigurator.Configure(rep, debugAppender);
 
-            ILog log = LogManager.GetLogger(rep.Name, GetType());
-            log.Debug("Message");
+			ILog log = LogManager.GetLogger(rep.Name, GetType());
+			log.Debug("Message");
 
-            Assert.AreEqual(
-                null,
-                categoryTraceListener.Category);
+			Assert.AreEqual(
+				null,
+				categoryTraceListener.Category);
 
-            Assert.IsFalse(testErrHandler.ErrorOccured);
+			Assert.IsFalse(testErrHandler.ErrorOccured);
 
-            Debug.Listeners.Remove(categoryTraceListener);
-        }
+			Debug.Listeners.Remove(categoryTraceListener);
+		}
 
-        [Test]
-        public void EmptyStringCategoryTest()
-        {
-            CategoryTraceListener categoryTraceListener = new CategoryTraceListener();
-            Debug.Listeners.Add(categoryTraceListener);
+		[Test]
+		public void EmptyStringCategoryTest()
+		{
+			CategoryTraceListener categoryTraceListener = new CategoryTraceListener();
+			Debug.Listeners.Add(categoryTraceListener);
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
 
-            DebugAppender debugAppender = new DebugAppender();
-            debugAppender.Layout = new SimpleLayout();
-            debugAppender.ActivateOptions();
+			DebugAppender debugAppender = new DebugAppender();
+			debugAppender.Layout = new SimpleLayout();
+			debugAppender.ActivateOptions();
 
-            debugAppender.Category = new PatternLayout("");
+			debugAppender.Category = new PatternLayout("");
 
-            BasicConfigurator.Configure(rep, debugAppender);
+			BasicConfigurator.Configure(rep, debugAppender);
 
-            ILog log = LogManager.GetLogger(rep.Name, GetType());
-            log.Debug("Message");
+			ILog log = LogManager.GetLogger(rep.Name, GetType());
+			log.Debug("Message");
 
-            Assert.AreEqual(
-                null,
-                categoryTraceListener.Category);
+			Assert.AreEqual(
+				null,
+				categoryTraceListener.Category);
 
-            Debug.Listeners.Remove(categoryTraceListener);
-        }
+			Debug.Listeners.Remove(categoryTraceListener);
+		}
 
-        [Test]
-        public void DefaultCategoryTest()
-        {
-            CategoryTraceListener categoryTraceListener = new CategoryTraceListener();
-            Debug.Listeners.Add(categoryTraceListener);
+		[Test]
+		public void DefaultCategoryTest()
+		{
+			CategoryTraceListener categoryTraceListener = new CategoryTraceListener();
+			Debug.Listeners.Add(categoryTraceListener);
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
 
-            DebugAppender debugAppender = new DebugAppender();
-            debugAppender.Layout = new SimpleLayout();
-            debugAppender.ActivateOptions();
+			DebugAppender debugAppender = new DebugAppender();
+			debugAppender.Layout = new SimpleLayout();
+			debugAppender.ActivateOptions();
 
-            BasicConfigurator.Configure(rep, debugAppender);
+			BasicConfigurator.Configure(rep, debugAppender);
 
-            ILog log = LogManager.GetLogger(rep.Name, GetType());
-            log.Debug("Message");
+			ILog log = LogManager.GetLogger(rep.Name, GetType());
+			log.Debug("Message");
 
-            Assert.AreEqual(
-                GetType().ToString(),
-                categoryTraceListener.Category);
+			Assert.AreEqual(
+				GetType().ToString(),
+				categoryTraceListener.Category);
 
-            Debug.Listeners.Remove(categoryTraceListener);
-        }
+			Debug.Listeners.Remove(categoryTraceListener);
+		}
 
 #if !NETSTANDARD1_3 // "LocationInfo can't get method names on NETSTANDARD1_3 due to unavailable stack frame APIs"
-        [Test]
-        public void MethodNameCategoryTest()
-        {
-            CategoryTraceListener categoryTraceListener = new CategoryTraceListener();
-            Debug.Listeners.Add(categoryTraceListener);
+		[Test]
+		public void MethodNameCategoryTest()
+		{
+			CategoryTraceListener categoryTraceListener = new CategoryTraceListener();
+			Debug.Listeners.Add(categoryTraceListener);
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
 
-            DebugAppender debugAppender = new DebugAppender();
-            PatternLayout methodLayout = new PatternLayout("%method");
-            methodLayout.ActivateOptions();
-            debugAppender.Category = methodLayout;
-            debugAppender.Layout = new SimpleLayout();
-            debugAppender.ActivateOptions();
+			DebugAppender debugAppender = new DebugAppender();
+			PatternLayout methodLayout = new PatternLayout("%method");
+			methodLayout.ActivateOptions();
+			debugAppender.Category = methodLayout;
+			debugAppender.Layout = new SimpleLayout();
+			debugAppender.ActivateOptions();
 
-            BasicConfigurator.Configure(rep, debugAppender);
+			BasicConfigurator.Configure(rep, debugAppender);
 
-            ILog log = LogManager.GetLogger(rep.Name, GetType());
-            log.Debug("Message");
+			ILog log = LogManager.GetLogger(rep.Name, GetType());
+			log.Debug("Message");
 
-            Assert.AreEqual(
-                System.Reflection.MethodInfo.GetCurrentMethod().Name,
-                categoryTraceListener.Category);
+			Assert.AreEqual(
+				System.Reflection.MethodInfo.GetCurrentMethod().Name,
+				categoryTraceListener.Category);
 
-            Debug.Listeners.Remove(categoryTraceListener);
-        }
+			Debug.Listeners.Remove(categoryTraceListener);
+		}
 #endif
 
-        private class TestErrorHandler : IErrorHandler
-        {
-            private bool m_errorOccured = false;
+		private class TestErrorHandler : IErrorHandler
+		{
+			private bool m_errorOccured = false;
 
-            public bool ErrorOccured
-            { 
-                get { return m_errorOccured; }
-            }
-            #region IErrorHandler Members
+			public bool ErrorOccured
+			{
+				get { return m_errorOccured; }
+			}
+			#region IErrorHandler Members
 
-            public void Error(string message, Exception e, ErrorCode errorCode)
-            {
-                m_errorOccured = true;
-            }
+			public void Error(string message, Exception e, ErrorCode errorCode)
+			{
+				m_errorOccured = true;
+			}
 
-            public void Error(string message, Exception e)
-            {
-                Error(message, e, ErrorCode.GenericFailure);
-            }
+			public void Error(string message, Exception e)
+			{
+				Error(message, e, ErrorCode.GenericFailure);
+			}
 
-            public void Error(string message)
-            {
-                Error(message, null, ErrorCode.GenericFailure);
-            }
+			public void Error(string message)
+			{
+				Error(message, null, ErrorCode.GenericFailure);
+			}
 
-            #endregion
-        }
-    }
+			#endregion
+		}
+	}
 }
diff --git a/tests/src/Appender/EventLogAppenderTest.cs b/tests/src/Appender/EventLogAppenderTest.cs
index eb162e8..e5d8d70 100644
--- a/tests/src/Appender/EventLogAppenderTest.cs
+++ b/tests/src/Appender/EventLogAppenderTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -43,7 +43,7 @@
 		public void TestGetEntryTypeForExistingApplicationName()
 		{
 			EventLogAppender eventAppender = new EventLogAppender();
-            eventAppender.ApplicationName = "Winlogon";
+			eventAppender.ApplicationName = "Winlogon";
 			eventAppender.ActivateOptions();
 
 			Assert.AreEqual(
@@ -75,17 +75,17 @@
 				GetEntryType(eventAppender, Level.Off));
 		}
 
-        /// <summary>
-        /// ActivateOption tries to create an event source if it doesn't exist but this is going to fail on more modern Windows versions unless the code is run with local administrator privileges.
-        /// </summary>
-        [Test]
+		/// <summary>
+		/// ActivateOption tries to create an event source if it doesn't exist but this is going to fail on more modern Windows versions unless the code is run with local administrator privileges.
+		/// </summary>
+		[Test]
 	[Ignore("seems to require administrator privileges or a specific environent when run")]
-        public void ActivateOptionsDisablesAppenderIfSourceDoesntExist()
-        {
-            EventLogAppender eventAppender = new EventLogAppender();
-            eventAppender.ActivateOptions();
-            Assert.AreEqual(Level.Off, eventAppender.Threshold);
-        }
+		public void ActivateOptionsDisablesAppenderIfSourceDoesntExist()
+		{
+			EventLogAppender eventAppender = new EventLogAppender();
+			eventAppender.ActivateOptions();
+			Assert.AreEqual(Level.Off, eventAppender.Threshold);
+		}
 
 		//
 		// Helper functions to dig into the appender
diff --git a/tests/src/Appender/EventRaisingAppender.cs b/tests/src/Appender/EventRaisingAppender.cs
index 6716889..2fc16ab 100644
--- a/tests/src/Appender/EventRaisingAppender.cs
+++ b/tests/src/Appender/EventRaisingAppender.cs
@@ -28,54 +28,54 @@
 
 namespace log4net.Tests.Appender
 {
-    /// <summary>
-    /// Provides data for the <see cref="EventRaisingAppender.LoggingEventAppended"/> event.
-    /// </summary>
-    /// <seealso cref="System.EventArgs" />
-    public class LoggingEventEventArgs : EventArgs
-    {
-        public log4net.Core.LoggingEvent LoggingEvent { get; private set; }
+	/// <summary>
+	/// Provides data for the <see cref="EventRaisingAppender.LoggingEventAppended"/> event.
+	/// </summary>
+	/// <seealso cref="System.EventArgs" />
+	public class LoggingEventEventArgs : EventArgs
+	{
+		public log4net.Core.LoggingEvent LoggingEvent { get; private set; }
 
-        public LoggingEventEventArgs(log4net.Core.LoggingEvent loggingEvent)
-        {
-            if (loggingEvent == null) throw new ArgumentNullException("loggingEvent");
-            LoggingEvent = loggingEvent;
-        }
-    }
+		public LoggingEventEventArgs(log4net.Core.LoggingEvent loggingEvent)
+		{
+			if (loggingEvent == null) throw new ArgumentNullException("loggingEvent");
+			LoggingEvent = loggingEvent;
+		}
+	}
 
-    /// <summary>
-    /// A log4net appender that raises an event each time a logging event is appended
-    /// </summary>
-    /// <remarks>
-    /// This class is intended to provide a way for test code to inspect logging
-    /// events as they are generated.
-    /// </remarks>
-    public class EventRaisingAppender : log4net.Appender.IAppender
-    {
-        public event EventHandler<LoggingEventEventArgs> LoggingEventAppended;
+	/// <summary>
+	/// A log4net appender that raises an event each time a logging event is appended
+	/// </summary>
+	/// <remarks>
+	/// This class is intended to provide a way for test code to inspect logging
+	/// events as they are generated.
+	/// </remarks>
+	public class EventRaisingAppender : log4net.Appender.IAppender
+	{
+		public event EventHandler<LoggingEventEventArgs> LoggingEventAppended;
 
-        protected void OnLoggingEventAppended(LoggingEventEventArgs e)
-        {
-            var loggingEventAppended = LoggingEventAppended;
-            if (loggingEventAppended != null)
-            {
-                loggingEventAppended(this, e);
-            }
-        }
+		protected void OnLoggingEventAppended(LoggingEventEventArgs e)
+		{
+			var loggingEventAppended = LoggingEventAppended;
+			if (loggingEventAppended != null)
+			{
+				loggingEventAppended(this, e);
+			}
+		}
 
-        public void Close()
-        {
-        }
+		public void Close()
+		{
+		}
 
-        public void DoAppend(log4net.Core.LoggingEvent loggingEvent)
-        {
-            OnLoggingEventAppended(new LoggingEventEventArgs(loggingEvent));
-        }
+		public void DoAppend(log4net.Core.LoggingEvent loggingEvent)
+		{
+			OnLoggingEventAppended(new LoggingEventEventArgs(loggingEvent));
+		}
 
-        public string Name
-        {
-            get; set;
-        }
-    }
+		public string Name
+		{
+			get; set;
+		}
+	}
 }
 #endif
\ No newline at end of file
diff --git a/tests/src/Appender/MemoryAppenderTest.cs b/tests/src/Appender/MemoryAppenderTest.cs
index 4fe4a6e..b97bd62 100644
--- a/tests/src/Appender/MemoryAppenderTest.cs
+++ b/tests/src/Appender/MemoryAppenderTest.cs
@@ -34,59 +34,59 @@
 
 namespace log4net.Tests.Appender
 {
-    [TestFixture]
-    public class MemoryAppenderTest
-    {
-        private static int cThreadsRunning;
-        private const int cThreadsMax = 10;
-        private const int cLogEntriesPerThread = 100;
-        private const long cEventsExpected = cLogEntriesPerThread * cThreadsMax;
+	[TestFixture]
+	public class MemoryAppenderTest
+	{
+		private static int cThreadsRunning;
+		private const int cThreadsMax = 10;
+		private const int cLogEntriesPerThread = 100;
+		private const long cEventsExpected = cLogEntriesPerThread * cThreadsMax;
 
-        [Test]
-        public void TestThreadSafety()
-        {
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            var memoryAppender = new MemoryAppender();
-            var patternLayout = new PatternLayout();
-            memoryAppender.Layout = patternLayout;
-            memoryAppender.ActivateOptions();
-            BasicConfigurator.Configure(rep, memoryAppender);
+		[Test]
+		public void TestThreadSafety()
+		{
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			var memoryAppender = new MemoryAppender();
+			var patternLayout = new PatternLayout();
+			memoryAppender.Layout = patternLayout;
+			memoryAppender.ActivateOptions();
+			BasicConfigurator.Configure(rep, memoryAppender);
 
-            cThreadsRunning = cThreadsMax;
-            var threads = Enumerable.Range(0, cThreadsMax)
-                .Select(i => new Thread(LogMessages(rep.Name)))
-                .ToList();
+			cThreadsRunning = cThreadsMax;
+			var threads = Enumerable.Range(0, cThreadsMax)
+				.Select(i => new Thread(LogMessages(rep.Name)))
+				.ToList();
 
-            foreach (var thread in threads)
-            {
-                thread.Start();
-            }
+			foreach (var thread in threads)
+			{
+				thread.Start();
+			}
 
-            long cEventsRead = 0;
-            while (cThreadsRunning > 0)
-            {
-                var events = memoryAppender.PopAllEvents();
-                cEventsRead += events.Length;
-            }
-            foreach (var thread in threads)
-            {
-                thread.Join();
-            }
-	    cEventsRead += memoryAppender.PopAllEvents().Length;
-            Assert.AreEqual(cEventsExpected, cEventsRead, "Log events were lost.");
-        }
+			long cEventsRead = 0;
+			while (cThreadsRunning > 0)
+			{
+				var events = memoryAppender.PopAllEvents();
+				cEventsRead += events.Length;
+			}
+			foreach (var thread in threads)
+			{
+				thread.Join();
+			}
+		cEventsRead += memoryAppender.PopAllEvents().Length;
+			Assert.AreEqual(cEventsExpected, cEventsRead, "Log events were lost.");
+		}
 
-        private static ThreadStart LogMessages(string repository)
-        {
-	    return () => {
+		private static ThreadStart LogMessages(string repository)
+		{
+		return () => {
 		var logger = LogManager.GetLogger(repository, "LoggerThread");
 		for (var i = 0; i < cLogEntriesPerThread; i++)
 		{
-		    logger.InfoFormat("Logging message {0}", i);
+			logger.InfoFormat("Logging message {0}", i);
 		}
 		Interlocked.Decrement(ref cThreadsRunning);
-	    };
+		};
 	}
-    }
+	}
 }
 #endif
\ No newline at end of file
diff --git a/tests/src/Appender/RecursiveLoggingTest.cs b/tests/src/Appender/RecursiveLoggingTest.cs
index 191ddf6..8aa077e 100644
--- a/tests/src/Appender/RecursiveLoggingTest.cs
+++ b/tests/src/Appender/RecursiveLoggingTest.cs
@@ -34,53 +34,53 @@
 
 namespace log4net.Tests.Appender
 {
-    [TestFixture]
-    public class RecursiveLoggingTest
-    {
-        private EventRaisingAppender m_eventRaisingAppender;
-        private Repository.Hierarchy.Hierarchy m_hierarchy;
-        private int m_eventCount;
-        private ILogger m_logger;
-        private const int MaxRecursion = 3;
+	[TestFixture]
+	public class RecursiveLoggingTest
+	{
+		private EventRaisingAppender m_eventRaisingAppender;
+		private Repository.Hierarchy.Hierarchy m_hierarchy;
+		private int m_eventCount;
+		private ILogger m_logger;
+		private const int MaxRecursion = 3;
 
-        private void SetupRepository()
-        {
-            m_hierarchy = new Repository.Hierarchy.Hierarchy();
+		private void SetupRepository()
+		{
+			m_hierarchy = new Repository.Hierarchy.Hierarchy();
 
-            m_eventRaisingAppender = new EventRaisingAppender();
-            m_eventRaisingAppender.LoggingEventAppended += eventRaisingAppender_LoggingEventAppended;
+			m_eventRaisingAppender = new EventRaisingAppender();
+			m_eventRaisingAppender.LoggingEventAppended += eventRaisingAppender_LoggingEventAppended;
 
-            m_hierarchy.Root.Level = Level.All;
-            m_hierarchy.Root.AddAppender(m_eventRaisingAppender);
+			m_hierarchy.Root.Level = Level.All;
+			m_hierarchy.Root.AddAppender(m_eventRaisingAppender);
 
-            BasicConfigurator.Configure(m_hierarchy, m_eventRaisingAppender);
+			BasicConfigurator.Configure(m_hierarchy, m_eventRaisingAppender);
 
-            m_logger = m_hierarchy.GetLogger("test");
+			m_logger = m_hierarchy.GetLogger("test");
 
-        }
+		}
 
-        void eventRaisingAppender_LoggingEventAppended(object sender, LoggingEventEventArgs e)
-        {
-            if (m_eventCount < MaxRecursion && m_logger != null)
-            {
-                m_eventCount++;
-                string message = String.Format(CultureInfo.CurrentCulture, "Log event {0} from EventRaisingAppender", m_eventCount);
-                Console.WriteLine("Logging message: " + message);
-                m_logger.Log(typeof(RecursiveLoggingTest), Level.Warn, message, null);
-            }
-        }
+		void eventRaisingAppender_LoggingEventAppended(object sender, LoggingEventEventArgs e)
+		{
+			if (m_eventCount < MaxRecursion && m_logger != null)
+			{
+				m_eventCount++;
+				string message = String.Format(CultureInfo.CurrentCulture, "Log event {0} from EventRaisingAppender", m_eventCount);
+				Console.WriteLine("Logging message: " + message);
+				m_logger.Log(typeof(RecursiveLoggingTest), Level.Warn, message, null);
+			}
+		}
 
-        [Test]
-        public void TestAllowRecursiveLoggingFromAppender()
-        {
-            SetupRepository();
+		[Test]
+		public void TestAllowRecursiveLoggingFromAppender()
+		{
+			SetupRepository();
 
-            m_eventCount = 0;
-            m_logger.Log(typeof(RecursiveLoggingTest), Level.Warn, "Message logged", null);
+			m_eventCount = 0;
+			m_logger.Log(typeof(RecursiveLoggingTest), Level.Warn, "Message logged", null);
 
-            Assert.AreEqual(MaxRecursion, m_eventCount, "Expected MaxRecursion recursive calls");
-        }
+			Assert.AreEqual(MaxRecursion, m_eventCount, "Expected MaxRecursion recursive calls");
+		}
 
-    }
+	}
 }
 #endif
\ No newline at end of file
diff --git a/tests/src/Appender/RemotingAppenderTest.cs b/tests/src/Appender/RemotingAppenderTest.cs
index 7bc5551..904df41 100644
--- a/tests/src/Appender/RemotingAppenderTest.cs
+++ b/tests/src/Appender/RemotingAppenderTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -230,7 +230,7 @@
 			}
 		}
 
-        /// <summary>
+		/// <summary>
 		/// Shuts down any loggers in the hierarchy, along
 		/// with all appenders.
 		/// </summary>
@@ -262,21 +262,21 @@
 			ResetRepository();
 		}
 
-        /// <summary>
-        /// Close down remoting infrastructure
-        /// </summary>
-        [TestFixtureTearDown]
-        public void UnregisterRemotingServerChannel() {
-            if (m_remotingChannel != null) {
-                ((TcpChannel) m_remotingChannel).StopListening(null);
-                try {
-                    ChannelServices.UnregisterChannel(m_remotingChannel);
-                }
-                catch (Exception) {
-                }
-                m_remotingChannel = null;
-            }
-        }
+		/// <summary>
+		/// Close down remoting infrastructure
+		/// </summary>
+		[TestFixtureTearDown]
+		public void UnregisterRemotingServerChannel() {
+			if (m_remotingChannel != null) {
+				((TcpChannel) m_remotingChannel).StopListening(null);
+				try {
+					ChannelServices.UnregisterChannel(m_remotingChannel);
+				}
+				catch (Exception) {
+				}
+				m_remotingChannel = null;
+			}
+		}
 
 		/// <summary>
 		/// Configures the root appender for counting and rolling
@@ -321,7 +321,7 @@
 			/// </summary>
 			/// <param name="events">The events to log.</param>
 			/// <remarks>
-			/// Logs the events to to an internal buffer. The logged events can 
+			/// Logs the events to to an internal buffer. The logged events can
 			/// be retrieved via the <see cref="Events"/> property. To clear
 			/// the buffer call the <see cref="Reset"/> method.
 			/// </remarks>
@@ -333,7 +333,7 @@
 
 			#region Override implementation of MarshalByRefObject
 			/// <summary>
-			/// Obtains a lifetime service object to control the lifetime 
+			/// Obtains a lifetime service object to control the lifetime
 			/// policy for this instance.
 			/// </summary>
 			/// <returns>
diff --git a/tests/src/Appender/RollingFileAppenderTest.cs b/tests/src/Appender/RollingFileAppenderTest.cs
index 6704777..07ebfec 100644
--- a/tests/src/Appender/RollingFileAppenderTest.cs
+++ b/tests/src/Appender/RollingFileAppenderTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -146,8 +146,8 @@
 		/// <param name="iExpectedCount"></param>
 		private static void VerifyFileCount(int iExpectedCount)
 		{
-                    VerifyFileCount(iExpectedCount, false);
-                }
+					VerifyFileCount(iExpectedCount, false);
+				}
 		/// <summary>
 		/// Finds the number of files that match the base file name,
 		/// and matches the result against an expected count
@@ -201,44 +201,44 @@
 			VerifyFileCount(2);
 		}
 
-            [Test]
-            public void RollingCombinedWithPreserveExtension()
-            {
-                _root = ((Repository.Hierarchy.Hierarchy)Utils.GetRepository()).Root;
-                _root.Level = Level.All;
-                PatternLayout patternLayout = new PatternLayout();
-                patternLayout.ActivateOptions();
+		[Test]
+		public void RollingCombinedWithPreserveExtension()
+		{
+			_root = ((Repository.Hierarchy.Hierarchy)Utils.GetRepository()).Root;
+			_root.Level = Level.All;
+			PatternLayout patternLayout = new PatternLayout();
+			patternLayout.ActivateOptions();
 
-                RollingFileAppender roller = new RollingFileAppender();
-                roller.StaticLogFileName = false;
-                roller.Layout = patternLayout;
-                roller.AppendToFile = true;
-                roller.RollingStyle = RollingFileAppender.RollingMode.Composite;
-                roller.DatePattern = "dd_MM_yyyy";
-                roller.MaxSizeRollBackups = 1;
-                roller.CountDirection = 1;
-                roller.PreserveLogFileNameExtension = true;
-                roller.MaximumFileSize = "10KB";
-                roller.File = c_fileName;
-                roller.ActivateOptions();
-                _root.AddAppender(roller);
+			RollingFileAppender roller = new RollingFileAppender();
+			roller.StaticLogFileName = false;
+			roller.Layout = patternLayout;
+			roller.AppendToFile = true;
+			roller.RollingStyle = RollingFileAppender.RollingMode.Composite;
+			roller.DatePattern = "dd_MM_yyyy";
+			roller.MaxSizeRollBackups = 1;
+			roller.CountDirection = 1;
+			roller.PreserveLogFileNameExtension = true;
+			roller.MaximumFileSize = "10KB";
+			roller.File = c_fileName;
+			roller.ActivateOptions();
+			_root.AddAppender(roller);
 
-                _root.Repository.Configured = true;
+			_root.Repository.Configured = true;
 
-                for (int i = 0; i < 1000; i++)
-                {
-                    StringBuilder s = new StringBuilder();
-                    for (int j = 50; j < 100; j++)
-                    {
-                        if (j > 50) {
-                            s.Append(" ");
-                        }
-                        s.Append(j);
-                    }
-                    _root.Log(Level.Debug, s.ToString(), null);
-                }
-                VerifyFileCount(2, true);
-            }
+			for (int i = 0; i < 1000; i++)
+			{
+				StringBuilder s = new StringBuilder();
+				for (int j = 50; j < 100; j++)
+				{
+					if (j > 50) {
+						s.Append(" ");
+					}
+					s.Append(j);
+				}
+				_root.Log(Level.Debug, s.ToString(), null);
+			}
+			VerifyFileCount(2, true);
+		}
 
 		/// <summary>
 		/// Removes all test files that exist
@@ -246,7 +246,7 @@
 		private static void DeleteTestFiles()
 		{
 			ArrayList alFiles = GetExistingFiles(c_fileName);
-                        alFiles.AddRange(GetExistingFiles(c_fileName, true));
+						alFiles.AddRange(GetExistingFiles(c_fileName, true));
 			foreach(string sFile in alFiles)
 			{
 				try
@@ -268,7 +268,7 @@
 		///// <returns></returns>
 		//private string MakeFileName(int iFileCount)
 		//{
-		//    return MakeFileName(_fileName, iFileCount);
+		//	  return MakeFileName(_fileName, iFileCount);
 		//}
 
 		/// <summary>
@@ -317,7 +317,7 @@
 			RollingFileAppender appender = new RollingFileAppender();
 			appender.Layout = layout;
 			appender.File = c_fileName;
-                        appender.Encoding = Encoding.ASCII;
+			appender.Encoding = Encoding.ASCII;
 			appender.MaximumFileSize = c_iMaximumFileSize.ToString();
 			appender.MaxSizeRollBackups = _MaxSizeRollBackups;
 			appender.CountDirection = _iCountDirection;
@@ -381,7 +381,7 @@
 		}
 
 		/// <summary>
-		/// Used for table-driven testing.  This class holds information that can be used
+		/// Used for table-driven testing.	This class holds information that can be used
 		/// for testing of file rolling.
 		/// </summary>
 		public class RollConditions
@@ -437,7 +437,7 @@
 		}
 
 		/// <summary>
-		/// Checks that all the expected files exist, and only the expected files.  Also
+		/// Checks that all the expected files exist, and only the expected files.	Also
 		/// verifies the length of all files against the expected length
 		/// </summary>
 		/// <param name="sBaseFileName"></param>
@@ -460,7 +460,7 @@
 					}
 					else
 					{
-						// If length is 0, file may not exist yet.  If file exists, make sure length
+						// If length is 0, file may not exist yet.	If file exists, make sure length
 						// is zero.  If file doesn't exist, this is OK
 
 						if (file.Exists)
@@ -481,8 +481,8 @@
 		}
 
 		/// <summary>
-		/// Called before logging a message to check that all the expected files exist, 
-		/// and only the expected files.  Also verifies the length of all files against 
+		/// Called before logging a message to check that all the expected files exist,
+		/// and only the expected files.  Also verifies the length of all files against
 		/// the expected length
 		/// </summary>
 		/// <param name="sBaseFileName"></param>
@@ -493,8 +493,8 @@
 		}
 
 		/// <summary>
-		/// Called after logging a message to check that all the expected files exist, 
-		/// and only the expected files.  Also verifies the length of all files against 
+		/// Called after logging a message to check that all the expected files exist,
+		/// and only the expected files.  Also verifies the length of all files against
 		/// the expected length
 		/// </summary>
 		/// <param name="sBaseFileName"></param>
@@ -505,7 +505,7 @@
 		}
 
 		/// <summary>
-		/// Logs a message, verifying the expected message counts against the 
+		/// Logs a message, verifying the expected message counts against the
 		/// current running totals.
 		/// </summary>
 		/// <param name="entry"></param>
@@ -518,31 +518,10 @@
 			_iMessagesLoggedThisFile++;
 		}
 
-		//private void DumpFileEntry( RollFileEntry entry )
-		//{
-		//    System.Diagnostics.Debug.WriteLine( "\tfile   name: " + entry.FileName );
-		//    System.Diagnostics.Debug.WriteLine( "\tfile length: " + entry.FileLength );
-		//}
-
-		//private void DumpTableEntry( RollConditions entry )
-		//{
-		//    System.Diagnostics.Debug.WriteLine( "Pre-Conditions" );
-		//    foreach( RollFileEntry file in entry.GetPreLogFileEntries() )
-		//    {
-		//        DumpFileEntry( file );
-		//    }
-		//    System.Diagnostics.Debug.WriteLine( "Post-Conditions" );
-		//    foreach( RollFileEntry file in entry.GetPostLogFileEntries() )
-		//    {
-		//        DumpFileEntry( file );
-		//    }
-		//    //				System.Diagnostics.Debug.WriteLine("");
-		//}
-
 		/// <summary>
 		/// Runs through all table entries, logging messages.  Before each message is logged,
 		/// pre-conditions are checked to ensure the expected files exist and they are the
-		/// expected size.  After logging, verifies the same.
+		/// expected size.	After logging, verifies the same.
 		/// </summary>
 		/// <param name="sBaseFileName"></param>
 		/// <param name="entries"></param>
@@ -553,19 +532,19 @@
 			{
 				RollConditions entry = entries[i];
 
-				//					System.Diagnostics.Debug.WriteLine( i + ": Entry " + i + " pre/post conditions");
-				//					DumpTableEntry( entry );
-				//					System.Diagnostics.Debug.WriteLine( i + ": Testing entry pre-conditions");
+				// System.Diagnostics.Debug.WriteLine( i + ": Entry " + i + " pre/post conditions");
+				// DumpTableEntry( entry );
+				// System.Diagnostics.Debug.WriteLine( i + ": Testing entry pre-conditions");
 				VerifyPreConditions(sBaseFileName, entry);
-				//					System.Diagnostics.Debug.WriteLine( i + ": Logging message");
+				// System.Diagnostics.Debug.WriteLine( i + ": Logging message");
 				LogMessage(entry, sMessageToLog);
-				//					System.Diagnostics.Debug.WriteLine( i + ": Testing entry post-conditions");
+				// System.Diagnostics.Debug.WriteLine( i + ": Testing entry post-conditions");
 				VerifyPostConditions(sBaseFileName, entry);
-				//					System.Diagnostics.Debug.WriteLine( i + ": Finished validating entry\n");
+				// System.Diagnostics.Debug.WriteLine( i + ": Finished validating entry\n");
 			}
 		}
 
-        private static readonly int s_Newline_Length = Environment.NewLine.Length;
+		private static readonly int s_Newline_Length = Environment.NewLine.Length;
 
 		/// <summary>
 		/// Returns the number of bytes logged per message, including
@@ -575,7 +554,7 @@
 		/// <returns></returns>
 		private static int TotalMessageLength(string sMessage)
 		{
-            return sMessage.Length + s_Newline_Length;
+			return sMessage.Length + s_Newline_Length;
 		}
 
 		/// <summary>
@@ -650,40 +629,6 @@
 			return sGroups[iGroup];
 		}
 
-		///// <summary>
-		///// Builds a collection of file entries based on the file names
-		///// specified in a groups string and the max file size from the
-		///// stats object
-		///// </summary>
-		///// <param name="sBackupGroups"></param>
-		///// <param name="stats"></param>
-		///// <returns></returns>
-		//private RollFileEntry[] MakeBackupFileEntriesForPreCondition( string sBackupGroups, RollingStats stats )
-		//{
-		//    if (0 == stats.NumberOfFileRolls )
-		//    {
-		//        return null;	// first round has no previous backups
-		//    }
-		//    string sGroup;
-		//    if (0 == stats.MessagesThisFile )
-		//    {
-		//        // first file has special pattern...since rolling doesn't occur when message
-		//        // is logged, rather before next message is logged.
-		//        if (stats.NumberOfFileRolls <= 1 )
-		//        {
-		//            return null;   
-		//        }
-		//        // Use backup files from previous round.  The minus 2 is because we have already
-		//        // rolled, and the first round uses null instead of the string
-		//        sGroup = GetBackupGroup( sBackupGroups, stats.NumberOfFileRolls-2 );
-		//    }
-		//    else
-		//    {
-		//        sGroup = GetBackupGroup( sBackupGroups, stats.NumberOfFileRolls-1 );
-		//    }
-		//    return MakeBackupFileEntriesFromBackupGroup( sGroup, stats.MaximumFileSize );
-		//}
-
 		/// <summary>
 		/// Builds a collection of file entries based on the file names
 		/// specified in a groups string and the max file size from the
@@ -896,8 +841,8 @@
 
 		/// <summary>
 		/// This routine takes a list of backup file names and a message that will be logged
-		/// repeatedly, and generates a collection of objects containing pre-condition and 
-		/// post-condition information.  This pre/post information shows the names and expected 
+		/// repeatedly, and generates a collection of objects containing pre-condition and
+		/// post-condition information.  This pre/post information shows the names and expected
 		/// file sizes for all files just before and just after a message is logged.
 		/// </summary>
 		/// <param name="sTestMessage">A message to log repeatedly</param>
@@ -940,21 +885,21 @@
 		/// Uses the externally defined rolling table to verify rolling names/sizes
 		/// </summary>
 		/// <remarks>
-		/// Pattern is:  check pre-conditions.  Log messages, checking size of current file.
+		/// Pattern is:  check pre-conditions.	Log messages, checking size of current file.
 		/// when size exceeds limit, check post conditions.  Can determine from message the
 		/// number of messages N that will cause a roll to occur.  Challenge is to verify the
 		/// expected files, their sizes, and the names.  For a message of length L, the backups
 		/// will be of size (N * L), and the current file will be of size (K * L), where K is
 		/// the number of messages that have been logged to this file.
 		///
-		/// File sizes can be checked algorithmically.  
-		/// 
+		/// File sizes can be checked algorithmically.
+		///
 		/// File names are generated using a table driven algorithm, where a number is turned into
 		/// the actual filename.
-		/// 
+		///
 		/// The entries are comma-separated, with spaces between the names.  Each comma indicates
 		/// a 'roll', and the group between commas indicates the numbers for all backup files that
-		/// occur as a result of the roll.  It is assumed that no backup files exist before a roll 
+		/// occur as a result of the roll.	It is assumed that no backup files exist before a roll
 		/// occurs
 		/// </remarks>
 		/// <param name="table"></param>
@@ -985,7 +930,7 @@
 			_iCountDirection = +1;
 
 			//
-			// Log 30 messages.  This is 5 groups, 6 checks per group ( 0, 100, 200, 300, 400, 500 
+			// Log 30 messages.  This is 5 groups, 6 checks per group ( 0, 100, 200, 300, 400, 500
 			// bytes for current file as messages are logged.
 			//
 			int iMessagesToLog = 30;
@@ -996,7 +941,7 @@
 		/// <summary>
 		/// Validates rolling using an infinite number of backup files, with
 		/// count direction set to up, so that newer files have higher counts.
-		/// Newest = N, Oldest = 1, where N is the number of times rolling has 
+		/// Newest = N, Oldest = 1, where N is the number of times rolling has
 		/// occurred.
 		/// </summary>
 		[Test]
@@ -1019,7 +964,7 @@
 			_MaxSizeRollBackups = -1;
 
 			//
-			// Log 30 messages.  This is 5 groups, 6 checks per group ( 0, 100, 200, 300, 400, 500 
+			// Log 30 messages.  This is 5 groups, 6 checks per group ( 0, 100, 200, 300, 400, 500
 			// bytes for current file as messages are logged.
 			//
 			int iMessagesToLog = 30;
@@ -1052,7 +997,7 @@
 			_MaxSizeRollBackups = 0;
 
 			//
-			// Log 30 messages.  This is 5 groups, 6 checks per group ( 0, 100, 200, 300, 400, 500 
+			// Log 30 messages.  This is 5 groups, 6 checks per group ( 0, 100, 200, 300, 400, 500
 			// bytes for current file as messages are logged.
 			//
 			int iMessagesToLog = 30;
@@ -1081,7 +1026,7 @@
 			_iCountDirection = -1;
 
 			//
-			// Log 30 messages.  This is 5 groups, 6 checks per group ( 0, 100, 200, 300, 400, 500 
+			// Log 30 messages.  This is 5 groups, 6 checks per group ( 0, 100, 200, 300, 400, 500
 			// bytes for current file as messages are logged.
 			//
 			int iMessagesToLog = 30;
@@ -1115,7 +1060,7 @@
 			_MaxSizeRollBackups = -1;
 
 			//
-			// Log 30 messages.  This is 5 groups, 6 checks per group ( 0, 100, 200, 300, 400, 500 
+			// Log 30 messages.  This is 5 groups, 6 checks per group ( 0, 100, 200, 300, 400, 500
 			// bytes for current file as messages are logged.
 			//
 			int iMessagesToLog = 30;
@@ -1148,7 +1093,7 @@
 			_MaxSizeRollBackups = 0;
 
 			//
-			// Log 30 messages.  This is 5 groups, 6 checks per group ( 0, 100, 200, 300, 400, 500 
+			// Log 30 messages.  This is 5 groups, 6 checks per group ( 0, 100, 200, 300, 400, 500
 			// bytes for current file as messages are logged.
 			//
 			int iMessagesToLog = 30;
@@ -1693,72 +1638,72 @@
 		}
 
 #if !NETCF
-        /// <summary>
-        /// Verifies that attempting to log to a locked file fails gracefully
-        /// </summary>
-        [Test]
-        public void TestInterProcessLockFails() {
-            String filename = "test.log";
+		/// <summary>
+		/// Verifies that attempting to log to a locked file fails gracefully
+		/// </summary>
+		[Test]
+		public void TestInterProcessLockFails() {
+			String filename = "test.log";
 
-            FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.None);
-            fs.Write(Encoding.ASCII.GetBytes("Test"), 0, 4);
+			FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.None);
+			fs.Write(Encoding.ASCII.GetBytes("Test"), 0, 4);
 
-            SilentErrorHandler sh = new SilentErrorHandler();
-            ILogger log = CreateLogger(filename, new FileAppender.InterProcessLock(), sh);
-            log.Log(GetType(), Level.Info, "This is a message", null);
-            log.Log(GetType(), Level.Info, "This is a message 2", null);
-            DestroyLogger();
-            fs.Close();
+			SilentErrorHandler sh = new SilentErrorHandler();
+			ILogger log = CreateLogger(filename, new FileAppender.InterProcessLock(), sh);
+			log.Log(GetType(), Level.Info, "This is a message", null);
+			log.Log(GetType(), Level.Info, "This is a message 2", null);
+			DestroyLogger();
+			fs.Close();
 
-            AssertFileEquals(filename, "Test");
-            Assert.AreEqual("Unable to acquire lock on file", sh.Message.Substring(0, 30), "Expecting an error message");
-        }
+			AssertFileEquals(filename, "Test");
+			Assert.AreEqual("Unable to acquire lock on file", sh.Message.Substring(0, 30), "Expecting an error message");
+		}
 
-        /// <summary>
-        /// Verifies that attempting to log to a locked file recovers if the lock is released
-        /// </summary>
-        [Test]
-        public void TestInterProcessLockRecovers() {
-            String filename = "test.log";
+		/// <summary>
+		/// Verifies that attempting to log to a locked file recovers if the lock is released
+		/// </summary>
+		[Test]
+		public void TestInterProcessLockRecovers() {
+			String filename = "test.log";
 
-            FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.None);
-            fs.Write(Encoding.ASCII.GetBytes("Test"), 0, 4);
+			FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.None);
+			fs.Write(Encoding.ASCII.GetBytes("Test"), 0, 4);
 
-            SilentErrorHandler sh = new SilentErrorHandler();
-            ILogger log = CreateLogger(filename, new FileAppender.InterProcessLock(), sh);
-            log.Log(GetType(), Level.Info, "This is a message", null);
-            fs.Close();
-            log.Log(GetType(), Level.Info, "This is a message 2", null);
-            DestroyLogger();
+			SilentErrorHandler sh = new SilentErrorHandler();
+			ILogger log = CreateLogger(filename, new FileAppender.InterProcessLock(), sh);
+			log.Log(GetType(), Level.Info, "This is a message", null);
+			fs.Close();
+			log.Log(GetType(), Level.Info, "This is a message 2", null);
+			DestroyLogger();
 
-            AssertFileEquals(filename, "This is a message 2" + Environment.NewLine);
-            Assert.AreEqual("Unable to acquire lock on file", sh.Message.Substring(0, 30), "Expecting an error message");
-        }
+			AssertFileEquals(filename, "This is a message 2" + Environment.NewLine);
+			Assert.AreEqual("Unable to acquire lock on file", sh.Message.Substring(0, 30), "Expecting an error message");
+		}
 
-        /// <summary>
-        /// Verifies that attempting to log to a file with InterProcessLock really locks the file
-        /// </summary>
-        [Test]
-        public void TestInterProcessLockUnlocks() {
-            String filename = "test.log";
-            bool locked;
+		/// <summary>
+		/// Verifies that attempting to log to a file with InterProcessLock really locks the file
+		/// </summary>
+		[Test]
+		public void TestInterProcessLockUnlocks() {
+			String filename = "test.log";
+			bool locked;
 
-            SilentErrorHandler sh = new SilentErrorHandler();
-            ILogger log = CreateLogger(filename, new FileAppender.InterProcessLock(), sh);
-            log.Log(GetType(), Level.Info, "This is a message", null);
+			SilentErrorHandler sh = new SilentErrorHandler();
+			ILogger log = CreateLogger(filename, new FileAppender.InterProcessLock(), sh);
+			log.Log(GetType(), Level.Info, "This is a message", null);
 
-            locked = true;
-            FileStream fs = new FileStream(filename, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
-            fs.Write(Encoding.ASCII.GetBytes("Test" + Environment.NewLine), 0, 4 + Environment.NewLine.Length);
-            fs.Close();
+			locked = true;
+			FileStream fs = new FileStream(filename, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
+			fs.Write(Encoding.ASCII.GetBytes("Test" + Environment.NewLine), 0, 4 + Environment.NewLine.Length);
+			fs.Close();
 
-            log.Log(GetType(), Level.Info, "This is a message 2", null);
-            DestroyLogger();
+			log.Log(GetType(), Level.Info, "This is a message 2", null);
+			DestroyLogger();
 
-            Assert.IsTrue(locked, "File was not locked");
-            AssertFileEquals(filename, "This is a message" + Environment.NewLine + "Test" + Environment.NewLine + "This is a message 2" + Environment.NewLine);
-            Assert.AreEqual("", sh.Message, "Unexpected error message");
-        }
+			Assert.IsTrue(locked, "File was not locked");
+			AssertFileEquals(filename, "This is a message" + Environment.NewLine + "Test" + Environment.NewLine + "This is a message 2" + Environment.NewLine);
+			Assert.AreEqual("", sh.Message, "Unexpected error message");
+		}
 
 		/// <summary>
 		/// Verifies that rolling file works
@@ -1773,7 +1718,6 @@
 
 			Assert.DoesNotThrow(delegate { log.Log(GetType(), Level.Info, "A", null); });
 			Assert.DoesNotThrow(delegate { log.Log(GetType(), Level.Info, "A", null); });
-			
 			DestroyLogger();
 
 			AssertFileEquals(filename, "A" + Environment.NewLine);
@@ -1782,7 +1726,7 @@
 		}
 #endif
 
-        /// <summary>
+		/// <summary>
 		/// Verify that the default LockModel is ExclusiveLock, to maintain backwards compatibility with previous behaviour
 		/// </summary>
 		[Test]
@@ -1828,10 +1772,10 @@
 
 		/// <summary>
 		/// Turns a string of comma separated numbers into a collection of filenames
-		/// generated from the numbers.  
-		/// 
+		/// generated from the numbers.
+		///
 		/// Defaults to filename in _fileName variable.
-		/// 
+		///
 		/// </summary>
 		/// <param name="sFileNumbers">Comma separated list of numbers for counted file names</param>
 		/// <returns></returns>
@@ -1843,7 +1787,7 @@
 		/// <summary>
 		/// Turns a string of comma separated numbers into a collection of filenames
 		/// generated from the numbers
-		/// 
+		///
 		/// Uses the input filename.
 		/// </summary>
 		/// <param name="sFileName">Name of file to combine with numbers when generating counted file names</param>
@@ -1910,7 +1854,7 @@
 			// 2 = file.log.1
 			// 3 = file.log.2
 			if (0 == iBackups ||
-			    1 == iBackups)
+				1 == iBackups)
 			{
 				Assert.AreEqual(0, GetFieldCurSizeRollBackups(rfa));
 			}
@@ -1941,7 +1885,7 @@
 		}
 
 		/// <summary>
-		/// 
+		///
 		/// </summary>
 		[Test, Ignore("Not Implemented: Want to test counted files limited up, to see that others are ?? ignored? deleted?")]
 		public void TestInitialization3()
@@ -1949,7 +1893,7 @@
 		}
 
 		/// <summary>
-		/// 
+		///
 		/// </summary>
 		[Test, Ignore("Not Implemented: Want to test counted files limited down, to see that others are ?? ignored? deleted?")]
 		public void TestInitialization4()
@@ -1957,7 +1901,7 @@
 		}
 
 		/// <summary>
-		/// 
+		///
 		/// </summary>
 		[Test, Ignore("Not Implemented: Want to test dated files with a limit, to see that others are ?? ignored? deleted?")]
 		public void TestInitialization5()
@@ -1965,7 +1909,7 @@
 		}
 
 		/// <summary>
-		/// 
+		///
 		/// </summary>
 		[Test, Ignore("Not Implemented: Want to test dated files with no limit, to see that others are ?? ignored? deleted?")]
 		public void TestInitialization6()
@@ -1973,7 +1917,7 @@
 		}
 
 		/// <summary>
-		/// 
+		///
 		/// </summary>
 		[Test, Ignore("Not Implemented: Want to test dated files with mixed dates existing, to see that other dates do not matter")]
 		public void TestInitialization7()
@@ -1987,12 +1931,13 @@
 
 		private static ArrayList GetExistingFiles(string baseFilePath)
 		{
-                    return GetExistingFiles(baseFilePath, false);
-                }
+			return GetExistingFiles(baseFilePath, false);
+		}
+
 		private static ArrayList GetExistingFiles(string baseFilePath, bool preserveLogFileNameExtension)
 		{
 			RollingFileAppender appender = new RollingFileAppender();
-                        appender.PreserveLogFileNameExtension = preserveLogFileNameExtension;
+						appender.PreserveLogFileNameExtension = preserveLogFileNameExtension;
 			appender.SecurityContext = NullSecurityContext.Instance;
 
 			return (ArrayList)Utils.InvokeMethod(appender, "GetExistingFiles", baseFilePath);
diff --git a/tests/src/Appender/SmtpPickupDirAppenderTest.cs b/tests/src/Appender/SmtpPickupDirAppenderTest.cs
index 6fbb082..0553fb6 100644
--- a/tests/src/Appender/SmtpPickupDirAppenderTest.cs
+++ b/tests/src/Appender/SmtpPickupDirAppenderTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/tests/src/Appender/StringAppender.cs b/tests/src/Appender/StringAppender.cs
index 977099c..c80cd4a 100644
--- a/tests/src/Appender/StringAppender.cs
+++ b/tests/src/Appender/StringAppender.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/tests/src/Appender/TraceAppenderTest.cs b/tests/src/Appender/TraceAppenderTest.cs
index 21e8fbd..ec5227a 100644
--- a/tests/src/Appender/TraceAppenderTest.cs
+++ b/tests/src/Appender/TraceAppenderTest.cs
@@ -29,84 +29,84 @@
 
 namespace log4net.Tests.Appender
 {
-    [TestFixture]
-    public class TraceAppenderTest
-    {
-        [Test]
-        public void DefaultCategoryTest()
-        {
-            CategoryTraceListener categoryTraceListener = new CategoryTraceListener();
-            Trace.Listeners.Clear();
-            Trace.Listeners.Add(categoryTraceListener);
+	[TestFixture]
+	public class TraceAppenderTest
+	{
+		[Test]
+		public void DefaultCategoryTest()
+		{
+			CategoryTraceListener categoryTraceListener = new CategoryTraceListener();
+			Trace.Listeners.Clear();
+			Trace.Listeners.Add(categoryTraceListener);
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
 
-            TraceAppender traceAppender = new TraceAppender();
-            traceAppender.Layout = new SimpleLayout();
-            traceAppender.ActivateOptions();
+			TraceAppender traceAppender = new TraceAppender();
+			traceAppender.Layout = new SimpleLayout();
+			traceAppender.ActivateOptions();
 
-            BasicConfigurator.Configure(rep, traceAppender);
+			BasicConfigurator.Configure(rep, traceAppender);
 
-            ILog log = LogManager.GetLogger(rep.Name, GetType());
-            log.Debug("Message");
+			ILog log = LogManager.GetLogger(rep.Name, GetType());
+			log.Debug("Message");
 
-            Assert.AreEqual(
-                GetType().ToString(),
-                categoryTraceListener.Category);
-        }
+			Assert.AreEqual(
+				GetType().ToString(),
+				categoryTraceListener.Category);
+		}
 
 #if !NETSTANDARD1_3 // "LocationInfo can't get method names on NETSTANDARD1_3 due to unavailable stack frame APIs"
-        [Test]
-        public void MethodNameCategoryTest()
-        {
-            CategoryTraceListener categoryTraceListener = new CategoryTraceListener();
-            Trace.Listeners.Clear();
-            Trace.Listeners.Add(categoryTraceListener);
+		[Test]
+		public void MethodNameCategoryTest()
+		{
+			CategoryTraceListener categoryTraceListener = new CategoryTraceListener();
+			Trace.Listeners.Clear();
+			Trace.Listeners.Add(categoryTraceListener);
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
 
-            TraceAppender traceAppender = new TraceAppender();
-            PatternLayout methodLayout = new PatternLayout("%method");
-            methodLayout.ActivateOptions();
-            traceAppender.Category = methodLayout;
-            traceAppender.Layout = new SimpleLayout();
-            traceAppender.ActivateOptions();
+			TraceAppender traceAppender = new TraceAppender();
+			PatternLayout methodLayout = new PatternLayout("%method");
+			methodLayout.ActivateOptions();
+			traceAppender.Category = methodLayout;
+			traceAppender.Layout = new SimpleLayout();
+			traceAppender.ActivateOptions();
 
-            BasicConfigurator.Configure(rep, traceAppender);
+			BasicConfigurator.Configure(rep, traceAppender);
 
-            ILog log = LogManager.GetLogger(rep.Name, GetType());
-            log.Debug("Message");
+			ILog log = LogManager.GetLogger(rep.Name, GetType());
+			log.Debug("Message");
 
-            Assert.AreEqual(
-                System.Reflection.MethodInfo.GetCurrentMethod().Name,
-                categoryTraceListener.Category);
-        }
+			Assert.AreEqual(
+				System.Reflection.MethodInfo.GetCurrentMethod().Name,
+				categoryTraceListener.Category);
+		}
 #endif
-    }
+	}
 
-    public class CategoryTraceListener : TraceListener
-    {
-        private string lastCategory;
+	public class CategoryTraceListener : TraceListener
+	{
+		private string lastCategory;
 
-        public override void Write(string message)
-        {
-            // empty
-        }
+		public override void Write(string message)
+		{
+			// empty
+		}
 
-        public override void WriteLine(string message)
-        {
-            Write(message);
-        }
+		public override void WriteLine(string message)
+		{
+			Write(message);
+		}
 
-        public override void Write(string message, string category)
-        {
-            lastCategory = category;
-            base.Write(message, category);
-        }
+		public override void Write(string message, string category)
+		{
+			lastCategory = category;
+			base.Write(message, category);
+		}
 
-        public string Category
-        {
-            get { return lastCategory; }
-        }
-    }
+		public string Category
+		{
+			get { return lastCategory; }
+		}
+	}
 }
diff --git a/tests/src/AssemblyInfo.cs b/tests/src/AssemblyInfo.cs
index f8b2a45..7a8f2a2 100644
--- a/tests/src/AssemblyInfo.cs
+++ b/tests/src/AssemblyInfo.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -19,7 +19,7 @@
 
 using System.Reflection;
 //
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 //
diff --git a/tests/src/Context/LogicalThreadContextTest.cs b/tests/src/Context/LogicalThreadContextTest.cs
index 849d963..34a7136 100644
--- a/tests/src/Context/LogicalThreadContextTest.cs
+++ b/tests/src/Context/LogicalThreadContextTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/tests/src/Context/ThreadContextTest.cs b/tests/src/Context/ThreadContextTest.cs
index e489efc..c82fd63 100644
--- a/tests/src/Context/ThreadContextTest.cs
+++ b/tests/src/Context/ThreadContextTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -39,12 +39,12 @@
 	[TestFixture]
 	public class ThreadContextTest
 	{
-        [TearDown]
-        public void TearDown() {
-            Utils.RemovePropertyFromAllContexts();
-        }
+		[TearDown]
+		public void TearDown() {
+			Utils.RemovePropertyFromAllContexts();
+		}
 
-        [Test]
+		[Test]
 		public void TestThreadPropertiesPattern()
 		{
 			StringAppender stringAppender = new StringAppender();
@@ -76,7 +76,7 @@
 		public void TestThreadStackPattern()
 		{
 			StringAppender stringAppender = new StringAppender();
-            stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}");
+			stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}");
 
 			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
 			BasicConfigurator.Configure(rep, stringAppender);
@@ -103,7 +103,7 @@
 		public void TestThreadStackPattern2()
 		{
 			StringAppender stringAppender = new StringAppender();
-            stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}");
+			stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}");
 
 			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
 			BasicConfigurator.Configure(rep, stringAppender);
@@ -137,7 +137,7 @@
 		public void TestThreadStackPatternNullVal()
 		{
 			StringAppender stringAppender = new StringAppender();
-            stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}");
+			stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}");
 
 			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
 			BasicConfigurator.Configure(rep, stringAppender);
@@ -164,7 +164,7 @@
 		public void TestThreadStackPatternNullVal2()
 		{
 			StringAppender stringAppender = new StringAppender();
-            stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}");
+			stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}");
 
 			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
 			BasicConfigurator.Configure(rep, stringAppender);
@@ -194,7 +194,7 @@
 			stringAppender.Reset();
 		}
 
-        private static string TestBackgroundThreadContextPropertyRepository;
+		private static string TestBackgroundThreadContextPropertyRepository;
 
 		[Test]
 		public void TestBackgroundThreadContextProperty()
@@ -202,7 +202,7 @@
 			StringAppender stringAppender = new StringAppender();
 			stringAppender.Layout = new PatternLayout("%property{DateTimeTodayToString}");
 
-            ILoggerRepository rep = LogManager.CreateRepository(TestBackgroundThreadContextPropertyRepository = "TestBackgroundThreadContextPropertyRepository" + Guid.NewGuid().ToString());
+			ILoggerRepository rep = LogManager.CreateRepository(TestBackgroundThreadContextPropertyRepository = "TestBackgroundThreadContextPropertyRepository" + Guid.NewGuid().ToString());
 			BasicConfigurator.Configure(rep, stringAppender);
 
 			Thread thread = new Thread(new ThreadStart(ExecuteBackgroundThread));
@@ -213,7 +213,7 @@
 
 		private static void ExecuteBackgroundThread()
 		{
-            ILog log = LogManager.GetLogger(TestBackgroundThreadContextPropertyRepository, "ExecuteBackGroundThread");
+			ILog log = LogManager.GetLogger(TestBackgroundThreadContextPropertyRepository, "ExecuteBackGroundThread");
 			ThreadContext.Properties["DateTimeTodayToString"] = DateTime.Today.ToString();
 
 			log.Info("TestMessage");
diff --git a/tests/src/Core/FixingTest.cs b/tests/src/Core/FixingTest.cs
index dbe6b3e..34af05d 100644
--- a/tests/src/Core/FixingTest.cs
+++ b/tests/src/Core/FixingTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -31,28 +31,28 @@
 	[TestFixture]
 	public class FixingTest
 	{
-        const string TEST_REPOSITORY = "Test Repository";
+		const string TEST_REPOSITORY = "Test Repository";
 
 #if NETSTANDARD1_3
-        [OneTimeSetUp]
+		[OneTimeSetUp]
 #else
-        [TestFixtureSetUp]
+		[TestFixtureSetUp]
 #endif
 		public void CreateRepository()
 		{
-            bool exists = false;
-            Repository.ILoggerRepository[] repositories = LogManager.GetAllRepositories();
-            if (repositories != null) {
-                foreach (Repository.ILoggerRepository r in repositories) {
-                    if (r.Name == TEST_REPOSITORY) {
-                        exists = true;
-                        break;
-                    }
-                }
-            }
-            if (!exists) {
-                LogManager.CreateRepository(TEST_REPOSITORY);
-            }
+			bool exists = false;
+			Repository.ILoggerRepository[] repositories = LogManager.GetAllRepositories();
+			if (repositories != null) {
+				foreach (Repository.ILoggerRepository r in repositories) {
+					if (r.Name == TEST_REPOSITORY) {
+						exists = true;
+						break;
+					}
+				}
+			}
+			if (!exists) {
+				LogManager.CreateRepository(TEST_REPOSITORY);
+			}
 
 			// write-once
 			if (Thread.CurrentThread.Name == null)
@@ -149,8 +149,8 @@
 			Assert.AreEqual("log4net.Tests.Core.FixingTest", loggingEventData.LoggerName, "LoggerName is incorrect");
 			Assert.AreEqual(LogManager.GetRepository(TEST_REPOSITORY), loggingEvent.Repository, "Repository is incorrect");
 			Assert.AreEqual(Thread.CurrentThread.Name, loggingEventData.ThreadName, "ThreadName is incorrect");
-            // This test is redundant as loggingEventData.TimeStamp is a value type and cannot be null
-            // Assert.IsNotNull(loggingEventData.TimeStampUtc, "TimeStamp is incorrect");
+			// This test is redundant as loggingEventData.TimeStamp is a value type and cannot be null
+			// Assert.IsNotNull(loggingEventData.TimeStampUtc, "TimeStamp is incorrect");
 			Assert.AreEqual("TestUser", loggingEventData.UserName, "UserName is incorrect");
 			Assert.AreEqual("Logging event works", loggingEvent.RenderedMessage, "Message is incorrect");
 		}
diff --git a/tests/src/Core/ShutdownTest.cs b/tests/src/Core/ShutdownTest.cs
index 720a321..32d9ac2 100644
--- a/tests/src/Core/ShutdownTest.cs
+++ b/tests/src/Core/ShutdownTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/tests/src/Core/StringFormatTest.cs b/tests/src/Core/StringFormatTest.cs
index 16c7b5a..d0f8473 100644
--- a/tests/src/Core/StringFormatTest.cs
+++ b/tests/src/Core/StringFormatTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/tests/src/DateFormatter/AbsoluteTimeDateFormatterTest.cs b/tests/src/DateFormatter/AbsoluteTimeDateFormatterTest.cs
index 083dbf7..4588f0d 100644
--- a/tests/src/DateFormatter/AbsoluteTimeDateFormatterTest.cs
+++ b/tests/src/DateFormatter/AbsoluteTimeDateFormatterTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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,80 +26,80 @@
 namespace log4net.Tests.DateFormatter
 {
 
-    [TestFixture]
-    public class AbsoluteTimeDateFormatterTest
-    {
+	[TestFixture]
+	public class AbsoluteTimeDateFormatterTest
+	{
 
-        [TearDown]
-        public void resetCounts()
-        {
-            FormatterOne.invocations = 0;
-        }
+		[TearDown]
+		public void resetCounts()
+		{
+			FormatterOne.invocations = 0;
+		}
 
-        [Test]
-        public void CacheWorksForSameTicks()
-        {
-            StringWriter sw = new StringWriter();
-            FormatterOne f1 = new FormatterOne();
-            FormatterOne f2 = new FormatterOne();
-            DateTime dt = DateTime.Now;
-            f1.FormatDate(dt, sw);
-            f2.FormatDate(dt, sw);
-            Assert.AreEqual(1, FormatterOne.invocations);
-        }
+		[Test]
+		public void CacheWorksForSameTicks()
+		{
+			StringWriter sw = new StringWriter();
+			FormatterOne f1 = new FormatterOne();
+			FormatterOne f2 = new FormatterOne();
+			DateTime dt = DateTime.Now;
+			f1.FormatDate(dt, sw);
+			f2.FormatDate(dt, sw);
+			Assert.AreEqual(1, FormatterOne.invocations);
+		}
 
-        [Test]
-        public void CacheWorksForSameSecond()
-        {
-            StringWriter sw = new StringWriter();
-            FormatterOne f1 = new FormatterOne();
-            FormatterOne f2 = new FormatterOne();
-            DateTime dt1 = DateTime.Today;
-            DateTime dt2 = dt1.AddMilliseconds(600);
-            f1.FormatDate(dt1, sw);
-            f2.FormatDate(dt2, sw);
-            Assert.AreEqual(1, FormatterOne.invocations);
-        }
+		[Test]
+		public void CacheWorksForSameSecond()
+		{
+			StringWriter sw = new StringWriter();
+			FormatterOne f1 = new FormatterOne();
+			FormatterOne f2 = new FormatterOne();
+			DateTime dt1 = DateTime.Today;
+			DateTime dt2 = dt1.AddMilliseconds(600);
+			f1.FormatDate(dt1, sw);
+			f2.FormatDate(dt2, sw);
+			Assert.AreEqual(1, FormatterOne.invocations);
+		}
 
-        [Test]
-        public void CacheExpiresWhenCrossingSecond()
-        {
-            StringWriter sw = new StringWriter();
-            FormatterOne f1 = new FormatterOne();
-            FormatterOne f2 = new FormatterOne();
-            DateTime dt1 = DateTime.Today.AddMinutes(1);
-            DateTime dt2 = dt1.AddMilliseconds(1100);
-            f1.FormatDate(dt1, sw);
-            f2.FormatDate(dt2, sw);
-            Assert.AreEqual(2, FormatterOne.invocations);
-        }
+		[Test]
+		public void CacheExpiresWhenCrossingSecond()
+		{
+			StringWriter sw = new StringWriter();
+			FormatterOne f1 = new FormatterOne();
+			FormatterOne f2 = new FormatterOne();
+			DateTime dt1 = DateTime.Today.AddMinutes(1);
+			DateTime dt2 = dt1.AddMilliseconds(1100);
+			f1.FormatDate(dt1, sw);
+			f2.FormatDate(dt2, sw);
+			Assert.AreEqual(2, FormatterOne.invocations);
+		}
 
-        [Test]
-        public void CacheIsLocalToSubclass()
-        {
-            StringWriter sw = new StringWriter();
-            FormatterOne f1 = new FormatterOne();
-            FormatterTwo f2 = new FormatterTwo();
-            DateTime dt1 = DateTime.Today.AddMinutes(10);
-            f1.FormatDate(dt1, sw);
-            f2.FormatDate(dt1, sw);
-            Assert.AreEqual(2, FormatterOne.invocations);
-        }
-    }
+		[Test]
+		public void CacheIsLocalToSubclass()
+		{
+			StringWriter sw = new StringWriter();
+			FormatterOne f1 = new FormatterOne();
+			FormatterTwo f2 = new FormatterTwo();
+			DateTime dt1 = DateTime.Today.AddMinutes(10);
+			f1.FormatDate(dt1, sw);
+			f2.FormatDate(dt1, sw);
+			Assert.AreEqual(2, FormatterOne.invocations);
+		}
+	}
 
-    internal class FormatterOne : AbsoluteTimeDateFormatter
-    {
-        internal static int invocations = 0;
+	internal class FormatterOne : AbsoluteTimeDateFormatter
+	{
+		internal static int invocations = 0;
 
-        override protected void FormatDateWithoutMillis(DateTime dateToFormat,
-                                                        StringBuilder buffer)
-        {
-            invocations++;
-        }
-        
-    }
+		override protected void FormatDateWithoutMillis(DateTime dateToFormat,
+														StringBuilder buffer)
+		{
+			invocations++;
+		}
 
-    internal class FormatterTwo : FormatterOne
-    {
-    }
+	}
+
+	internal class FormatterTwo : FormatterOne
+	{
+	}
 }
diff --git a/tests/src/Filter/FilterTest.cs b/tests/src/Filter/FilterTest.cs
index ea9a3d1..c0ff4ff 100644
--- a/tests/src/Filter/FilterTest.cs
+++ b/tests/src/Filter/FilterTest.cs
@@ -32,89 +32,89 @@
 
 namespace log4net.Tests.Filter
 {
-    [TestFixture]
-    public class FilterTest
-    {
-        [Test]
-        public void FilterConfigurationTest()
-        {
-            XmlDocument log4netConfig = new XmlDocument();
-            #region Load log4netConfig
-            log4netConfig.LoadXml(@"
-            <log4net>
-            <appender name=""MemoryAppender"" type=""log4net.Appender.MemoryAppender, log4net"">
-                <filter type=""log4net.Tests.Filter.MultiplePropertyFilter, log4net.Tests"">
-                    <condition>
-                        <key value=""ABC"" />
-                        <stringToMatch value=""123"" />
-                    </condition>
-                    <condition>
-                        <key value=""DEF"" />
-                        <stringToMatch value=""456"" />
-                    </condition>
-                </filter>
-            </appender>
-            <root>
-                <level value=""ALL"" />
-                <appender-ref ref=""MemoryAppender"" />
-            </root>
-            </log4net>");
-            #endregion
+	[TestFixture]
+	public class FilterTest
+	{
+		[Test]
+		public void FilterConfigurationTest()
+		{
+			XmlDocument log4netConfig = new XmlDocument();
+			#region Load log4netConfig
+			log4netConfig.LoadXml(@"
+			<log4net>
+			<appender name=""MemoryAppender"" type=""log4net.Appender.MemoryAppender, log4net"">
+				<filter type=""log4net.Tests.Filter.MultiplePropertyFilter, log4net.Tests"">
+					<condition>
+						<key value=""ABC"" />
+						<stringToMatch value=""123"" />
+					</condition>
+					<condition>
+						<key value=""DEF"" />
+						<stringToMatch value=""456"" />
+					</condition>
+				</filter>
+			</appender>
+			<root>
+				<level value=""ALL"" />
+				<appender-ref ref=""MemoryAppender"" />
+			</root>
+			</log4net>");
+			#endregion
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
 
-            IAppender[] appenders = LogManager.GetRepository(rep.Name).GetAppenders();
-            Assert.IsTrue(appenders.Length == 1);
+			IAppender[] appenders = LogManager.GetRepository(rep.Name).GetAppenders();
+			Assert.IsTrue(appenders.Length == 1);
 
-            IAppender appender = Array.Find(appenders, delegate(IAppender a) {
-                    return a.Name == "MemoryAppender";
-                });
-            Assert.IsNotNull(appender);
+			IAppender appender = Array.Find(appenders, delegate(IAppender a) {
+					return a.Name == "MemoryAppender";
+				});
+			Assert.IsNotNull(appender);
 
-            MultiplePropertyFilter multiplePropertyFilter = 
-                ((AppenderSkeleton)appender).FilterHead as MultiplePropertyFilter;
+			MultiplePropertyFilter multiplePropertyFilter =
+				((AppenderSkeleton)appender).FilterHead as MultiplePropertyFilter;
 
-            MultiplePropertyFilter.Condition[] conditions = multiplePropertyFilter.GetConditions();
-            Assert.AreEqual(2, conditions.Length);
-            Assert.AreEqual("ABC", conditions[0].Key);
-            Assert.AreEqual("123", conditions[0].StringToMatch);
-            Assert.AreEqual("DEF", conditions[1].Key);
-            Assert.AreEqual("456", conditions[1].StringToMatch);
-        }
-    }
+			MultiplePropertyFilter.Condition[] conditions = multiplePropertyFilter.GetConditions();
+			Assert.AreEqual(2, conditions.Length);
+			Assert.AreEqual("ABC", conditions[0].Key);
+			Assert.AreEqual("123", conditions[0].StringToMatch);
+			Assert.AreEqual("DEF", conditions[1].Key);
+			Assert.AreEqual("456", conditions[1].StringToMatch);
+		}
+	}
 
-    public class MultiplePropertyFilter : FilterSkeleton
-    {
-        private readonly List<Condition> _conditions = new List<Condition>();
+	public class MultiplePropertyFilter : FilterSkeleton
+	{
+		private readonly List<Condition> _conditions = new List<Condition>();
 
-        public override FilterDecision Decide(LoggingEvent loggingEvent)
-        {
-            return FilterDecision.Accept;
-        }
+		public override FilterDecision Decide(LoggingEvent loggingEvent)
+		{
+			return FilterDecision.Accept;
+		}
 
-        public Condition[] GetConditions()
-        {
-            return _conditions.ToArray();
-        }
+		public Condition[] GetConditions()
+		{
+			return _conditions.ToArray();
+		}
 
-        public void AddCondition(Condition condition)
-        {
-            _conditions.Add(condition);
-        }
-        
-        public class Condition
-        {
-            private string key, stringToMatch;
-            public string Key {
-                get { return key; }
-                set { key = value; }
-            }
-            public string StringToMatch {
-                get { return stringToMatch; }
-                set { stringToMatch = value; }
-            }
-        }
-    }
+		public void AddCondition(Condition condition)
+		{
+			_conditions.Add(condition);
+		}
+
+		public class Condition
+		{
+			private string key, stringToMatch;
+			public string Key {
+				get { return key; }
+				set { key = value; }
+			}
+			public string StringToMatch {
+				get { return stringToMatch; }
+				set { stringToMatch = value; }
+			}
+		}
+	}
 }
 #endif
diff --git a/tests/src/Hierarchy/Hierarchy.cs b/tests/src/Hierarchy/Hierarchy.cs
index 3755d7b..8c83290 100644
--- a/tests/src/Hierarchy/Hierarchy.cs
+++ b/tests/src/Hierarchy/Hierarchy.cs
@@ -30,140 +30,140 @@
 
 namespace log4net.Tests.Hierarchy
 {
-    [TestFixture]
-    public class Hierarchy
-    {
-        [Test]
-        public void SetRepositoryPropertiesInConfigFile()
-        {
-            // LOG4NET-53: Allow repository properties to be set in the config file
-            XmlDocument log4netConfig = new XmlDocument();
-            log4netConfig.LoadXml(@"
-                <log4net>
-                  <property>
-                    <key value=""two-plus-two"" />
-                    <value value=""4"" />
-                  </property>
-                  <appender name=""StringAppender"" type=""log4net.Tests.Appender.StringAppender, log4net.Tests"">
-                    <layout type=""log4net.Layout.SimpleLayout"" />
-                  </appender>
-                  <root>
-                    <level value=""ALL"" />
-                    <appender-ref ref=""StringAppender"" />
-                  </root>
-                </log4net>");
+	[TestFixture]
+	public class Hierarchy
+	{
+		[Test]
+		public void SetRepositoryPropertiesInConfigFile()
+		{
+			// LOG4NET-53: Allow repository properties to be set in the config file
+			XmlDocument log4netConfig = new XmlDocument();
+			log4netConfig.LoadXml(@"
+				<log4net>
+				  <property>
+					<key value=""two-plus-two"" />
+					<value value=""4"" />
+				  </property>
+				  <appender name=""StringAppender"" type=""log4net.Tests.Appender.StringAppender, log4net.Tests"">
+					<layout type=""log4net.Layout.SimpleLayout"" />
+				  </appender>
+				  <root>
+					<level value=""ALL"" />
+					<appender-ref ref=""StringAppender"" />
+				  </root>
+				</log4net>");
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
 
-            Assert.AreEqual("4", rep.Properties["two-plus-two"]);
-            Assert.IsNull(rep.Properties["one-plus-one"]);
-        }
+			Assert.AreEqual("4", rep.Properties["two-plus-two"]);
+			Assert.IsNull(rep.Properties["one-plus-one"]);
+		}
 
-        [Test]
-        public void AddingMultipleAppenders()
-        {
-            CountingAppender alpha = new CountingAppender();
-            CountingAppender beta = new CountingAppender();
+		[Test]
+		public void AddingMultipleAppenders()
+		{
+			CountingAppender alpha = new CountingAppender();
+			CountingAppender beta = new CountingAppender();
 
-            Repository.Hierarchy.Hierarchy hierarchy = 
-                (Repository.Hierarchy.Hierarchy)Utils.GetRepository();
+			Repository.Hierarchy.Hierarchy hierarchy =
+				(Repository.Hierarchy.Hierarchy)Utils.GetRepository();
 
-            hierarchy.Root.AddAppender(alpha);
-            hierarchy.Root.AddAppender(beta);
-            hierarchy.Configured = true;
+			hierarchy.Root.AddAppender(alpha);
+			hierarchy.Root.AddAppender(beta);
+			hierarchy.Configured = true;
 
-            ILog log = LogManager.GetLogger(GetType());
-            log.Debug("Hello World");
+			ILog log = LogManager.GetLogger(GetType());
+			log.Debug("Hello World");
 
-            Assert.AreEqual(1, alpha.Counter);
-            Assert.AreEqual(1, beta.Counter);
-        }
+			Assert.AreEqual(1, alpha.Counter);
+			Assert.AreEqual(1, beta.Counter);
+		}
 
-        [Test]
-        public void AddingMultipleAppenders2()
-        {
-            CountingAppender alpha = new CountingAppender();
-            CountingAppender beta = new CountingAppender();
+		[Test]
+		public void AddingMultipleAppenders2()
+		{
+			CountingAppender alpha = new CountingAppender();
+			CountingAppender beta = new CountingAppender();
 
 #if NETSTANDARD1_3
-            BasicConfigurator.Configure(Utils.GetRepository(), alpha, beta);
+			BasicConfigurator.Configure(Utils.GetRepository(), alpha, beta);
 #else
-            BasicConfigurator.Configure(alpha, beta);
+			BasicConfigurator.Configure(alpha, beta);
 #endif
 
-            ILog log = LogManager.GetLogger(GetType());
-            log.Debug("Hello World");
+			ILog log = LogManager.GetLogger(GetType());
+			log.Debug("Hello World");
 
-            Assert.AreEqual(1, alpha.Counter);
-            Assert.AreEqual(1, beta.Counter);
-        }
+			Assert.AreEqual(1, alpha.Counter);
+			Assert.AreEqual(1, beta.Counter);
+		}
 
-        [Test]
+		[Test]
 	// LOG4NET-343
-        public void LoggerNameCanConsistOfASingleDot()
-        {
-            XmlDocument log4netConfig = new XmlDocument();
-            log4netConfig.LoadXml(@"
-                <log4net>
-                  <appender name=""StringAppender"" type=""log4net.Tests.Appender.StringAppender, log4net.Tests"">
-                    <layout type=""log4net.Layout.SimpleLayout"" />
-                  </appender>
-                  <root>
-                    <level value=""ALL"" />
-                    <appender-ref ref=""StringAppender"" />
-                  </root>
-                  <logger name=""."">
-                    <level value=""WARN"" />
-                  </logger>
-                </log4net>");
+		public void LoggerNameCanConsistOfASingleDot()
+		{
+			XmlDocument log4netConfig = new XmlDocument();
+			log4netConfig.LoadXml(@"
+				<log4net>
+				  <appender name=""StringAppender"" type=""log4net.Tests.Appender.StringAppender, log4net.Tests"">
+					<layout type=""log4net.Layout.SimpleLayout"" />
+				  </appender>
+				  <root>
+					<level value=""ALL"" />
+					<appender-ref ref=""StringAppender"" />
+				  </root>
+				  <logger name=""."">
+					<level value=""WARN"" />
+				  </logger>
+				</log4net>");
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
-        }
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
+		}
 
-        [Test]
-        public void LoggerNameCanConsistOfASingleNonDot()
-        {
-            XmlDocument log4netConfig = new XmlDocument();
-            log4netConfig.LoadXml(@"
-                <log4net>
-                  <appender name=""StringAppender"" type=""log4net.Tests.Appender.StringAppender, log4net.Tests"">
-                    <layout type=""log4net.Layout.SimpleLayout"" />
-                  </appender>
-                  <root>
-                    <level value=""ALL"" />
-                    <appender-ref ref=""StringAppender"" />
-                  </root>
-                  <logger name=""L"">
-                    <level value=""WARN"" />
-                  </logger>
-                </log4net>");
+		[Test]
+		public void LoggerNameCanConsistOfASingleNonDot()
+		{
+			XmlDocument log4netConfig = new XmlDocument();
+			log4netConfig.LoadXml(@"
+				<log4net>
+				  <appender name=""StringAppender"" type=""log4net.Tests.Appender.StringAppender, log4net.Tests"">
+					<layout type=""log4net.Layout.SimpleLayout"" />
+				  </appender>
+				  <root>
+					<level value=""ALL"" />
+					<appender-ref ref=""StringAppender"" />
+				  </root>
+				  <logger name=""L"">
+					<level value=""WARN"" />
+				  </logger>
+				</log4net>");
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
-        }
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
+		}
 
-        [Test]
-        public void LoggerNameCanContainSequenceOfDots()
-        {
-            XmlDocument log4netConfig = new XmlDocument();
-            log4netConfig.LoadXml(@"
-                <log4net>
-                  <appender name=""StringAppender"" type=""log4net.Tests.Appender.StringAppender, log4net.Tests"">
-                    <layout type=""log4net.Layout.SimpleLayout"" />
-                  </appender>
-                  <root>
-                    <level value=""ALL"" />
-                    <appender-ref ref=""StringAppender"" />
-                  </root>
-                  <logger name=""L..M"">
-                    <level value=""WARN"" />
-                  </logger>
-                </log4net>");
+		[Test]
+		public void LoggerNameCanContainSequenceOfDots()
+		{
+			XmlDocument log4netConfig = new XmlDocument();
+			log4netConfig.LoadXml(@"
+				<log4net>
+				  <appender name=""StringAppender"" type=""log4net.Tests.Appender.StringAppender, log4net.Tests"">
+					<layout type=""log4net.Layout.SimpleLayout"" />
+				  </appender>
+				  <root>
+					<level value=""ALL"" />
+					<appender-ref ref=""StringAppender"" />
+				  </root>
+				  <logger name=""L..M"">
+					<level value=""WARN"" />
+				  </logger>
+				</log4net>");
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
-        }
-    }
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
+		}
+	}
 }
diff --git a/tests/src/Hierarchy/Logger.cs b/tests/src/Hierarchy/Logger.cs
index 776dbd6..7335920 100644
--- a/tests/src/Hierarchy/Logger.cs
+++ b/tests/src/Hierarchy/Logger.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/tests/src/Hierarchy/XmlHierarchyConfiguratorTest.cs b/tests/src/Hierarchy/XmlHierarchyConfiguratorTest.cs
index 05f1586..6000366 100644
--- a/tests/src/Hierarchy/XmlHierarchyConfiguratorTest.cs
+++ b/tests/src/Hierarchy/XmlHierarchyConfiguratorTest.cs
@@ -27,58 +27,58 @@
 
 namespace log4net.Tests.Hierarchy
 {
-    [TestFixture]
-    public class XmlHierarchyConfiguratorTest
-    {
+	[TestFixture]
+	public class XmlHierarchyConfiguratorTest
+	{
 
 	private string testProp;
 
 	public string TestProp
 	{
-	    set
-	    {
+		set
+		{
 		testProp = value;
-	    }
-	    get
-	    {
+		}
+		get
+		{
 		return testProp;
-	    }
+		}
 	}
 
 #if !NETSTANDARD1_3 // TODO write replacement test
 	[Test][Platform(Include="Win")]
 	public void EnvironmentOnWindowsIsCaseInsensitive()
 	{
-	    SetTestPropWithPath();	    
-	    Assert.AreNotEqual("Path=", TestProp);
+		SetTestPropWithPath();
+		Assert.AreNotEqual("Path=", TestProp);
 	}
 
 	[Test][Platform(Include="Unix")]
 	public void EnvironmentOnUnixIsCaseSensitive()
 	{
-	    SetTestPropWithPath();	    
-	    Assert.AreEqual("Path=", TestProp);
+		SetTestPropWithPath();
+		Assert.AreEqual("Path=", TestProp);
 	}
 #endif
 
 	private void SetTestPropWithPath()
 	{
-	    XmlDocument doc = new XmlDocument();
-	    XmlElement el = doc.CreateElement("param");
-	    el.SetAttribute("name", "TestProp");
-	    el.SetAttribute("value", "Path=${path}");
-	    new TestConfigurator().PublicSetParameter(el, this);
+		XmlDocument doc = new XmlDocument();
+		XmlElement el = doc.CreateElement("param");
+		el.SetAttribute("name", "TestProp");
+		el.SetAttribute("value", "Path=${path}");
+		new TestConfigurator().PublicSetParameter(el, this);
 	}
 
 	// workaround for SetParameter being protected
 	private class TestConfigurator : XmlHierarchyConfigurator {
-	    public TestConfigurator() : base(null)
-	    {
-	    }
-	    public void PublicSetParameter(XmlElement element, object target) 
-	    {
+		public TestConfigurator() : base(null)
+		{
+		}
+		public void PublicSetParameter(XmlElement element, object target)
+		{
 		SetParameter(element, target);
-	    }
+		}
 	}
-    }
+	}
 }
\ No newline at end of file
diff --git a/tests/src/Layout/DynamicPatternLayoutTest.cs b/tests/src/Layout/DynamicPatternLayoutTest.cs
index ee79a0a..33aa9e5 100644
--- a/tests/src/Layout/DynamicPatternLayoutTest.cs
+++ b/tests/src/Layout/DynamicPatternLayoutTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -22,16 +22,16 @@
 using NUnit.Framework;
 
 namespace log4net.Tests.Layout {
-    /// <summary>
-    /// Used for internal unit testing the <see cref="DynamicPatternLayout"/> class.
-    /// </summary>
-    public class DynamicPatternLayoutTest : PatternLayoutTest {
-        protected override PatternLayout NewPatternLayout() {
-            return new DynamicPatternLayout();
-        }
+	/// <summary>
+	/// Used for internal unit testing the <see cref="DynamicPatternLayout"/> class.
+	/// </summary>
+	public class DynamicPatternLayoutTest : PatternLayoutTest {
+		protected override PatternLayout NewPatternLayout() {
+			return new DynamicPatternLayout();
+		}
 
-        protected override PatternLayout NewPatternLayout(string pattern) {
-            return new DynamicPatternLayout(pattern);
-        }
-    }
+		protected override PatternLayout NewPatternLayout(string pattern) {
+			return new DynamicPatternLayout(pattern);
+		}
+	}
 }
diff --git a/tests/src/Layout/PatternLayoutTest.cs b/tests/src/Layout/PatternLayoutTest.cs
index 49ced68..68e0a1e 100644
--- a/tests/src/Layout/PatternLayoutTest.cs
+++ b/tests/src/Layout/PatternLayoutTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -56,28 +56,28 @@
 		}
 
 
-        [TearDown]
-        public void TearDown() {
+		[TearDown]
+		public void TearDown() {
 			Utils.RemovePropertyFromAllContexts();
 			// restore previous culture
 			System.Threading.Thread.CurrentThread.CurrentCulture = _currentCulture;
 			System.Threading.Thread.CurrentThread.CurrentUICulture = _currentUICulture;
-        }
+		}
 #endif
 
-        protected virtual PatternLayout NewPatternLayout() {
-            return new PatternLayout();
-        }
+		protected virtual PatternLayout NewPatternLayout() {
+			return new PatternLayout();
+		}
 
-        protected virtual PatternLayout NewPatternLayout(string pattern) {
-            return new PatternLayout(pattern);
-        }
+		protected virtual PatternLayout NewPatternLayout(string pattern) {
+			return new PatternLayout(pattern);
+		}
 
-        [Test]
+		[Test]
 		public void TestThreadPropertiesPattern()
 		{
 			StringAppender stringAppender = new StringAppender();
-            stringAppender.Layout = NewPatternLayout("%property{" + Utils.PROPERTY_KEY + "}");
+			stringAppender.Layout = NewPatternLayout("%property{" + Utils.PROPERTY_KEY + "}");
 
 			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
 			BasicConfigurator.Configure(rep, stringAppender);
@@ -102,30 +102,30 @@
 		}
 
 #if NETSTANDARD1_3
-        [Test, Ignore("System.Diagnostics.StackTrace isn't fully implemented on NETSTANDARD1_3")]
+		[Test, Ignore("System.Diagnostics.StackTrace isn't fully implemented on NETSTANDARD1_3")]
 #else
-        [Test]
+		[Test]
 #endif
-        public void TestStackTracePattern()
-        {
-            StringAppender stringAppender = new StringAppender();
-            stringAppender.Layout = NewPatternLayout("%stacktrace{2}");
+		public void TestStackTracePattern()
+		{
+			StringAppender stringAppender = new StringAppender();
+			stringAppender.Layout = NewPatternLayout("%stacktrace{2}");
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            BasicConfigurator.Configure(rep, stringAppender);
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			BasicConfigurator.Configure(rep, stringAppender);
 
-            ILog log1 = LogManager.GetLogger(rep.Name, "TestStackTracePattern");
+			ILog log1 = LogManager.GetLogger(rep.Name, "TestStackTracePattern");
 
-            log1.Info("TestMessage");
-            StringAssert.EndsWith("PatternLayoutTest.TestStackTracePattern", stringAppender.GetString(), "stack trace value set");
-            stringAppender.Reset();
-        }
+			log1.Info("TestMessage");
+			StringAssert.EndsWith("PatternLayoutTest.TestStackTracePattern", stringAppender.GetString(), "stack trace value set");
+			stringAppender.Reset();
+		}
 
 		[Test]
 		public void TestGlobalPropertiesPattern()
 		{
 			StringAppender stringAppender = new StringAppender();
-            stringAppender.Layout = NewPatternLayout("%property{" + Utils.PROPERTY_KEY + "}");
+			stringAppender.Layout = NewPatternLayout("%property{" + Utils.PROPERTY_KEY + "}");
 
 			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
 			BasicConfigurator.Configure(rep, stringAppender);
@@ -171,147 +171,147 @@
 			stringAppender.Reset();
 		}
 
-        [Test]
-        public void NamedPatternConverterWithoutPrecisionShouldReturnFullName()
-        {
-            StringAppender stringAppender = new StringAppender();
-            PatternLayout layout = NewPatternLayout();
-            layout.AddConverter("message-as-name", typeof(MessageAsNamePatternConverter));
-            layout.ConversionPattern = "%message-as-name";
-            layout.ActivateOptions();
-            stringAppender.Layout = layout;
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            BasicConfigurator.Configure(rep, stringAppender);
-            ILog log1 = LogManager.GetLogger(rep.Name, "TestAddingCustomPattern");
+		[Test]
+		public void NamedPatternConverterWithoutPrecisionShouldReturnFullName()
+		{
+			StringAppender stringAppender = new StringAppender();
+			PatternLayout layout = NewPatternLayout();
+			layout.AddConverter("message-as-name", typeof(MessageAsNamePatternConverter));
+			layout.ConversionPattern = "%message-as-name";
+			layout.ActivateOptions();
+			stringAppender.Layout = layout;
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			BasicConfigurator.Configure(rep, stringAppender);
+			ILog log1 = LogManager.GetLogger(rep.Name, "TestAddingCustomPattern");
 
-            log1.Info("NoDots");
-            Assert.AreEqual("NoDots", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info("NoDots");
+			Assert.AreEqual("NoDots", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info("One.Dot");
-            Assert.AreEqual("One.Dot", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info("One.Dot");
+			Assert.AreEqual("One.Dot", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info("Tw.o.Dots");
-            Assert.AreEqual("Tw.o.Dots", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info("Tw.o.Dots");
+			Assert.AreEqual("Tw.o.Dots", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info("TrailingDot.");
-            Assert.AreEqual("TrailingDot.", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info("TrailingDot.");
+			Assert.AreEqual("TrailingDot.", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info(".LeadingDot");
-            Assert.AreEqual(".LeadingDot", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info(".LeadingDot");
+			Assert.AreEqual(".LeadingDot", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            // empty string and other evil combinations as tests for of-by-one mistakes in index calculations
-            log1.Info(string.Empty);
-            Assert.AreEqual(string.Empty, stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			// empty string and other evil combinations as tests for of-by-one mistakes in index calculations
+			log1.Info(string.Empty);
+			Assert.AreEqual(string.Empty, stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info(".");
-            Assert.AreEqual(".", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info(".");
+			Assert.AreEqual(".", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info("x");
-            Assert.AreEqual("x", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
-        }
+			log1.Info("x");
+			Assert.AreEqual("x", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
+		}
 
-        [Test]
-        public void NamedPatternConverterWithPrecision1ShouldStripLeadingStuffIfPresent()
-        {
-            StringAppender stringAppender = new StringAppender();
-            PatternLayout layout = NewPatternLayout();
-            layout.AddConverter("message-as-name", typeof(MessageAsNamePatternConverter));
-            layout.ConversionPattern = "%message-as-name{1}";
-            layout.ActivateOptions();
-            stringAppender.Layout = layout;
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            BasicConfigurator.Configure(rep, stringAppender);
-            ILog log1 = LogManager.GetLogger(rep.Name, "TestAddingCustomPattern");
+		[Test]
+		public void NamedPatternConverterWithPrecision1ShouldStripLeadingStuffIfPresent()
+		{
+			StringAppender stringAppender = new StringAppender();
+			PatternLayout layout = NewPatternLayout();
+			layout.AddConverter("message-as-name", typeof(MessageAsNamePatternConverter));
+			layout.ConversionPattern = "%message-as-name{1}";
+			layout.ActivateOptions();
+			stringAppender.Layout = layout;
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			BasicConfigurator.Configure(rep, stringAppender);
+			ILog log1 = LogManager.GetLogger(rep.Name, "TestAddingCustomPattern");
 
-            log1.Info("NoDots");
-            Assert.AreEqual("NoDots", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info("NoDots");
+			Assert.AreEqual("NoDots", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info("One.Dot");
-            Assert.AreEqual("Dot", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info("One.Dot");
+			Assert.AreEqual("Dot", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info("Tw.o.Dots");
-            Assert.AreEqual("Dots", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info("Tw.o.Dots");
+			Assert.AreEqual("Dots", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info("TrailingDot.");
-            Assert.AreEqual("TrailingDot.", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info("TrailingDot.");
+			Assert.AreEqual("TrailingDot.", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info(".LeadingDot");
-            Assert.AreEqual("LeadingDot", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info(".LeadingDot");
+			Assert.AreEqual("LeadingDot", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            // empty string and other evil combinations as tests for of-by-one mistakes in index calculations
-            log1.Info(string.Empty);
-            Assert.AreEqual(string.Empty, stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			// empty string and other evil combinations as tests for of-by-one mistakes in index calculations
+			log1.Info(string.Empty);
+			Assert.AreEqual(string.Empty, stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info("x");
-            Assert.AreEqual("x", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info("x");
+			Assert.AreEqual("x", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info(".");
-            Assert.AreEqual(".", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
-        }
+			log1.Info(".");
+			Assert.AreEqual(".", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
+		}
 
-        [Test]
-        public void NamedPatternConverterWithPrecision2ShouldStripLessLeadingStuffIfPresent() {
-            StringAppender stringAppender = new StringAppender();
-            PatternLayout layout = NewPatternLayout();
-            layout.AddConverter("message-as-name", typeof(MessageAsNamePatternConverter));
-            layout.ConversionPattern = "%message-as-name{2}";
-            layout.ActivateOptions();
-            stringAppender.Layout = layout;
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            BasicConfigurator.Configure(rep, stringAppender);
-            ILog log1 = LogManager.GetLogger(rep.Name, "TestAddingCustomPattern");
+		[Test]
+		public void NamedPatternConverterWithPrecision2ShouldStripLessLeadingStuffIfPresent() {
+			StringAppender stringAppender = new StringAppender();
+			PatternLayout layout = NewPatternLayout();
+			layout.AddConverter("message-as-name", typeof(MessageAsNamePatternConverter));
+			layout.ConversionPattern = "%message-as-name{2}";
+			layout.ActivateOptions();
+			stringAppender.Layout = layout;
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			BasicConfigurator.Configure(rep, stringAppender);
+			ILog log1 = LogManager.GetLogger(rep.Name, "TestAddingCustomPattern");
 
-            log1.Info("NoDots");
-            Assert.AreEqual("NoDots", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info("NoDots");
+			Assert.AreEqual("NoDots", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info("One.Dot");
-            Assert.AreEqual("One.Dot", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info("One.Dot");
+			Assert.AreEqual("One.Dot", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info("Tw.o.Dots");
-            Assert.AreEqual("o.Dots", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info("Tw.o.Dots");
+			Assert.AreEqual("o.Dots", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info("TrailingDot.");
-            Assert.AreEqual("TrailingDot.", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info("TrailingDot.");
+			Assert.AreEqual("TrailingDot.", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info(".LeadingDot");
-            Assert.AreEqual("LeadingDot", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info(".LeadingDot");
+			Assert.AreEqual("LeadingDot", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            // empty string and other evil combinations as tests for of-by-one mistakes in index calculations
-            log1.Info(string.Empty);
-            Assert.AreEqual(string.Empty, stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			// empty string and other evil combinations as tests for of-by-one mistakes in index calculations
+			log1.Info(string.Empty);
+			Assert.AreEqual(string.Empty, stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info("x");
-            Assert.AreEqual("x", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
+			log1.Info("x");
+			Assert.AreEqual("x", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
 
-            log1.Info(".");
-            Assert.AreEqual(".", stringAppender.GetString(), "%message-as-name not registered");
-            stringAppender.Reset();
-        }
+			log1.Info(".");
+			Assert.AreEqual(".", stringAppender.GetString(), "%message-as-name not registered");
+			stringAppender.Reset();
+		}
 
-        /// <summary>
+		/// <summary>
 		/// Converter to include event message
 		/// </summary>
 		private class TestMessagePatternConverter : PatternLayoutConverter
@@ -348,12 +348,12 @@
 			stringAppender.Reset();
 		}
 
-        private class MessageAsNamePatternConverter : NamedPatternConverter
-        {
-            protected override string GetFullyQualifiedName(LoggingEvent loggingEvent)
-            {
-                return loggingEvent.MessageObject.ToString();
-            }
-        }
-    }
+		private class MessageAsNamePatternConverter : NamedPatternConverter
+		{
+			protected override string GetFullyQualifiedName(LoggingEvent loggingEvent)
+			{
+				return loggingEvent.MessageObject.ToString();
+			}
+		}
+	}
 }
\ No newline at end of file
diff --git a/tests/src/Layout/XmlLayoutTest.cs b/tests/src/Layout/XmlLayoutTest.cs
index ee4dee2..9918ac7 100644
--- a/tests/src/Layout/XmlLayoutTest.cs
+++ b/tests/src/Layout/XmlLayoutTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -84,23 +84,23 @@
 		{
 			return String.Format("<event logger=\"TestLogger\" timestamp=\"{0}\" level=\"INFO\" thread=\"TestThread\" domain=\"Tests\" identity=\"TestRunner\" username=\"TestRunner\"><message>{1}</message></event>" + Environment.NewLine,
 #if NET_2_0 || MONO_2_0 || MONO_3_5 || MONO_4_0 || NETSTANDARD1_3
-			                     XmlConvert.ToString(DateTime.Today, XmlDateTimeSerializationMode.Local),
+								 XmlConvert.ToString(DateTime.Today, XmlDateTimeSerializationMode.Local),
 #else
-			                     XmlConvert.ToString(DateTime.Today),
+								 XmlConvert.ToString(DateTime.Today),
 #endif
-			                     message);
+								 message);
 		}
 
 		private static string CreateEventNode(string key, string value)
 		{
 			return String.Format("<event logger=\"TestLogger\" timestamp=\"{0}\" level=\"INFO\" thread=\"TestThread\" domain=\"Tests\" identity=\"TestRunner\" username=\"TestRunner\"><message>Test message</message><properties><data name=\"{1}\" value=\"{2}\" /></properties></event>" + Environment.NewLine,
 #if NET_2_0 || MONO_2_0 || MONO_3_5 || MONO_4_0 || NETSTANDARD1_3
-			                     XmlConvert.ToString(DateTime.Today, XmlDateTimeSerializationMode.Local),
+								 XmlConvert.ToString(DateTime.Today, XmlDateTimeSerializationMode.Local),
 #else
-			                     XmlConvert.ToString(DateTime.Today),
+								 XmlConvert.ToString(DateTime.Today),
 #endif
-			                     key,
-			                     value);
+								 key,
+								 value);
 		}
 
 		[Test]
@@ -306,67 +306,67 @@
 		}
 
 #if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
-        [Test]
-        public void BracketsInStackTracesKeepLogWellFormed() {
-            XmlLayout layout = new XmlLayout();
-            StringAppender stringAppender = new StringAppender();
-            stringAppender.Layout = layout;
+		[Test]
+		public void BracketsInStackTracesKeepLogWellFormed() {
+			XmlLayout layout = new XmlLayout();
+			StringAppender stringAppender = new StringAppender();
+			stringAppender.Layout = layout;
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            BasicConfigurator.Configure(rep, stringAppender);
-            ILog log1 = LogManager.GetLogger(rep.Name, "TestLogger");
-            Action<int> bar = foo => { 
-                try {
-                    throw new NullReferenceException();
-                } catch (Exception ex) {
-                    log1.Error(string.Format("Error {0}", foo), ex);
-                }
-            };
-            bar(42);
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			BasicConfigurator.Configure(rep, stringAppender);
+			ILog log1 = LogManager.GetLogger(rep.Name, "TestLogger");
+			Action<int> bar = foo => {
+				try {
+					throw new NullReferenceException();
+				} catch (Exception ex) {
+					log1.Error(string.Format("Error {0}", foo), ex);
+				}
+			};
+			bar(42);
 
-            // really only asserts there is no exception
-            var loggedDoc = new XmlDocument();
-            loggedDoc.LoadXml(stringAppender.GetString());
-        }
+			// really only asserts there is no exception
+			var loggedDoc = new XmlDocument();
+			loggedDoc.LoadXml(stringAppender.GetString());
+		}
 
-        [Test]
-        public void BracketsInStackTracesAreEscapedProperly() {
-            XmlLayout layout = new XmlLayout();
-            StringAppender stringAppender = new StringAppender();
-            stringAppender.Layout = layout;
+		[Test]
+		public void BracketsInStackTracesAreEscapedProperly() {
+			XmlLayout layout = new XmlLayout();
+			StringAppender stringAppender = new StringAppender();
+			stringAppender.Layout = layout;
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            BasicConfigurator.Configure(rep, stringAppender);
-            ILog log1 = LogManager.GetLogger(rep.Name, "TestLogger");
-            Action<int> bar = foo => {
-                try {
-                    throw new NullReferenceException();
-                }
-                catch (Exception ex) {
-                    log1.Error(string.Format("Error {0}", foo), ex);
-                }
-            };
-            bar(42);
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			BasicConfigurator.Configure(rep, stringAppender);
+			ILog log1 = LogManager.GetLogger(rep.Name, "TestLogger");
+			Action<int> bar = foo => {
+				try {
+					throw new NullReferenceException();
+				}
+				catch (Exception ex) {
+					log1.Error(string.Format("Error {0}", foo), ex);
+				}
+			};
+			bar(42);
 
-            var log = stringAppender.GetString();
+			var log = stringAppender.GetString();
 #if NETSTANDARD1_3
-            var startOfExceptionText = log.IndexOf("<exception>", StringComparison.Ordinal) + 11;
-            var endOfExceptionText = log.IndexOf("</exception>", StringComparison.Ordinal);
+			var startOfExceptionText = log.IndexOf("<exception>", StringComparison.Ordinal) + 11;
+			var endOfExceptionText = log.IndexOf("</exception>", StringComparison.Ordinal);
 #else
-            var startOfExceptionText = log.IndexOf("<exception>", StringComparison.InvariantCulture) + 11;
-            var endOfExceptionText = log.IndexOf("</exception>", StringComparison.InvariantCulture);
+			var startOfExceptionText = log.IndexOf("<exception>", StringComparison.InvariantCulture) + 11;
+			var endOfExceptionText = log.IndexOf("</exception>", StringComparison.InvariantCulture);
 #endif
-            var sub = log.Substring(startOfExceptionText, endOfExceptionText - startOfExceptionText);
-            if (sub.StartsWith("<![CDATA["))
-            {
-                StringAssert.EndsWith("]]>", sub);
-            }
-            else
-            {
-                StringAssert.DoesNotContain("<", sub);
-                StringAssert.DoesNotContain(">", sub);
-            }
-        }
+			var sub = log.Substring(startOfExceptionText, endOfExceptionText - startOfExceptionText);
+			if (sub.StartsWith("<![CDATA["))
+			{
+				StringAssert.EndsWith("]]>", sub);
+			}
+			else
+			{
+				StringAssert.DoesNotContain("<", sub);
+				StringAssert.DoesNotContain(">", sub);
+			}
+		}
 #endif
 	}
 }
\ No newline at end of file
diff --git a/tests/src/LoggerRepository/ConfigurationMessages.cs b/tests/src/LoggerRepository/ConfigurationMessages.cs
index e9a8877..d70de4e 100644
--- a/tests/src/LoggerRepository/ConfigurationMessages.cs
+++ b/tests/src/LoggerRepository/ConfigurationMessages.cs
@@ -31,71 +31,71 @@
 
 namespace log4net.Tests.LoggerRepository
 {
-    [TestFixture]
-    public class ConfigurationMessages
-    {
-        [Test]
-        public void ConfigurationMessagesTest()
-        {
-            try {
-                LogLog.EmitInternalMessages = false;
-                LogLog.InternalDebugging = true;
+	[TestFixture]
+	public class ConfigurationMessages
+	{
+		[Test]
+		public void ConfigurationMessagesTest()
+		{
+			try {
+				LogLog.EmitInternalMessages = false;
+				LogLog.InternalDebugging = true;
 
-                XmlDocument log4netConfig = new XmlDocument();
-                log4netConfig.LoadXml(@"
-                <log4net>
-                  <appender name=""LogLogAppender"" type=""log4net.Tests.LoggerRepository.LogLogAppender, log4net.Tests"">
-                    <layout type=""log4net.Layout.SimpleLayout"" />
-                  </appender>
-                  <appender name=""MemoryAppender"" type=""log4net.Appender.MemoryAppender"">
-                    <layout type=""log4net.Layout.SimpleLayout"" />
-                  </appender>
-                  <root>
-                    <level value=""ALL"" />
-                    <appender-ref ref=""LogLogAppender"" />
-                    <appender-ref ref=""MemoryAppender"" />
-                  </root>  
-                </log4net>");
+				XmlDocument log4netConfig = new XmlDocument();
+				log4netConfig.LoadXml(@"
+				<log4net>
+				  <appender name=""LogLogAppender"" type=""log4net.Tests.LoggerRepository.LogLogAppender, log4net.Tests"">
+					<layout type=""log4net.Layout.SimpleLayout"" />
+				  </appender>
+				  <appender name=""MemoryAppender"" type=""log4net.Appender.MemoryAppender"">
+					<layout type=""log4net.Layout.SimpleLayout"" />
+				  </appender>
+				  <root>
+					<level value=""ALL"" />
+					<appender-ref ref=""LogLogAppender"" />
+					<appender-ref ref=""MemoryAppender"" />
+				  </root>
+				</log4net>");
 
-                ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-                rep.ConfigurationChanged += new LoggerRepositoryConfigurationChangedEventHandler(rep_ConfigurationChanged);
+				ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+				rep.ConfigurationChanged += new LoggerRepositoryConfigurationChangedEventHandler(rep_ConfigurationChanged);
 
-                ICollection configurationMessages = XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
+				ICollection configurationMessages = XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
 
-                Assert.IsTrue(configurationMessages.Count > 0);
-            }
-            finally {
-                LogLog.EmitInternalMessages = true;
-                LogLog.InternalDebugging = false;
-            }
-        }
+				Assert.IsTrue(configurationMessages.Count > 0);
+			}
+			finally {
+				LogLog.EmitInternalMessages = true;
+				LogLog.InternalDebugging = false;
+			}
+		}
 
-        static void rep_ConfigurationChanged(object sender, EventArgs e)
-        {
-            ConfigurationChangedEventArgs configChanged = (ConfigurationChangedEventArgs)e;
+		static void rep_ConfigurationChanged(object sender, EventArgs e)
+		{
+			ConfigurationChangedEventArgs configChanged = (ConfigurationChangedEventArgs)e;
 
-            Assert.IsTrue(configChanged.ConfigurationMessages.Count > 0);
-        }
-    }
+			Assert.IsTrue(configChanged.ConfigurationMessages.Count > 0);
+		}
+	}
 
-    public class LogLogAppender : AppenderSkeleton
-    {
-        private readonly static Type declaringType = typeof(LogLogAppender);
+	public class LogLogAppender : AppenderSkeleton
+	{
+		private readonly static Type declaringType = typeof(LogLogAppender);
 
-        public override void ActivateOptions()
-        {
-            LogLog.Debug(declaringType, "Debug - Activating options...");
-            LogLog.Warn(declaringType, "Warn - Activating options...");
-            LogLog.Error(declaringType, "Error - Activating options...");
+		public override void ActivateOptions()
+		{
+			LogLog.Debug(declaringType, "Debug - Activating options...");
+			LogLog.Warn(declaringType, "Warn - Activating options...");
+			LogLog.Error(declaringType, "Error - Activating options...");
 
-            base.ActivateOptions();
-        }
+			base.ActivateOptions();
+		}
 
-        protected override void Append(LoggingEvent loggingEvent)
-        {
-            LogLog.Debug(declaringType, "Debug - Appending...");
-            LogLog.Warn(declaringType, "Warn - Appending...");
-            LogLog.Error(declaringType, "Error - Appending...");
-        }
-    }
+		protected override void Append(LoggingEvent loggingEvent)
+		{
+			LogLog.Debug(declaringType, "Debug - Appending...");
+			LogLog.Warn(declaringType, "Warn - Appending...");
+			LogLog.Error(declaringType, "Error - Appending...");
+		}
+	}
 }
diff --git a/tests/src/Util/CyclicBufferTest.cs b/tests/src/Util/CyclicBufferTest.cs
index a3a95cd..48af64c 100644
--- a/tests/src/Util/CyclicBufferTest.cs
+++ b/tests/src/Util/CyclicBufferTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/tests/src/Util/EnvironmentPatternConverterTest.cs b/tests/src/Util/EnvironmentPatternConverterTest.cs
index be4f7e6..eeb3065 100644
--- a/tests/src/Util/EnvironmentPatternConverterTest.cs
+++ b/tests/src/Util/EnvironmentPatternConverterTest.cs
@@ -30,88 +30,88 @@
 
 namespace log4net.Tests.Util
 {
-    [TestFixture]
-    public class EnvironmentPatternConverterTest
-    {
-        private const string ENVIRONMENT_VARIABLE_NAME = "LOG4NET_TEST_TEMP";
-        const string SYSTEM_LEVEL_VALUE = "SystemLevelEnvironmentValue";
-        const string USER_LEVEL_VALUE = "UserLevelEnvironmentValue";
-        const string PROCESS_LEVEL_VALUE = "ProcessLevelEnvironmentValue";
+	[TestFixture]
+	public class EnvironmentPatternConverterTest
+	{
+		private const string ENVIRONMENT_VARIABLE_NAME = "LOG4NET_TEST_TEMP";
+		const string SYSTEM_LEVEL_VALUE = "SystemLevelEnvironmentValue";
+		const string USER_LEVEL_VALUE = "UserLevelEnvironmentValue";
+		const string PROCESS_LEVEL_VALUE = "ProcessLevelEnvironmentValue";
 
-        [Test]
-        public void SystemLevelEnvironmentVariable()
-        {
-            EnvironmentPatternConverter converter = new EnvironmentPatternConverter();
-            try {
-                Environment.SetEnvironmentVariable(ENVIRONMENT_VARIABLE_NAME, SYSTEM_LEVEL_VALUE, EnvironmentVariableTarget.Machine);
-            }
-            catch (System.Security.SecurityException) {
-                Assert.Ignore("Test skipped as current user must not set system level environment variables");
-            }
+		[Test]
+		public void SystemLevelEnvironmentVariable()
+		{
+			EnvironmentPatternConverter converter = new EnvironmentPatternConverter();
+			try {
+				Environment.SetEnvironmentVariable(ENVIRONMENT_VARIABLE_NAME, SYSTEM_LEVEL_VALUE, EnvironmentVariableTarget.Machine);
+			}
+			catch (System.Security.SecurityException) {
+				Assert.Ignore("Test skipped as current user must not set system level environment variables");
+			}
 
-            converter.Option = ENVIRONMENT_VARIABLE_NAME;
+			converter.Option = ENVIRONMENT_VARIABLE_NAME;
 
 			StringWriter sw = new StringWriter();
 			converter.Convert(sw, null);
 
-            Assert.AreEqual(SYSTEM_LEVEL_VALUE, sw.ToString(), "System level environment variable not expended correctly.");
+			Assert.AreEqual(SYSTEM_LEVEL_VALUE, sw.ToString(), "System level environment variable not expended correctly.");
 
-            Environment.SetEnvironmentVariable(ENVIRONMENT_VARIABLE_NAME, null, EnvironmentVariableTarget.Machine);
-        }
+			Environment.SetEnvironmentVariable(ENVIRONMENT_VARIABLE_NAME, null, EnvironmentVariableTarget.Machine);
+		}
 
-        [Test]
-        public void UserLevelEnvironmentVariable()
-        {
-            EnvironmentPatternConverter converter = new EnvironmentPatternConverter();
-            Environment.SetEnvironmentVariable(ENVIRONMENT_VARIABLE_NAME, USER_LEVEL_VALUE, EnvironmentVariableTarget.User);
+		[Test]
+		public void UserLevelEnvironmentVariable()
+		{
+			EnvironmentPatternConverter converter = new EnvironmentPatternConverter();
+			Environment.SetEnvironmentVariable(ENVIRONMENT_VARIABLE_NAME, USER_LEVEL_VALUE, EnvironmentVariableTarget.User);
 
-            converter.Option = ENVIRONMENT_VARIABLE_NAME;
+			converter.Option = ENVIRONMENT_VARIABLE_NAME;
 
-            StringWriter sw = new StringWriter();
-            converter.Convert(sw, null);
+			StringWriter sw = new StringWriter();
+			converter.Convert(sw, null);
 
-            Assert.AreEqual(USER_LEVEL_VALUE, sw.ToString(), "User level environment variable not expended correctly.");
+			Assert.AreEqual(USER_LEVEL_VALUE, sw.ToString(), "User level environment variable not expended correctly.");
 
-            Environment.SetEnvironmentVariable(ENVIRONMENT_VARIABLE_NAME, null, EnvironmentVariableTarget.User);
-        }
+			Environment.SetEnvironmentVariable(ENVIRONMENT_VARIABLE_NAME, null, EnvironmentVariableTarget.User);
+		}
 
-        [Test]
-        public void ProcessLevelEnvironmentVariable()
-        {
-            EnvironmentPatternConverter converter = new EnvironmentPatternConverter();
-            Environment.SetEnvironmentVariable(ENVIRONMENT_VARIABLE_NAME, PROCESS_LEVEL_VALUE);
+		[Test]
+		public void ProcessLevelEnvironmentVariable()
+		{
+			EnvironmentPatternConverter converter = new EnvironmentPatternConverter();
+			Environment.SetEnvironmentVariable(ENVIRONMENT_VARIABLE_NAME, PROCESS_LEVEL_VALUE);
 
-            converter.Option = ENVIRONMENT_VARIABLE_NAME;
+			converter.Option = ENVIRONMENT_VARIABLE_NAME;
 
-            StringWriter sw = new StringWriter();
-            converter.Convert(sw, null);
+			StringWriter sw = new StringWriter();
+			converter.Convert(sw, null);
 
-            Assert.AreEqual(PROCESS_LEVEL_VALUE, sw.ToString(), "Process level environment variable not expended correctly.");
+			Assert.AreEqual(PROCESS_LEVEL_VALUE, sw.ToString(), "Process level environment variable not expended correctly.");
 
-            Environment.SetEnvironmentVariable(ENVIRONMENT_VARIABLE_NAME, null);
-        }
+			Environment.SetEnvironmentVariable(ENVIRONMENT_VARIABLE_NAME, null);
+		}
 
-        private class EnvironmentPatternConverter
-        {
-            private object target = null;
+		private class EnvironmentPatternConverter
+		{
+			private object target = null;
 
-            public EnvironmentPatternConverter()
-            {
-                target = Utils.CreateInstance("log4net.Util.PatternStringConverters.EnvironmentPatternConverter,log4net");
-            }
+			public EnvironmentPatternConverter()
+			{
+				target = Utils.CreateInstance("log4net.Util.PatternStringConverters.EnvironmentPatternConverter,log4net");
+			}
 
-            public string Option
-            {
-                get { return Utils.GetProperty(target, "Option") as string; }
-                set { Utils.SetProperty(target, "Option", value); }
-            }
+			public string Option
+			{
+				get { return Utils.GetProperty(target, "Option") as string; }
+				set { Utils.SetProperty(target, "Option", value); }
+			}
 
-            public void Convert(TextWriter writer, object state)
-            {
-                Utils.InvokeMethod(target, "Convert", writer, state);
-            }
-        }
-    }
+			public void Convert(TextWriter writer, object state)
+			{
+				Utils.InvokeMethod(target, "Convert", writer, state);
+			}
+		}
+	}
 }
 
 #endif
diff --git a/tests/src/Util/LogLogTest.cs b/tests/src/Util/LogLogTest.cs
index 7d9030b..236d41d 100644
--- a/tests/src/Util/LogLogTest.cs
+++ b/tests/src/Util/LogLogTest.cs
@@ -26,84 +26,84 @@
 
 namespace log4net.Tests.Util
 {
-    [TestFixture]
-    public class LogLogTest
-    {
-        [Test]
-        public void TraceListenerCounterTest()
-        {
-            TraceListenerCounter listTraceListener = new TraceListenerCounter();
+	[TestFixture]
+	public class LogLogTest
+	{
+		[Test]
+		public void TraceListenerCounterTest()
+		{
+			TraceListenerCounter listTraceListener = new TraceListenerCounter();
 
-            Trace.Listeners.Clear();
-            Trace.Listeners.Add(listTraceListener);
+			Trace.Listeners.Clear();
+			Trace.Listeners.Add(listTraceListener);
 
-            Trace.Write("Hello");
-            Trace.Write("World");
+			Trace.Write("Hello");
+			Trace.Write("World");
 
-            Assert.AreEqual(2, listTraceListener.Count);
-        }
+			Assert.AreEqual(2, listTraceListener.Count);
+		}
 
-        [Test]
-        public void EmitInternalMessages()
-        {
-            TraceListenerCounter listTraceListener = new TraceListenerCounter();
-            Trace.Listeners.Clear();
-            Trace.Listeners.Add(listTraceListener);
-            LogLog.Error(GetType(), "Hello");
-            LogLog.Error(GetType(), "World");
-            Trace.Flush();
-            Assert.AreEqual(2, listTraceListener.Count);
+		[Test]
+		public void EmitInternalMessages()
+		{
+			TraceListenerCounter listTraceListener = new TraceListenerCounter();
+			Trace.Listeners.Clear();
+			Trace.Listeners.Add(listTraceListener);
+			LogLog.Error(GetType(), "Hello");
+			LogLog.Error(GetType(), "World");
+			Trace.Flush();
+			Assert.AreEqual(2, listTraceListener.Count);
 
-            try {
-                LogLog.EmitInternalMessages = false;
+			try {
+				LogLog.EmitInternalMessages = false;
 
-                LogLog.Error(GetType(), "Hello");
-                LogLog.Error(GetType(), "World");
-                Assert.AreEqual(2, listTraceListener.Count);
-            }
-            finally {
-                LogLog.EmitInternalMessages = true;
-            }
-        }
+				LogLog.Error(GetType(), "Hello");
+				LogLog.Error(GetType(), "World");
+				Assert.AreEqual(2, listTraceListener.Count);
+			}
+			finally {
+				LogLog.EmitInternalMessages = true;
+			}
+		}
 
-        [Test]
-        public void LogReceivedAdapter()
-        {
-            ArrayList messages = new ArrayList();
+		[Test]
+		public void LogReceivedAdapter()
+		{
+			ArrayList messages = new ArrayList();
 
-            using (new LogLog.LogReceivedAdapter(messages))
-            {
-                LogLog.Debug(GetType(), "Won't be recorded");
-                LogLog.Error(GetType(), "This will be recorded.");
-                LogLog.Error(GetType(), "This will be recorded.");
-            }
+			using (new LogLog.LogReceivedAdapter(messages))
+			{
+				LogLog.Debug(GetType(), "Won't be recorded");
+				LogLog.Error(GetType(), "This will be recorded.");
+				LogLog.Error(GetType(), "This will be recorded.");
+			}
 
-            Assert.AreEqual(2, messages.Count);
-        }
-    }
+			Assert.AreEqual(2, messages.Count);
+		}
+	}
 
-    public class TraceListenerCounter : TraceListener
-    {
-        private int count = 0;
+	public class TraceListenerCounter : TraceListener
+	{
+		private int count = 0;
 
-        public override void Write(string message)
-        {
-            count++;
-        }
+		public override void Write(string message)
+		{
+			count++;
+		}
 
-        public override void WriteLine(string message)
-        {
-            Write(message);
-        }
+		public override void WriteLine(string message)
+		{
+			Write(message);
+		}
 
-        public void Reset()
-        {
-            count = 0;
-        }
+		public void Reset()
+		{
+			count = 0;
+		}
 
-        public int Count
-        {
-            get { return count; }
-        }
-    }
+		public int Count
+		{
+			get { return count; }
+		}
+	}
 }
diff --git a/tests/src/Util/PatternConverterTest.cs b/tests/src/Util/PatternConverterTest.cs
index 06f352e..c61145d 100644
--- a/tests/src/Util/PatternConverterTest.cs
+++ b/tests/src/Util/PatternConverterTest.cs
@@ -32,161 +32,161 @@
 
 namespace log4net.Tests.Util
 {
-    [TestFixture]
-    public class PatternConverterTest
-    {
-        [Test]
-        public void PatternLayoutConverterProperties()
-        {
-            XmlDocument log4netConfig = new XmlDocument();
-            log4netConfig.LoadXml(@"
-                <log4net>
-                  <appender name=""StringAppender"" type=""log4net.Tests.Appender.StringAppender, log4net.Tests"">
-                    <layout type=""log4net.Layout.PatternLayout"">
-                        <converter>
-                            <name value=""propertyKeyCount"" />
-                            <type value=""log4net.Tests.Util.PropertyKeyCountPatternLayoutConverter, log4net.Tests"" />
-                            <property>
-                                <key value=""one-plus-one"" />
-                                <value value=""2"" />
-                            </property>
-                            <property>
-                               <key value=""two-plus-two"" />
-                               <value value=""4"" />
-                            </property> 
-                        </converter>
-                        <conversionPattern value=""%propertyKeyCount"" />
-                    </layout>
-                  </appender>
-                  <root>
-                    <level value=""ALL"" />                  
-                    <appender-ref ref=""StringAppender"" />
-                  </root>  
-                </log4net>");
+	[TestFixture]
+	public class PatternConverterTest
+	{
+		[Test]
+		public void PatternLayoutConverterProperties()
+		{
+			XmlDocument log4netConfig = new XmlDocument();
+			log4netConfig.LoadXml(@"
+				<log4net>
+				  <appender name=""StringAppender"" type=""log4net.Tests.Appender.StringAppender, log4net.Tests"">
+					<layout type=""log4net.Layout.PatternLayout"">
+						<converter>
+							<name value=""propertyKeyCount"" />
+							<type value=""log4net.Tests.Util.PropertyKeyCountPatternLayoutConverter, log4net.Tests"" />
+							<property>
+								<key value=""one-plus-one"" />
+								<value value=""2"" />
+							</property>
+							<property>
+							   <key value=""two-plus-two"" />
+							   <value value=""4"" />
+							</property>
+						</converter>
+						<conversionPattern value=""%propertyKeyCount"" />
+					</layout>
+				  </appender>
+				  <root>
+					<level value=""ALL"" />
+					<appender-ref ref=""StringAppender"" />
+				  </root>
+				</log4net>");
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
 
-            ILog log = LogManager.GetLogger(rep.Name, "PatternLayoutConverterProperties");
-            log.Debug("Message");
+			ILog log = LogManager.GetLogger(rep.Name, "PatternLayoutConverterProperties");
+			log.Debug("Message");
 
-            PropertyKeyCountPatternLayoutConverter converter = 
-                PropertyKeyCountPatternLayoutConverter.MostRecentInstance;
-            Assert.AreEqual(2, converter.Properties.Count);
-            Assert.AreEqual("4", converter.Properties["two-plus-two"]);
+			PropertyKeyCountPatternLayoutConverter converter =
+				PropertyKeyCountPatternLayoutConverter.MostRecentInstance;
+			Assert.AreEqual(2, converter.Properties.Count);
+			Assert.AreEqual("4", converter.Properties["two-plus-two"]);
 
-            StringAppender appender = 
-                (StringAppender)LogManager.GetRepository(rep.Name).GetAppenders()[0];
-            Assert.AreEqual("2", appender.GetString());
-        }
+			StringAppender appender =
+				(StringAppender)LogManager.GetRepository(rep.Name).GetAppenders()[0];
+			Assert.AreEqual("2", appender.GetString());
+		}
 
-        [Test]
-        public void PatternConverterProperties()
-        {
-            XmlDocument log4netConfig = new XmlDocument();
-            log4netConfig.LoadXml(@"
-                <log4net>
-                  <appender name=""PatternStringAppender"" type=""log4net.Tests.Util.PatternStringAppender, log4net.Tests"">
-                    <layout type=""log4net.Layout.SimpleLayout"" />
-                    <setting>
-                        <converter>
-                            <name value=""propertyKeyCount"" />
-                            <type value=""log4net.Tests.Util.PropertyKeyCountPatternConverter, log4net.Tests"" />
-                            <property>
-                                <key value=""one-plus-one"" />
-                                <value value=""2"" />
-                            </property>
-                            <property>
-                               <key value=""two-plus-two"" />
-                               <value value=""4"" />
-                            </property> 
-                        </converter>
-                        <conversionPattern value=""%propertyKeyCount"" />
-                    </setting>
-                  </appender>
-                  <root>
-                    <level value=""ALL"" />                  
-                    <appender-ref ref=""PatternStringAppender"" />
-                  </root>  
-                </log4net>");
+		[Test]
+		public void PatternConverterProperties()
+		{
+			XmlDocument log4netConfig = new XmlDocument();
+			log4netConfig.LoadXml(@"
+				<log4net>
+				  <appender name=""PatternStringAppender"" type=""log4net.Tests.Util.PatternStringAppender, log4net.Tests"">
+					<layout type=""log4net.Layout.SimpleLayout"" />
+					<setting>
+						<converter>
+							<name value=""propertyKeyCount"" />
+							<type value=""log4net.Tests.Util.PropertyKeyCountPatternConverter, log4net.Tests"" />
+							<property>
+								<key value=""one-plus-one"" />
+								<value value=""2"" />
+							</property>
+							<property>
+							   <key value=""two-plus-two"" />
+							   <value value=""4"" />
+							</property>
+						</converter>
+						<conversionPattern value=""%propertyKeyCount"" />
+					</setting>
+				  </appender>
+				  <root>
+					<level value=""ALL"" />
+					<appender-ref ref=""PatternStringAppender"" />
+				  </root>
+				</log4net>");
 
-            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
-            XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
 
-            ILog log = LogManager.GetLogger(rep.Name, "PatternConverterProperties");
-            log.Debug("Message");
+			ILog log = LogManager.GetLogger(rep.Name, "PatternConverterProperties");
+			log.Debug("Message");
 
-            PropertyKeyCountPatternConverter converter =
-                PropertyKeyCountPatternConverter.MostRecentInstance;
-            Assert.AreEqual(2, converter.Properties.Count);
-            Assert.AreEqual("4", converter.Properties["two-plus-two"]);
+			PropertyKeyCountPatternConverter converter =
+				PropertyKeyCountPatternConverter.MostRecentInstance;
+			Assert.AreEqual(2, converter.Properties.Count);
+			Assert.AreEqual("4", converter.Properties["two-plus-two"]);
 
-            PatternStringAppender appender =
-                (PatternStringAppender)LogManager.GetRepository(rep.Name).GetAppenders()[0];
-            Assert.AreEqual("2", appender.Setting.Format());
-        }
-    }
+			PatternStringAppender appender =
+				(PatternStringAppender)LogManager.GetRepository(rep.Name).GetAppenders()[0];
+			Assert.AreEqual("2", appender.Setting.Format());
+		}
+	}
 
-    public class PropertyKeyCountPatternLayoutConverter : PatternLayoutConverter
-    {
-        private static PropertyKeyCountPatternLayoutConverter mostRecentInstance;
+	public class PropertyKeyCountPatternLayoutConverter : PatternLayoutConverter
+	{
+		private static PropertyKeyCountPatternLayoutConverter mostRecentInstance;
 
-        public PropertyKeyCountPatternLayoutConverter()
-        {
-            mostRecentInstance = this;
-        }
+		public PropertyKeyCountPatternLayoutConverter()
+		{
+			mostRecentInstance = this;
+		}
 
-        protected override void Convert(TextWriter writer, LoggingEvent loggingEvent)
-        {
-            writer.Write(Properties.GetKeys().Length);
-        }
+		protected override void Convert(TextWriter writer, LoggingEvent loggingEvent)
+		{
+			writer.Write(Properties.GetKeys().Length);
+		}
 
-        public static PropertyKeyCountPatternLayoutConverter MostRecentInstance
-        {
-            get { return mostRecentInstance; }
-        }
-    }
+		public static PropertyKeyCountPatternLayoutConverter MostRecentInstance
+		{
+			get { return mostRecentInstance; }
+		}
+	}
 
-    public class PropertyKeyCountPatternConverter : PatternConverter
-    {
-        private static PropertyKeyCountPatternConverter mostRecentInstance;
+	public class PropertyKeyCountPatternConverter : PatternConverter
+	{
+		private static PropertyKeyCountPatternConverter mostRecentInstance;
 
-        public PropertyKeyCountPatternConverter()
-        {
-            mostRecentInstance = this;
-        }
+		public PropertyKeyCountPatternConverter()
+		{
+			mostRecentInstance = this;
+		}
 
-        protected override void Convert(TextWriter writer, object state)
-        {
-            writer.Write(Properties.GetKeys().Length);
-        }
+		protected override void Convert(TextWriter writer, object state)
+		{
+			writer.Write(Properties.GetKeys().Length);
+		}
 
-        public static PropertyKeyCountPatternConverter MostRecentInstance
-        {
-            get { return mostRecentInstance; }
-        }
-    }
+		public static PropertyKeyCountPatternConverter MostRecentInstance
+		{
+			get { return mostRecentInstance; }
+		}
+	}
 
-    public class PatternStringAppender : StringAppender
-    {
-        private static PatternStringAppender mostRecentInstace;
+	public class PatternStringAppender : StringAppender
+	{
+		private static PatternStringAppender mostRecentInstace;
 
-        private PatternString setting;
+		private PatternString setting;
 
-        public PatternStringAppender()
-        {
-            mostRecentInstace = this;
-        }
+		public PatternStringAppender()
+		{
+			mostRecentInstace = this;
+		}
 
-        public PatternString Setting
-        {
-            get { return setting; }
-            set { setting = value; }
-        }
+		public PatternString Setting
+		{
+			get { return setting; }
+			set { setting = value; }
+		}
 
-        public static PatternStringAppender MostRecentInstace
-        {
-            get { return mostRecentInstace; }
-        }
-    }
+		public static PatternStringAppender MostRecentInstace
+		{
+			get { return mostRecentInstace; }
+		}
+	}
 }
diff --git a/tests/src/Util/PatternStringTest.cs b/tests/src/Util/PatternStringTest.cs
index 51386f7..2420f42 100644
--- a/tests/src/Util/PatternStringTest.cs
+++ b/tests/src/Util/PatternStringTest.cs
@@ -28,85 +28,85 @@
 
 namespace log4net.Tests.Util
 {
-    [TestFixture]
-    public class PatternStringTest : MarshalByRefObject
-    {
-        [Test]
-        public void TestEnvironmentFolderPathPatternConverter()
-        {
-            string[] specialFolderNames = Enum.GetNames(typeof(Environment.SpecialFolder));
+	[TestFixture]
+	public class PatternStringTest : MarshalByRefObject
+	{
+		[Test]
+		public void TestEnvironmentFolderPathPatternConverter()
+		{
+			string[] specialFolderNames = Enum.GetNames(typeof(Environment.SpecialFolder));
 
-            foreach (string specialFolderName in specialFolderNames)
-            {
-                string pattern = "%envFolderPath{" + specialFolderName + "}";
+			foreach (string specialFolderName in specialFolderNames)
+			{
+				string pattern = "%envFolderPath{" + specialFolderName + "}";
 
-                PatternString patternString = new PatternString(pattern);
+				PatternString patternString = new PatternString(pattern);
 
-                string evaluatedPattern = patternString.Format();
+				string evaluatedPattern = patternString.Format();
 
-                Environment.SpecialFolder specialFolder = 
-                    (Environment.SpecialFolder)Enum.Parse(typeof(Environment.SpecialFolder), specialFolderName);
+				Environment.SpecialFolder specialFolder =
+					(Environment.SpecialFolder)Enum.Parse(typeof(Environment.SpecialFolder), specialFolderName);
 
-                Assert.AreEqual(Environment.GetFolderPath(specialFolder), evaluatedPattern);
-            }
-        }
+				Assert.AreEqual(Environment.GetFolderPath(specialFolder), evaluatedPattern);
+			}
+		}
 
-        [Test]
-        public void TestAppSettingPathConverter()
-        {
-            string configurationFileContent = @"
+		[Test]
+		public void TestAppSettingPathConverter()
+		{
+			string configurationFileContent = @"
 <configuration>
   <appSettings>
-    <add key=""TestKey"" value = ""TestValue"" />
+	<add key=""TestKey"" value = ""TestValue"" />
   </appSettings>
 </configuration>
 ";
-            string configurationFileName = null;
-            AppDomain appDomain = null;
-            try
-            {
-                configurationFileName = CreateTempConfigFile(configurationFileContent);
-                appDomain = CreateConfiguredDomain("AppSettingsTestDomain", configurationFileName);
+			string configurationFileName = null;
+			AppDomain appDomain = null;
+			try
+			{
+				configurationFileName = CreateTempConfigFile(configurationFileContent);
+				appDomain = CreateConfiguredDomain("AppSettingsTestDomain", configurationFileName);
 
-                PatternStringTest pst = (PatternStringTest)appDomain.CreateInstanceAndUnwrap(Assembly.GetExecutingAssembly().FullName, this.GetType().FullName);
-                pst.TestAppSettingPathConverterInConfiguredDomain();
-            }
-            finally
-            {
-                if (appDomain != null) AppDomain.Unload(appDomain);
-                if (configurationFileName != null) File.Delete(configurationFileName);
-            }
-        }
+				PatternStringTest pst = (PatternStringTest)appDomain.CreateInstanceAndUnwrap(Assembly.GetExecutingAssembly().FullName, this.GetType().FullName);
+				pst.TestAppSettingPathConverterInConfiguredDomain();
+			}
+			finally
+			{
+				if (appDomain != null) AppDomain.Unload(appDomain);
+				if (configurationFileName != null) File.Delete(configurationFileName);
+			}
+		}
 
-        public void TestAppSettingPathConverterInConfiguredDomain()
-        {
-            string pattern = "%appSetting{TestKey}";
-            PatternString patternString = new PatternString(pattern);
-            string evaluatedPattern = patternString.Format();
-            string appSettingValue = ConfigurationManager.AppSettings["TestKey"];
-            Assert.AreEqual("TestValue", appSettingValue, "Expected configuration file to contain a key TestKey with the value TestValue");
-            Assert.AreEqual(appSettingValue, evaluatedPattern, "Evaluated pattern expected to be identical to appSetting value");
+		public void TestAppSettingPathConverterInConfiguredDomain()
+		{
+			string pattern = "%appSetting{TestKey}";
+			PatternString patternString = new PatternString(pattern);
+			string evaluatedPattern = patternString.Format();
+			string appSettingValue = ConfigurationManager.AppSettings["TestKey"];
+			Assert.AreEqual("TestValue", appSettingValue, "Expected configuration file to contain a key TestKey with the value TestValue");
+			Assert.AreEqual(appSettingValue, evaluatedPattern, "Evaluated pattern expected to be identical to appSetting value");
 
-            string badPattern = "%appSetting{UnknownKey}";
-            patternString = new PatternString(badPattern);
-            evaluatedPattern = patternString.Format();
-            Assert.AreEqual("(null)", evaluatedPattern, "Evaluated pattern expected to be \"(null)\" for non-existent appSettings key");
-        }
+			string badPattern = "%appSetting{UnknownKey}";
+			patternString = new PatternString(badPattern);
+			evaluatedPattern = patternString.Format();
+			Assert.AreEqual("(null)", evaluatedPattern, "Evaluated pattern expected to be \"(null)\" for non-existent appSettings key");
+		}
 
-        private static string CreateTempConfigFile(string configurationFileContent)
-        {
-            string fileName = Path.GetTempFileName();
-            File.WriteAllText(fileName, configurationFileContent);
-            return fileName;
-        }
+		private static string CreateTempConfigFile(string configurationFileContent)
+		{
+			string fileName = Path.GetTempFileName();
+			File.WriteAllText(fileName, configurationFileContent);
+			return fileName;
+		}
 
-        private static AppDomain CreateConfiguredDomain(string domainName, string configurationFileName)
-        {
-            AppDomainSetup ads = new AppDomainSetup();
-            ads.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;
-            ads.ConfigurationFile = configurationFileName;
-            AppDomain ad = AppDomain.CreateDomain(domainName, null, ads);
-            return ad;
-        }
-    }
+		private static AppDomain CreateConfiguredDomain(string domainName, string configurationFileName)
+		{
+			AppDomainSetup ads = new AppDomainSetup();
+			ads.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;
+			ads.ConfigurationFile = configurationFileName;
+			AppDomain ad = AppDomain.CreateDomain(domainName, null, ads);
+			return ad;
+		}
+	}
 }
diff --git a/tests/src/Util/PropertiesDictionaryTest.cs b/tests/src/Util/PropertiesDictionaryTest.cs
index 0809cc9..493d1ca 100644
--- a/tests/src/Util/PropertiesDictionaryTest.cs
+++ b/tests/src/Util/PropertiesDictionaryTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/tests/src/Util/RandomStringPatternConverterTest.cs b/tests/src/Util/RandomStringPatternConverterTest.cs
index e586a9d..eccd163 100644
--- a/tests/src/Util/RandomStringPatternConverterTest.cs
+++ b/tests/src/Util/RandomStringPatternConverterTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
diff --git a/tests/src/Util/SystemInfoTest.cs b/tests/src/Util/SystemInfoTest.cs
index b031506..e6cc4bf 100644
--- a/tests/src/Util/SystemInfoTest.cs
+++ b/tests/src/Util/SystemInfoTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -127,8 +127,8 @@
 
 			t = GetTypeFromString("log4net.Util.SystemInfo", false, false);
 			Assert.AreSame(typeof(SystemInfo), t,
-                                       string.Format("Test explicit case sensitive type load found {0} rather than {1}",
-                                                     t.AssemblyQualifiedName, typeof(SystemInfo).AssemblyQualifiedName));
+									   string.Format("Test explicit case sensitive type load found {0} rather than {1}",
+													 t.AssemblyQualifiedName, typeof(SystemInfo).AssemblyQualifiedName));
 
 			t = GetTypeFromString("LOG4NET.UTIL.SYSTEMINFO", false, true);
 			Assert.AreSame(typeof(SystemInfo), t, "Test explicit case in-sensitive type load caps");
@@ -171,40 +171,40 @@
 #endif
 		}
 
-        [Test]
-        public void EqualsIgnoringCase_BothNull_true()
-        {
-            Assert.True(SystemInfo.EqualsIgnoringCase(null, null));
-        }
+		[Test]
+		public void EqualsIgnoringCase_BothNull_true()
+		{
+			Assert.True(SystemInfo.EqualsIgnoringCase(null, null));
+		}
 
-        [Test]
-        public void EqualsIgnoringCase_LeftNull_false()
-        {
-            Assert.False(SystemInfo.EqualsIgnoringCase(null, "foo"));
-        }
+		[Test]
+		public void EqualsIgnoringCase_LeftNull_false()
+		{
+			Assert.False(SystemInfo.EqualsIgnoringCase(null, "foo"));
+		}
 
-        [Test]
-        public void EqualsIgnoringCase_RightNull_false()
-        {
-            Assert.False(SystemInfo.EqualsIgnoringCase("foo", null));
-        }
+		[Test]
+		public void EqualsIgnoringCase_RightNull_false()
+		{
+			Assert.False(SystemInfo.EqualsIgnoringCase("foo", null));
+		}
 
-        [Test]
-        public void EqualsIgnoringCase_SameStringsSameCase_true()
-        {
-            Assert.True(SystemInfo.EqualsIgnoringCase("foo", "foo"));
-        }
+		[Test]
+		public void EqualsIgnoringCase_SameStringsSameCase_true()
+		{
+			Assert.True(SystemInfo.EqualsIgnoringCase("foo", "foo"));
+		}
 
-        [Test]
-        public void EqualsIgnoringCase_SameStringsDifferentCase_true()
-        {
-            Assert.True(SystemInfo.EqualsIgnoringCase("foo", "FOO"));
-        }
+		[Test]
+		public void EqualsIgnoringCase_SameStringsDifferentCase_true()
+		{
+			Assert.True(SystemInfo.EqualsIgnoringCase("foo", "FOO"));
+		}
 
-        [Test]
-        public void EqualsIgnoringCase_DifferentStrings_false()
-        {
-            Assert.False(SystemInfo.EqualsIgnoringCase("foo", "foobar"));
-        }
+		[Test]
+		public void EqualsIgnoringCase_DifferentStrings_false()
+		{
+			Assert.False(SystemInfo.EqualsIgnoringCase("foo", "foobar"));
+		}
 	}
 }
diff --git a/tests/src/Util/TransformTest.cs b/tests/src/Util/TransformTest.cs
index 7d4026a..17ddf0e 100644
--- a/tests/src/Util/TransformTest.cs
+++ b/tests/src/Util/TransformTest.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -25,21 +25,21 @@
 
 namespace log4net.Tests.Util {
 
-    [TestFixture]
-    public class TransformTest
-    {
-        [Test]
-        public void MaskXmlInvalidCharactersAllowsJapaneseCharacters()
-        {
-            string kome = "\u203B";
-            Assert.AreEqual(kome, Transform.MaskXmlInvalidCharacters(kome, "?"));
-        }
+	[TestFixture]
+	public class TransformTest
+	{
+		[Test]
+		public void MaskXmlInvalidCharactersAllowsJapaneseCharacters()
+		{
+			string kome = "\u203B";
+			Assert.AreEqual(kome, Transform.MaskXmlInvalidCharacters(kome, "?"));
+		}
 
-        [Test]
-        public void MaskXmlInvalidCharactersMasks0Char() 
-        {
-            string c = "\u0000";
-            Assert.AreEqual("?", Transform.MaskXmlInvalidCharacters(c, "?"));
-        }
-    }
+		[Test]
+		public void MaskXmlInvalidCharactersMasks0Char()
+		{
+			string c = "\u0000";
+			Assert.AreEqual("?", Transform.MaskXmlInvalidCharacters(c, "?"));
+		}
+	}
 }
diff --git a/tests/src/Utils.cs b/tests/src/Utils.cs
index 14e55d3..d2ce18b 100644
--- a/tests/src/Utils.cs
+++ b/tests/src/Utils.cs
@@ -1,10 +1,10 @@
 #region Apache License
 //
-// 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
@@ -109,33 +109,33 @@
 			return types;
 		}
 
-        internal const string PROPERTY_KEY = "prop1";
+		internal const string PROPERTY_KEY = "prop1";
 
-        internal static void RemovePropertyFromAllContexts() {
-            GlobalContext.Properties.Remove(PROPERTY_KEY);
-            ThreadContext.Properties.Remove(PROPERTY_KEY);
+		internal static void RemovePropertyFromAllContexts() {
+			GlobalContext.Properties.Remove(PROPERTY_KEY);
+			ThreadContext.Properties.Remove(PROPERTY_KEY);
 #if !NETCF
-            LogicalThreadContext.Properties.Remove(PROPERTY_KEY);
+			LogicalThreadContext.Properties.Remove(PROPERTY_KEY);
 #endif
-        }
+		}
 
-        // Wrappers because repository/logger retrieval APIs require an Assembly argument on NETSTANDARD1_3
-        internal static ILog GetLogger(string name)
-        {
+		// Wrappers because repository/logger retrieval APIs require an Assembly argument on NETSTANDARD1_3
+		internal static ILog GetLogger(string name)
+		{
 #if NETSTANDARD1_3
-            return LogManager.GetLogger(typeof(Utils).GetTypeInfo().Assembly, name);
+			return LogManager.GetLogger(typeof(Utils).GetTypeInfo().Assembly, name);
 #else
-            return LogManager.GetLogger(name);
+			return LogManager.GetLogger(name);
 #endif
-        }
+		}
 
-        internal static ILoggerRepository GetRepository()
-        {
+		internal static ILoggerRepository GetRepository()
+		{
 #if NETSTANDARD1_3
-            return LogManager.GetRepository(typeof(Utils).GetTypeInfo().Assembly);
+			return LogManager.GetRepository(typeof(Utils).GetTypeInfo().Assembly);
 #else
-            return LogManager.GetRepository();
+			return LogManager.GetRepository();
 #endif
-        }
-    }
+		}
+	}
 }
\ No newline at end of file