changeset 0:1bb28f84d567

Initial commit of WarFoundry code
author IBBoard <dev@ibboard.co.uk>
date Fri, 19 Dec 2008 15:57:51 +0000
parents
children a3c70b542257
files App.ico App.png AssemblyInfo.cs Dialog.cs FrmChangeGameSystem.cs FrmMainWindow.cs FrmNewArmy.cs FrmNewUnit.cs WarFoundry GTK# GUI.pidb WarFoundryGUI.exe.log4net WarFoundryGUI.mdp Widgets/UnitDisplayWidget.cs gtk-gui/IBBoard.WarFoundry.FrmChangeGameSystem.cs gtk-gui/IBBoard.WarFoundry.FrmMainWindow.cs gtk-gui/IBBoard.WarFoundry.FrmNewArmy.cs gtk-gui/IBBoard.WarFoundry.FrmNewUnit.cs gtk-gui/IBBoard.WarFoundry.Widgets.UnitDisplayWidget.cs gtk-gui/generated.cs gtk-gui/gui.stetic gtk-gui/objects.xml libs/log4net.dll libs/log4net.xml
diffstat 22 files changed, 31401 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
Binary file App.ico has changed
Binary file App.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/AssemblyInfo.cs	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+// Information about this assembly is defined by the following
+// attributes.
+//
+// change them to the information which is associated with the assembly
+// you compile.
+
+[assembly: AssemblyTitle("")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// The assembly version has following format :
+//
+// Major.Minor.Build.Revision
+//
+// You can specify all values by your own or you can build default build and revision
+// numbers with the '*' character (the default):
+
+[assembly: AssemblyVersion("1.0.*")]
+
+// The following attributes specify the key for the sign of your assembly. See the
+// .NET Framework documentation for more information about signing.
+// This is not required, if you don't want signing let these attributes like they're.
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyFile("")]
+
+
+[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension="log4net",Watch=true)]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Dialog.cs	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,21 @@
+// Dialog.cs created with MonoDevelop
+// User: ibboard at 20:40 14/06/2008
+//
+// To change standard headers go to Edit->Preferences->Coding->Standard Headers
+//
+
+using System;
+
+namespace IBBoard.WarFoundry
+{
+	
+	
+	public partial class Dialog : Gtk.Dialog
+	{
+		
+		public Dialog()
+		{
+			this.Build();
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FrmChangeGameSystem.cs	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,100 @@
+// FrmChangeGameSystem.cs
+//
+//  Copyright (C) 2007 IBBoard
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License version 2.1 of the License as published by the Free
+// Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
+//
+//
+
+using System;
+using IBBoard.WarFoundry.API;
+using IBBoard.WarFoundry.API.Objects;
+using Gtk;
+using log4net;
+
+namespace IBBoard.WarFoundry
+{
+	public partial class FrmChangeGameSystem : Dialog
+	{
+		private ILog logger = LogManager.GetLogger(typeof(FrmChangeGameSystem));
+		//private AbstractNativeWarFoundryFactory factory;
+		private GameSystem selectedSystem;
+		
+		public FrmChangeGameSystem(Window parent) : base("Change Game System", parent, DialogFlags.Modal)
+		{
+			this.Build();
+			lstGameSystems.Selection.Changed+= new EventHandler(OnSelectionChanged);
+			TreeViewColumn gameSystemColumn = new TreeViewColumn ();
+			gameSystemColumn.Title = "Game System";
+			CellRendererText gameSystemCell = new CellRendererText ();
+			gameSystemColumn.PackStart (gameSystemCell, true);
+			lstGameSystems.AppendColumn(gameSystemColumn);
+			gameSystemColumn.SetCellDataFunc (gameSystemCell, new TreeCellDataFunc (RenderSystemName));
+			ListStore store = new ListStore(typeof(GameSystem));
+			
+			foreach (GameSystem system in WarFoundryLoader.GetDefault().GetGameSystems())
+			{
+				store.AppendValues(system);
+			}
+			
+			lstGameSystems.Model = store;
+		}
+		
+		private void RenderSystemName(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
+		{
+			GameSystem system = (GameSystem) model.GetValue(iter, 0);
+			(cell as CellRendererText).Text = system.Name;
+		}
+
+		protected virtual void OnGameSystemOkayClicked(object sender, EventArgs e)
+		{
+			logger.Debug("Okay clicked");
+			SetReturnValue();
+			Respond(ResponseType.Ok);
+		}
+		
+		private void SetReturnValue()
+		{
+			TreeModel model;
+			TreeIter iter;
+			lstGameSystems.Selection.GetSelected (out model, out iter);
+			selectedSystem = (GameSystem) model.GetValue(iter, 0);
+		}
+
+		protected virtual void OnSelectionChanged(object o, EventArgs e)
+		{
+			logger.Debug("Selection changed");
+			buttonOk.Sensitive = (lstGameSystems.Selection.CountSelectedRows() > 0);
+		}
+
+		protected virtual void OnCancel (object sender, System.EventArgs e)
+		{
+			logger.Debug("Cancel clicked");
+			Respond(ResponseType.Cancel);
+		}
+
+		protected virtual void lstGameSystemsRowActivated (object o, Gtk.RowActivatedArgs args)
+		{
+			logger.Debug("List row double-clicked");
+			SetReturnValue();
+			Respond(ResponseType.Ok);
+		}
+		
+		public GameSystem SelectedSystem
+		{
+			get { return selectedSystem; }
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FrmMainWindow.cs	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,925 @@
+// FrmMainWindow.cs
+//
+//  Copyright (C) 2007 IBBoard
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License version 2.1 of the License as published by the Free
+// Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
+//
+//
+
+using System;
+using System.IO;
+using System.Collections.Generic;
+using System.Configuration;
+using Gtk;
+using IBBoard;
+using IBBoard.Commands;
+using IBBoard.IO;
+using IBBoard.Lang;
+using IBBoard.Logging;
+using IBBoard.CustomMath;
+using IBBoard.Log4Net;
+using IBBoard.WarFoundry.API;
+using IBBoard.WarFoundry.API.Factories;
+using IBBoard.WarFoundry.API.Factories.Xml;
+using IBBoard.WarFoundry.API.Objects;
+using IBBoard.WarFoundry.API.Commands;
+using IBBoard.WarFoundry.API.Savers;
+using IBBoard.WarFoundry.API.Requirements;
+using IBBoard.WarFoundry.Widgets;
+using IBBoard.WarFoundry.Plugin.Rollcall;
+using IBBoard.Xml;
+using log4net;
+
+namespace IBBoard.WarFoundry
+{	
+	public partial class FrmMainWindow: Gtk.Window
+	{
+		private static readonly string AppTitle = "WarFoundry";
+		private const int CATEGORY_BUTTON_SEPARATOR_INDEX = 6;
+
+		private Preferences preferences;
+		private ILog logger = LogManager.GetLogger(typeof(FrmMainWindow));
+
+		private CommandStack commandStack;
+		private Type factoryType = typeof(WarFoundryXmlFactory);
+		private Dictionary<ToolButton, Category> categoryMap = new Dictionary<ToolButton, Category>();
+		private Dictionary<IBBoard.WarFoundry.API.Objects.Unit, UnitDisplayWidget> unitToWidgetMap = new Dictionary<IBBoard.WarFoundry.API.Objects.Unit,UnitDisplayWidget>();
+
+		private ObjectAddDelegate UnitAddedMethod;
+		private ObjectRemoveDelegate UnitRemovedMethod;
+		private DoubleValChangedDelegate PointsValueChangedMethod;
+		private FailedUnitRequirementDelegate FailedUnitRequirementMethod;
+		private StringValChangedDelegate UnitNameChangedMethod;
+		
+		private GameSystem system;
+		private string loadedArmyPath;
+		
+		private MenuToolButton undoMenuButton, redoMenuButton;
+		
+		public static void Main (string[] args)
+		{			
+			try
+			{
+				Application.Init();
+				FrmMainWindow win = new FrmMainWindow(args);
+				win.Show();
+				Application.Run();
+				LogManager.GetLogger(typeof(FrmMainWindow)).Debug("Application ended");
+			}
+			catch(Exception ex)
+			{
+				LogManager.GetLogger(typeof(FrmMainWindow)).Fatal(ex.Message + Environment.NewLine + ex.StackTrace);
+			}
+		}
+		
+		public FrmMainWindow() : this(new string[0])
+		{
+			//Do nothing extra
+		}
+			
+		public FrmMainWindow (string[] args): base (Gtk.WindowType.Toplevel)
+		{
+			logger.Info("Opening FrmMainWindow");
+			LogNotifierHandler.RegisterNotifierHandler();
+			Build ();
+			//Replace the undo/redo buttons with menu versions, which Monodevelop's GUI editor doesn't currently support
+			redoMenuButton = new MenuToolButton("gtk-redo");
+			redoMenuButton.Label = "Redo";
+			redoMenuButton.SetTooltip(new Tooltips(), "Redo", "");
+			redoMenuButton.Clicked+= redoTBButtonActivated;
+			toolbar.Insert(redoMenuButton, CATEGORY_BUTTON_SEPARATOR_INDEX);
+			undoMenuButton = new MenuToolButton("gtk-undo");
+			undoMenuButton.Label = "Undo";
+			undoMenuButton.SetTooltip(new Tooltips(), "Undo", "");
+			undoMenuButton.Clicked+= undoTBButtonActivated;
+			toolbar.Insert(undoMenuButton, CATEGORY_BUTTON_SEPARATOR_INDEX);
+			toolbar.Remove(toolbar.Children[CATEGORY_BUTTON_SEPARATOR_INDEX-1]);
+			toolbar.Remove(toolbar.Children[CATEGORY_BUTTON_SEPARATOR_INDEX-2]);
+			toolbar.ShowAll();
+			
+			Title = AppTitle;
+			TreeViewColumn mainColumn = new TreeViewColumn ();
+			mainColumn.Title = "Army Categories";
+			CellRendererText mainCell = new CellRendererText ();
+			mainColumn.PackStart (mainCell, true);
+			treeUnits.AppendColumn(mainColumn);
+			mainColumn.SetCellDataFunc(mainCell, new TreeCellDataFunc(RenderCategoryTreeObjectName));
+			treeUnits.Model = new TreeStore(typeof(WarFoundryObject));
+			logger.Debug("Loading preferences");
+			Preferences = new Preferences("WarFoundryGTK");
+			logger.Debug("Loading translations");
+			Translation.InitialiseTranslations(Constants.ExecutablePath, Preferences["language"].ToString());
+			logger.Debug("Initialising");
+			commandStack = new CommandStack();
+			commandStack.CommandStackUpdated+=new MethodInvoker(commandStack_CommandStackUpdated);
+			WarFoundryCore.GameSystemChanged+= new GameSystemChangedDelegate(OnGameSystemChanged);
+			WarFoundryCore.ArmyChanged+= new ArmyChangedDelegate(OnArmyChanged);
+			Destroyed+= new EventHandler(OnWindowDestroyed);
+			//TODO: Translate and subscribe to other events
+			UnitAddedMethod = new ObjectAddDelegate(OnUnitAdded);
+			UnitRemovedMethod = new ObjectRemoveDelegate(OnUnitRemoved);
+			PointsValueChangedMethod = new DoubleValChangedDelegate(OnPointsValueChanged);
+			FailedUnitRequirementMethod = new FailedUnitRequirementDelegate(OnFailedUnitRequirement);
+			UnitNameChangedMethod = new StringValChangedDelegate(OnUnitNameChanged);
+			logger.Debug("Initialising complete - trying to load default army or system");
+			
+			//FIXME: Temporary hack to add paths and factories
+			WarFoundryLoader.GetDefault().AddLoadDirectory(new DirectoryInfo(Constants.ExecutablePath + Constants.DirectoryString + "data"));
+			IWarFoundryFactory factory = WarFoundryFactoryFactory.GetFactoryFactory().GetFactory(typeof(WarFoundryXmlFactory));
+			
+			if (factory!=null && factory is WarFoundryXmlFactory)
+			{
+				WarFoundryLoader.GetDefault().RegisterFactory((WarFoundryXmlFactory)factory);
+			}
+			
+			factory = WarFoundryFactoryFactory.GetFactoryFactory().GetFactory(typeof(RollcallFactory));
+			
+			if (factory!=null && factory is RollcallFactory)
+			{
+				WarFoundryLoader.GetDefault().RegisterNonNativeFactory((INonNativeWarFoundryFactory)factory);
+			}
+								
+			if (args.Length == 1)
+			{
+				logger.Debug("Attempting to load from file");				
+				FileInfo file = new FileInfo(args[0]);
+				
+				try
+				{
+					//TODO: Try to load files
+					/*if (file.Extension.Equals("."+Factory.GetArmyFileExtension()))
+					{
+						WarFoundryCore.CurrentArmy = Factory.CreateArmyFromFile(file);
+						logger.InfoFormat("Loaded army from {0}", file.FullName);
+					}
+					else if (file.Extension.Equals("."+Factory.GetSystemFileExtension()))
+					{
+						WarFoundryCore.CurrentGameSystem = Factory.CreateGameSystemFromFile(file);
+						logger.InfoFormat("Loaded game system from {0}", file.FullName);
+					}*/
+				}
+				catch (InvalidFileException ex)
+				{
+					//TODO: show error dialog
+					logger.Error(ex);
+				}
+			}
+			else
+			{
+				string gameSystemID = Preferences.GetStringProperty("currSystem");
+
+				if (gameSystemID!=null && !"".Equals(gameSystemID))
+				{
+					logger.Debug("Attempting to load current game system from properties");
+					GameSystem sys = WarFoundryLoader.GetDefault().GetGameSystem(gameSystemID);
+					
+					if (sys!=null)
+					{
+						WarFoundryCore.CurrentGameSystem = sys;
+						logger.InfoFormat("Loaded game system {0} from properties", gameSystemID);
+					}
+				}
+			}
+		}
+		
+		private void RenderCategoryTreeObjectName(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
+		{
+			object o = model.GetValue(iter, 0);
+			
+			if (o is ArmyCategory)
+			{
+				ArmyCategory c = (ArmyCategory)o;
+				string name = "";
+				
+				if (Preferences.GetBooleanProperty("ShowCatPercentage"))
+				{
+					name = Translation.GetTranslation("categoryTreeCatName", "{0} - {1}pts", c.Name, c.PointsTotal);
+				}
+				else
+				{
+					name = Translation.GetTranslation("categoryTreeCatNamePercentage", "{0} - {1}pts ({2}%)", c.Name, c.PointsTotal, (c.ParentArmy.PointsTotal > 0 ? Math.Round((c.PointsTotal / c.ParentArmy.PointsTotal) * 100) : 0));
+				}
+				
+				(cell as CellRendererText).Text = name;
+			}
+			else if (o is IBBoard.WarFoundry.API.Objects.Unit)
+			{
+				IBBoard.WarFoundry.API.Objects.Unit u = (IBBoard.WarFoundry.API.Objects.Unit)o;
+				string name = Translation.GetTranslation("categoryTreeCatName", "{0} - {1}pts", u.Name, u.PointsValue);
+				(cell as CellRendererText).Text = name;
+			}
+		}
+		
+		private void OnWindowDestroyed(object source, EventArgs args)
+		{
+			logger.Info("Exiting");
+			Application.Quit();
+		}
+		
+		private void OnUnitNameChanged(WarFoundryObject val, string oldValue, string newValue)
+		{
+			IBBoard.WarFoundry.API.Objects.Unit unit = (IBBoard.WarFoundry.API.Objects.Unit)val;
+			UnitDisplayWidget widget;
+			unitToWidgetMap.TryGetValue(unit, out widget);
+			
+			if (widget!=null)
+			{
+				unitsNotebook.SetTabLabelText(widget, newValue);
+			}
+		}
+		
+		private void OnUnitAdded(WarFoundryObject val)
+		{
+			IBBoard.WarFoundry.API.Objects.Unit unit = (IBBoard.WarFoundry.API.Objects.Unit)val;
+			unit.NameChanged+= UnitNameChangedMethod;
+			AddUnitToTree(unit);
+		}
+		
+		private void AddUnitToTree(IBBoard.WarFoundry.API.Objects.Unit unit)
+		{
+			TreeStore model = (TreeStore)treeUnits.Model;
+			TreeIter iter;
+			model.GetIterFirst(out iter);
+			
+			do
+			{
+				object obj = model.GetValue(iter, 0);
+				
+				if (obj is ArmyCategory)
+				{
+					ArmyCategory cat = (ArmyCategory)obj;
+					
+					if (cat.Equals(unit.Category))
+					{
+						model.AppendValues(iter, unit);
+						TreePath path = model.GetPath(iter);
+						treeUnits.ExpandToPath(path);
+					}
+				}
+			}
+			while (model.IterNext(ref iter));
+		}
+		
+		private void OnUnitRemoved(WarFoundryObject obj)
+		{
+			IBBoard.WarFoundry.API.Objects.Unit unit = (IBBoard.WarFoundry.API.Objects.Unit)obj;
+			unit.NameChanged-= UnitNameChangedMethod;
+			RemoveUnitFromTree(unit);
+			
+			//See if unit has a tab open and close it if it does
+		}
+		
+		private void RemoveUnitFromTree(IBBoard.WarFoundry.API.Objects.Unit unit)
+		{
+			TreeStore model = (TreeStore)treeUnits.Model;
+			TreeIter iter;
+			model.GetIterFirst(out iter);
+			bool removed = false;
+			
+			do
+			{
+				object obj = model.GetValue(iter, 0);
+				
+				if (obj is ArmyCategory)
+				{
+					ArmyCategory cat = (ArmyCategory)obj;
+					
+					if (unit.Category == null || cat.Equals(unit.Category))
+					{
+						TreeIter innerIter;
+						model.IterChildren(out innerIter, iter);
+						
+						do
+						{
+							object innerObj = model.GetValue(innerIter, 0);
+							
+							if (unit.Equals(innerObj))
+							{
+								model.Remove(ref innerIter);
+								removed = true;
+								break;
+							}
+						}
+						while (model.IterNext(ref innerIter));
+						
+						if (removed)
+						{
+							break;
+						}
+					}
+				}
+			}
+			while (model.IterNext(ref iter));
+		}
+		
+		private void OnPointsValueChanged(WarFoundryObject obj, double before, double after)
+		{
+			//Set points in panel
+		}
+		
+		private void OnFailedUnitRequirement(List<FailedUnitRequirement> failedRequirement)
+		{
+			//Show error message in panel
+		}
+		
+		public Preferences Preferences
+		{
+			get { return preferences; }
+			set { preferences = value; }		
+		}
+		
+		/*public AbstractNativeWarFoundryFactory Factory
+		{
+			get { return WarFoundryFactoryFactory.GetFactoryFactory().GetFactory(Constants.ExecutablePath, factoryType); }
+		}*/
+		
+		protected void OnDeleteEvent (object sender, DeleteEventArgs a)
+		{
+			Application.Quit ();
+			a.RetVal = true;
+		}
+
+		protected virtual void OnExitActivated(object sender, System.EventArgs e)
+		{
+			Application.Quit();
+		}
+
+		protected virtual void OnChangeGameSystemActivated(object sender, System.EventArgs e)
+		{
+			ChangeCurrentGameSystem();
+		}
+
+		protected virtual void OnCreateArmyActivated(object sender, System.EventArgs e)
+		{
+			CreateNewArmy();
+		}
+
+		protected virtual void OnReloadFilesActivated(object sender, System.EventArgs e)
+		{
+		}
+
+		protected virtual void OnSaveArmyAsActivated(object sender, System.EventArgs e)
+		{
+			SaveCurrentArmyAs();
+		}
+
+		protected virtual void OnCloseArmyActivated(object sender, System.EventArgs e)
+		{
+			CloseCurrentArmy();
+		}
+
+		protected virtual void OnOpenArmyActivated(object sender, System.EventArgs e)
+		{
+			OpenArmy();
+		}
+
+		protected virtual void OnSaveArmyActivated(object sender, System.EventArgs e)
+		{
+			SaveCurrentArmy();
+		}
+		
+		protected virtual void OnAddUnitActivated(object sender, System.EventArgs e)
+		{
+			if (sender is ToolButton)
+			{
+				Category cat = null;
+				categoryMap.TryGetValue((ToolButton)sender, out cat);
+				
+				if (cat!=null)
+				{
+					logger.DebugFormat("Show FrmNewUnit for {0}", cat.Name);
+					FrmNewUnit newUnit = new FrmNewUnit(WarFoundryCore.CurrentArmy.Race, cat, WarFoundryCore.CurrentArmy);
+					ResponseType response = (ResponseType)newUnit.Run();
+					newUnit.Hide();
+					
+					if (response==ResponseType.Ok)
+					{
+						CreateAndAddUnitCommand cmd = new CreateAndAddUnitCommand(newUnit.SelectedUnit, cat, WarFoundryCore.CurrentArmy);
+						commandStack.Execute(cmd);
+					}
+					
+					newUnit.Dispose();
+				}
+			}
+		}
+		
+		public CommandStack CommandStack
+		{
+			get { return commandStack; }
+		}
+		
+		private void SetAppTitle()
+		{
+			if (WarFoundryCore.CurrentArmy!=null)
+			{
+				Title = AppTitle + " - " + WarFoundryCore.CurrentGameSystem.Name + " - " + WarFoundryCore.CurrentArmy.Name;
+			}
+			else if (WarFoundryCore.CurrentGameSystem!=null)
+			{
+				Title = AppTitle + " - " + WarFoundryCore.CurrentGameSystem.Name;
+			}
+			else
+			{
+				Title = AppTitle;
+			}
+		}
+		
+		private void OnGameSystemChanged(GameSystem oldSys, GameSystem newSys)
+		{
+			system = newSys;
+			SetAppTitle();
+			miCreateArmy.Sensitive = system!=null;
+			newArmyButton.Sensitive = system!=null;
+			RemoveCategoryButtons();
+			
+			if (system!=null)
+			{
+				AddCategoryButtons(system.Categories);
+			}
+		}
+		
+		private void OnArmyChanged(Army oldArmy, Army newArmy)
+		{
+			loadedArmyPath = null;
+			SetAppTitle();
+			SetArmyTree(newArmy);
+						
+			if (oldArmy!=null)
+			{
+				oldArmy.UnitAdded-= UnitAddedMethod;
+				oldArmy.UnitRemoved-= UnitRemovedMethod;
+				oldArmy.PointsValueChanged-= PointsValueChangedMethod;
+				oldArmy.FailedRequirement-=FailedUnitRequirementMethod;				
+			}
+			
+			unitToWidgetMap.Clear();
+			
+			while (unitsNotebook.NPages > 0)
+			{
+				unitsNotebook.RemovePage(0);
+			}
+			
+			if (newArmy==null)
+			{
+				DisableCategoryButtons();
+			}
+			else
+			{
+				newArmy.UnitAdded+= UnitAddedMethod;
+				newArmy.UnitRemoved+= UnitRemovedMethod;
+				newArmy.PointsValueChanged+= PointsValueChangedMethod;
+				newArmy.FailedRequirement+=FailedUnitRequirementMethod;
+				//TODO: Clear all buttons
+				EnableCategoryButtons();
+
+				if (newArmy.Race.HasCategoryOverrides())
+				{
+					RemoveCategoryButtons();
+					AddCategoryButtons(newArmy.Race.Categories);
+				}
+			}
+			
+			miCloseArmy.Sensitive = newArmy!=null;
+			miSaveArmyAs.Sensitive = newArmy!=null;
+			//New army has no changes, so we can't save it
+			miSaveArmy.Sensitive = false;
+			saveArmyButton.Sensitive = false;
+
+			CommandStack.Reset();
+			SetPointsPanelText();
+		}
+		
+		private void SetArmyTree(Army army)
+		{
+			logger.Debug("Resetting tree");
+			TreeStore store = (TreeStore)treeUnits.Model;
+			store.Clear();
+			TreeIter iter;
+			
+			if (army!=null)
+			{
+				logger.Debug("Loading in categories to tree");
+								
+				foreach (ArmyCategory cat in army.Categories)
+				{
+					logger.DebugFormat("Append category {0}", cat.Name);
+					iter = store.AppendValues(cat);
+					
+					foreach (IBBoard.WarFoundry.API.Objects.Unit unit in cat.GetUnits())
+					{
+						store.AppendValues(iter, unit);
+					} 
+				}
+				
+				logger.Debug("Finished loading tree categories");
+			}
+		}
+		
+		private void DisableCategoryButtons()
+		{
+			SetCategoryButtonsSensitive(false);
+		}
+		
+		private void EnableCategoryButtons()
+		{
+			SetCategoryButtonsSensitive(true);
+		}
+		
+		private void SetCategoryButtonsSensitive(bool state)
+		{
+			int toolbarButtonCount = toolbar.Children.Length - 1;
+			logger.Debug("Last button index: "+toolbarButtonCount);
+			
+			for (int i = toolbarButtonCount; i > CATEGORY_BUTTON_SEPARATOR_INDEX; i--)
+			{
+				logger.DebugFormat("Setting button {0} state to {1}", i, state);
+				toolbar.Children[i].Sensitive = state;
+			}
+		}
+		
+		private void RemoveCategoryButtons()
+		{
+			int toolbarButtonCount = toolbar.Children.Length - 1;
+			
+			for (int i = toolbarButtonCount; i > CATEGORY_BUTTON_SEPARATOR_INDEX; i--)
+			{
+				toolbar.Remove(toolbar.Children[i]);
+			}
+			
+			categoryMap.Clear();
+		}
+		
+		private void AddCategoryButtons(Category[] cats)
+		{
+			if (cats!=null && cats.Length > 0)
+			{
+				logger.DebugFormat("Toolbar button count: {0}. Adding {1} categories.", toolbar.Children.Length, cats.Length);
+				
+				foreach (Category cat in cats)
+				{
+					ToolButton button = new ToolButton("gtk-add");
+					button.Label = cat.Name;
+					button.SetTooltip(new Tooltips(), "Add unit from "+cat.Name, "");
+					//TODO: See if we can associate data in some way, the same as we can with SWF. For now we just use the map.
+					categoryMap.Add(button, cat);
+					button.Clicked+= new System.EventHandler(OnAddUnitActivated);
+					toolbar.Insert(button, -1);
+				}
+			}
+			
+			toolbar.Children[CATEGORY_BUTTON_SEPARATOR_INDEX].Visible = cats!=null && cats.Length>0;
+			
+			toolbar.ShowAll();
+		}
+		
+		private void SetPointsPanelText()
+		{
+			//TODO: Set the points value in the status bar
+		}
+		
+		private void commandStack_CommandStackUpdated()
+		{
+			undoMenuButton.Sensitive = commandStack.CanUndo();
+			miUndo.Sensitive = undoMenuButton.Sensitive;
+			redoMenuButton.Sensitive = commandStack.CanRedo();
+			miRedo.Sensitive = redoMenuButton.Sensitive;
+			int redoLength = commandStack.RedoLength;
+			//TODO: Build menus for undo/redo and find way of adding tooltips
+			/*int maxRedo = Math.Min(10, redoLength);
+			MenuItem[] menuItems = null;
+		
+			if (redoLength > 0)
+			{
+				menuItems = new MenuItem[maxRedo];
+				Command com;
+				MenuItem mi;
+
+				for (int i = 0; i < maxRedo; i++)
+				{
+					com = commandStack.PeekRedoCommand(i+1);
+
+					if (com == null)
+					{
+						break; 
+					}
+
+					mi = new MenuItem(com.Description);
+					mi.Click+=new EventHandler(redoMenu_Click);
+					menuItems[i] = mi;
+				}
+			}
+
+			redoMenu.MenuItems.Clear();
+
+			if (menuItems!=null && menuItems[0]!=null)
+			{
+				bttnRedo.ToolTipText = menuItems[0].Text;
+				redoMenu.MenuItems.AddRange(menuItems);
+			}*/
+			//TODO: Put above code back when we have a dropdown version of the redo button
+			if (redoLength > 0)
+			{
+				//redoMenuButton.Tooltip = CommandStack.PeekRedoCommand().Description;
+			}
+
+			int undoLength = commandStack.UndoLength;
+			/*int maxUndo = Math.Min(10, undoLength);
+			MenuItem[] menuItemsUndo = null;
+			
+			if (undoLength > 0)
+			{
+				menuItemsUndo = new MenuItem[maxUndo];
+				Command com;
+				MenuItem mi;
+
+				for (int i = 0; i < maxUndo; i++)
+				{
+					com = commandStack.PeekUndoCommand(i+1);
+
+					if (com == null)
+					{
+						break; 
+					}
+
+					mi = new MenuItem(com.UndoDescription);
+					mi.Click+=new EventHandler(undoMenu_Click);
+					menuItemsUndo[i] = mi;
+				}
+			}
+
+			undoMenu.MenuItems.Clear();
+
+			if (menuItemsUndo!=null && menuItemsUndo[0]!=null)
+			{
+				bttnUndo.ToolTipText = menuItemsUndo[0].Text;
+				undoMenu.MenuItems.AddRange(menuItemsUndo);
+			}*/			
+			//TODO: Put above code back when we have a dropdown version of the undo button
+			if (undoLength > 0)
+			{
+				//undoMenuButton.Tooltip = CommandStack.PeekUndoCommand().UndoDescription;
+			}
+			
+			saveArmyButton.Sensitive = commandStack.IsDirty() && WarFoundryCore.CurrentArmy!=null && CanSave();
+			miSaveArmy.Sensitive = commandStack.IsDirty() && WarFoundryCore.CurrentArmy!=null && CanSave();
+		}	
+		
+		private bool CanSave()
+		{
+			return loadedArmyPath!=null && WarFoundryCore.CurrentArmy!=null && WarFoundrySaver.GetSaver()!=null;
+		}
+
+		private bool SaveCurrentArmyOrSaveAs()
+		{
+			if (CanSave())
+			{
+				return SaveCurrentArmy();
+			}
+			else 
+			{
+				return SaveCurrentArmyAs();
+			}
+		}
+		
+		private bool OpenArmy()
+		{
+			//TODO: Open dialog for file selection then open army
+			bool success = false;
+			loadedArmyPath = null;//TODO: Set loaded file path
+			return success;
+		}
+
+		private bool SaveCurrentArmy()
+		{
+			bool success = false;
+			
+			if (CanSave())
+			{
+				try
+				{
+					if (WarFoundrySaver.GetSaver().Save(WarFoundryCore.CurrentArmy, loadedArmyPath))
+					{
+						saveArmyButton.Sensitive = false;
+						miSaveArmy.Sensitive = false;
+						CommandStack.setCleanMark();
+						success = true;
+					}
+				}
+				catch (IOException ex)
+				{
+					logger.Error("Saving army failed", ex);
+					MessageDialog md = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "An error occured while saving the army. Please check the logs for details on what failed");
+					md.Show();
+				}
+			}
+			
+			return success;
+		}
+
+		private bool SaveCurrentArmyAs()
+		{
+			/*if (saveArmyDialog.Filter == "")
+			{
+				string savePath = UserDataPath+Constants.DirectoryString+"armies"+Constants.DirectoryString;
+				
+				if (!Directory.Exists(savePath))
+				{
+					Directory.CreateDirectory(savePath);
+				}
+
+				saveArmyDialog.InitialDirectory = savePath;
+				saveArmyDialog.Filter = Translation.GetTranslation("armyFileFilter")+"|*.army";
+				saveArmyDialog.Title = Translation.GetTranslation("saveArmyDialog");
+			}
+
+			DialogResult dr = saveArmyDialog.ShowDialog(this);
+
+			if (dr == DialogResult.OK)
+			{
+				if (WarFoundrySaver.GetSaver().Save(WarFoundryCore.CurrentArmy, saveArmyDialog.FileName))
+				{
+					miSaveArmy.Enabled = false;
+					bttnSaveArmy.Enabled = false;
+					CommandStack.setCleanMark();
+					loadedArmyPath = saveArmyDialog.FileName;
+					return true;
+				}
+				else
+				{
+					MessageBox.Show(this, Translation.GetTranslation("SaveFailed"), Translation.GetTranslation("SaveFailedTitle"), MessageBoxButtons.OK, MessageBoxIcon.Error);
+					return false;
+				}
+			}
+			else
+			{
+				return false;
+			}*/
+			return false;
+		}
+		
+		private bool CloseCurrentArmy()
+		{
+			if (WarFoundryCore.CurrentArmy!=null)
+			{
+				bool canClose = false;
+
+				if (CommandStack.IsDirty())
+				{
+					MessageDialog dia  = new MessageDialog(this, DialogFlags.DestroyWithParent, MessageType.Question, ButtonsType.YesNo | ButtonsType.Cancel, "The army \""+WarFoundryCore.CurrentArmy.Name+"\" has been modified.\r\nSave changes before closing army?");   
+					ResponseType dr = (ResponseType)dia.Run();
+
+					if (dr == ResponseType.Yes)
+					{
+						//They want to save so try to save it or prompt for save as
+						//If they cancel the save as then assume they don't want to close
+						canClose = SaveCurrentArmyOrSaveAs();
+					}
+					else if (dr == ResponseType.No)
+					{
+						//They don't care about their changes
+						canClose = true;
+					}
+					else
+					{
+						//Assume cancel or close with the X button
+						canClose = false;
+					}
+					
+					dia.Dispose();
+				}
+				else
+				{
+					//Nothing has changed so we can safely close
+					canClose = true;
+				}
+
+				if (canClose)
+				{
+					//do close
+					WarFoundryCore.CurrentArmy = null;
+					return true;
+				}
+				else
+				{
+					return false;
+				}
+			}
+			else
+			{
+				//pretend we succeeded
+				return true;
+			}
+		}
+
+		private void CreateNewArmy()
+		{
+			logger.Debug("Create new army");
+			FrmNewArmy newArmy = new FrmNewArmy(WarFoundryCore.CurrentGameSystem);
+			ResponseType type = (ResponseType)newArmy.Run();
+			newArmy.Hide();
+		
+			if (type == ResponseType.Ok)
+			{
+				if (CloseCurrentArmy())
+				{
+					WarFoundryCore.CurrentArmy = new Army(newArmy.SelectedRace, newArmy.ArmyName, newArmy.ArmySize);
+				}
+			}
+			else
+			{
+				logger.Debug("Create new army cancelled");
+			}
+			
+			newArmy.Destroy();
+		}
+		
+		private void ChangeCurrentGameSystem()
+		{				
+			logger.Debug("Changing game system");
+			FrmChangeGameSystem dialog = new FrmChangeGameSystem(this);
+			ResponseType type = (ResponseType)dialog.Run();
+			dialog.Hide();
+			
+			if (type == ResponseType.Ok)
+			{
+				WarFoundryCore.CurrentGameSystem = dialog.SelectedSystem;
+			}
+			else
+			{
+				logger.Debug("Game system change cancelled");
+			}
+			
+			dialog.Destroy();
+		}
+
+		protected virtual void undoTBButtonActivated (object sender, System.EventArgs e)
+		{
+			CommandStack.Undo();
+		}
+
+		protected virtual void redoTBButtonActivated (object sender, System.EventArgs e)
+		{
+			CommandStack.Redo();
+		}
+
+		protected virtual void saveTBButtonActivated (object sender, System.EventArgs e)
+		{
+			SaveCurrentArmy();
+		}
+
+		protected virtual void openTBButtonActivated (object sender, System.EventArgs e)
+		{
+			OpenArmy();
+		}
+
+		protected virtual void newTBButtonActivated (object sender, System.EventArgs e)
+		{
+			CreateNewArmy();
+		}
+
+		protected virtual void ArmyRowActivated (object o, Gtk.RowActivatedArgs args)
+		{
+			TreeModel model = treeUnits.Model;
+			TreeIter iter;
+			model.GetIter(out iter, args.Path);
+			object obj = model.GetValue(iter, 0);
+			
+			if (obj is IBBoard.WarFoundry.API.Objects.Unit)
+			{
+				IBBoard.WarFoundry.API.Objects.Unit unit = (IBBoard.WarFoundry.API.Objects.Unit)obj;
+				
+				UnitDisplayWidget widget;
+				unitToWidgetMap.TryGetValue(unit, out widget);
+				
+				if (widget!=null)
+				{
+					logger.DebugFormat("Selecting existing page for "+unit.Name);
+					unitsNotebook.Page = unitsNotebook.PageNum(widget);
+				}
+				else
+				{
+					widget = new UnitDisplayWidget(unit, CommandStack);
+					Label label = new Label(unit.Name);
+					logger.Debug("Adding page for "+unit.Name);
+					unitToWidgetMap[unit] = widget;
+					int pageNum = unitsNotebook.AppendPage(widget, label);
+					logger.Debug("Page added at index "+pageNum);
+					unitsNotebook.ShowAll();
+					unitsNotebook.Page = pageNum;
+				}
+			}
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FrmNewArmy.cs	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,129 @@
+// FrmNewArmy.cs
+//
+//  Copyright (C) 2007 IBBoard
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License version 2.1 of the License as published by the Free
+// Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
+//
+//
+
+using System;
+using Gtk;
+using IBBoard.Lang;
+using IBBoard.WarFoundry.API;
+using IBBoard.WarFoundry.API.Objects;
+using log4net;
+
+namespace IBBoard.WarFoundry
+{	
+	public partial class FrmNewArmy : Dialog, ITranslatable
+	{
+		private ILog logger = LogManager.GetLogger(typeof(FrmNewArmy));
+		private GameSystem system;
+		private Race race;
+		private string armyName;
+		private int pointsValue;
+		
+		public FrmNewArmy(GameSystem gameSystem)
+		{
+			this.Build();
+			
+			system = gameSystem;
+			lstRaces.Selection.Changed+= new EventHandler(OnSelectionChanged);
+			TreeViewColumn raceColumn = new TreeViewColumn ();
+			raceColumn.Title = "Race";
+			CellRendererText raceCell = new CellRendererText ();
+			raceColumn.PackStart (raceCell, true);
+			lstRaces.AppendColumn(raceColumn);
+			raceColumn.SetCellDataFunc(raceCell, new TreeCellDataFunc(RenderRaceName));
+			ListStore store = new ListStore(typeof(Race));
+			
+			foreach (Race r in WarFoundryLoader.GetDefault().GetRaces(system))
+			{
+				store.AppendValues(r);
+			}
+			
+			lstRaces.Model = store;
+		}
+		
+		public string Text
+		{
+			get { return Title; }
+			set { Title = value; }
+		}
+		
+		private void RenderRaceName(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
+		{
+			Race r = (Race)model.GetValue(iter, 0);
+			(cell as CellRendererText).Text = r.Name;
+		}
+
+		protected virtual void OnSelectionChanged(object o, EventArgs e)
+		{
+			logger.Debug("Selection changed");
+			setOkayButtonState();
+		}
+		
+		private void setOkayButtonState()
+		{
+			bttnCreate.Sensitive = (lstRaces.Selection.CountSelectedRows() > 0 && txtArmyName.Text!="" && sbPointsValue.Value > 0);
+		}
+
+		protected virtual void OnCreateClicked (object sender, System.EventArgs e)
+		{
+			TreeModel model;
+			TreeIter iter;
+			lstRaces.Selection.GetSelected (out model, out iter);
+			race = (Race) model.GetValue(iter, 0);
+			armyName = txtArmyName.Text;
+			pointsValue = (int)sbPointsValue.Value;
+			Respond(ResponseType.Ok);
+		}
+
+		protected virtual void OnCancelClicked (object sender, System.EventArgs e)
+		{
+			Respond(ResponseType.Cancel);
+		}
+
+		protected virtual void OnTextChanged (object sender, System.EventArgs e)
+		{
+			setOkayButtonState();
+		}
+
+		protected virtual void OnSpinChangeValue (object o, Gtk.ChangeValueArgs args)
+		{
+			setOkayButtonState();
+		}
+
+		protected virtual void OnSpinValueChanged (object sender, System.EventArgs e)
+		{
+			setOkayButtonState();
+		}
+		
+		public Race SelectedRace
+		{
+			get { return race; }
+		}
+		
+		public string ArmyName
+		{
+			get { return armyName; }
+		}
+		
+		public int ArmySize 
+		{
+			get { return pointsValue; }
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FrmNewUnit.cs	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,133 @@
+// FrmNewUnit.cs
+//
+//  Copyright (C) 2007 IBBoard
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License version 2.1 of the License as published by the Free
+// Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
+//
+//
+
+using System;
+using System.Collections.Generic;
+using IBBoard.WarFoundry.API.Objects;
+using IBBoard.WarFoundry.API.Requirements;
+using Gtk;
+using log4net;
+
+namespace IBBoard.WarFoundry
+{
+	public partial class FrmNewUnit : Gtk.Dialog
+	{
+		private ILog logger = LogManager.GetLogger(typeof(FrmNewUnit));
+		
+		private UnitType unitType;
+		private Army unitArmy;
+		
+		public FrmNewUnit(Race race, Category cat, Army army)
+		{
+			this.Build();
+			unitArmy = army;
+			
+			TreeViewColumn unitTypeColumn = new TreeViewColumn ();
+			unitTypeColumn.Title = "Unit Type";
+			CellRendererText unitTypeCell = new CellRendererText ();
+			unitTypeColumn.PackStart(unitTypeCell, true);
+			lstUnitTypes.AppendColumn(unitTypeColumn);
+			unitTypeColumn.SetCellDataFunc (unitTypeCell, new TreeCellDataFunc(RenderUnitTypeName));
+			ListStore store = new ListStore(typeof(UnitType));
+			UnitType[] types = race.GetUnitTypes(cat);
+			logger.DebugFormat("Listing {0} unit types in {1}", types.Length, cat.Name);
+			
+			foreach (UnitType type in types)
+			{
+				logger.DebugFormat("Adding unit type {0}", type.Name);
+				store.AppendValues(type);
+			}
+			
+			lstUnitTypes.Model = store;
+			lstUnitTypes.Selection.Changed+= new EventHandler(OnSelectionChanged);
+		}
+		
+		private void RenderUnitTypeName(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
+		{
+			UnitType type = (UnitType)model.GetValue(iter, 0);
+			(cell as CellRendererText).Text = type.Name;
+		}
+		
+		protected virtual void OnSelectionChanged(object o, EventArgs e)
+		{
+			SetSelectUnitEnabledVal();
+		}
+		
+		public UnitType SelectedUnit
+		{
+			get { return unitType; }
+		}
+		
+		private UnitType GetSelectedUnitType()
+		{		
+			TreeModel model;
+			TreeIter iter;
+			lstUnitTypes.Selection.GetSelected (out model, out iter);
+			UnitType toReturn = null;
+			
+			if (model!=null)
+			{
+				toReturn = (UnitType) model.GetValue(iter, 0);
+			}
+			
+			return toReturn;
+		}
+		
+		private void SetSelectUnitEnabledVal()
+		{
+			UnitType type = GetSelectedUnitType();
+			
+			if (type!=null)
+			{
+				buttonOk.Sensitive = true;
+				List<FailedUnitRequirement> fails = unitArmy.CanAddUnitType(type);
+				lblNewUnitWarning.Visible = (fails != null);
+
+				if (fails.Count > 0)
+				{
+					//FIXME: currently only show the first error
+					lblNewUnitWarning.Text = fails[0].Description;
+				}
+			}
+			else
+			{
+				buttonOk.Sensitive = false;
+				lblNewUnitWarning.Visible = false;
+			}
+		}
+
+		protected virtual void OnButtonCancelActivated (object sender, System.EventArgs e)
+		{
+			Respond(ResponseType.Cancel);
+		}
+
+		protected virtual void OnRowActivated (object o, Gtk.RowActivatedArgs args)
+		{
+			unitType = GetSelectedUnitType();
+			Respond(ResponseType.Ok);
+		}
+
+		protected virtual void OnButtonOkClicked (object sender, System.EventArgs e)
+		{
+			unitType = GetSelectedUnitType();
+			Respond(ResponseType.Ok);
+		}
+	}
+}
Binary file WarFoundry GTK# GUI.pidb has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WarFoundryGUI.exe.log4net	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!-- This section contains the log4net configuration settings -->
+<log4net>
+    <!-- Define some output appenders -->	
+    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
+        <layout type="log4net.Layout.PatternLayout">
+            <param name="ConversionPattern" value="%-5p [%d{HH:MM:ss}]: %C{1}.%M() - Line: %L - %m%n" />
+        </layout>
+    </appender>
+    <!-- Setup the root category, add the appenders and set the default priority -->
+    <root>
+        <level value="DEBUG" />
+        <appender-ref ref="ConsoleAppender" />
+    </root>
+</log4net>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WarFoundryGUI.mdp	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,55 @@
+<Project name="WarFoundry GTK# GUI" fileversion="2.0" language="C#" DefaultNamespace="IBBoard.WarFoundry" clr-version="Net_2_0" Description="A GTK# GUI for the WarFoundry army builder application." ctype="DotNetProject">
+  <Configurations active="Debug">
+    <Configuration name="Debug" ctype="DotNetProjectConfiguration">
+      <Output directory="bin/Debug" assemblyKeyFile="." assembly="WarFoundryGTK" />
+      <Build debugmode="True" target="Exe" />
+      <Execution runwithwarnings="True" consolepause="True" runtime="MsNet" clr-version="Net_2_0" />
+      <CodeGeneration compiler="Mcs" warninglevel="4" optimize="True" unsafecodeallowed="False" generateoverflowchecks="True" mainclass="IBBoard.WarFoundry.FrmMainWindow" generatexmldocumentation="False" win32Icon="App.ico" ctype="CSharpCompilerParameters" />
+    </Configuration>
+    <Configuration name="Release" ctype="DotNetProjectConfiguration">
+      <Output directory="bin/Release" assembly="WarFoundryGTK" />
+      <Build debugmode="False" target="Exe" />
+      <Execution runwithwarnings="True" consolepause="True" runtime="MsNet" clr-version="Net_2_0" />
+      <CodeGeneration compiler="Mcs" warninglevel="4" optimize="True" unsafecodeallowed="False" generateoverflowchecks="True" generatexmldocumentation="False" ctype="CSharpCompilerParameters" />
+    </Configuration>
+  </Configurations>
+  <Contents>
+    <File name="gtk-gui/gui.stetic" subtype="Code" buildaction="EmbedAsResource" />
+    <File name="gtk-gui/generated.cs" subtype="Code" buildaction="Compile" />
+    <File name="FrmMainWindow.cs" subtype="Code" buildaction="Compile" />
+    <File name="AssemblyInfo.cs" subtype="Code" buildaction="Compile" />
+    <File name="FrmNewArmy.cs" subtype="Code" buildaction="Compile" />
+    <File name="gtk-gui/IBBoard.WarFoundry.FrmNewArmy.cs" subtype="Code" buildaction="Compile" />
+    <File name="App.png" subtype="Code" buildaction="Nothing" />
+    <File name="App.ico" subtype="Code" buildaction="EmbedAsResource" />
+    <File name="gtk-gui/IBBoard.WarFoundry.FrmMainWindow.cs" subtype="Code" buildaction="Compile" />
+    <File name="libs/log4net.dll" subtype="Code" buildaction="Nothing" />
+    <File name="libs/log4net.xml" subtype="Code" buildaction="Nothing" />
+    <File name="WarFoundryGUI.exe.log4net" subtype="Code" buildaction="Nothing" />
+    <File name="FrmChangeGameSystem.cs" subtype="Code" buildaction="Compile" />
+    <File name="gtk-gui/IBBoard.WarFoundry.FrmChangeGameSystem.cs" subtype="Code" buildaction="Compile" />
+    <File name="FrmNewUnit.cs" subtype="Code" buildaction="Compile" />
+    <File name="gtk-gui/IBBoard.WarFoundry.FrmNewUnit.cs" subtype="Code" buildaction="Compile" />
+    <File name="Widgets" subtype="Directory" buildaction="Compile" />
+    <File name="Widgets/UnitDisplayWidget.cs" subtype="Code" buildaction="Compile" />
+    <File name="gtk-gui/objects.xml" subtype="Code" buildaction="EmbedAsResource" />
+    <File name="gtk-gui/IBBoard.WarFoundry.Widgets.UnitDisplayWidget.cs" subtype="Code" buildaction="Compile" />
+  </Contents>
+  <References>
+    <ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+    <ProjectReference type="Gac" localcopy="True" refto="Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
+    <ProjectReference type="Project" localcopy="True" refto="IBBoard" />
+    <ProjectReference type="Project" localcopy="True" refto="IBBoard.WarFoundry.API" />
+    <ProjectReference type="Gac" localcopy="True" refto="gtk-sharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+    <ProjectReference type="Gac" localcopy="True" refto="gdk-sharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+    <ProjectReference type="Assembly" localcopy="True" refto="libs/log4net.dll" />
+    <ProjectReference type="Project" localcopy="True" refto="IBBoard.WarFoundry.Plugin.Rollcall" />
+    <ProjectReference type="Project" localcopy="True" refto="IBBoard.Log4Net" />
+  </References>
+  <Deployment.LinuxDeployData scriptName="warfoundry_gui" />
+  <GtkDesignInfo isWidgetLibrary="True" gtkVersion="2.12.1">
+    <ExportedWidgets>
+      <Widget>IBBoard.WarFoundry.Widgets.UnitDisplayWidget</Widget>
+    </ExportedWidgets>
+  </GtkDesignInfo>
+</Project>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Widgets/UnitDisplayWidget.cs	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,157 @@
+// UnitDisplayWidget.cs
+//
+//  Copyright (C) 2008 IBBoard
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License version 2.1 of the License as published by the Free
+// Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
+//
+//
+
+using System;
+using Gtk;
+using IBBoard.Commands;
+using IBBoard.Lang;
+using IBBoard.WarFoundry.API;
+using IBBoard.WarFoundry.API.Objects;
+using IBBoard.WarFoundry.API.Commands;
+
+namespace IBBoard.WarFoundry.Widgets
+{
+	public partial class UnitDisplayWidget : Gtk.Bin
+	{		
+		private IBBoard.WarFoundry.API.Objects.Unit unit;
+		private CommandStack stack;
+		
+		public UnitDisplayWidget(IBBoard.WarFoundry.API.Objects.Unit sourceUnit, CommandStack commandStack)
+		{
+			this.Build();
+			stack = commandStack;
+			unit = sourceUnit;
+			unitName.Text = unit.Name;
+			unitSize.Value = unit.Size;
+			double max = unit.UnitType.MaxSize;
+			
+			if (max == -1)
+			{
+				max = double.MaxValue;
+			}
+			
+			unitSize.SetRange(unit.UnitType.MinSize, max);
+			unit.NameChanged+= new StringValChangedDelegate(UnitNameChanged);
+			unit.UnitSizeChanged+= new IntValChangedDelegate(UnitSizeChanged);
+			SetStats();
+		}
+
+		private void SetStats()
+		{
+            //GameSystem system = unit.Army.GameSystem;
+            //SystemStats stats = system.StandardSystemStats;
+            Stats stats = unit.UnitType.UnitStats;
+            CellRendererText renderer = new CellRendererText();
+            unitStats.AppendColumn(Translation.GetTranslation("UnitNameColumn", "Unit Type", null), renderer, new TreeCellDataFunc(RenderUnitName));
+            
+            TreeCellDataFunc statFunc = new TreeCellDataFunc(RenderUnitStat);
+			
+			int length = stats.StatCount;
+
+			for (int i = 0; i < length; i++)
+			{
+	            unitStats.AppendColumn(stats[i].ParentSlot.Name, renderer, statFunc);
+			}
+
+			TreeStore model = new TreeStore(typeof(IBBoard.WarFoundry.API.Objects.Unit));
+			model.AppendValues(unit);
+			unitStats.Model = model;
+		}
+		
+		private void RenderUnitName(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
+		{
+			object o = model.GetValue(iter, 0);
+			
+			if (o is IBBoard.WarFoundry.API.Objects.Unit)
+			{
+				IBBoard.WarFoundry.API.Objects.Unit u = (IBBoard.WarFoundry.API.Objects.Unit)o;				
+				(cell as CellRendererText).Text = u.UnitType.Name;
+			}
+		}
+		
+		private void RenderUnitStat(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
+		{
+			object o = model.GetValue(iter, 0);
+			
+			if (o is IBBoard.WarFoundry.API.Objects.Unit)
+			{
+				IBBoard.WarFoundry.API.Objects.Unit u = (IBBoard.WarFoundry.API.Objects.Unit)o;
+				//TODO Check for correct value based on the column
+				(cell as CellRendererText).Text = u.UnitStats[column.Title].SlotValueString;
+			}
+		}
+		
+		private void UnitNameChanged(WarFoundryObject obj, string oldValue, string newValue)
+		{
+			unitName.Text = newValue;
+		}
+		
+		private void UnitSizeChanged(WarFoundryObject obj, int oldValue, int newValue)
+		{
+			unitSize.Value = newValue;
+		}
+
+		protected virtual void OnUnitSizeFocusOut (object o, Gtk.FocusOutEventArgs args)
+		{
+			SetNewUnitSize();
+		}
+
+		[GLib.ConnectBefore ()]
+		protected virtual void OnUnitSizeKeyPress (object o, Gtk.KeyPressEventArgs args)
+		{
+			if (args.Event.Key == Gdk.Key.Return)
+			{
+				SetNewUnitSize();
+			}
+		}
+		
+		private void SetNewUnitSize()
+		{
+			if (unitSize.Value!=unit.Size)
+			{
+				SetUnitSizeCommand cmd = new SetUnitSizeCommand(unit, (int)Math.Round(unitSize.Value));
+				stack.Execute(cmd);
+			}
+		}
+
+		protected virtual void OnUnitNameFocusOut (object o, Gtk.FocusOutEventArgs args)
+		{
+			SetNewUnitName();
+		}
+
+		[GLib.ConnectBefore ()]
+		protected virtual void OnUnitNameKeyPress (object o, Gtk.KeyPressEventArgs args)
+		{
+			if (args.Event.Key == Gdk.Key.Return)
+			{
+				SetNewUnitName();
+			}
+		}
+		
+		private void SetNewUnitName()
+		{
+			if (unitName.Text!=unit.Name)
+			{
+				SetNameCommand cmd = new SetNameCommand(unit, unitName.Text);
+				stack.Execute(cmd);
+			}
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk-gui/IBBoard.WarFoundry.FrmChangeGameSystem.cs	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,122 @@
+// ------------------------------------------------------------------------------
+//  <autogenerated>
+//      This code was generated by a tool.
+//      Mono Runtime Version: 2.0.50727.42
+// 
+//      Changes to this file may cause incorrect behavior and will be lost if 
+//      the code is regenerated.
+//  </autogenerated>
+// ------------------------------------------------------------------------------
+
+namespace IBBoard.WarFoundry {
+    
+    
+    public partial class FrmChangeGameSystem {
+        
+        private Gtk.HBox hbox1;
+        
+        private Gtk.Label lblGameSystem;
+        
+        private Gtk.ScrolledWindow GtkScrolledWindow;
+        
+        private Gtk.TreeView lstGameSystems;
+        
+        private Gtk.Button buttonCancel;
+        
+        private Gtk.Button buttonOk;
+        
+        protected virtual void Build() {
+            Stetic.Gui.Initialize(this);
+            // Widget IBBoard.WarFoundry.FrmChangeGameSystem
+            this.Name = "IBBoard.WarFoundry.FrmChangeGameSystem";
+            this.Title = Mono.Unix.Catalog.GetString("Change Game System");
+            this.Icon = Gdk.Pixbuf.LoadFromResource("App.ico");
+            this.TypeHint = ((Gdk.WindowTypeHint)(1));
+            this.WindowPosition = ((Gtk.WindowPosition)(4));
+            this.Modal = true;
+            this.Resizable = false;
+            this.AllowGrow = false;
+            this.DefaultWidth = 400;
+            this.DefaultHeight = 300;
+            this.SkipPagerHint = true;
+            this.SkipTaskbarHint = true;
+            this.HasSeparator = false;
+            // Internal child IBBoard.WarFoundry.FrmChangeGameSystem.VBox
+            Gtk.VBox w1 = this.VBox;
+            w1.Name = "dialog1_VBox";
+            w1.Spacing = 6;
+            w1.BorderWidth = ((uint)(2));
+            // Container child dialog1_VBox.Gtk.Box+BoxChild
+            this.hbox1 = new Gtk.HBox();
+            this.hbox1.Name = "hbox1";
+            this.hbox1.Spacing = 6;
+            // Container child hbox1.Gtk.Box+BoxChild
+            this.lblGameSystem = new Gtk.Label();
+            this.lblGameSystem.Name = "lblGameSystem";
+            this.lblGameSystem.LabelProp = Mono.Unix.Catalog.GetString("Game System");
+            this.hbox1.Add(this.lblGameSystem);
+            Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.hbox1[this.lblGameSystem]));
+            w2.Position = 0;
+            w2.Expand = false;
+            w2.Fill = false;
+            // Container child hbox1.Gtk.Box+BoxChild
+            this.GtkScrolledWindow = new Gtk.ScrolledWindow();
+            this.GtkScrolledWindow.Name = "GtkScrolledWindow";
+            this.GtkScrolledWindow.ShadowType = ((Gtk.ShadowType)(1));
+            // Container child GtkScrolledWindow.Gtk.Container+ContainerChild
+            this.lstGameSystems = new Gtk.TreeView();
+            this.lstGameSystems.WidthRequest = 250;
+            this.lstGameSystems.HeightRequest = 125;
+            this.lstGameSystems.CanFocus = true;
+            this.lstGameSystems.Name = "lstGameSystems";
+            this.lstGameSystems.HeadersVisible = false;
+            this.lstGameSystems.HeadersClickable = true;
+            this.GtkScrolledWindow.Add(this.lstGameSystems);
+            this.hbox1.Add(this.GtkScrolledWindow);
+            Gtk.Box.BoxChild w4 = ((Gtk.Box.BoxChild)(this.hbox1[this.GtkScrolledWindow]));
+            w4.Position = 1;
+            w1.Add(this.hbox1);
+            Gtk.Box.BoxChild w5 = ((Gtk.Box.BoxChild)(w1[this.hbox1]));
+            w5.Position = 0;
+            // Internal child IBBoard.WarFoundry.FrmChangeGameSystem.ActionArea
+            Gtk.HButtonBox w6 = this.ActionArea;
+            w6.Name = "dialog1_ActionArea";
+            w6.Spacing = 6;
+            w6.BorderWidth = ((uint)(5));
+            w6.LayoutStyle = ((Gtk.ButtonBoxStyle)(4));
+            // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
+            this.buttonCancel = new Gtk.Button();
+            this.buttonCancel.CanDefault = true;
+            this.buttonCancel.CanFocus = true;
+            this.buttonCancel.Name = "buttonCancel";
+            this.buttonCancel.UseStock = true;
+            this.buttonCancel.UseUnderline = true;
+            this.buttonCancel.Label = "gtk-cancel";
+            this.AddActionWidget(this.buttonCancel, -6);
+            Gtk.ButtonBox.ButtonBoxChild w7 = ((Gtk.ButtonBox.ButtonBoxChild)(w6[this.buttonCancel]));
+            w7.Expand = false;
+            w7.Fill = false;
+            // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
+            this.buttonOk = new Gtk.Button();
+            this.buttonOk.Sensitive = false;
+            this.buttonOk.CanDefault = true;
+            this.buttonOk.CanFocus = true;
+            this.buttonOk.Name = "buttonOk";
+            this.buttonOk.UseStock = true;
+            this.buttonOk.UseUnderline = true;
+            this.buttonOk.Label = "gtk-ok";
+            this.AddActionWidget(this.buttonOk, -5);
+            Gtk.ButtonBox.ButtonBoxChild w8 = ((Gtk.ButtonBox.ButtonBoxChild)(w6[this.buttonOk]));
+            w8.Position = 1;
+            w8.Expand = false;
+            w8.Fill = false;
+            if ((this.Child != null)) {
+                this.Child.ShowAll();
+            }
+            this.Show();
+            this.lstGameSystems.RowActivated += new Gtk.RowActivatedHandler(this.lstGameSystemsRowActivated);
+            this.buttonCancel.Clicked += new System.EventHandler(this.OnCancel);
+            this.buttonOk.Clicked += new System.EventHandler(this.OnGameSystemOkayClicked);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk-gui/IBBoard.WarFoundry.FrmMainWindow.cs	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,234 @@
+// ------------------------------------------------------------------------------
+//  <autogenerated>
+//      This code was generated by a tool.
+//      Mono Runtime Version: 2.0.50727.42
+// 
+//      Changes to this file may cause incorrect behavior and will be lost if 
+//      the code is regenerated.
+//  </autogenerated>
+// ------------------------------------------------------------------------------
+
+namespace IBBoard.WarFoundry {
+    
+    
+    public partial class FrmMainWindow {
+        
+        private Gtk.Action menuFile;
+        
+        private Gtk.Action miCreateArmy;
+        
+        private Gtk.Action miOpenArmy;
+        
+        private Gtk.Action miSaveArmy;
+        
+        private Gtk.Action miSaveArmyAs;
+        
+        private Gtk.Action miCloseArmy;
+        
+        private Gtk.Action miChangeGameSystem;
+        
+        private Gtk.Action miReloadFiles;
+        
+        private Gtk.Action miExit;
+        
+        private Gtk.Action menuEdit;
+        
+        private Gtk.Action miUndo;
+        
+        private Gtk.Action miRedo;
+        
+        private Gtk.Action menuHelp;
+        
+        private Gtk.Action miAbout;
+        
+        private Gtk.Action miDebugInformation;
+        
+        private Gtk.Action newArmyButton;
+        
+        private Gtk.Action openArmyButton;
+        
+        private Gtk.Action saveArmyButton;
+        
+        private Gtk.Action undoActionButton;
+        
+        private Gtk.Action redoActionButton;
+        
+        private Gtk.Action goDown;
+        
+        private Gtk.Action add;
+        
+        private Gtk.VBox vbox1;
+        
+        private Gtk.MenuBar menubar1;
+        
+        private Gtk.Toolbar toolbar;
+        
+        private Gtk.HPaned hpaned2;
+        
+        private Gtk.TreeView treeUnits;
+        
+        private Gtk.Notebook unitsNotebook;
+        
+        private Gtk.Statusbar statusbar1;
+        
+        protected virtual void Build() {
+            Stetic.Gui.Initialize(this);
+            // Widget IBBoard.WarFoundry.FrmMainWindow
+            Gtk.UIManager w1 = new Gtk.UIManager();
+            Gtk.ActionGroup w2 = new Gtk.ActionGroup("Default");
+            this.menuFile = new Gtk.Action("menuFile", Mono.Unix.Catalog.GetString("File"), null, null);
+            this.menuFile.ShortLabel = Mono.Unix.Catalog.GetString("File");
+            w2.Add(this.menuFile, null);
+            this.miCreateArmy = new Gtk.Action("miCreateArmy", Mono.Unix.Catalog.GetString("Create army"), null, null);
+            this.miCreateArmy.Sensitive = false;
+            this.miCreateArmy.ShortLabel = Mono.Unix.Catalog.GetString("Create army");
+            w2.Add(this.miCreateArmy, null);
+            this.miOpenArmy = new Gtk.Action("miOpenArmy", Mono.Unix.Catalog.GetString("Open army"), null, null);
+            this.miOpenArmy.Sensitive = false;
+            this.miOpenArmy.ShortLabel = Mono.Unix.Catalog.GetString("Open army");
+            w2.Add(this.miOpenArmy, null);
+            this.miSaveArmy = new Gtk.Action("miSaveArmy", Mono.Unix.Catalog.GetString("Save army"), null, null);
+            this.miSaveArmy.Sensitive = false;
+            this.miSaveArmy.ShortLabel = Mono.Unix.Catalog.GetString("Save army");
+            w2.Add(this.miSaveArmy, null);
+            this.miSaveArmyAs = new Gtk.Action("miSaveArmyAs", Mono.Unix.Catalog.GetString("Save army as"), null, null);
+            this.miSaveArmyAs.Sensitive = false;
+            this.miSaveArmyAs.ShortLabel = Mono.Unix.Catalog.GetString("Save army as");
+            w2.Add(this.miSaveArmyAs, null);
+            this.miCloseArmy = new Gtk.Action("miCloseArmy", Mono.Unix.Catalog.GetString("Close army"), null, null);
+            this.miCloseArmy.Sensitive = false;
+            this.miCloseArmy.ShortLabel = Mono.Unix.Catalog.GetString("Close army");
+            w2.Add(this.miCloseArmy, null);
+            this.miChangeGameSystem = new Gtk.Action("miChangeGameSystem", Mono.Unix.Catalog.GetString("Change game system"), null, null);
+            this.miChangeGameSystem.ShortLabel = Mono.Unix.Catalog.GetString("Change game system");
+            w2.Add(this.miChangeGameSystem, null);
+            this.miReloadFiles = new Gtk.Action("miReloadFiles", Mono.Unix.Catalog.GetString("Reload files"), null, null);
+            this.miReloadFiles.Sensitive = false;
+            this.miReloadFiles.ShortLabel = Mono.Unix.Catalog.GetString("Reload files");
+            w2.Add(this.miReloadFiles, null);
+            this.miExit = new Gtk.Action("miExit", Mono.Unix.Catalog.GetString("Exit"), null, null);
+            this.miExit.ShortLabel = Mono.Unix.Catalog.GetString("Exit");
+            w2.Add(this.miExit, null);
+            this.menuEdit = new Gtk.Action("menuEdit", Mono.Unix.Catalog.GetString("Edit"), null, null);
+            this.menuEdit.ShortLabel = Mono.Unix.Catalog.GetString("Edit");
+            w2.Add(this.menuEdit, null);
+            this.miUndo = new Gtk.Action("miUndo", Mono.Unix.Catalog.GetString("Undo"), null, null);
+            this.miUndo.Sensitive = false;
+            this.miUndo.ShortLabel = Mono.Unix.Catalog.GetString("Undo");
+            w2.Add(this.miUndo, null);
+            this.miRedo = new Gtk.Action("miRedo", Mono.Unix.Catalog.GetString("Redo"), null, null);
+            this.miRedo.Sensitive = false;
+            this.miRedo.ShortLabel = Mono.Unix.Catalog.GetString("Redo");
+            w2.Add(this.miRedo, null);
+            this.menuHelp = new Gtk.Action("menuHelp", Mono.Unix.Catalog.GetString("Help"), null, null);
+            this.menuHelp.ShortLabel = Mono.Unix.Catalog.GetString("Help");
+            w2.Add(this.menuHelp, null);
+            this.miAbout = new Gtk.Action("miAbout", Mono.Unix.Catalog.GetString("About"), null, null);
+            this.miAbout.ShortLabel = Mono.Unix.Catalog.GetString("About");
+            w2.Add(this.miAbout, null);
+            this.miDebugInformation = new Gtk.Action("miDebugInformation", Mono.Unix.Catalog.GetString("Debug Information"), null, null);
+            this.miDebugInformation.ShortLabel = Mono.Unix.Catalog.GetString("Debug Information");
+            w2.Add(this.miDebugInformation, null);
+            this.newArmyButton = new Gtk.Action("newArmyButton", null, null, "gtk-new");
+            this.newArmyButton.Sensitive = false;
+            w2.Add(this.newArmyButton, null);
+            this.openArmyButton = new Gtk.Action("openArmyButton", null, null, "gtk-open");
+            this.openArmyButton.Sensitive = false;
+            w2.Add(this.openArmyButton, null);
+            this.saveArmyButton = new Gtk.Action("saveArmyButton", null, null, "gtk-save");
+            this.saveArmyButton.Sensitive = false;
+            w2.Add(this.saveArmyButton, null);
+            this.undoActionButton = new Gtk.Action("undoActionButton", null, null, "gtk-undo");
+            this.undoActionButton.Sensitive = false;
+            w2.Add(this.undoActionButton, null);
+            this.redoActionButton = new Gtk.Action("redoActionButton", null, null, "gtk-redo");
+            this.redoActionButton.Sensitive = false;
+            w2.Add(this.redoActionButton, null);
+            this.goDown = new Gtk.Action("goDown", null, null, null);
+            w2.Add(this.goDown, null);
+            this.add = new Gtk.Action("add", null, null, "gtk-add");
+            w2.Add(this.add, null);
+            w1.InsertActionGroup(w2, 0);
+            this.AddAccelGroup(w1.AccelGroup);
+            this.Name = "IBBoard.WarFoundry.FrmMainWindow";
+            this.Title = Mono.Unix.Catalog.GetString("MainWindow");
+            this.Icon = Gdk.Pixbuf.LoadFromResource("App.ico");
+            // Container child IBBoard.WarFoundry.FrmMainWindow.Gtk.Container+ContainerChild
+            this.vbox1 = new Gtk.VBox();
+            this.vbox1.Name = "vbox1";
+            // Container child vbox1.Gtk.Box+BoxChild
+            w1.AddUiFromString("<ui><menubar name='menubar1'><menu action='menuFile'><menuitem action='miCreateArmy'/><menuitem action='miOpenArmy'/><menuitem action='miSaveArmy'/><menuitem action='miSaveArmyAs'/><menuitem action='miCloseArmy'/><separator/><menuitem action='miChangeGameSystem'/><separator/><menuitem action='miReloadFiles'/><separator/><menuitem action='miExit'/></menu><menu action='menuEdit'><menuitem action='miUndo'/><menuitem action='miRedo'/></menu><menu action='menuHelp'><menuitem action='miAbout'/><menuitem action='miDebugInformation'/></menu></menubar></ui>");
+            this.menubar1 = ((Gtk.MenuBar)(w1.GetWidget("/menubar1")));
+            this.menubar1.Name = "menubar1";
+            this.vbox1.Add(this.menubar1);
+            Gtk.Box.BoxChild w3 = ((Gtk.Box.BoxChild)(this.vbox1[this.menubar1]));
+            w3.Position = 0;
+            w3.Expand = false;
+            w3.Fill = false;
+            // Container child vbox1.Gtk.Box+BoxChild
+            w1.AddUiFromString("<ui><toolbar name='toolbar'><toolitem action='newArmyButton'/><toolitem action='openArmyButton'/><toolitem action='saveArmyButton'/><separator/><toolitem action='undoActionButton'/><toolitem action='redoActionButton'/><separator/></toolbar></ui>");
+            this.toolbar = ((Gtk.Toolbar)(w1.GetWidget("/toolbar")));
+            this.toolbar.HeightRequest = 36;
+            this.toolbar.Name = "toolbar";
+            this.toolbar.ShowArrow = false;
+            this.toolbar.ToolbarStyle = ((Gtk.ToolbarStyle)(0));
+            this.vbox1.Add(this.toolbar);
+            Gtk.Box.BoxChild w4 = ((Gtk.Box.BoxChild)(this.vbox1[this.toolbar]));
+            w4.Position = 1;
+            w4.Expand = false;
+            w4.Fill = false;
+            // Container child vbox1.Gtk.Box+BoxChild
+            this.hpaned2 = new Gtk.HPaned();
+            this.hpaned2.CanFocus = true;
+            this.hpaned2.Name = "hpaned2";
+            this.hpaned2.Position = 178;
+            // Container child hpaned2.Gtk.Paned+PanedChild
+            this.treeUnits = new Gtk.TreeView();
+            this.treeUnits.CanFocus = true;
+            this.treeUnits.Name = "treeUnits";
+            this.treeUnits.HeadersClickable = true;
+            this.hpaned2.Add(this.treeUnits);
+            Gtk.Paned.PanedChild w5 = ((Gtk.Paned.PanedChild)(this.hpaned2[this.treeUnits]));
+            w5.Resize = false;
+            // Container child hpaned2.Gtk.Paned+PanedChild
+            this.unitsNotebook = new Gtk.Notebook();
+            this.unitsNotebook.CanFocus = true;
+            this.unitsNotebook.Name = "unitsNotebook";
+            this.unitsNotebook.CurrentPage = -1;
+            this.hpaned2.Add(this.unitsNotebook);
+            this.vbox1.Add(this.hpaned2);
+            Gtk.Box.BoxChild w7 = ((Gtk.Box.BoxChild)(this.vbox1[this.hpaned2]));
+            w7.Position = 2;
+            // Container child vbox1.Gtk.Box+BoxChild
+            this.statusbar1 = new Gtk.Statusbar();
+            this.statusbar1.Name = "statusbar1";
+            this.statusbar1.Spacing = 2;
+            this.vbox1.Add(this.statusbar1);
+            Gtk.Box.BoxChild w8 = ((Gtk.Box.BoxChild)(this.vbox1[this.statusbar1]));
+            w8.Position = 3;
+            w8.Expand = false;
+            w8.Fill = false;
+            this.Add(this.vbox1);
+            if ((this.Child != null)) {
+                this.Child.ShowAll();
+            }
+            this.DefaultWidth = 832;
+            this.DefaultHeight = 659;
+            this.Show();
+            this.miCreateArmy.Activated += new System.EventHandler(this.OnCreateArmyActivated);
+            this.miOpenArmy.Activated += new System.EventHandler(this.OnOpenArmyActivated);
+            this.miSaveArmy.Activated += new System.EventHandler(this.OnSaveArmyActivated);
+            this.miSaveArmyAs.Activated += new System.EventHandler(this.OnSaveArmyAsActivated);
+            this.miCloseArmy.Activated += new System.EventHandler(this.OnCloseArmyActivated);
+            this.miChangeGameSystem.Activated += new System.EventHandler(this.OnChangeGameSystemActivated);
+            this.miReloadFiles.Activated += new System.EventHandler(this.OnReloadFilesActivated);
+            this.miExit.Activated += new System.EventHandler(this.OnExitActivated);
+            this.newArmyButton.Activated += new System.EventHandler(this.newTBButtonActivated);
+            this.openArmyButton.Activated += new System.EventHandler(this.openTBButtonActivated);
+            this.saveArmyButton.Activated += new System.EventHandler(this.saveTBButtonActivated);
+            this.undoActionButton.Activated += new System.EventHandler(this.undoTBButtonActivated);
+            this.redoActionButton.Activated += new System.EventHandler(this.redoTBButtonActivated);
+            this.treeUnits.RowActivated += new Gtk.RowActivatedHandler(this.ArmyRowActivated);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk-gui/IBBoard.WarFoundry.FrmNewArmy.cs	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,210 @@
+// ------------------------------------------------------------------------------
+//  <autogenerated>
+//      This code was generated by a tool.
+//      Mono Runtime Version: 2.0.50727.42
+// 
+//      Changes to this file may cause incorrect behavior and will be lost if 
+//      the code is regenerated.
+//  </autogenerated>
+// ------------------------------------------------------------------------------
+
+namespace IBBoard.WarFoundry {
+    
+    
+    public partial class FrmNewArmy {
+        
+        private Gtk.Table table1;
+        
+        private Gtk.ScrolledWindow GtkScrolledWindow;
+        
+        private Gtk.TreeView lstRaces;
+        
+        private Gtk.HBox hbox2;
+        
+        private Gtk.SpinButton sbPointsValue;
+        
+        private Gtk.Label label1;
+        
+        private Gtk.Label label2;
+        
+        private Gtk.Label label3;
+        
+        private Gtk.Entry txtArmyName;
+        
+        private Gtk.Button bttnCancel;
+        
+        private Gtk.Button bttnCreate;
+        
+        protected virtual void Build() {
+            Stetic.Gui.Initialize(this);
+            // Widget IBBoard.WarFoundry.FrmNewArmy
+            this.Events = ((Gdk.EventMask)(256));
+            this.Name = "IBBoard.WarFoundry.FrmNewArmy";
+            this.Title = Mono.Unix.Catalog.GetString("Create new army");
+            this.Icon = Stetic.IconLoader.LoadIcon(this, "gtk-new", Gtk.IconSize.Menu, 16);
+            this.WindowPosition = ((Gtk.WindowPosition)(4));
+            this.SkipPagerHint = true;
+            this.SkipTaskbarHint = true;
+            this.HasSeparator = false;
+            // Internal child IBBoard.WarFoundry.FrmNewArmy.VBox
+            Gtk.VBox w1 = this.VBox;
+            w1.CanFocus = true;
+            w1.Events = ((Gdk.EventMask)(256));
+            w1.Name = "dialog_VBox";
+            w1.BorderWidth = ((uint)(2));
+            // Container child dialog_VBox.Gtk.Box+BoxChild
+            this.table1 = new Gtk.Table(((uint)(3)), ((uint)(2)), false);
+            this.table1.Name = "table1";
+            this.table1.RowSpacing = ((uint)(6));
+            this.table1.ColumnSpacing = ((uint)(6));
+            // Container child table1.Gtk.Table+TableChild
+            this.GtkScrolledWindow = new Gtk.ScrolledWindow();
+            this.GtkScrolledWindow.Name = "GtkScrolledWindow";
+            this.GtkScrolledWindow.ShadowType = ((Gtk.ShadowType)(1));
+            // Container child GtkScrolledWindow.Gtk.Container+ContainerChild
+            this.lstRaces = new Gtk.TreeView();
+            this.lstRaces.HeightRequest = 150;
+            this.lstRaces.CanFocus = true;
+            this.lstRaces.Name = "lstRaces";
+            this.lstRaces.HeadersVisible = false;
+            this.lstRaces.RulesHint = true;
+            this.lstRaces.HeadersClickable = true;
+            this.GtkScrolledWindow.Add(this.lstRaces);
+            this.table1.Add(this.GtkScrolledWindow);
+            Gtk.Table.TableChild w3 = ((Gtk.Table.TableChild)(this.table1[this.GtkScrolledWindow]));
+            w3.LeftAttach = ((uint)(1));
+            w3.RightAttach = ((uint)(2));
+            w3.YOptions = ((Gtk.AttachOptions)(4));
+            // Container child table1.Gtk.Table+TableChild
+            this.hbox2 = new Gtk.HBox();
+            this.hbox2.Name = "hbox2";
+            // Container child hbox2.Gtk.Box+BoxChild
+            this.sbPointsValue = new Gtk.SpinButton(0, 2000000000, 100);
+            this.sbPointsValue.WidthRequest = 150;
+            this.sbPointsValue.CanFocus = true;
+            this.sbPointsValue.Name = "sbPointsValue";
+            this.sbPointsValue.Adjustment.PageIncrement = 1000;
+            this.sbPointsValue.ClimbRate = 100;
+            this.sbPointsValue.Numeric = true;
+            this.sbPointsValue.Value = 1000;
+            this.hbox2.Add(this.sbPointsValue);
+            Gtk.Box.BoxChild w4 = ((Gtk.Box.BoxChild)(this.hbox2[this.sbPointsValue]));
+            w4.Position = 0;
+            w4.Expand = false;
+            w4.Fill = false;
+            this.table1.Add(this.hbox2);
+            Gtk.Table.TableChild w5 = ((Gtk.Table.TableChild)(this.table1[this.hbox2]));
+            w5.TopAttach = ((uint)(2));
+            w5.BottomAttach = ((uint)(3));
+            w5.LeftAttach = ((uint)(1));
+            w5.RightAttach = ((uint)(2));
+            w5.YOptions = ((Gtk.AttachOptions)(4));
+            // Container child table1.Gtk.Table+TableChild
+            this.label1 = new Gtk.Label();
+            this.label1.Name = "label1";
+            this.label1.LabelProp = Mono.Unix.Catalog.GetString("Race");
+            this.table1.Add(this.label1);
+            Gtk.Table.TableChild w6 = ((Gtk.Table.TableChild)(this.table1[this.label1]));
+            w6.XOptions = ((Gtk.AttachOptions)(4));
+            w6.YOptions = ((Gtk.AttachOptions)(4));
+            // Container child table1.Gtk.Table+TableChild
+            this.label2 = new Gtk.Label();
+            this.label2.Name = "label2";
+            this.label2.LabelProp = Mono.Unix.Catalog.GetString("Army name");
+            this.table1.Add(this.label2);
+            Gtk.Table.TableChild w7 = ((Gtk.Table.TableChild)(this.table1[this.label2]));
+            w7.TopAttach = ((uint)(1));
+            w7.BottomAttach = ((uint)(2));
+            w7.XOptions = ((Gtk.AttachOptions)(4));
+            w7.YOptions = ((Gtk.AttachOptions)(4));
+            // Container child table1.Gtk.Table+TableChild
+            this.label3 = new Gtk.Label();
+            this.label3.Name = "label3";
+            this.label3.LabelProp = Mono.Unix.Catalog.GetString("Points value");
+            this.table1.Add(this.label3);
+            Gtk.Table.TableChild w8 = ((Gtk.Table.TableChild)(this.table1[this.label3]));
+            w8.TopAttach = ((uint)(2));
+            w8.BottomAttach = ((uint)(3));
+            w8.XOptions = ((Gtk.AttachOptions)(4));
+            w8.YOptions = ((Gtk.AttachOptions)(4));
+            // Container child table1.Gtk.Table+TableChild
+            this.txtArmyName = new Gtk.Entry();
+            this.txtArmyName.CanFocus = true;
+            this.txtArmyName.Name = "txtArmyName";
+            this.txtArmyName.IsEditable = true;
+            this.txtArmyName.InvisibleChar = '•';
+            this.table1.Add(this.txtArmyName);
+            Gtk.Table.TableChild w9 = ((Gtk.Table.TableChild)(this.table1[this.txtArmyName]));
+            w9.TopAttach = ((uint)(1));
+            w9.BottomAttach = ((uint)(2));
+            w9.LeftAttach = ((uint)(1));
+            w9.RightAttach = ((uint)(2));
+            w9.YOptions = ((Gtk.AttachOptions)(4));
+            w1.Add(this.table1);
+            Gtk.Box.BoxChild w10 = ((Gtk.Box.BoxChild)(w1[this.table1]));
+            w10.Position = 0;
+            w10.Expand = false;
+            w10.Fill = false;
+            w10.Padding = ((uint)(6));
+            // Internal child IBBoard.WarFoundry.FrmNewArmy.ActionArea
+            Gtk.HButtonBox w11 = this.ActionArea;
+            w11.CanFocus = true;
+            w11.Events = ((Gdk.EventMask)(256));
+            w11.Name = "WarFoundrySharp.FrmNewArmy_ActionArea";
+            w11.Spacing = 6;
+            w11.BorderWidth = ((uint)(5));
+            w11.LayoutStyle = ((Gtk.ButtonBoxStyle)(4));
+            // Container child WarFoundrySharp.FrmNewArmy_ActionArea.Gtk.ButtonBox+ButtonBoxChild
+            this.bttnCancel = new Gtk.Button();
+            this.bttnCancel.CanFocus = true;
+            this.bttnCancel.Name = "bttnCancel";
+            this.bttnCancel.UseStock = true;
+            this.bttnCancel.UseUnderline = true;
+            this.bttnCancel.Label = "gtk-cancel";
+            this.AddActionWidget(this.bttnCancel, -6);
+            Gtk.ButtonBox.ButtonBoxChild w12 = ((Gtk.ButtonBox.ButtonBoxChild)(w11[this.bttnCancel]));
+            w12.Expand = false;
+            w12.Fill = false;
+            // Container child WarFoundrySharp.FrmNewArmy_ActionArea.Gtk.ButtonBox+ButtonBoxChild
+            this.bttnCreate = new Gtk.Button();
+            this.bttnCreate.Sensitive = false;
+            this.bttnCreate.CanDefault = true;
+            this.bttnCreate.CanFocus = true;
+            this.bttnCreate.Name = "bttnCreate";
+            this.bttnCreate.UseUnderline = true;
+            // Container child bttnCreate.Gtk.Container+ContainerChild
+            Gtk.Alignment w13 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F);
+            // Container child GtkAlignment1.Gtk.Container+ContainerChild
+            Gtk.HBox w14 = new Gtk.HBox();
+            w14.Spacing = 2;
+            // Container child GtkHBox1.Gtk.Container+ContainerChild
+            Gtk.Image w15 = new Gtk.Image();
+            w15.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-ok", Gtk.IconSize.Menu, 16);
+            w14.Add(w15);
+            // Container child GtkHBox1.Gtk.Container+ContainerChild
+            Gtk.Label w17 = new Gtk.Label();
+            w17.LabelProp = Mono.Unix.Catalog.GetString("C_reate");
+            w17.UseUnderline = true;
+            w14.Add(w17);
+            w13.Add(w14);
+            this.bttnCreate.Add(w13);
+            this.AddActionWidget(this.bttnCreate, -5);
+            Gtk.ButtonBox.ButtonBoxChild w21 = ((Gtk.ButtonBox.ButtonBoxChild)(w11[this.bttnCreate]));
+            w21.Position = 1;
+            w21.Expand = false;
+            w21.Fill = false;
+            if ((this.Child != null)) {
+                this.Child.ShowAll();
+            }
+            this.DefaultWidth = 400;
+            this.DefaultHeight = 322;
+            this.Show();
+            this.txtArmyName.Changed += new System.EventHandler(this.OnTextChanged);
+            this.sbPointsValue.ChangeValue += new Gtk.ChangeValueHandler(this.OnSpinChangeValue);
+            this.sbPointsValue.ValueChanged += new System.EventHandler(this.OnSpinValueChanged);
+            this.sbPointsValue.Changed += new System.EventHandler(this.OnSpinValueChanged);
+            this.bttnCancel.Clicked += new System.EventHandler(this.OnCancelClicked);
+            this.bttnCreate.Clicked += new System.EventHandler(this.OnCreateClicked);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk-gui/IBBoard.WarFoundry.FrmNewUnit.cs	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,143 @@
+// ------------------------------------------------------------------------------
+//  <autogenerated>
+//      This code was generated by a tool.
+//      Mono Runtime Version: 2.0.50727.42
+// 
+//      Changes to this file may cause incorrect behavior and will be lost if 
+//      the code is regenerated.
+//  </autogenerated>
+// ------------------------------------------------------------------------------
+
+namespace IBBoard.WarFoundry {
+    
+    
+    public partial class FrmNewUnit {
+        
+        private Gtk.VBox vbox2;
+        
+        private Gtk.HBox hbox1;
+        
+        private Gtk.Label label1;
+        
+        private Gtk.ScrolledWindow GtkScrolledWindow;
+        
+        private Gtk.TreeView lstUnitTypes;
+        
+        private Gtk.Label lblNewUnitWarning;
+        
+        private Gtk.Button buttonCancel;
+        
+        private Gtk.Button buttonOk;
+        
+        protected virtual void Build() {
+            Stetic.Gui.Initialize(this);
+            // Widget IBBoard.WarFoundry.FrmNewUnit
+            this.Name = "IBBoard.WarFoundry.FrmNewUnit";
+            this.Title = Mono.Unix.Catalog.GetString("Add new unit");
+            this.Icon = Stetic.IconLoader.LoadIcon(this, "gtk-new", Gtk.IconSize.Menu, 16);
+            this.WindowPosition = ((Gtk.WindowPosition)(4));
+            this.Modal = true;
+            this.SkipPagerHint = true;
+            this.SkipTaskbarHint = true;
+            this.HasSeparator = false;
+            // Internal child IBBoard.WarFoundry.FrmNewUnit.VBox
+            Gtk.VBox w1 = this.VBox;
+            w1.Name = "dialog1_VBox";
+            w1.BorderWidth = ((uint)(2));
+            // Container child dialog1_VBox.Gtk.Box+BoxChild
+            this.vbox2 = new Gtk.VBox();
+            this.vbox2.Name = "vbox2";
+            this.vbox2.Spacing = 6;
+            // Container child vbox2.Gtk.Box+BoxChild
+            this.hbox1 = new Gtk.HBox();
+            this.hbox1.Name = "hbox1";
+            this.hbox1.Spacing = 6;
+            // Container child hbox1.Gtk.Box+BoxChild
+            this.label1 = new Gtk.Label();
+            this.label1.Name = "label1";
+            this.label1.LabelProp = Mono.Unix.Catalog.GetString("Unit Type:");
+            this.hbox1.Add(this.label1);
+            Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.hbox1[this.label1]));
+            w2.Position = 0;
+            w2.Expand = false;
+            w2.Fill = false;
+            // Container child hbox1.Gtk.Box+BoxChild
+            this.GtkScrolledWindow = new Gtk.ScrolledWindow();
+            this.GtkScrolledWindow.Name = "GtkScrolledWindow";
+            this.GtkScrolledWindow.ShadowType = ((Gtk.ShadowType)(1));
+            // Container child GtkScrolledWindow.Gtk.Container+ContainerChild
+            this.lstUnitTypes = new Gtk.TreeView();
+            this.lstUnitTypes.HeightRequest = 150;
+            this.lstUnitTypes.CanFocus = true;
+            this.lstUnitTypes.Name = "lstUnitTypes";
+            this.lstUnitTypes.HeadersVisible = false;
+            this.lstUnitTypes.HeadersClickable = true;
+            this.GtkScrolledWindow.Add(this.lstUnitTypes);
+            this.hbox1.Add(this.GtkScrolledWindow);
+            Gtk.Box.BoxChild w4 = ((Gtk.Box.BoxChild)(this.hbox1[this.GtkScrolledWindow]));
+            w4.Position = 1;
+            this.vbox2.Add(this.hbox1);
+            Gtk.Box.BoxChild w5 = ((Gtk.Box.BoxChild)(this.vbox2[this.hbox1]));
+            w5.Position = 0;
+            w5.Expand = false;
+            w5.Fill = false;
+            // Container child vbox2.Gtk.Box+BoxChild
+            this.lblNewUnitWarning = new Gtk.Label();
+            this.lblNewUnitWarning.Name = "lblNewUnitWarning";
+            this.lblNewUnitWarning.Xalign = 0F;
+            this.lblNewUnitWarning.Yalign = 0F;
+            this.lblNewUnitWarning.LabelProp = "";
+            this.vbox2.Add(this.lblNewUnitWarning);
+            Gtk.Box.BoxChild w6 = ((Gtk.Box.BoxChild)(this.vbox2[this.lblNewUnitWarning]));
+            w6.Position = 1;
+            w6.Expand = false;
+            w6.Fill = false;
+            w1.Add(this.vbox2);
+            Gtk.Box.BoxChild w7 = ((Gtk.Box.BoxChild)(w1[this.vbox2]));
+            w7.Position = 0;
+            w7.Expand = false;
+            w7.Fill = false;
+            // Internal child IBBoard.WarFoundry.FrmNewUnit.ActionArea
+            Gtk.HButtonBox w8 = this.ActionArea;
+            w8.Name = "dialog1_ActionArea";
+            w8.Spacing = 6;
+            w8.BorderWidth = ((uint)(5));
+            w8.LayoutStyle = ((Gtk.ButtonBoxStyle)(4));
+            // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
+            this.buttonCancel = new Gtk.Button();
+            this.buttonCancel.CanDefault = true;
+            this.buttonCancel.CanFocus = true;
+            this.buttonCancel.Name = "buttonCancel";
+            this.buttonCancel.UseStock = true;
+            this.buttonCancel.UseUnderline = true;
+            this.buttonCancel.Label = "gtk-cancel";
+            this.AddActionWidget(this.buttonCancel, -6);
+            Gtk.ButtonBox.ButtonBoxChild w9 = ((Gtk.ButtonBox.ButtonBoxChild)(w8[this.buttonCancel]));
+            w9.Expand = false;
+            w9.Fill = false;
+            // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
+            this.buttonOk = new Gtk.Button();
+            this.buttonOk.Sensitive = false;
+            this.buttonOk.CanDefault = true;
+            this.buttonOk.CanFocus = true;
+            this.buttonOk.Name = "buttonOk";
+            this.buttonOk.UseStock = true;
+            this.buttonOk.UseUnderline = true;
+            this.buttonOk.Label = "gtk-ok";
+            this.AddActionWidget(this.buttonOk, -5);
+            Gtk.ButtonBox.ButtonBoxChild w10 = ((Gtk.ButtonBox.ButtonBoxChild)(w8[this.buttonOk]));
+            w10.Position = 1;
+            w10.Expand = false;
+            w10.Fill = false;
+            if ((this.Child != null)) {
+                this.Child.ShowAll();
+            }
+            this.DefaultWidth = 400;
+            this.DefaultHeight = 318;
+            this.Show();
+            this.lstUnitTypes.RowActivated += new Gtk.RowActivatedHandler(this.OnRowActivated);
+            this.buttonCancel.Activated += new System.EventHandler(this.OnButtonCancelActivated);
+            this.buttonOk.Clicked += new System.EventHandler(this.OnButtonOkClicked);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk-gui/IBBoard.WarFoundry.Widgets.UnitDisplayWidget.cs	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,276 @@
+// ------------------------------------------------------------------------------
+//  <autogenerated>
+//      This code was generated by a tool.
+//      Mono Runtime Version: 2.0.50727.42
+// 
+//      Changes to this file may cause incorrect behavior and will be lost if 
+//      the code is regenerated.
+//  </autogenerated>
+// ------------------------------------------------------------------------------
+
+namespace IBBoard.WarFoundry.Widgets {
+    
+    
+    public partial class UnitDisplayWidget {
+        
+        private Gtk.VBox vbox1;
+        
+        private Gtk.HBox hbox1;
+        
+        private Gtk.Entry unitName;
+        
+        private Gtk.SpinButton unitSize;
+        
+        private Gtk.ScrolledWindow GtkScrolledWindow;
+        
+        private Gtk.NodeView unitStats;
+        
+        private Gtk.HSeparator hseparator1;
+        
+        private Gtk.Table table1;
+        
+        private Gtk.ScrolledWindow GtkScrolledWindow1;
+        
+        private Gtk.NodeView optionalEquipment;
+        
+        private Gtk.ScrolledWindow GtkScrolledWindow2;
+        
+        private Gtk.NodeView requiredEquipment;
+        
+        private Gtk.Label optionalEquipmentLabel;
+        
+        private Gtk.Label requiredEquipmentLabel;
+        
+        private Gtk.VBox vbox2;
+        
+        private Gtk.Button bttnReplaceRequired;
+        
+        private Gtk.Button bttnEditRequired;
+        
+        private Gtk.VBox vbox3;
+        
+        private Gtk.Button bttnAddOptional;
+        
+        private Gtk.Button bttnEditOptional;
+        
+        private Gtk.Button bttnRemove;
+        
+        private Gtk.HBox hbox2;
+        
+        protected virtual void Build() {
+            Stetic.Gui.Initialize(this);
+            // Widget IBBoard.WarFoundry.Widgets.UnitDisplayWidget
+            Stetic.BinContainer.Attach(this);
+            this.Name = "IBBoard.WarFoundry.Widgets.UnitDisplayWidget";
+            // Container child IBBoard.WarFoundry.Widgets.UnitDisplayWidget.Gtk.Container+ContainerChild
+            this.vbox1 = new Gtk.VBox();
+            this.vbox1.Name = "vbox1";
+            this.vbox1.Spacing = 6;
+            // Container child vbox1.Gtk.Box+BoxChild
+            this.hbox1 = new Gtk.HBox();
+            this.hbox1.Name = "hbox1";
+            this.hbox1.Spacing = 6;
+            // Container child hbox1.Gtk.Box+BoxChild
+            this.unitName = new Gtk.Entry();
+            this.unitName.CanFocus = true;
+            this.unitName.Name = "unitName";
+            this.unitName.IsEditable = true;
+            this.unitName.InvisibleChar = '•';
+            this.hbox1.Add(this.unitName);
+            Gtk.Box.BoxChild w1 = ((Gtk.Box.BoxChild)(this.hbox1[this.unitName]));
+            w1.Position = 0;
+            // Container child hbox1.Gtk.Box+BoxChild
+            this.unitSize = new Gtk.SpinButton(0, 100, 1);
+            this.unitSize.CanFocus = true;
+            this.unitSize.Name = "unitSize";
+            this.unitSize.Adjustment.PageIncrement = 10;
+            this.unitSize.ClimbRate = 1;
+            this.unitSize.Numeric = true;
+            this.hbox1.Add(this.unitSize);
+            Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.hbox1[this.unitSize]));
+            w2.Position = 1;
+            w2.Expand = false;
+            w2.Fill = false;
+            this.vbox1.Add(this.hbox1);
+            Gtk.Box.BoxChild w3 = ((Gtk.Box.BoxChild)(this.vbox1[this.hbox1]));
+            w3.Position = 0;
+            w3.Expand = false;
+            w3.Fill = false;
+            // Container child vbox1.Gtk.Box+BoxChild
+            this.GtkScrolledWindow = new Gtk.ScrolledWindow();
+            this.GtkScrolledWindow.Name = "GtkScrolledWindow";
+            this.GtkScrolledWindow.ShadowType = ((Gtk.ShadowType)(1));
+            // Container child GtkScrolledWindow.Gtk.Container+ContainerChild
+            this.unitStats = new Gtk.NodeView();
+            this.unitStats.HeightRequest = 75;
+            this.unitStats.CanFocus = true;
+            this.unitStats.Name = "unitStats";
+            this.unitStats.HeadersClickable = true;
+            this.GtkScrolledWindow.Add(this.unitStats);
+            this.vbox1.Add(this.GtkScrolledWindow);
+            Gtk.Box.BoxChild w5 = ((Gtk.Box.BoxChild)(this.vbox1[this.GtkScrolledWindow]));
+            w5.Position = 1;
+            // Container child vbox1.Gtk.Box+BoxChild
+            this.hseparator1 = new Gtk.HSeparator();
+            this.hseparator1.Name = "hseparator1";
+            this.vbox1.Add(this.hseparator1);
+            Gtk.Box.BoxChild w6 = ((Gtk.Box.BoxChild)(this.vbox1[this.hseparator1]));
+            w6.Position = 2;
+            w6.Expand = false;
+            w6.Fill = false;
+            // Container child vbox1.Gtk.Box+BoxChild
+            this.table1 = new Gtk.Table(((uint)(2)), ((uint)(3)), false);
+            this.table1.Name = "table1";
+            this.table1.RowSpacing = ((uint)(6));
+            this.table1.ColumnSpacing = ((uint)(6));
+            // Container child table1.Gtk.Table+TableChild
+            this.GtkScrolledWindow1 = new Gtk.ScrolledWindow();
+            this.GtkScrolledWindow1.Name = "GtkScrolledWindow1";
+            this.GtkScrolledWindow1.ShadowType = ((Gtk.ShadowType)(1));
+            // Container child GtkScrolledWindow1.Gtk.Container+ContainerChild
+            this.optionalEquipment = new Gtk.NodeView();
+            this.optionalEquipment.CanFocus = true;
+            this.optionalEquipment.Name = "optionalEquipment";
+            this.optionalEquipment.HeadersClickable = true;
+            this.GtkScrolledWindow1.Add(this.optionalEquipment);
+            this.table1.Add(this.GtkScrolledWindow1);
+            Gtk.Table.TableChild w8 = ((Gtk.Table.TableChild)(this.table1[this.GtkScrolledWindow1]));
+            w8.TopAttach = ((uint)(1));
+            w8.BottomAttach = ((uint)(2));
+            w8.LeftAttach = ((uint)(1));
+            w8.RightAttach = ((uint)(2));
+            w8.YOptions = ((Gtk.AttachOptions)(4));
+            // Container child table1.Gtk.Table+TableChild
+            this.GtkScrolledWindow2 = new Gtk.ScrolledWindow();
+            this.GtkScrolledWindow2.Name = "GtkScrolledWindow2";
+            this.GtkScrolledWindow2.ShadowType = ((Gtk.ShadowType)(1));
+            // Container child GtkScrolledWindow2.Gtk.Container+ContainerChild
+            this.requiredEquipment = new Gtk.NodeView();
+            this.requiredEquipment.CanFocus = true;
+            this.requiredEquipment.Name = "requiredEquipment";
+            this.requiredEquipment.HeadersClickable = true;
+            this.GtkScrolledWindow2.Add(this.requiredEquipment);
+            this.table1.Add(this.GtkScrolledWindow2);
+            Gtk.Table.TableChild w10 = ((Gtk.Table.TableChild)(this.table1[this.GtkScrolledWindow2]));
+            w10.LeftAttach = ((uint)(1));
+            w10.RightAttach = ((uint)(2));
+            w10.YOptions = ((Gtk.AttachOptions)(4));
+            // Container child table1.Gtk.Table+TableChild
+            this.optionalEquipmentLabel = new Gtk.Label();
+            this.optionalEquipmentLabel.Name = "optionalEquipmentLabel";
+            this.optionalEquipmentLabel.LabelProp = Mono.Unix.Catalog.GetString("Optional Equipment:");
+            this.table1.Add(this.optionalEquipmentLabel);
+            Gtk.Table.TableChild w11 = ((Gtk.Table.TableChild)(this.table1[this.optionalEquipmentLabel]));
+            w11.TopAttach = ((uint)(1));
+            w11.BottomAttach = ((uint)(2));
+            w11.XOptions = ((Gtk.AttachOptions)(4));
+            w11.YOptions = ((Gtk.AttachOptions)(4));
+            // Container child table1.Gtk.Table+TableChild
+            this.requiredEquipmentLabel = new Gtk.Label();
+            this.requiredEquipmentLabel.Name = "requiredEquipmentLabel";
+            this.requiredEquipmentLabel.LabelProp = Mono.Unix.Catalog.GetString("Required Equipment:");
+            this.table1.Add(this.requiredEquipmentLabel);
+            Gtk.Table.TableChild w12 = ((Gtk.Table.TableChild)(this.table1[this.requiredEquipmentLabel]));
+            w12.XOptions = ((Gtk.AttachOptions)(4));
+            w12.YOptions = ((Gtk.AttachOptions)(4));
+            // Container child table1.Gtk.Table+TableChild
+            this.vbox2 = new Gtk.VBox();
+            this.vbox2.Name = "vbox2";
+            this.vbox2.Spacing = 6;
+            // Container child vbox2.Gtk.Box+BoxChild
+            this.bttnReplaceRequired = new Gtk.Button();
+            this.bttnReplaceRequired.CanFocus = true;
+            this.bttnReplaceRequired.Name = "bttnReplaceRequired";
+            this.bttnReplaceRequired.UseUnderline = true;
+            this.bttnReplaceRequired.Label = Mono.Unix.Catalog.GetString("Replace");
+            this.vbox2.Add(this.bttnReplaceRequired);
+            Gtk.Box.BoxChild w13 = ((Gtk.Box.BoxChild)(this.vbox2[this.bttnReplaceRequired]));
+            w13.Position = 0;
+            w13.Expand = false;
+            w13.Fill = false;
+            // Container child vbox2.Gtk.Box+BoxChild
+            this.bttnEditRequired = new Gtk.Button();
+            this.bttnEditRequired.CanFocus = true;
+            this.bttnEditRequired.Name = "bttnEditRequired";
+            this.bttnEditRequired.UseUnderline = true;
+            this.bttnEditRequired.Label = Mono.Unix.Catalog.GetString("Edit");
+            this.vbox2.Add(this.bttnEditRequired);
+            Gtk.Box.BoxChild w14 = ((Gtk.Box.BoxChild)(this.vbox2[this.bttnEditRequired]));
+            w14.Position = 1;
+            w14.Expand = false;
+            w14.Fill = false;
+            this.table1.Add(this.vbox2);
+            Gtk.Table.TableChild w15 = ((Gtk.Table.TableChild)(this.table1[this.vbox2]));
+            w15.LeftAttach = ((uint)(2));
+            w15.RightAttach = ((uint)(3));
+            w15.XOptions = ((Gtk.AttachOptions)(4));
+            w15.YOptions = ((Gtk.AttachOptions)(4));
+            // Container child table1.Gtk.Table+TableChild
+            this.vbox3 = new Gtk.VBox();
+            this.vbox3.Name = "vbox3";
+            this.vbox3.Spacing = 6;
+            // Container child vbox3.Gtk.Box+BoxChild
+            this.bttnAddOptional = new Gtk.Button();
+            this.bttnAddOptional.CanFocus = true;
+            this.bttnAddOptional.Name = "bttnAddOptional";
+            this.bttnAddOptional.UseUnderline = true;
+            this.bttnAddOptional.Label = Mono.Unix.Catalog.GetString("Add");
+            this.vbox3.Add(this.bttnAddOptional);
+            Gtk.Box.BoxChild w16 = ((Gtk.Box.BoxChild)(this.vbox3[this.bttnAddOptional]));
+            w16.Position = 0;
+            w16.Expand = false;
+            w16.Fill = false;
+            // Container child vbox3.Gtk.Box+BoxChild
+            this.bttnEditOptional = new Gtk.Button();
+            this.bttnEditOptional.CanFocus = true;
+            this.bttnEditOptional.Name = "bttnEditOptional";
+            this.bttnEditOptional.UseUnderline = true;
+            this.bttnEditOptional.Label = Mono.Unix.Catalog.GetString("Edit");
+            this.vbox3.Add(this.bttnEditOptional);
+            Gtk.Box.BoxChild w17 = ((Gtk.Box.BoxChild)(this.vbox3[this.bttnEditOptional]));
+            w17.Position = 1;
+            w17.Expand = false;
+            w17.Fill = false;
+            // Container child vbox3.Gtk.Box+BoxChild
+            this.bttnRemove = new Gtk.Button();
+            this.bttnRemove.CanFocus = true;
+            this.bttnRemove.Name = "bttnRemove";
+            this.bttnRemove.UseUnderline = true;
+            this.bttnRemove.Label = Mono.Unix.Catalog.GetString("Remove");
+            this.vbox3.Add(this.bttnRemove);
+            Gtk.Box.BoxChild w18 = ((Gtk.Box.BoxChild)(this.vbox3[this.bttnRemove]));
+            w18.Position = 2;
+            w18.Expand = false;
+            w18.Fill = false;
+            this.table1.Add(this.vbox3);
+            Gtk.Table.TableChild w19 = ((Gtk.Table.TableChild)(this.table1[this.vbox3]));
+            w19.TopAttach = ((uint)(1));
+            w19.BottomAttach = ((uint)(2));
+            w19.LeftAttach = ((uint)(2));
+            w19.RightAttach = ((uint)(3));
+            w19.XOptions = ((Gtk.AttachOptions)(4));
+            w19.YOptions = ((Gtk.AttachOptions)(4));
+            this.vbox1.Add(this.table1);
+            Gtk.Box.BoxChild w20 = ((Gtk.Box.BoxChild)(this.vbox1[this.table1]));
+            w20.Position = 3;
+            w20.Expand = false;
+            w20.Fill = false;
+            // Container child vbox1.Gtk.Box+BoxChild
+            this.hbox2 = new Gtk.HBox();
+            this.hbox2.Name = "hbox2";
+            this.hbox2.Spacing = 6;
+            this.vbox1.Add(this.hbox2);
+            Gtk.Box.BoxChild w21 = ((Gtk.Box.BoxChild)(this.vbox1[this.hbox2]));
+            w21.Position = 4;
+            this.Add(this.vbox1);
+            if ((this.Child != null)) {
+                this.Child.ShowAll();
+            }
+            this.Show();
+            this.unitName.FocusOutEvent += new Gtk.FocusOutEventHandler(this.OnUnitNameFocusOut);
+            this.unitName.KeyPressEvent += new Gtk.KeyPressEventHandler(this.OnUnitNameKeyPress);
+            this.unitSize.FocusOutEvent += new Gtk.FocusOutEventHandler(this.OnUnitSizeFocusOut);
+            this.unitSize.KeyPressEvent += new Gtk.KeyPressEventHandler(this.OnUnitSizeKeyPress);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk-gui/generated.cs	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,115 @@
+// ------------------------------------------------------------------------------
+//  <autogenerated>
+//      This code was generated by a tool.
+//      Mono Runtime Version: 2.0.50727.42
+// 
+//      Changes to this file may cause incorrect behavior and will be lost if 
+//      the code is regenerated.
+//  </autogenerated>
+// ------------------------------------------------------------------------------
+
+namespace Stetic {
+    
+    
+    internal class Gui {
+        
+        private static bool initialized;
+        
+        internal static void Initialize(Gtk.Widget iconRenderer) {
+            if ((Stetic.Gui.initialized == false)) {
+                Stetic.Gui.initialized = true;
+            }
+        }
+    }
+    
+    internal class IconLoader {
+        
+        public static Gdk.Pixbuf LoadIcon(Gtk.Widget widget, string name, Gtk.IconSize size, int sz) {
+            Gdk.Pixbuf res = widget.RenderIcon(name, size, null);
+            if ((res != null)) {
+                return res;
+            }
+            else {
+                try {
+                    return Gtk.IconTheme.Default.LoadIcon(name, sz, 0);
+                }
+                catch (System.Exception ) {
+                    if ((name != "gtk-missing-image")) {
+                        return Stetic.IconLoader.LoadIcon(widget, "gtk-missing-image", size, sz);
+                    }
+                    else {
+                        Gdk.Pixmap pmap = new Gdk.Pixmap(Gdk.Screen.Default.RootWindow, sz, sz);
+                        Gdk.GC gc = new Gdk.GC(pmap);
+                        gc.RgbFgColor = new Gdk.Color(255, 255, 255);
+                        pmap.DrawRectangle(gc, true, 0, 0, sz, sz);
+                        gc.RgbFgColor = new Gdk.Color(0, 0, 0);
+                        pmap.DrawRectangle(gc, false, 0, 0, (sz - 1), (sz - 1));
+                        gc.SetLineAttributes(3, Gdk.LineStyle.Solid, Gdk.CapStyle.Round, Gdk.JoinStyle.Round);
+                        gc.RgbFgColor = new Gdk.Color(255, 0, 0);
+                        pmap.DrawLine(gc, (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)), ((sz - 1) - (sz / 4)));
+                        pmap.DrawLine(gc, ((sz - 1) - (sz / 4)), (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)));
+                        return Gdk.Pixbuf.FromDrawable(pmap, pmap.Colormap, 0, 0, 0, 0, sz, sz);
+                    }
+                }
+            }
+        }
+    }
+    
+    internal class BinContainer {
+        
+        private Gtk.Widget child;
+        
+        private Gtk.UIManager uimanager;
+        
+        public static BinContainer Attach(Gtk.Bin bin) {
+            BinContainer bc = new BinContainer();
+            bin.SizeRequested += new Gtk.SizeRequestedHandler(bc.OnSizeRequested);
+            bin.SizeAllocated += new Gtk.SizeAllocatedHandler(bc.OnSizeAllocated);
+            bin.Added += new Gtk.AddedHandler(bc.OnAdded);
+            return bc;
+        }
+        
+        private void OnSizeRequested(object sender, Gtk.SizeRequestedArgs args) {
+            if ((this.child != null)) {
+                args.Requisition = this.child.SizeRequest();
+            }
+        }
+        
+        private void OnSizeAllocated(object sender, Gtk.SizeAllocatedArgs args) {
+            if ((this.child != null)) {
+                this.child.Allocation = args.Allocation;
+            }
+        }
+        
+        private void OnAdded(object sender, Gtk.AddedArgs args) {
+            this.child = args.Widget;
+        }
+        
+        public void SetUiManager(Gtk.UIManager uim) {
+            this.uimanager = uim;
+            this.child.Realized += new System.EventHandler(this.OnRealized);
+        }
+        
+        private void OnRealized(object sender, System.EventArgs args) {
+            if ((this.uimanager != null)) {
+                Gtk.Widget w;
+                w = this.child.Toplevel;
+                if (((w != null) && typeof(Gtk.Window).IsInstanceOfType(w))) {
+                    ((Gtk.Window)(w)).AddAccelGroup(this.uimanager.AccelGroup);
+                    this.uimanager = null;
+                }
+            }
+        }
+    }
+    
+    internal class ActionGroups {
+        
+        public static Gtk.ActionGroup GetActionGroup(System.Type type) {
+            return Stetic.ActionGroups.GetActionGroup(type.FullName);
+        }
+        
+        public static Gtk.ActionGroup GetActionGroup(string name) {
+            return null;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk-gui/gui.stetic	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,1067 @@
+<?xml version="1.0" encoding="utf-8"?>
+<stetic-interface>
+  <configuration>
+    <images-root-path>..</images-root-path>
+    <target-gtk-version>2.12.1</target-gtk-version>
+  </configuration>
+  <import>
+    <widget-library name="../bin/Debug/WarFoundryGTK.exe" internal="true" />
+  </import>
+  <widget class="Gtk.Window" id="IBBoard.WarFoundry.FrmMainWindow" design-size="832 659">
+    <action-group name="Default">
+      <action id="menuFile">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes">File</property>
+        <property name="ShortLabel" translatable="yes">File</property>
+      </action>
+      <action id="miCreateArmy">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes">Create army</property>
+        <property name="Sensitive">False</property>
+        <property name="ShortLabel" translatable="yes">Create army</property>
+        <signal name="Activated" handler="OnCreateArmyActivated" />
+      </action>
+      <action id="miOpenArmy">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes">Open army</property>
+        <property name="Sensitive">False</property>
+        <property name="ShortLabel" translatable="yes">Open army</property>
+        <signal name="Activated" handler="OnOpenArmyActivated" />
+      </action>
+      <action id="miSaveArmy">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes">Save army</property>
+        <property name="Sensitive">False</property>
+        <property name="ShortLabel" translatable="yes">Save army</property>
+        <signal name="Activated" handler="OnSaveArmyActivated" />
+      </action>
+      <action id="miSaveArmyAs">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes">Save army as</property>
+        <property name="Sensitive">False</property>
+        <property name="ShortLabel" translatable="yes">Save army as</property>
+        <signal name="Activated" handler="OnSaveArmyAsActivated" />
+      </action>
+      <action id="miCloseArmy">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes">Close army</property>
+        <property name="Sensitive">False</property>
+        <property name="ShortLabel" translatable="yes">Close army</property>
+        <signal name="Activated" handler="OnCloseArmyActivated" />
+      </action>
+      <action id="miChangeGameSystem">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes">Change game system</property>
+        <property name="ShortLabel" translatable="yes">Change game system</property>
+        <signal name="Activated" handler="OnChangeGameSystemActivated" after="yes" />
+      </action>
+      <action id="miReloadFiles">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes">Reload files</property>
+        <property name="Sensitive">False</property>
+        <property name="ShortLabel" translatable="yes">Reload files</property>
+        <signal name="Activated" handler="OnReloadFilesActivated" />
+      </action>
+      <action id="miExit">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes">Exit</property>
+        <property name="ShortLabel" translatable="yes">Exit</property>
+        <signal name="Activated" handler="OnExitActivated" />
+      </action>
+      <action id="menuEdit">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes">Edit</property>
+        <property name="ShortLabel" translatable="yes">Edit</property>
+      </action>
+      <action id="miUndo">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes">Undo</property>
+        <property name="Sensitive">False</property>
+        <property name="ShortLabel" translatable="yes">Undo</property>
+      </action>
+      <action id="miRedo">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes">Redo</property>
+        <property name="Sensitive">False</property>
+        <property name="ShortLabel" translatable="yes">Redo</property>
+      </action>
+      <action id="menuHelp">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes">Help</property>
+        <property name="ShortLabel" translatable="yes">Help</property>
+      </action>
+      <action id="miAbout">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes">About</property>
+        <property name="ShortLabel" translatable="yes">About</property>
+      </action>
+      <action id="miDebugInformation">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes">Debug Information</property>
+        <property name="ShortLabel" translatable="yes">Debug Information</property>
+      </action>
+      <action id="newArmyButton">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes" />
+        <property name="Sensitive">False</property>
+        <property name="StockId">gtk-new</property>
+        <signal name="Activated" handler="newTBButtonActivated" />
+      </action>
+      <action id="openArmyButton">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes" />
+        <property name="Sensitive">False</property>
+        <property name="StockId">gtk-open</property>
+        <signal name="Activated" handler="openTBButtonActivated" />
+      </action>
+      <action id="saveArmyButton">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes" />
+        <property name="Sensitive">False</property>
+        <property name="StockId">gtk-save</property>
+        <signal name="Activated" handler="saveTBButtonActivated" />
+      </action>
+      <action id="undoActionButton">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes" />
+        <property name="Sensitive">False</property>
+        <property name="StockId">gtk-undo</property>
+        <signal name="Activated" handler="undoTBButtonActivated" />
+      </action>
+      <action id="redoActionButton">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes" />
+        <property name="Sensitive">False</property>
+        <property name="StockId">gtk-redo</property>
+        <signal name="Activated" handler="redoTBButtonActivated" />
+      </action>
+      <action id="goDown">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes" />
+      </action>
+      <action id="add">
+        <property name="Type">Action</property>
+        <property name="Label" translatable="yes" />
+        <property name="StockId">gtk-add</property>
+      </action>
+    </action-group>
+    <property name="MemberName" />
+    <property name="Title" translatable="yes">MainWindow</property>
+    <property name="Icon">resource:App.ico</property>
+    <child>
+      <widget class="Gtk.VBox" id="vbox1">
+        <property name="MemberName" />
+        <child>
+          <widget class="Gtk.MenuBar" id="menubar1">
+            <property name="MemberName" />
+            <node name="menubar1" type="Menubar">
+              <node type="Menu" action="menuFile">
+                <node type="Menuitem" action="miCreateArmy" />
+                <node type="Menuitem" action="miOpenArmy" />
+                <node type="Menuitem" action="miSaveArmy" />
+                <node type="Menuitem" action="miSaveArmyAs" />
+                <node type="Menuitem" action="miCloseArmy" />
+                <node type="Separator" />
+                <node type="Menuitem" action="miChangeGameSystem" />
+                <node type="Separator" />
+                <node type="Menuitem" action="miReloadFiles" />
+                <node type="Separator" />
+                <node type="Menuitem" action="miExit" />
+              </node>
+              <node type="Menu" action="menuEdit">
+                <node type="Menuitem" action="miUndo" />
+                <node type="Menuitem" action="miRedo" />
+              </node>
+              <node type="Menu" action="menuHelp">
+                <node type="Menuitem" action="miAbout" />
+                <node type="Menuitem" action="miDebugInformation" />
+              </node>
+            </node>
+          </widget>
+          <packing>
+            <property name="Position">0</property>
+            <property name="AutoSize">True</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.Toolbar" id="toolbar">
+            <property name="MemberName" />
+            <property name="HeightRequest">36</property>
+            <property name="ShowArrow">False</property>
+            <property name="ButtonStyle">Icons</property>
+            <node name="toolbar" type="Toolbar">
+              <node type="Toolitem" action="newArmyButton" />
+              <node type="Toolitem" action="openArmyButton" />
+              <node type="Toolitem" action="saveArmyButton" />
+              <node type="Separator" />
+              <node type="Toolitem" action="undoActionButton" />
+              <node type="Toolitem" action="redoActionButton" />
+              <node type="Separator" />
+            </node>
+          </widget>
+          <packing>
+            <property name="Position">1</property>
+            <property name="AutoSize">True</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.HPaned" id="hpaned2">
+            <property name="MemberName" />
+            <property name="CanFocus">True</property>
+            <property name="Position">178</property>
+            <child>
+              <widget class="Gtk.TreeView" id="treeUnits">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="HeadersClickable">True</property>
+                <signal name="RowActivated" handler="ArmyRowActivated" />
+              </widget>
+              <packing>
+                <property name="Resize">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Notebook" id="unitsNotebook">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="CurrentPage">-1</property>
+              </widget>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">2</property>
+            <property name="AutoSize">True</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.Statusbar" id="statusbar1">
+            <property name="MemberName" />
+            <property name="Spacing">2</property>
+            <child>
+              <placeholder />
+            </child>
+            <child>
+              <placeholder />
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">3</property>
+            <property name="AutoSize">True</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Dialog" id="IBBoard.WarFoundry.FrmNewArmy" design-size="400 322">
+    <property name="MemberName" />
+    <property name="Events">ButtonPressMask</property>
+    <property name="Title" translatable="yes">Create new army</property>
+    <property name="Icon">stock:gtk-new Menu</property>
+    <property name="WindowPosition">CenterOnParent</property>
+    <property name="SkipPagerHint">True</property>
+    <property name="SkipTaskbarHint">True</property>
+    <property name="Buttons">2</property>
+    <property name="HelpButton">False</property>
+    <property name="HasSeparator">False</property>
+    <child internal-child="VBox">
+      <widget class="Gtk.VBox" id="dialog_VBox">
+        <property name="MemberName" />
+        <property name="CanFocus">True</property>
+        <property name="Events">ButtonPressMask</property>
+        <property name="BorderWidth">2</property>
+        <child>
+          <widget class="Gtk.Table" id="table1">
+            <property name="MemberName" />
+            <property name="NRows">3</property>
+            <property name="NColumns">2</property>
+            <property name="RowSpacing">6</property>
+            <property name="ColumnSpacing">6</property>
+            <child>
+              <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
+                <property name="MemberName" />
+                <property name="ShadowType">In</property>
+                <child>
+                  <widget class="Gtk.TreeView" id="lstRaces">
+                    <property name="MemberName" />
+                    <property name="HeightRequest">150</property>
+                    <property name="CanFocus">True</property>
+                    <property name="ShowScrollbars">True</property>
+                    <property name="HeadersVisible">False</property>
+                    <property name="RulesHint">True</property>
+                    <property name="HeadersClickable">True</property>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="LeftAttach">1</property>
+                <property name="RightAttach">2</property>
+                <property name="AutoSize">True</property>
+                <property name="YOptions">Fill</property>
+                <property name="XExpand">True</property>
+                <property name="XFill">True</property>
+                <property name="XShrink">False</property>
+                <property name="YExpand">False</property>
+                <property name="YFill">True</property>
+                <property name="YShrink">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.HBox" id="hbox2">
+                <property name="MemberName" />
+                <child>
+                  <widget class="Gtk.SpinButton" id="sbPointsValue">
+                    <property name="MemberName" />
+                    <property name="WidthRequest">150</property>
+                    <property name="CanFocus">True</property>
+                    <property name="Upper">2000000000</property>
+                    <property name="PageIncrement">1000</property>
+                    <property name="StepIncrement">100</property>
+                    <property name="ClimbRate">100</property>
+                    <property name="Numeric">True</property>
+                    <property name="Value">1000</property>
+                    <signal name="ChangeValue" handler="OnSpinChangeValue" />
+                    <signal name="ValueChanged" handler="OnSpinValueChanged" />
+                    <signal name="Changed" handler="OnSpinValueChanged" />
+                  </widget>
+                  <packing>
+                    <property name="Position">0</property>
+                    <property name="AutoSize">True</property>
+                    <property name="Expand">False</property>
+                    <property name="Fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <placeholder />
+                </child>
+              </widget>
+              <packing>
+                <property name="TopAttach">2</property>
+                <property name="BottomAttach">3</property>
+                <property name="LeftAttach">1</property>
+                <property name="RightAttach">2</property>
+                <property name="AutoSize">True</property>
+                <property name="YOptions">Fill</property>
+                <property name="XExpand">True</property>
+                <property name="XFill">True</property>
+                <property name="XShrink">False</property>
+                <property name="YExpand">False</property>
+                <property name="YFill">True</property>
+                <property name="YShrink">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Label" id="label1">
+                <property name="MemberName" />
+                <property name="LabelProp" translatable="yes">Race</property>
+              </widget>
+              <packing>
+                <property name="AutoSize">True</property>
+                <property name="XOptions">Fill</property>
+                <property name="YOptions">Fill</property>
+                <property name="XExpand">False</property>
+                <property name="XFill">True</property>
+                <property name="XShrink">False</property>
+                <property name="YExpand">False</property>
+                <property name="YFill">True</property>
+                <property name="YShrink">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Label" id="label2">
+                <property name="MemberName" />
+                <property name="LabelProp" translatable="yes">Army name</property>
+              </widget>
+              <packing>
+                <property name="TopAttach">1</property>
+                <property name="BottomAttach">2</property>
+                <property name="AutoSize">True</property>
+                <property name="XOptions">Fill</property>
+                <property name="YOptions">Fill</property>
+                <property name="XExpand">False</property>
+                <property name="XFill">True</property>
+                <property name="XShrink">False</property>
+                <property name="YExpand">False</property>
+                <property name="YFill">True</property>
+                <property name="YShrink">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Label" id="label3">
+                <property name="MemberName" />
+                <property name="LabelProp" translatable="yes">Points value</property>
+              </widget>
+              <packing>
+                <property name="TopAttach">2</property>
+                <property name="BottomAttach">3</property>
+                <property name="AutoSize">True</property>
+                <property name="XOptions">Fill</property>
+                <property name="YOptions">Fill</property>
+                <property name="XExpand">False</property>
+                <property name="XFill">True</property>
+                <property name="XShrink">False</property>
+                <property name="YExpand">False</property>
+                <property name="YFill">True</property>
+                <property name="YShrink">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Entry" id="txtArmyName">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="IsEditable">True</property>
+                <property name="InvisibleChar">•</property>
+                <signal name="Changed" handler="OnTextChanged" />
+              </widget>
+              <packing>
+                <property name="TopAttach">1</property>
+                <property name="BottomAttach">2</property>
+                <property name="LeftAttach">1</property>
+                <property name="RightAttach">2</property>
+                <property name="AutoSize">True</property>
+                <property name="YOptions">Fill</property>
+                <property name="XExpand">True</property>
+                <property name="XFill">True</property>
+                <property name="XShrink">False</property>
+                <property name="YExpand">False</property>
+                <property name="YFill">True</property>
+                <property name="YShrink">False</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">0</property>
+            <property name="AutoSize">True</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+            <property name="Padding">6</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+    <child internal-child="ActionArea">
+      <widget class="Gtk.HButtonBox" id="WarFoundrySharp.FrmNewArmy_ActionArea">
+        <property name="MemberName" />
+        <property name="CanFocus">True</property>
+        <property name="Events">ButtonPressMask</property>
+        <property name="Spacing">6</property>
+        <property name="BorderWidth">5</property>
+        <property name="Size">2</property>
+        <property name="LayoutStyle">End</property>
+        <child>
+          <widget class="Gtk.Button" id="bttnCancel">
+            <property name="MemberName" />
+            <property name="CanFocus">True</property>
+            <property name="UseStock">True</property>
+            <property name="Type">StockItem</property>
+            <property name="StockId">gtk-cancel</property>
+            <property name="ResponseId">-6</property>
+            <signal name="Clicked" handler="OnCancelClicked" />
+            <property name="label">gtk-cancel</property>
+          </widget>
+          <packing>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.Button" id="bttnCreate">
+            <property name="MemberName" />
+            <property name="Sensitive">False</property>
+            <property name="CanDefault">True</property>
+            <property name="CanFocus">True</property>
+            <property name="Type">TextAndIcon</property>
+            <property name="Icon">stock:gtk-ok Menu</property>
+            <property name="Label" translatable="yes">C_reate</property>
+            <property name="UseUnderline">True</property>
+            <property name="ResponseId">-5</property>
+            <signal name="Clicked" handler="OnCreateClicked" />
+          </widget>
+          <packing>
+            <property name="Position">1</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Dialog" id="IBBoard.WarFoundry.FrmChangeGameSystem" design-size="527 257">
+    <property name="MemberName" />
+    <property name="Title" translatable="yes">Change Game System</property>
+    <property name="Icon">resource:App.ico</property>
+    <property name="TypeHint">Dialog</property>
+    <property name="WindowPosition">CenterOnParent</property>
+    <property name="Modal">True</property>
+    <property name="Resizable">False</property>
+    <property name="AllowGrow">False</property>
+    <property name="DefaultWidth">400</property>
+    <property name="DefaultHeight">300</property>
+    <property name="SkipPagerHint">True</property>
+    <property name="SkipTaskbarHint">True</property>
+    <property name="Buttons">2</property>
+    <property name="HelpButton">False</property>
+    <property name="HasSeparator">False</property>
+    <child internal-child="VBox">
+      <widget class="Gtk.VBox" id="dialog1_VBox">
+        <property name="MemberName" />
+        <property name="Spacing">6</property>
+        <property name="BorderWidth">2</property>
+        <child>
+          <widget class="Gtk.HBox" id="hbox1">
+            <property name="MemberName" />
+            <property name="Spacing">6</property>
+            <child>
+              <widget class="Gtk.Label" id="lblGameSystem">
+                <property name="MemberName" />
+                <property name="LabelProp" translatable="yes">Game System</property>
+              </widget>
+              <packing>
+                <property name="Position">0</property>
+                <property name="AutoSize">False</property>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
+                <property name="MemberName" />
+                <property name="ShadowType">In</property>
+                <child>
+                  <widget class="Gtk.TreeView" id="lstGameSystems">
+                    <property name="MemberName" />
+                    <property name="WidthRequest">250</property>
+                    <property name="HeightRequest">125</property>
+                    <property name="CanFocus">True</property>
+                    <property name="ShowScrollbars">True</property>
+                    <property name="HeadersVisible">False</property>
+                    <property name="HeadersClickable">True</property>
+                    <signal name="RowActivated" handler="lstGameSystemsRowActivated" />
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="Position">1</property>
+                <property name="AutoSize">True</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">0</property>
+            <property name="AutoSize">False</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+    <child internal-child="ActionArea">
+      <widget class="Gtk.HButtonBox" id="dialog1_ActionArea">
+        <property name="MemberName" />
+        <property name="Spacing">6</property>
+        <property name="BorderWidth">5</property>
+        <property name="Size">2</property>
+        <property name="LayoutStyle">End</property>
+        <child>
+          <widget class="Gtk.Button" id="buttonCancel">
+            <property name="MemberName" />
+            <property name="CanDefault">True</property>
+            <property name="CanFocus">True</property>
+            <property name="UseStock">True</property>
+            <property name="Type">StockItem</property>
+            <property name="StockId">gtk-cancel</property>
+            <property name="ResponseId">-6</property>
+            <signal name="Clicked" handler="OnCancel" />
+            <property name="label">gtk-cancel</property>
+          </widget>
+          <packing>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.Button" id="buttonOk">
+            <property name="MemberName" />
+            <property name="Sensitive">False</property>
+            <property name="CanDefault">True</property>
+            <property name="CanFocus">True</property>
+            <property name="UseStock">True</property>
+            <property name="Type">StockItem</property>
+            <property name="StockId">gtk-ok</property>
+            <property name="ResponseId">-5</property>
+            <signal name="Clicked" handler="OnGameSystemOkayClicked" />
+            <property name="label">gtk-ok</property>
+          </widget>
+          <packing>
+            <property name="Position">1</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Dialog" id="IBBoard.WarFoundry.FrmNewUnit" design-size="400 318">
+    <property name="MemberName" />
+    <property name="Title" translatable="yes">Add new unit</property>
+    <property name="Icon">stock:gtk-new Menu</property>
+    <property name="WindowPosition">CenterOnParent</property>
+    <property name="Modal">True</property>
+    <property name="SkipPagerHint">True</property>
+    <property name="SkipTaskbarHint">True</property>
+    <property name="Buttons">2</property>
+    <property name="HelpButton">False</property>
+    <property name="HasSeparator">False</property>
+    <child internal-child="VBox">
+      <widget class="Gtk.VBox" id="dialog1_VBox">
+        <property name="MemberName" />
+        <property name="BorderWidth">2</property>
+        <child>
+          <widget class="Gtk.VBox" id="vbox2">
+            <property name="MemberName" />
+            <property name="Spacing">6</property>
+            <child>
+              <widget class="Gtk.HBox" id="hbox1">
+                <property name="MemberName" />
+                <property name="Spacing">6</property>
+                <child>
+                  <widget class="Gtk.Label" id="label1">
+                    <property name="MemberName" />
+                    <property name="LabelProp" translatable="yes">Unit Type:</property>
+                  </widget>
+                  <packing>
+                    <property name="Position">0</property>
+                    <property name="AutoSize">True</property>
+                    <property name="Expand">False</property>
+                    <property name="Fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
+                    <property name="MemberName" />
+                    <property name="ShadowType">In</property>
+                    <child>
+                      <widget class="Gtk.TreeView" id="lstUnitTypes">
+                        <property name="MemberName" />
+                        <property name="HeightRequest">150</property>
+                        <property name="CanFocus">True</property>
+                        <property name="ShowScrollbars">True</property>
+                        <property name="HeadersVisible">False</property>
+                        <property name="HeadersClickable">True</property>
+                        <signal name="RowActivated" handler="OnRowActivated" />
+                      </widget>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="Position">1</property>
+                    <property name="AutoSize">True</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="Position">0</property>
+                <property name="AutoSize">True</property>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Label" id="lblNewUnitWarning">
+                <property name="MemberName" />
+                <property name="Xalign">0</property>
+                <property name="Yalign">0</property>
+                <property name="LabelProp" translatable="yes" />
+              </widget>
+              <packing>
+                <property name="Position">1</property>
+                <property name="AutoSize">True</property>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">0</property>
+            <property name="AutoSize">True</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+    <child internal-child="ActionArea">
+      <widget class="Gtk.HButtonBox" id="dialog1_ActionArea">
+        <property name="MemberName" />
+        <property name="Spacing">6</property>
+        <property name="BorderWidth">5</property>
+        <property name="Size">2</property>
+        <property name="LayoutStyle">End</property>
+        <child>
+          <widget class="Gtk.Button" id="buttonCancel">
+            <property name="MemberName" />
+            <property name="CanDefault">True</property>
+            <property name="CanFocus">True</property>
+            <property name="UseStock">True</property>
+            <property name="Type">StockItem</property>
+            <property name="StockId">gtk-cancel</property>
+            <property name="ResponseId">-6</property>
+            <signal name="Activated" handler="OnButtonCancelActivated" />
+            <property name="label">gtk-cancel</property>
+          </widget>
+          <packing>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.Button" id="buttonOk">
+            <property name="MemberName" />
+            <property name="Sensitive">False</property>
+            <property name="CanDefault">True</property>
+            <property name="CanFocus">True</property>
+            <property name="UseStock">True</property>
+            <property name="Type">StockItem</property>
+            <property name="StockId">gtk-ok</property>
+            <property name="ResponseId">-5</property>
+            <signal name="Clicked" handler="OnButtonOkClicked" />
+            <property name="label">gtk-ok</property>
+          </widget>
+          <packing>
+            <property name="Position">1</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Bin" id="IBBoard.WarFoundry.Widgets.UnitDisplayWidget" design-size="649 422">
+    <property name="MemberName" />
+    <child>
+      <widget class="Gtk.VBox" id="vbox1">
+        <property name="MemberName" />
+        <property name="Spacing">6</property>
+        <child>
+          <widget class="Gtk.HBox" id="hbox1">
+            <property name="MemberName" />
+            <property name="Spacing">6</property>
+            <child>
+              <widget class="Gtk.Entry" id="unitName">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="IsEditable">True</property>
+                <property name="InvisibleChar">•</property>
+                <signal name="FocusOutEvent" handler="OnUnitNameFocusOut" />
+                <signal name="KeyPressEvent" handler="OnUnitNameKeyPress" />
+              </widget>
+              <packing>
+                <property name="Position">0</property>
+                <property name="AutoSize">True</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.SpinButton" id="unitSize">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="Upper">100</property>
+                <property name="PageIncrement">10</property>
+                <property name="StepIncrement">1</property>
+                <property name="ClimbRate">1</property>
+                <property name="Numeric">True</property>
+                <signal name="FocusOutEvent" handler="OnUnitSizeFocusOut" />
+                <signal name="KeyPressEvent" handler="OnUnitSizeKeyPress" />
+              </widget>
+              <packing>
+                <property name="Position">1</property>
+                <property name="AutoSize">True</property>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">0</property>
+            <property name="AutoSize">True</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
+            <property name="MemberName" />
+            <property name="ShadowType">In</property>
+            <child>
+              <widget class="Gtk.NodeView" id="unitStats">
+                <property name="MemberName" />
+                <property name="HeightRequest">75</property>
+                <property name="CanFocus">True</property>
+                <property name="ShowScrollbars">True</property>
+                <property name="HeadersClickable">True</property>
+              </widget>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">1</property>
+            <property name="AutoSize">True</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.HSeparator" id="hseparator1">
+            <property name="MemberName" />
+          </widget>
+          <packing>
+            <property name="Position">2</property>
+            <property name="AutoSize">True</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.Table" id="table1">
+            <property name="MemberName" />
+            <property name="NRows">2</property>
+            <property name="NColumns">3</property>
+            <property name="RowSpacing">6</property>
+            <property name="ColumnSpacing">6</property>
+            <child>
+              <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow1">
+                <property name="MemberName" />
+                <property name="ShadowType">In</property>
+                <child>
+                  <widget class="Gtk.NodeView" id="optionalEquipment">
+                    <property name="MemberName" />
+                    <property name="CanFocus">True</property>
+                    <property name="ShowScrollbars">True</property>
+                    <property name="HeadersClickable">True</property>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="TopAttach">1</property>
+                <property name="BottomAttach">2</property>
+                <property name="LeftAttach">1</property>
+                <property name="RightAttach">2</property>
+                <property name="AutoSize">True</property>
+                <property name="YOptions">Fill</property>
+                <property name="XExpand">True</property>
+                <property name="XFill">True</property>
+                <property name="XShrink">False</property>
+                <property name="YExpand">False</property>
+                <property name="YFill">True</property>
+                <property name="YShrink">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow2">
+                <property name="MemberName" />
+                <property name="ShadowType">In</property>
+                <child>
+                  <widget class="Gtk.NodeView" id="requiredEquipment">
+                    <property name="MemberName" />
+                    <property name="CanFocus">True</property>
+                    <property name="ShowScrollbars">True</property>
+                    <property name="HeadersClickable">True</property>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="LeftAttach">1</property>
+                <property name="RightAttach">2</property>
+                <property name="AutoSize">True</property>
+                <property name="YOptions">Fill</property>
+                <property name="XExpand">True</property>
+                <property name="XFill">True</property>
+                <property name="XShrink">False</property>
+                <property name="YExpand">False</property>
+                <property name="YFill">True</property>
+                <property name="YShrink">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Label" id="optionalEquipmentLabel">
+                <property name="MemberName" />
+                <property name="LabelProp" translatable="yes">Optional Equipment:</property>
+              </widget>
+              <packing>
+                <property name="TopAttach">1</property>
+                <property name="BottomAttach">2</property>
+                <property name="AutoSize">True</property>
+                <property name="XOptions">Fill</property>
+                <property name="YOptions">Fill</property>
+                <property name="XExpand">False</property>
+                <property name="XFill">True</property>
+                <property name="XShrink">False</property>
+                <property name="YExpand">False</property>
+                <property name="YFill">True</property>
+                <property name="YShrink">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Label" id="requiredEquipmentLabel">
+                <property name="MemberName" />
+                <property name="LabelProp" translatable="yes">Required Equipment:</property>
+              </widget>
+              <packing>
+                <property name="AutoSize">True</property>
+                <property name="XOptions">Fill</property>
+                <property name="YOptions">Fill</property>
+                <property name="XExpand">False</property>
+                <property name="XFill">True</property>
+                <property name="XShrink">False</property>
+                <property name="YExpand">False</property>
+                <property name="YFill">True</property>
+                <property name="YShrink">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.VBox" id="vbox2">
+                <property name="MemberName" />
+                <property name="Spacing">6</property>
+                <child>
+                  <widget class="Gtk.Button" id="bttnReplaceRequired">
+                    <property name="MemberName" />
+                    <property name="CanFocus">True</property>
+                    <property name="Type">TextOnly</property>
+                    <property name="Label" translatable="yes">Replace</property>
+                    <property name="UseUnderline">True</property>
+                  </widget>
+                  <packing>
+                    <property name="Position">0</property>
+                    <property name="AutoSize">True</property>
+                    <property name="Expand">False</property>
+                    <property name="Fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="Gtk.Button" id="bttnEditRequired">
+                    <property name="MemberName" />
+                    <property name="CanFocus">True</property>
+                    <property name="Type">TextOnly</property>
+                    <property name="Label" translatable="yes">Edit</property>
+                    <property name="UseUnderline">True</property>
+                  </widget>
+                  <packing>
+                    <property name="Position">1</property>
+                    <property name="AutoSize">True</property>
+                    <property name="Expand">False</property>
+                    <property name="Fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <placeholder />
+                </child>
+              </widget>
+              <packing>
+                <property name="LeftAttach">2</property>
+                <property name="RightAttach">3</property>
+                <property name="AutoSize">True</property>
+                <property name="XOptions">Fill</property>
+                <property name="YOptions">Fill</property>
+                <property name="XExpand">False</property>
+                <property name="XFill">True</property>
+                <property name="XShrink">False</property>
+                <property name="YExpand">False</property>
+                <property name="YFill">True</property>
+                <property name="YShrink">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.VBox" id="vbox3">
+                <property name="MemberName" />
+                <property name="Spacing">6</property>
+                <child>
+                  <widget class="Gtk.Button" id="bttnAddOptional">
+                    <property name="MemberName" />
+                    <property name="CanFocus">True</property>
+                    <property name="Type">TextOnly</property>
+                    <property name="Label" translatable="yes">Add</property>
+                    <property name="UseUnderline">True</property>
+                  </widget>
+                  <packing>
+                    <property name="Position">0</property>
+                    <property name="AutoSize">True</property>
+                    <property name="Expand">False</property>
+                    <property name="Fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="Gtk.Button" id="bttnEditOptional">
+                    <property name="MemberName" />
+                    <property name="CanFocus">True</property>
+                    <property name="Type">TextOnly</property>
+                    <property name="Label" translatable="yes">Edit</property>
+                    <property name="UseUnderline">True</property>
+                  </widget>
+                  <packing>
+                    <property name="Position">1</property>
+                    <property name="AutoSize">True</property>
+                    <property name="Expand">False</property>
+                    <property name="Fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="Gtk.Button" id="bttnRemove">
+                    <property name="MemberName" />
+                    <property name="CanFocus">True</property>
+                    <property name="Type">TextOnly</property>
+                    <property name="Label" translatable="yes">Remove</property>
+                    <property name="UseUnderline">True</property>
+                  </widget>
+                  <packing>
+                    <property name="Position">2</property>
+                    <property name="AutoSize">True</property>
+                    <property name="Expand">False</property>
+                    <property name="Fill">False</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="TopAttach">1</property>
+                <property name="BottomAttach">2</property>
+                <property name="LeftAttach">2</property>
+                <property name="RightAttach">3</property>
+                <property name="AutoSize">True</property>
+                <property name="XOptions">Fill</property>
+                <property name="YOptions">Fill</property>
+                <property name="XExpand">False</property>
+                <property name="XFill">True</property>
+                <property name="XShrink">False</property>
+                <property name="YExpand">False</property>
+                <property name="YFill">True</property>
+                <property name="YShrink">False</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">3</property>
+            <property name="AutoSize">True</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.HBox" id="hbox2">
+            <property name="MemberName" />
+            <property name="Spacing">6</property>
+            <child>
+              <placeholder />
+            </child>
+            <child>
+              <placeholder />
+            </child>
+            <child>
+              <placeholder />
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">4</property>
+            <property name="AutoSize">True</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+</stetic-interface>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk-gui/objects.xml	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,6 @@
+<objects>
+  <object type="IBBoard.WarFoundry.Widgets.UnitDisplayWidget" palette-category="WarFoundry GTK# GUI" allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+</objects>
\ No newline at end of file
Binary file libs/log4net.dll has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libs/log4net.xml	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,27658 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>log4net</name>
+    </assembly>
+    <members>
+        <member name="T:log4net.Appender.AdoNetAppender">
+            <summary>
+            Appender that logs to a database.
+            </summary>
+            <remarks>
+            <para>
+            <see cref="T:log4net.Appender.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="P:log4net.Appender.AdoNetAppender.ConnectionString"/> property. 
+            The connection type (provider) can be specified by setting the <see cref="P:log4net.Appender.AdoNetAppender.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>.
+            </para>
+            <para>
+            Records are written into the database either using a prepared
+            statement or a stored procedure. The <see cref="P:log4net.Appender.AdoNetAppender.CommandType"/> property
+            is set to <see cref="F:System.Data.CommandType.Text"/> (<c>System.Data.CommandType.Text</c>) to specify a prepared statement
+            or to <see cref="F:System.Data.CommandType.StoredProcedure"/> (<c>System.Data.CommandType.StoredProcedure</c>) to specify a stored
+            procedure.
+            </para>
+            <para>
+            The prepared statement text or the name of the stored procedure
+            must be set in the <see cref="P:log4net.Appender.AdoNetAppender.CommandText"/> property.
+            </para>
+            <para>
+            The prepared statement or stored procedure can take a number
+            of parameters. Parameters are added using the <see cref="M:log4net.Appender.AdoNetAppender.AddParameter(log4net.Appender.AdoNetAppenderParameter)"/>
+            method. This adds a single <see cref="T:log4net.Appender.AdoNetAppenderParameter"/> to the
+            ordered list of parameters. The <see cref="T:log4net.Appender.AdoNetAppenderParameter"/>
+            type may be subclassed if required to provide database specific
+            functionality. The <see cref="T:log4net.Appender.AdoNetAppenderParameter"/> specifies
+            the parameter name, database type, size, and how the value should
+            be generated using a <see cref="T:log4net.Layout.ILayout"/>.
+            </para>
+            </remarks>
+            <example>
+            An example of a SQL Server table that could be logged to:
+            <code lang="SQL">
+            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 
+            ) ON [PRIMARY]
+            </code>
+            </example>
+            <example>
+            An example configuration to log to the above table:
+            <code lang="XML" escaped="true">
+            <appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
+              <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
+              <connectionString value="data source=SQLSVR;initial catalog=test_log4net;integrated security=false;persist security info=True;User ID=sa;Password=sa"/>
+              <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)"/>
+              <parameter>
+                <parameterName value="@log_date"/>
+                <dbType value="DateTime"/>
+                <layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}"/>
+              </parameter>
+              <parameter>
+                <parameterName value="@thread"/>
+                <dbType value="String"/>
+                <size value="255"/>
+                <layout type="log4net.Layout.PatternLayout" value="%thread"/>
+              </parameter>
+              <parameter>
+                <parameterName value="@log_level"/>
+                <dbType value="String"/>
+                <size value="50"/>
+                <layout type="log4net.Layout.PatternLayout" value="%level"/>
+              </parameter>
+              <parameter>
+                <parameterName value="@logger"/>
+                <dbType value="String"/>
+                <size value="255"/>
+                <layout type="log4net.Layout.PatternLayout" value="%logger"/>
+              </parameter>
+              <parameter>
+                <parameterName value="@message"/>
+                <dbType value="String"/>
+                <size value="4000"/>
+                <layout type="log4net.Layout.PatternLayout" value="%message"/>
+              </parameter>
+            </appender>
+            </code>
+            </example>
+            <author>Julian Biddle</author>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+            <author>Lance Nehring</author>
+        </member>
+        <member name="T:log4net.Appender.BufferingAppenderSkeleton">
+            <summary>
+            Abstract base class implementation of <see cref="T:log4net.Appender.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="T:log4net.Appender.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:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.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 
+            the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> property.
+            </para>
+            <para>A <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> is used to inspect 
+            each event as it arrives in the appender. If the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> 
+            triggers, then the current buffer is sent immediately 
+            (see <see cref="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.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="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> mode. 
+            By default the appender is NOT lossy. When the buffer is full all 
+            the buffered events are sent with <see cref="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])"/>.
+            If the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.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="P:log4net.Appender.BufferingAppenderSkeleton.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 
+            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>
+        </member>
+        <member name="T:log4net.Appender.AppenderSkeleton">
+            <summary>
+            Abstract base class implementation of <see cref="T:log4net.Appender.IAppender"/>. 
+            </summary>
+            <remarks>
+            <para>
+            This class provides the code for common functionality, such 
+            as support for threshold filtering and support for general filters.
+            </para>
+            <para>
+            Appenders can also implement the <see cref="T:log4net.Core.IOptionHandler"/> interface. Therefore
+            they would require that the <see cref="M:log4net.Core.IOptionHandler.ActivateOptions"/> method
+            be called after the appenders properties have been configured.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Appender.IAppender">
+            <summary>
+            Implement this interface for your own strategies for printing log statements.
+            </summary>
+            <remarks>
+            <para>
+            Implementors should consider extending the <see cref="T:log4net.Appender.AppenderSkeleton"/>
+            class which provides a default implementation of this interface.
+            </para>
+            <para>
+            Appenders can also implement the <see cref="T:log4net.Core.IOptionHandler"/> interface. Therefore
+            they would require that the <see cref="M:log4net.Core.IOptionHandler.ActivateOptions"/> method
+            be called after the appenders properties have been configured.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Appender.IAppender.Close">
+            <summary>
+            Closes the appender and releases resources.
+            </summary>
+            <remarks>
+            <para>
+            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>
+        </member>
+        <member name="M:log4net.Appender.IAppender.DoAppend(log4net.Core.LoggingEvent)">
+            <summary>
+            Log the logging event in Appender specific way.
+            </summary>
+            <param name="loggingEvent">The event to log</param>
+            <remarks>
+            <para>
+            This method is called to log a message into this appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.IAppender.Name">
+            <summary>
+            Gets or sets the name of this appender.
+            </summary>
+            <value>The name of the appender.</value>
+            <remarks>
+            <para>The name uniquely identifies the appender.</para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.IBulkAppender">
+            <summary>
+            Interface for appenders that support bulk logging.
+            </summary>
+            <remarks>
+            <para>
+            This interface extends the <see cref="T:log4net.Appender.IAppender"/> interface to
+            support bulk logging of <see cref="T:log4net.Core.LoggingEvent"/> objects. Appenders
+            should only implement this interface if they can bulk log efficiently.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Appender.IBulkAppender.DoAppend(log4net.Core.LoggingEvent[])">
+            <summary>
+            Log the array of logging events in Appender specific way.
+            </summary>
+            <param name="loggingEvents">The events to log</param>
+            <remarks>
+            <para>
+            This method is called to log an array of events into this appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.IOptionHandler">
+            <summary>
+            Interface used to delay activate a configured object.
+            </summary>
+            <remarks>
+            <para>
+            This allows an object to defer activation of its options until all
+            options have been set. This is required for components which have
+            related options that remain ambiguous until all are set.
+            </para>
+            <para>
+            If a component implements this interface then the <see cref="M:log4net.Core.IOptionHandler.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>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Core.IOptionHandler.ActivateOptions">
+            <summary>
+            Activate the options that were previously set with calls to properties.
+            </summary>
+            <remarks>
+            <para>
+            This allows an object to defer activation of its options until all
+            options have been set. This is required for components which have
+            related options that remain ambiguous until all are set.
+            </para>
+            <para>
+            If a component implements this interface then this method must be called
+            after its properties have been set before the component can be used.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.AppenderSkeleton.c_renderBufferSize">
+            <summary>
+            Initial buffer size
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AppenderSkeleton.c_renderBufferMaxCapacity">
+            <summary>
+            Maximum buffer size before it is recycled
+            </summary>
+        </member>
+        <member name="M:log4net.Appender.AppenderSkeleton.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+            <remarks>
+            <para>Empty default constructor</para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AppenderSkeleton.Finalize">
+            <summary>
+            Finalizes this appender by calling the implementation's 
+            <see cref="M:log4net.Appender.AppenderSkeleton.Close"/> method.
+            </summary>
+            <remarks>
+            <para>
+            If this appender has not been closed then the <c>Finalize</c> method
+            will call <see cref="M:log4net.Appender.AppenderSkeleton.Close"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AppenderSkeleton.ActivateOptions">
+            <summary>
+            Initialize the appender based on the options set
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Appender.AppenderSkeleton.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Appender.AppenderSkeleton.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Appender.AppenderSkeleton.ActivateOptions"/> must be called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AppenderSkeleton.Close">
+            <summary>
+            Closes the appender and release resources.
+            </summary>
+            <remarks>
+            <para>
+            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 
+            delegates the closing of the appender to the <see cref="M:log4net.Appender.AppenderSkeleton.OnClose"/>
+            method which must be overridden in the subclass.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)">
+            <summary>
+            Performs threshold checks and invokes filters before 
+            delegating actual logging to the subclasses specific 
+            <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/> method.
+            </summary>
+            <param name="loggingEvent">The event to log.</param>
+            <remarks>
+            <para>
+            This method cannot be overridden by derived classes. A
+            derived class should override the <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/> method
+            which is called by this method.
+            </para>
+            <para>
+            The implementation of this method is as follows:
+            </para>
+            <para>
+            <list type="bullet">
+            	<item>
+            		<description>
+            		Checks that the severity of the <paramref name="loggingEvent"/>
+            		is greater than or equal to the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> of this
+            		appender.</description>
+            	</item>
+            	<item>
+            		<description>
+            		Checks that the <see cref="T:log4net.Filter.IFilter"/> chain accepts the 
+            		<paramref name="loggingEvent"/>.
+            		</description>
+            	</item>
+            	<item>
+            		<description>
+            		Calls <see cref="M:log4net.Appender.AppenderSkeleton.PreAppendCheck"/> and checks that 
+            		it returns <c>true</c>.</description>
+            	</item>
+            </list>
+            </para>
+            <para>
+            If all of the above steps succeed then the <paramref name="loggingEvent"/>
+            will be passed to the abstract <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/> method.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent[])">
+            <summary>
+            Performs threshold checks and invokes filters before 
+            delegating actual logging to the subclasses specific 
+            <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent[])"/> method.
+            </summary>
+            <param name="loggingEvents">The array of events to log.</param>
+            <remarks>
+            <para>
+            This method cannot be overridden by derived classes. A
+            derived class should override the <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent[])"/> method
+            which is called by this method.
+            </para>
+            <para>
+            The implementation of this method is as follows:
+            </para>
+            <para>
+            <list type="bullet">
+            	<item>
+            		<description>
+            		Checks that the severity of the <paramref name="loggingEvent"/>
+            		is greater than or equal to the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> of this
+            		appender.</description>
+            	</item>
+            	<item>
+            		<description>
+            		Checks that the <see cref="T:log4net.Filter.IFilter"/> chain accepts the 
+            		<paramref name="loggingEvent"/>.
+            		</description>
+            	</item>
+            	<item>
+            		<description>
+            		Calls <see cref="M:log4net.Appender.AppenderSkeleton.PreAppendCheck"/> and checks that 
+            		it returns <c>true</c>.</description>
+            	</item>
+            </list>
+            </para>
+            <para>
+            If all of the above steps succeed then the <paramref name="loggingEvents"/>
+            will be passed to the <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent[])"/> method.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AppenderSkeleton.FilterEvent(log4net.Core.LoggingEvent)">
+            <summary>
+            Test if the logging event should we output by this appender
+            </summary>
+            <param name="loggingEvent">the event to test</param>
+            <returns><c>true</c> if the event should be output, <c>false</c> if the event should be ignored</returns>
+            <remarks>
+            <para>
+            This method checks the logging event against the threshold level set
+            on this appender and also against the filters specified on this
+            appender.
+            </para>
+            <para>
+            The implementation of this method is as follows:
+            </para>
+            <para>
+            <list type="bullet">
+            	<item>
+            		<description>
+            		Checks that the severity of the <paramref name="loggingEvent"/>
+            		is greater than or equal to the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> of this
+            		appender.</description>
+            	</item>
+            	<item>
+            		<description>
+            		Checks that the <see cref="T:log4net.Filter.IFilter"/> chain accepts the 
+            		<paramref name="loggingEvent"/>.
+            		</description>
+            	</item>
+            </list>
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AppenderSkeleton.AddFilter(log4net.Filter.IFilter)">
+            <summary>
+            Adds a filter to the end of the filter chain.
+            </summary>
+            <param name="filter">the filter to add to this appender</param>
+            <remarks>
+            <para>
+            The Filters are organized in a linked list.
+            </para>
+            <para>
+            Setting this property causes the new filter to be pushed onto the 
+            back of the filter chain.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AppenderSkeleton.ClearFilters">
+            <summary>
+            Clears the filter list for this appender.
+            </summary>
+            <remarks>
+            <para>
+            Clears the filter list for this appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AppenderSkeleton.IsAsSevereAsThreshold(log4net.Core.Level)">
+            <summary>
+            Checks if the message level is below this appender's threshold.
+            </summary>
+            <param name="level"><see cref="T:log4net.Core.Level"/> to test against.</param>
+            <remarks>
+            <para>
+            If there is no threshold set, then the return value is always <c>true</c>.
+            </para>
+            </remarks>
+            <returns>
+            <c>true</c> if the <paramref name="level"/> meets the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> 
+            requirements of this appender.
+            </returns>
+        </member>
+        <member name="M:log4net.Appender.AppenderSkeleton.OnClose">
+            <summary>
+            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, 
+            network connections, etc.
+            </para>
+            <para>
+            It is a programming error to append to a closed appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            Subclasses of <see cref="T:log4net.Appender.AppenderSkeleton"/> should implement this method 
+            to perform actual logging.
+            </summary>
+            <param name="loggingEvent">The event to append.</param>
+            <remarks>
+            <para>
+            A subclass must implement this method to perform
+            logging of the <paramref name="loggingEvent"/>.
+            </para>
+            <para>This method will be called by <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/>
+            if all the conditions listed for that method are met.
+            </para>
+            <para>
+            To restrict the logging of events in the appender
+            override the <see cref="M:log4net.Appender.AppenderSkeleton.PreAppendCheck"/> method.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent[])">
+            <summary>
+            Append a bulk array of logging events.
+            </summary>
+            <param name="loggingEvents">the array of logging events</param>
+            <remarks>
+            <para>
+            This base class implementation calls the <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/>
+            method for each element in the bulk array.
+            </para>
+            <para>
+            A sub class that can better process a bulk array of events should
+            override this method in addition to <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AppenderSkeleton.PreAppendCheck">
+            <summary>
+            Called before <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/> as a precondition.
+            </summary>
+            <remarks>
+            <para>
+            This method is called by <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/>
+            before the call to the abstract <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/> method.
+            </para>
+            <para>
+            This method can be overridden in a subclass to extend the checks 
+            made before the event is passed to the <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/> method.
+            </para>
+            <para>
+            A subclass should ensure that they delegate this call to
+            this base class if it is overridden.
+            </para>
+            </remarks>
+            <returns><c>true</c> if the call to <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/> should proceed.</returns>
+        </member>
+        <member name="M:log4net.Appender.AppenderSkeleton.RenderLoggingEvent(log4net.Core.LoggingEvent)">
+            <summary>
+            Renders the <see cref="T:log4net.Core.LoggingEvent"/> to a string.
+            </summary>
+            <param name="loggingEvent">The event to render.</param>
+            <returns>The event rendered as a string.</returns>
+            <remarks>
+            <para>
+            Helper method to render a <see cref="T:log4net.Core.LoggingEvent"/> to 
+            a string. This appender must have a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/>
+            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 
+            will append the exception text to the rendered string.
+            </para>
+            <para>
+            Where possible use the alternative version of this method
+            <see cref="M:log4net.Appender.AppenderSkeleton.RenderLoggingEvent(System.IO.TextWriter,log4net.Core.LoggingEvent)"/>.
+            That method streams the rendering onto an existing Writer
+            which can give better performance if the caller already has
+            a <see cref="T:System.IO.TextWriter"/> open and ready for writing.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AppenderSkeleton.RenderLoggingEvent(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Renders the <see cref="T:log4net.Core.LoggingEvent"/> to a string.
+            </summary>
+            <param name="loggingEvent">The event to render.</param>
+            <param name="writer">The TextWriter to write the formatted event to</param>
+            <remarks>
+            <para>
+            Helper method to render a <see cref="T:log4net.Core.LoggingEvent"/> to 
+            a string. This appender must have a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/>
+            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 
+            will append the exception text to the rendered string.
+            </para>
+            <para>
+            Use this method in preference to <see cref="M:log4net.Appender.AppenderSkeleton.RenderLoggingEvent(log4net.Core.LoggingEvent)"/>
+            where possible. If, however, the caller needs to render the event
+            to a string then <see cref="M:log4net.Appender.AppenderSkeleton.RenderLoggingEvent(log4net.Core.LoggingEvent)"/> does
+            provide an efficient mechanism for doing so.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.AppenderSkeleton.m_layout">
+            <summary>
+            The layout of this appender.
+            </summary>
+            <remarks>
+            See <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/> for more information.
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.AppenderSkeleton.m_name">
+            <summary>
+            The name of this appender.
+            </summary>
+            <remarks>
+            See <see cref="P:log4net.Appender.AppenderSkeleton.Name"/> for more information.
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.AppenderSkeleton.m_threshold">
+            <summary>
+            The level threshold of this appender.
+            </summary>
+            <remarks>
+            <para>
+            There is no level threshold filtering by default.
+            </para>
+            <para>
+            See <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> for more information.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.AppenderSkeleton.m_errorHandler">
+            <summary>
+            It is assumed and enforced that errorHandler is never null.
+            </summary>
+            <remarks>
+            <para>
+            It is assumed and enforced that errorHandler is never null.
+            </para>
+            <para>
+            See <see cref="P:log4net.Appender.AppenderSkeleton.ErrorHandler"/> for more information.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.AppenderSkeleton.m_headFilter">
+            <summary>
+            The first filter in the filter chain.
+            </summary>
+            <remarks>
+            <para>
+            Set to <c>null</c> initially.
+            </para>
+            <para>
+            See <see cref="T:log4net.Filter.IFilter"/> for more information.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.AppenderSkeleton.m_tailFilter">
+            <summary>
+            The last filter in the filter chain.
+            </summary>
+            <remarks>
+            See <see cref="T:log4net.Filter.IFilter"/> for more information.
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.AppenderSkeleton.m_closed">
+            <summary>
+            Flag indicating if this appender is closed.
+            </summary>
+            <remarks>
+            See <see cref="M:log4net.Appender.AppenderSkeleton.Close"/> for more information.
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.AppenderSkeleton.m_recursiveGuard">
+            <summary>
+            The guard prevents an appender from repeatedly calling its own DoAppend method
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AppenderSkeleton.m_renderWriter">
+            <summary>
+            StringWriter used to render events
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.AppenderSkeleton.Threshold">
+            <summary>
+            Gets or sets the threshold <see cref="T:log4net.Core.Level"/> of this appender.
+            </summary>
+            <value>
+            The threshold <see cref="T:log4net.Core.Level"/> of the appender. 
+            </value>
+            <remarks>
+            <para>
+            All log events with lower level than the threshold level are ignored 
+            by the appender.
+            </para>
+            <para>
+            In configuration files this option is specified by setting the
+            value of the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> option to a level
+            string, such as "DEBUG", "INFO" and so on.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.AppenderSkeleton.ErrorHandler">
+            <summary>
+            Gets or sets the <see cref="T:log4net.Core.IErrorHandler"/> for this appender.
+            </summary>
+            <value>The <see cref="T:log4net.Core.IErrorHandler"/> of the appender</value>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.Appender.AppenderSkeleton"/> provides a default 
+            implementation for the <see cref="P:log4net.Appender.AppenderSkeleton.ErrorHandler"/> property. 
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.AppenderSkeleton.FilterHead">
+            <summary>
+            The filter chain.
+            </summary>
+            <value>The head of the filter chain filter chain.</value>
+            <remarks>
+            <para>
+            Returns the head Filter. The Filters are organized in a linked list
+            and so all Filters on this Appender are available through the result.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.AppenderSkeleton.Layout">
+            <summary>
+            Gets or sets the <see cref="T:log4net.Layout.ILayout"/> for this appender.
+            </summary>
+            <value>The layout of the appender.</value>
+            <remarks>
+            <para>
+            See <see cref="P:log4net.Appender.AppenderSkeleton.RequiresLayout"/> for more information.
+            </para>
+            </remarks>
+            <seealso cref="P:log4net.Appender.AppenderSkeleton.RequiresLayout"/>
+        </member>
+        <member name="P:log4net.Appender.AppenderSkeleton.Name">
+            <summary>
+            Gets or sets the name of this appender.
+            </summary>
+            <value>The name of the appender.</value>
+            <remarks>
+            <para>
+            The name uniquely identifies the appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.AppenderSkeleton.RequiresLayout">
+            <summary>
+            Tests if this appender requires a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/> to be set.
+            </summary>
+            <remarks>
+            <para>
+            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>
+            This default implementation always returns <c>true</c>.
+            </para>
+            </remarks>
+            <returns>
+            <c>true</c> if the appender requires a layout object, otherwise <c>false</c>.
+            </returns>
+        </member>
+        <member name="F:log4net.Appender.BufferingAppenderSkeleton.DEFAULT_BUFFER_SIZE">
+            <summary>
+            The default buffer size.
+            </summary>
+            <remarks>
+            The default size of the cyclic buffer used to store events.
+            This is set to 512 by default.
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.BufferingAppenderSkeleton.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.BufferingAppenderSkeleton"/> class.
+            </summary>
+            <remarks>
+            <para>
+            Protected default constructor to allow subclassing.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.BufferingAppenderSkeleton.#ctor(System.Boolean)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.BufferingAppenderSkeleton"/> class.
+            </summary>
+            <param name="eventMustBeFixed">the events passed through this appender must be
+            fixed by the time that they arrive in the derived class' <c>SendBuffer</c> method.</param>
+            <remarks>
+            <para>
+            Protected constructor to allow subclassing.
+            </para>
+            <para>
+            The <paramref name="eventMustBeFixed"/> should be set if the subclass
+            expects the events delivered to be fixed even if the 
+            <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> is set to zero, i.e. when no buffering occurs.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.BufferingAppenderSkeleton.Flush">
+            <summary>
+            Flush the currently buffered events
+            </summary>
+            <remarks>
+            <para>
+            Flushes any events that have been buffered.
+            </para>
+            <para>
+            If the appender is buffering in <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> mode then the contents
+            of the buffer will NOT be flushed to the appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.BufferingAppenderSkeleton.Flush(System.Boolean)">
+            <summary>
+            Flush the currently buffered events
+            </summary>
+            <param name="flushLossyBuffer">set to <c>true</c> to flush the buffer of lossy events</param>
+            <remarks>
+            <para>
+            Flushes events that have been buffered. If <paramref name="flushLossyBuffer"/> is
+            <c>false</c> then events will only be flushed if this buffer is non-lossy mode.
+            </para>
+            <para>
+            If the appender is buffering in <see cref="P:log4net.Appender.BufferingAppenderSkeleton.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 
+            <see cref="P:log4net.Appender.BufferingAppenderSkeleton.LossyEvaluator"/> and if triggering will be output. All other buffered
+            events will be discarded.
+            </para>
+            <para>
+            If <paramref name="flushLossyBuffer"/> is <c>true</c> then the buffer will always
+            be emptied by calling this method.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOptions">
+            <summary>
+            Initialize the appender based on the options set
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOptions"/> must be called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.BufferingAppenderSkeleton.OnClose">
+            <summary>
+            Close this appender instance.
+            </summary>
+            <remarks>
+            <para>
+            Close this appender instance. If this appender is marked
+            as not <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> then the remaining events in 
+            the buffer must be sent when the appender is closed.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.BufferingAppenderSkeleton.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/> method. 
+            </summary>
+            <param name="loggingEvent">the event to log</param>
+            <remarks>
+            <para>
+            Stores the <paramref name="loggingEvent"/> in the cyclic buffer.
+            </para>
+            <para>
+            The buffer will be sent (i.e. passed to the <see cref="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])"/> 
+            method) if one of the following conditions is met:
+            </para>
+            <list type="bullet">
+            	<item>
+            		<description>The cyclic buffer is full and this appender is
+            		marked as not lossy (see <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/>)</description>
+            	</item>
+            	<item>
+            		<description>An <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> is set and
+            		it is triggered for the <paramref name="loggingEvent"/>
+            		specified.</description>
+            	</item>
+            </list>
+            <para>
+            Before the event is stored in the buffer it is fixed
+            (see <see cref="M:log4net.Core.LoggingEvent.FixVolatileData(log4net.Core.FixFlags)"/>) to ensure that
+            any data referenced by the event will be valid when the buffer
+            is processed.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.BufferingAppenderSkeleton.SendFromBuffer(log4net.Core.LoggingEvent,log4net.Util.CyclicBuffer)">
+            <summary>
+            Sends the contents of the buffer.
+            </summary>
+            <param name="firstLoggingEvent">The first logging event.</param>
+            <param name="buffer">The buffer containing the events that need to be send.</param>
+            <remarks>
+            <para>
+            The subclass must override <see cref="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])">
+            <summary>
+            Sends the events.
+            </summary>
+            <param name="events">The events that need to be send.</param>
+            <remarks>
+            <para>
+            The subclass must override this method to process the buffered events.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_bufferSize">
+            <summary>
+            The size of the cyclic buffer used to hold the logging events.
+            </summary>
+            <remarks>
+            Set to <see cref="F:log4net.Appender.BufferingAppenderSkeleton.DEFAULT_BUFFER_SIZE"/> by default.
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_cb">
+            <summary>
+            The cyclic buffer used to store the logging events.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_evaluator">
+            <summary>
+            The triggering event evaluator that causes the buffer to be sent immediately.
+            </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 
+            indicates that event triggering is not to be done. The evaluator
+            can be set using the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> property. If this appender
+            has the <see cref="F:log4net.Appender.BufferingAppenderSkeleton.m_lossy"/> (<see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> property) set to 
+            <c>true</c> then an <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> must be set.
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_lossy">
+            <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 
+            buffer is full.
+            </summary>
+            <remarks>
+            If this field is set to <c>true</c> then an <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> must 
+            be set.
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_lossyEvaluator">
+            <summary>
+            The triggering event evaluator filters discarded events.
+            </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. 
+            This field can be <c>null</c>, which indicates that all discarded events will
+            be discarded. 
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_fixFlags">
+            <summary>
+            Value indicating which fields in the event should be fixed
+            </summary>
+            <remarks>
+            By default all fields are fixed
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_eventMustBeFixed">
+            <summary>
+            The events delivered to the subclass must be fixed.
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.BufferingAppenderSkeleton.Lossy">
+            <summary>
+            Gets or sets a value that indicates whether the appender is lossy.
+            </summary>
+            <value>
+            <c>true</c> if the appender is lossy, otherwise <c>false</c>. The default is <c>false</c>.
+            </value>
+            <remarks>
+            <para>
+            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="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> to <c>false</c> to prevent logging events 
+            from being lost.
+            </para>
+            <para>If <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> is set to <c>true</c> then an
+            <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> must be specified.</para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize">
+            <summary>
+            Gets or sets the size of the cyclic buffer used to hold the 
+            logging events.
+            </summary>
+            <value>
+            The size of the cyclic buffer used to hold the logging events.
+            </value>
+            <remarks>
+            <para>
+            The <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> option takes a positive integer
+            representing the maximum number of logging events to collect in 
+            a cyclic buffer. When the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.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.
+            </para>
+            <para>
+            If the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> is set to a value less than
+            or equal to 1 then no buffering will occur. The logging event
+            will be delivered synchronously (depending on the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/>
+            and <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> properties). Otherwise the event will
+            be buffered.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator">
+            <summary>
+            Gets or sets the <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> that causes the 
+            buffer to be sent immediately.
+            </summary>
+            <value>
+            The <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> that causes the buffer to be
+            sent immediately.
+            </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 
+            immediately be sent (see <see cref="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])"/>).
+            </para>
+            <para>If <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> is set to <c>true</c> then an
+            <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> must be specified.</para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.BufferingAppenderSkeleton.LossyEvaluator">
+            <summary>
+            Gets or sets the value of the <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> to use.
+            </summary>
+            <value>
+            The value of the <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> to use.
+            </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 
+            be sent (see <see cref="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])"/>).
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.BufferingAppenderSkeleton.OnlyFixPartialEventData">
+            <summary>
+            Gets or sets a value indicating if 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 
+            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 serialized. This will improve performance.
+            </para>
+            <para>
+            See <see cref="M:log4net.Core.LoggingEvent.FixVolatileData(log4net.Core.FixFlags)"/> for more information.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.BufferingAppenderSkeleton.Fix">
+            <summary>
+            Gets or sets a the fields that will be fixed in the event
+            </summary>
+            <value>
+            The event fields that will be fixed before the event is buffered
+            </value>
+            <remarks>
+            <para>
+            The logging event needs to have certain thread specific values 
+            captured before it can be buffered. See <see cref="P:log4net.Core.LoggingEvent.Fix"/>
+            for details.
+            </para>
+            </remarks>
+            <seealso cref="P:log4net.Core.LoggingEvent.Fix"/>
+        </member>
+        <member name="M:log4net.Appender.AdoNetAppender.#ctor">
+            <summary> 
+            Initializes a new instance of the <see cref="T:log4net.Appender.AdoNetAppender"/> class.
+            </summary>
+            <remarks>
+            Public default constructor to initialize a new instance of this class.
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AdoNetAppender.ActivateOptions">
+            <summary>
+            Initialize the appender based on the options set
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Appender.AdoNetAppender.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Appender.AdoNetAppender.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Appender.AdoNetAppender.ActivateOptions"/> must be called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AdoNetAppender.OnClose">
+            <summary>
+            Override the parent method to close the database
+            </summary>
+            <remarks>
+            <para>
+            Closes the database command and database connection.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AdoNetAppender.SendBuffer(log4net.Core.LoggingEvent[])">
+            <summary>
+            Inserts the events into the database.
+            </summary>
+            <param name="events">The events to insert into the database.</param>
+            <remarks>
+            <para>
+            Insert all the events specified in the <paramref name="events"/>
+            array into the database.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AdoNetAppender.AddParameter(log4net.Appender.AdoNetAppenderParameter)">
+            <summary>
+            Adds a parameter to the command.
+            </summary>
+            <param name="parameter">The parameter to add to the command.</param>
+            <remarks>
+            <para>
+            Adds a parameter to the ordered list of command parameters.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AdoNetAppender.SendBuffer(System.Data.IDbTransaction,log4net.Core.LoggingEvent[])">
+            <summary>
+            Writes the events to the database using the transaction specified.
+            </summary>
+            <param name="dbTran">The transaction that the events will be executed under.</param>
+            <param name="events">The array of events to insert into the database.</param>
+            <remarks>
+            <para>
+            The transaction argument can be <c>null</c> if the appender has been
+            configured not to use transactions. See <see cref="P:log4net.Appender.AdoNetAppender.UseTransactions"/>
+            property for more information.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AdoNetAppender.GetLogStatement(log4net.Core.LoggingEvent)">
+            <summary>
+            Formats the log message into database statement text.
+            </summary>
+            <param name="logEvent">The event being logged.</param>
+            <remarks>
+            This method can be overridden by subclasses to provide 
+            more control over the format of the database statement.
+            </remarks>
+            <returns>
+            Text that can be passed to a <see cref="T:System.Data.IDbCommand"/>.
+            </returns>
+        </member>
+        <member name="M:log4net.Appender.AdoNetAppender.InitializeDatabaseConnection">
+            <summary>
+            Connects to the database.
+            </summary>		
+        </member>
+        <member name="M:log4net.Appender.AdoNetAppender.ResolveConnectionType">
+            <summary>
+            Retrieves the class type of the ADO.NET provider.
+            </summary>
+            <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 
+            <see cref="P:log4net.Appender.AdoNetAppender.ConnectionType"/> property.
+            </para>
+            <para>
+            Subclasses can override this method to return a different type
+            if necessary.
+            </para>
+            </remarks>
+            <returns>The <see cref="T:System.Type"/> of the ADO.NET provider</returns>
+        </member>
+        <member name="M:log4net.Appender.AdoNetAppender.InitializeDatabaseCommand">
+            <summary>
+            Prepares the database command and initialize the parameters.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppender.m_usePreparedCommand">
+            <summary>
+            Flag to indicate if we are using a command object
+            </summary>
+            <remarks>
+            <para>
+            Set to <c>true</c> when the appender is to use a prepared
+            statement or stored procedure to insert into the database.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppender.m_parameters">
+            <summary>
+            The list of <see cref="T:log4net.Appender.AdoNetAppenderParameter"/> objects.
+            </summary>
+            <remarks>
+            <para>
+            The list of <see cref="T:log4net.Appender.AdoNetAppenderParameter"/> objects.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppender.m_securityContext">
+            <summary>
+            The security context to use for privileged calls
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppender.m_dbConnection">
+            <summary>
+            The <see cref="T:System.Data.IDbConnection"/> that will be used
+            to insert logging events into a database.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppender.m_dbCommand">
+            <summary>
+            The database command.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppender.m_connectionString">
+            <summary>
+            Database connection string.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppender.m_connectionType">
+            <summary>
+            String type name of the <see cref="T:System.Data.IDbConnection"/> type name.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppender.m_commandText">
+            <summary>
+            The text of the command.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppender.m_commandType">
+            <summary>
+            The command type.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppender.m_useTransactions">
+            <summary>
+            Indicates whether to use transactions when writing to the database.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppender.m_reconnectOnError">
+            <summary>
+            Indicates whether to use transactions when writing to the database.
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.AdoNetAppender.ConnectionString">
+            <summary>
+            Gets or sets the database connection string that is used to connect to 
+            the database.
+            </summary>
+            <value>
+            The database connection string used to connect to the database.
+            </value>
+            <remarks>
+            <para>
+            The connections string is specific to the connection type.
+            See <see cref="P:log4net.Appender.AdoNetAppender.ConnectionType"/> for more information.
+            </para>
+            </remarks>
+            <example>Connection string for MS Access via ODBC:
+            <code>"DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb"</code>
+            </example>
+            <example>Another connection string for MS Access via ODBC:
+            <code>"Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;"</code>
+            </example>
+            <example>Connection string for MS Access via OLE DB:
+            <code>"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;"</code>
+            </example>
+        </member>
+        <member name="P:log4net.Appender.AdoNetAppender.ConnectionType">
+            <summary>
+            Gets or sets the type name of the <see cref="T:System.Data.IDbConnection"/> connection
+            that should be created.
+            </summary>
+            <value>
+            The type name of the <see cref="T:System.Data.IDbConnection"/> connection.
+            </value>
+            <remarks>
+            <para>
+            The type name of the ADO.NET provider to use.
+            </para>
+            <para>
+            The default is to use the OLE DB provider.
+            </para>
+            </remarks>
+            <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. 
+            <code>System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</code>
+            </example>
+            <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> 
+            search for <b>ODBC .NET Data Provider</b>.
+            </example>
+            <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> 
+            search for <b>.NET Managed Provider for Oracle</b>.
+            </example>
+        </member>
+        <member name="P:log4net.Appender.AdoNetAppender.CommandText">
+            <summary>
+            Gets or sets the command text that is used to insert logging events
+            into the database.
+            </summary>
+            <value>
+            The command text used to insert logging events into the database.
+            </value>
+            <remarks>
+            <para>
+            Either the text of the prepared statement or the
+            name of the stored procedure to execute to write into
+            the database.
+            </para>
+            <para>
+            The <see cref="P:log4net.Appender.AdoNetAppender.CommandType"/> property determines if
+            this text is a prepared statement or a stored procedure.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.AdoNetAppender.CommandType">
+            <summary>
+            Gets or sets the command type to execute.
+            </summary>
+            <value>
+            The command type to execute.
+            </value>
+            <remarks>
+            <para>
+            This value may be either <see cref="F:System.Data.CommandType.Text"/> (<c>System.Data.CommandType.Text</c>) to specify
+            that the <see cref="P:log4net.Appender.AdoNetAppender.CommandText"/> is a prepared statement to execute, 
+            or <see cref="F:System.Data.CommandType.StoredProcedure"/> (<c>System.Data.CommandType.StoredProcedure</c>) to specify that the
+            <see cref="P:log4net.Appender.AdoNetAppender.CommandText"/> property is the name of a stored procedure
+            to execute.
+            </para>
+            <para>
+            The default value is <see cref="F:System.Data.CommandType.Text"/> (<c>System.Data.CommandType.Text</c>).
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.AdoNetAppender.UseTransactions">
+            <summary>
+            Should transactions be used to insert logging events in the database.
+            </summary>
+            <value>
+            <c>true</c> if transactions should be used to insert logging events in
+            the database, otherwise <c>false</c>. The default value is <c>true</c>.
+            </value>
+            <remarks>
+            <para>
+            Gets or sets a value that indicates whether transactions should be used
+            to insert logging events in the database.
+            </para>
+            <para>
+            When set a single transaction will be used to insert the buffered events
+            into the database. Otherwise each event will be inserted without using
+            an explicit transaction.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.AdoNetAppender.SecurityContext">
+            <summary>
+            Gets or sets the <see cref="P:log4net.Appender.AdoNetAppender.SecurityContext"/> used to call the NetSend method.
+            </summary>
+            <value>
+            The <see cref="P:log4net.Appender.AdoNetAppender.SecurityContext"/> used to call the NetSend method.
+            </value>
+            <remarks>
+            <para>
+            Unless a <see cref="P:log4net.Appender.AdoNetAppender.SecurityContext"/> specified here for this appender
+            the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> is queried for the
+            security context to use. The default behavior is to use the security context
+            of the current thread.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.AdoNetAppender.ReconnectOnError">
+            <summary>
+            Should this appender try to reconnect to the database on error.
+            </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>, 
+            i.e. not to try to reconnect.
+            </value>
+            <remarks>
+            <para>
+            The default behaviour is for the appender not to try to reconnect to the
+            database if an error occurs. Subsequent logging events are discarded.
+            </para>
+            <para>
+            To force the appender to attempt to reconnect to the database set this
+            property to <c>true</c>.
+            </para>
+            <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. 
+            Until the connection can be reestablished this potential delay may occur multiple times.
+            </note>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.AdoNetAppender.Connection">
+            <summary>
+            Gets or sets the underlying <see cref="T:System.Data.IDbConnection"/>.
+            </summary>
+            <value>
+            The underlying <see cref="T:System.Data.IDbConnection"/>.
+            </value>
+            <remarks>
+            <see cref="T:log4net.Appender.AdoNetAppender"/> creates a <see cref="T:System.Data.IDbConnection"/> to insert 
+            logging events into a database.  Classes deriving from <see cref="T:log4net.Appender.AdoNetAppender"/> 
+            can use this property to get or set this <see cref="T:System.Data.IDbConnection"/>.  Use the 
+            underlying <see cref="T:System.Data.IDbConnection"/> returned from <see cref="P:log4net.Appender.AdoNetAppender.Connection"/> if 
+            you require access beyond that which <see cref="T:log4net.Appender.AdoNetAppender"/> provides.
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.AdoNetAppenderParameter">
+            <summary>
+            Parameter type used by the <see cref="T:log4net.Appender.AdoNetAppender"/>.
+            </summary>
+            <remarks>
+            <para>
+            This class provides the basic database parameter properties
+            as defined by the <see cref="T:System.Data.IDbDataParameter"/> interface.
+            </para>
+            <para>This type can be subclassed to provide database specific
+            functionality. The two methods that are called externally are
+            <see cref="M:log4net.Appender.AdoNetAppenderParameter.Prepare(System.Data.IDbCommand)"/> and <see cref="M:log4net.Appender.AdoNetAppenderParameter.FormatValue(System.Data.IDbCommand,log4net.Core.LoggingEvent)"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AdoNetAppenderParameter.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.AdoNetAppenderParameter"/> class.
+            </summary>
+            <remarks>
+            Default constructor for the AdoNetAppenderParameter class.
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AdoNetAppenderParameter.Prepare(System.Data.IDbCommand)">
+            <summary>
+            Prepare the specified database command object.
+            </summary>
+            <param name="command">The command to prepare.</param>
+            <remarks>
+            <para>
+            Prepares the database command object by adding
+            this parameter to its collection of parameters.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AdoNetAppenderParameter.FormatValue(System.Data.IDbCommand,log4net.Core.LoggingEvent)">
+            <summary>
+            Renders the logging event and set the parameter value in the command.
+            </summary>
+            <param name="command">The command containing the parameter.</param>
+            <param name="loggingEvent">The event to be rendered.</param>
+            <remarks>
+            <para>
+            Renders the logging event using this parameters layout
+            object. Sets the value of the parameter on the command object.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppenderParameter.m_parameterName">
+            <summary>
+            The name of this parameter.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppenderParameter.m_dbType">
+            <summary>
+            The database type for this parameter.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppenderParameter.m_inferType">
+            <summary>
+            Flag to infer type rather than use the DbType
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppenderParameter.m_precision">
+            <summary>
+            The precision for this parameter.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppenderParameter.m_scale">
+            <summary>
+            The scale for this parameter.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppenderParameter.m_size">
+            <summary>
+            The size for this parameter.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AdoNetAppenderParameter.m_layout">
+            <summary>
+            The <see cref="T:log4net.Layout.IRawLayout"/> to use to render the
+            logging event into an object for this parameter.
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.AdoNetAppenderParameter.ParameterName">
+            <summary>
+            Gets or sets the name of this parameter.
+            </summary>
+            <value>
+            The name of this parameter.
+            </value>
+            <remarks>
+            <para>
+            The name of this parameter. The parameter name
+            must match up to a named parameter to the SQL stored procedure
+            or prepared statement.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.AdoNetAppenderParameter.DbType">
+            <summary>
+            Gets or sets the database type for this parameter.
+            </summary>
+            <value>
+            The database type for this parameter.
+            </value>
+            <remarks>
+            <para>
+            The database type for this parameter. This property should
+            be set to the database type from the <see cref="P:log4net.Appender.AdoNetAppenderParameter.DbType"/>
+            enumeration. See <see cref="P:System.Data.IDataParameter.DbType"/>.
+            </para>
+            <para>
+            This property is optional. If not specified the ADO.NET provider 
+            will attempt to infer the type from the value.
+            </para>
+            </remarks>
+            <seealso cref="P:System.Data.IDataParameter.DbType"/>
+        </member>
+        <member name="P:log4net.Appender.AdoNetAppenderParameter.Precision">
+            <summary>
+            Gets or sets the precision for this parameter.
+            </summary>
+            <value>
+            The precision for this parameter.
+            </value>
+            <remarks>
+            <para>
+            The maximum number of digits used to represent the Value.
+            </para>
+            <para>
+            This property is optional. If not specified the ADO.NET provider 
+            will attempt to infer the precision from the value.
+            </para>
+            </remarks>
+            <seealso cref="P:System.Data.IDbDataParameter.Precision"/>
+        </member>
+        <member name="P:log4net.Appender.AdoNetAppenderParameter.Scale">
+            <summary>
+            Gets or sets the scale for this parameter.
+            </summary>
+            <value>
+            The scale for this parameter.
+            </value>
+            <remarks>
+            <para>
+            The number of decimal places to which Value is resolved.
+            </para>
+            <para>
+            This property is optional. If not specified the ADO.NET provider 
+            will attempt to infer the scale from the value.
+            </para>
+            </remarks>
+            <seealso cref="P:System.Data.IDbDataParameter.Scale"/>
+        </member>
+        <member name="P:log4net.Appender.AdoNetAppenderParameter.Size">
+            <summary>
+            Gets or sets the size for this parameter.
+            </summary>
+            <value>
+            The size for this parameter.
+            </value>
+            <remarks>
+            <para>
+            The maximum size, in bytes, of the data within the column.
+            </para>
+            <para>
+            This property is optional. If not specified the ADO.NET provider 
+            will attempt to infer the size from the value.
+            </para>
+            </remarks>
+            <seealso cref="P:System.Data.IDbDataParameter.Size"/>
+        </member>
+        <member name="P:log4net.Appender.AdoNetAppenderParameter.Layout">
+            <summary>
+            Gets or sets the <see cref="T:log4net.Layout.IRawLayout"/> to use to 
+            render the logging event into an object for this 
+            parameter.
+            </summary>
+            <value>
+            The <see cref="T:log4net.Layout.IRawLayout"/> used to render the
+            logging event into an object for this parameter.
+            </value>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.Layout.IRawLayout"/> that renders the value for this
+            parameter.
+            </para>
+            <para>
+            The <see cref="T:log4net.Layout.RawLayoutConverter"/> can be used to adapt
+            any <see cref="T:log4net.Layout.ILayout"/> into a <see cref="T:log4net.Layout.IRawLayout"/>
+            for use in the property.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.AnsiColorTerminalAppender">
+            <summary>
+            Appends logging events to the terminal using ANSI color escape sequences.
+            </summary>
+            <remarks>
+            <para>
+            AnsiColorTerminalAppender appends log events to the standard output stream
+            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 
+            in order to interpret the color codes. If the terminal or console does not
+            understand the control codes the behavior is not defined.
+            </note>
+            <para>
+            By default, all output is written to the console's standard output stream.
+            The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> property can be set to direct the output to the
+            error stream.
+            </para>
+            <para>
+            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 
+            (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. 
+            </para>
+            <para>
+            When configuring the ANSI colored terminal appender, a mapping should be
+            specified to map a logging level to a color. For example:
+            </para>
+            <code lang="XML" escaped="true">
+            <mapping>
+            	<level value="ERROR"/>
+            	<foreColor value="White"/>
+            	<backColor value="Red"/>
+                <attributes value="Bright,Underscore"/>
+            </mapping>
+            <mapping>
+            	<level value="DEBUG"/>
+            	<backColor value="Green"/>
+            </mapping>
+            </code>
+            <para>
+            The Level is the standard log4net logging level and ForeColor and BackColor can be any
+            of the following values:
+            <list type="bullet">
+            <item><term>Blue</term><description></description></item>
+            <item><term>Green</term><description></description></item>
+            <item><term>Red</term><description></description></item>
+            <item><term>White</term><description></description></item>
+            <item><term>Yellow</term><description></description></item>
+            <item><term>Purple</term><description></description></item>
+            <item><term>Cyan</term><description></description></item>
+            </list>
+            These color values cannot be combined together to make new colors.
+            </para>
+            <para>
+            The attributes can be any combination of the following:
+            <list type="bullet">
+            <item><term>Bright</term><description>foreground is brighter</description></item>
+            <item><term>Dim</term><description>foreground is dimmer</description></item>
+            <item><term>Underscore</term><description>message is underlined</description></item>
+            <item><term>Blink</term><description>foreground is blinking (does not work on all terminals)</description></item>
+            <item><term>Reverse</term><description>foreground and background are reversed</description></item>
+            <item><term>Hidden</term><description>output is hidden</description></item>
+            <item><term>Strikethrough</term><description>message has a line through it</description></item>
+            </list>
+            While any of these attributes may be combined together not all combinations
+            work well together, for example setting both <i>Bright</i> and <i>Dim</i> attributes makes
+            no sense.
+            </para>
+            </remarks>
+            <author>Patrick Wagstrom</author>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.ConsoleOut">
+            <summary>
+            The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> to use when writing to the Console 
+            standard output stream.
+            </summary>
+            <remarks>
+            <para>
+            The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> to use when writing to the Console 
+            standard output stream.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.ConsoleError">
+            <summary>
+            The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> to use when writing to the Console 
+            standard error output stream.
+            </summary>
+            <remarks>
+            <para>
+            The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> to use when writing to the Console 
+            standard error output stream.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.PostEventCodes">
+            <summary>
+            Ansi code to reset terminal
+            </summary>
+        </member>
+        <member name="M:log4net.Appender.AnsiColorTerminalAppender.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.AnsiColorTerminalAppender"/> class.
+            </summary>
+            <remarks>
+            The instance of the <see cref="T:log4net.Appender.AnsiColorTerminalAppender"/> class is set up to write 
+            to the standard output stream.
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AnsiColorTerminalAppender.AddMapping(log4net.Appender.AnsiColorTerminalAppender.LevelColors)">
+            <summary>
+            Add a mapping of level to color
+            </summary>
+            <param name="mapping">The mapping to add</param>
+            <remarks>
+            <para>
+            Add a <see cref="T:log4net.Appender.AnsiColorTerminalAppender.LevelColors"/> mapping to this appender.
+            Each mapping defines the foreground and background colours
+            for a level.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AnsiColorTerminalAppender.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/> method.
+            </summary>
+            <param name="loggingEvent">The event to log.</param>
+            <remarks>
+            <para>
+            Writes the event to the console.
+            </para>
+            <para>
+            The format of the output will depend on the appender's layout.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AnsiColorTerminalAppender.ActivateOptions">
+            <summary>
+            Initialize the options for this appender
+            </summary>
+            <remarks>
+            <para>
+            Initialize the level to color mappings set on this appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.m_writeToErrorStream">
+            <summary>
+            Flag to write output to the error stream rather than the standard output stream
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.m_levelMapping">
+            <summary>
+            Mapping from level object to color value
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.AnsiColorTerminalAppender.Target">
+            <summary>
+            Target is the value of the console output stream.
+            </summary>
+            <value>
+            Target is the value of the console output stream.
+            This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
+            </value>
+            <remarks>
+            <para>
+            Target is the value of the console output stream.
+            This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.AnsiColorTerminalAppender.RequiresLayout">
+            <summary>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </summary>
+            <value><c>true</c></value>
+            <remarks>
+            <para>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes">
+            <summary>
+            The enum of possible display attributes
+            </summary>
+            <remarks>
+            <para>
+            The following flags can be combined together to
+            form the ANSI color attributes.
+            </para>
+            </remarks>
+            <seealso cref="T:log4net.Appender.AnsiColorTerminalAppender"/>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes.Bright">
+            <summary>
+            text is bright
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes.Dim">
+            <summary>
+            text is dim
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes.Underscore">
+            <summary>
+            text is underlined
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes.Blink">
+            <summary>
+            text is blinking
+            </summary>
+            <remarks>
+            Not all terminals support this attribute
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes.Reverse">
+            <summary>
+            text and background colors are reversed
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes.Hidden">
+            <summary>
+            text is hidden
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes.Strikethrough">
+            <summary>
+            text is displayed with a strikethrough
+            </summary>
+        </member>
+        <member name="T:log4net.Appender.AnsiColorTerminalAppender.AnsiColor">
+            <summary>
+            The enum of possible foreground or background color values for 
+            use with the color mapping method
+            </summary>
+            <remarks>
+            <para>
+            The output can be in one for the following ANSI colors.
+            </para>
+            </remarks>
+            <seealso cref="T:log4net.Appender.AnsiColorTerminalAppender"/>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Black">
+            <summary>
+            color is black
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Red">
+            <summary>
+            color is red
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Green">
+            <summary>
+            color is green
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Yellow">
+            <summary>
+            color is yellow
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Blue">
+            <summary>
+            color is blue
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Magenta">
+            <summary>
+            color is magenta
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Cyan">
+            <summary>
+            color is cyan
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.White">
+            <summary>
+            color is white
+            </summary>
+        </member>
+        <member name="T:log4net.Appender.AnsiColorTerminalAppender.LevelColors">
+            <summary>
+            A class to act as a mapping between the level that a logging call is made at and
+            the color it should be displayed as.
+            </summary>
+            <remarks>
+            <para>
+            Defines the mapping between a level and the color it should be displayed in.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.LevelMappingEntry">
+            <summary>
+            An entry in the <see cref="T:log4net.Util.LevelMapping"/>
+            </summary>
+            <remarks>
+            <para>
+            This is an abstract base class for types that are stored in the
+            <see cref="T:log4net.Util.LevelMapping"/> object.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.LevelMappingEntry.#ctor">
+            <summary>
+            Default protected constructor
+            </summary>
+            <remarks>
+            <para>
+            Default protected constructor
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.LevelMappingEntry.ActivateOptions">
+            <summary>
+            Initialize any options defined on this entry
+            </summary>
+            <remarks>
+            <para>
+            Should be overridden by any classes that need to initialise based on their options
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.LevelMappingEntry.Level">
+            <summary>
+            The level that is the key for this mapping 
+            </summary>
+            <value>
+            The <see cref="P:log4net.Util.LevelMappingEntry.Level"/> that is the key for this mapping 
+            </value>
+            <remarks>
+            <para>
+            Get or set the <see cref="P:log4net.Util.LevelMappingEntry.Level"/> that is the key for this
+            mapping subclass.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AnsiColorTerminalAppender.LevelColors.ActivateOptions">
+            <summary>
+            Initialize the options for the object
+            </summary>
+            <remarks>
+            <para>
+            Combine the <see cref="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.ForeColor"/> and <see cref="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.BackColor"/> together
+            and append the attributes.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.ForeColor">
+            <summary>
+            The mapped foreground color for the specified level
+            </summary>
+            <remarks>
+            <para>
+            Required property.
+            The mapped foreground color for the specified level
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.BackColor">
+            <summary>
+            The mapped background color for the specified level
+            </summary>
+            <remarks>
+            <para>
+            Required property.
+            The mapped background color for the specified level
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.Attributes">
+            <summary>
+            The color attributes for the specified level
+            </summary>
+            <remarks>
+            <para>
+            Required property.
+            The color attributes for the specified level
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.CombinedColor">
+            <summary>
+            The combined <see cref="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.ForeColor"/>, <see cref="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.BackColor"/> and
+            <see cref="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.Attributes"/> suitable for setting the ansi terminal color.
+            </summary>
+        </member>
+        <member name="T:log4net.Appender.AppenderCollection">
+            <summary>
+            A strongly-typed collection of <see cref="T:log4net.Appender.IAppender"/> objects.
+            </summary>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.ReadOnly(log4net.Appender.AppenderCollection)">
+            <summary>
+            Creates a read-only wrapper for a <c>AppenderCollection</c> instance.
+            </summary>
+            <param name="list">list to create a readonly wrapper arround</param>
+            <returns>
+            An <c>AppenderCollection</c> wrapper that is read-only.
+            </returns>
+        </member>
+        <member name="F:log4net.Appender.AppenderCollection.EmptyCollection">
+            <summary>
+            An empty readonly static AppenderCollection
+            </summary>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.#ctor">
+            <summary>
+            Initializes a new instance of the <c>AppenderCollection</c> class
+            that is empty and has the default initial capacity.
+            </summary>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.#ctor(System.Int32)">
+            <summary>
+            Initializes a new instance of the <c>AppenderCollection</c> class
+            that has the specified initial capacity.
+            </summary>
+            <param name="capacity">
+            The number of elements that the new <c>AppenderCollection</c> is initially capable of storing.
+            </param>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.#ctor(log4net.Appender.AppenderCollection)">
+            <summary>
+            Initializes a new instance of the <c>AppenderCollection</c> class
+            that contains elements copied from the specified <c>AppenderCollection</c>.
+            </summary>
+            <param name="c">The <c>AppenderCollection</c> whose elements are copied to the new collection.</param>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.#ctor(log4net.Appender.IAppender[])">
+            <summary>
+            Initializes a new instance of the <c>AppenderCollection</c> class
+            that contains elements copied from the specified <see cref="T:log4net.Appender.IAppender"/> array.
+            </summary>
+            <param name="a">The <see cref="T:log4net.Appender.IAppender"/> array whose elements are copied to the new list.</param>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.#ctor(System.Collections.ICollection)">
+            <summary>
+            Initializes a new instance of the <c>AppenderCollection</c> class
+            that contains elements copied from the specified <see cref="T:log4net.Appender.IAppender"/> collection.
+            </summary>
+            <param name="col">The <see cref="T:log4net.Appender.IAppender"/> collection whose elements are copied to the new list.</param>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.#ctor(log4net.Appender.AppenderCollection.Tag)">
+            <summary>
+            Allow subclasses to avoid our default constructors
+            </summary>
+            <param name="tag"></param>
+            <exclude/>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.CopyTo(log4net.Appender.IAppender[])">
+            <summary>
+            Copies the entire <c>AppenderCollection</c> to a one-dimensional
+            <see cref="T:log4net.Appender.IAppender"/> array.
+            </summary>
+            <param name="array">The one-dimensional <see cref="T:log4net.Appender.IAppender"/> array to copy to.</param>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.CopyTo(log4net.Appender.IAppender[],System.Int32)">
+            <summary>
+            Copies the entire <c>AppenderCollection</c> to a one-dimensional
+            <see cref="T:log4net.Appender.IAppender"/> array, starting at the specified index of the target array.
+            </summary>
+            <param name="array">The one-dimensional <see cref="T:log4net.Appender.IAppender"/> array to copy to.</param>
+            <param name="start">The zero-based index in <paramref name="array"/> at which copying begins.</param>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.Add(log4net.Appender.IAppender)">
+            <summary>
+            Adds a <see cref="T:log4net.Appender.IAppender"/> to the end of the <c>AppenderCollection</c>.
+            </summary>
+            <param name="item">The <see cref="T:log4net.Appender.IAppender"/> to be added to the end of the <c>AppenderCollection</c>.</param>
+            <returns>The index at which the value has been added.</returns>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.Clear">
+            <summary>
+            Removes all elements from the <c>AppenderCollection</c>.
+            </summary>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.Clone">
+            <summary>
+            Creates a shallow copy of the <see cref="T:log4net.Appender.AppenderCollection"/>.
+            </summary>
+            <returns>A new <see cref="T:log4net.Appender.AppenderCollection"/> with a shallow copy of the collection data.</returns>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.Contains(log4net.Appender.IAppender)">
+            <summary>
+            Determines whether a given <see cref="T:log4net.Appender.IAppender"/> is in the <c>AppenderCollection</c>.
+            </summary>
+            <param name="item">The <see cref="T:log4net.Appender.IAppender"/> to check for.</param>
+            <returns><c>true</c> if <paramref name="item"/> is found in the <c>AppenderCollection</c>; otherwise, <c>false</c>.</returns>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.IndexOf(log4net.Appender.IAppender)">
+            <summary>
+            Returns the zero-based index of the first occurrence of a <see cref="T:log4net.Appender.IAppender"/>
+            in the <c>AppenderCollection</c>.
+            </summary>
+            <param name="item">The <see cref="T:log4net.Appender.IAppender"/> to locate in the <c>AppenderCollection</c>.</param>
+            <returns>
+            The zero-based index of the first occurrence of <paramref name="item"/> 
+            in the entire <c>AppenderCollection</c>, if found; otherwise, -1.
+            </returns>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.Insert(System.Int32,log4net.Appender.IAppender)">
+            <summary>
+            Inserts an element into the <c>AppenderCollection</c> at the specified index.
+            </summary>
+            <param name="index">The zero-based index at which <paramref name="item"/> should be inserted.</param>
+            <param name="item">The <see cref="T:log4net.Appender.IAppender"/> to insert.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">
+            <para><paramref name="index"/> is less than zero</para>
+            <para>-or-</para>
+            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Appender.AppenderCollection.Count"/>.</para>
+            </exception>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.Remove(log4net.Appender.IAppender)">
+            <summary>
+            Removes the first occurrence of a specific <see cref="T:log4net.Appender.IAppender"/> from the <c>AppenderCollection</c>.
+            </summary>
+            <param name="item">The <see cref="T:log4net.Appender.IAppender"/> to remove from the <c>AppenderCollection</c>.</param>
+            <exception cref="T:System.ArgumentException">
+            The specified <see cref="T:log4net.Appender.IAppender"/> was not found in the <c>AppenderCollection</c>.
+            </exception>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.RemoveAt(System.Int32)">
+            <summary>
+            Removes the element at the specified index of the <c>AppenderCollection</c>.
+            </summary>
+            <param name="index">The zero-based index of the element to remove.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">
+            <para><paramref name="index"/> is less than zero</para>
+            <para>-or-</para>
+            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Appender.AppenderCollection.Count"/>.</para>
+            </exception>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.GetEnumerator">
+            <summary>
+            Returns an enumerator that can iterate through the <c>AppenderCollection</c>.
+            </summary>
+            <returns>An <see cref="T:log4net.Appender.AppenderCollection.Enumerator"/> for the entire <c>AppenderCollection</c>.</returns>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.AddRange(log4net.Appender.AppenderCollection)">
+            <summary>
+            Adds the elements of another <c>AppenderCollection</c> to the current <c>AppenderCollection</c>.
+            </summary>
+            <param name="x">The <c>AppenderCollection</c> whose elements should be added to the end of the current <c>AppenderCollection</c>.</param>
+            <returns>The new <see cref="P:log4net.Appender.AppenderCollection.Count"/> of the <c>AppenderCollection</c>.</returns>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.AddRange(log4net.Appender.IAppender[])">
+            <summary>
+            Adds the elements of a <see cref="T:log4net.Appender.IAppender"/> array to the current <c>AppenderCollection</c>.
+            </summary>
+            <param name="x">The <see cref="T:log4net.Appender.IAppender"/> array whose elements should be added to the end of the <c>AppenderCollection</c>.</param>
+            <returns>The new <see cref="P:log4net.Appender.AppenderCollection.Count"/> of the <c>AppenderCollection</c>.</returns>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.AddRange(System.Collections.ICollection)">
+            <summary>
+            Adds the elements of a <see cref="T:log4net.Appender.IAppender"/> collection to the current <c>AppenderCollection</c>.
+            </summary>
+            <param name="col">The <see cref="T:log4net.Appender.IAppender"/> collection whose elements should be added to the end of the <c>AppenderCollection</c>.</param>
+            <returns>The new <see cref="P:log4net.Appender.AppenderCollection.Count"/> of the <c>AppenderCollection</c>.</returns>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.TrimToSize">
+            <summary>
+            Sets the capacity to the actual number of elements.
+            </summary>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.ToArray">
+            <summary>
+            Return the collection elements as an array
+            </summary>
+            <returns>the array</returns>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.ValidateIndex(System.Int32)">
+            <exception cref="T:System.ArgumentOutOfRangeException">
+            <para><paramref name="index"/> is less than zero</para>
+            <para>-or-</para>
+            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Appender.AppenderCollection.Count"/>.</para>
+            </exception>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.ValidateIndex(System.Int32,System.Boolean)">
+            <exception cref="T:System.ArgumentOutOfRangeException">
+            <para><paramref name="index"/> is less than zero</para>
+            <para>-or-</para>
+            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Appender.AppenderCollection.Count"/>.</para>
+            </exception>
+        </member>
+        <member name="P:log4net.Appender.AppenderCollection.Count">
+            <summary>
+            Gets the number of elements actually contained in the <c>AppenderCollection</c>.
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.AppenderCollection.IsSynchronized">
+            <summary>
+            Gets a value indicating whether access to the collection is synchronized (thread-safe).
+            </summary>
+            <returns>true if access to the ICollection is synchronized (thread-safe); otherwise, false.</returns>
+        </member>
+        <member name="P:log4net.Appender.AppenderCollection.SyncRoot">
+            <summary>
+            Gets an object that can be used to synchronize access to the collection.
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.AppenderCollection.Item(System.Int32)">
+            <summary>
+            Gets or sets the <see cref="T:log4net.Appender.IAppender"/> at the specified index.
+            </summary>
+            <param name="index">The zero-based index of the element to get or set.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">
+            	<para><paramref name="index"/> is less than zero</para>
+            	<para>-or-</para>
+            	<para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Appender.AppenderCollection.Count"/>.</para>
+            </exception>
+        </member>
+        <member name="P:log4net.Appender.AppenderCollection.IsFixedSize">
+            <summary>
+            Gets a value indicating whether the collection has a fixed size.
+            </summary>
+            <value>true if the collection has a fixed size; otherwise, false. The default is false</value>
+        </member>
+        <member name="P:log4net.Appender.AppenderCollection.IsReadOnly">
+            <summary>
+            Gets a value indicating whether the IList is read-only.
+            </summary>
+            <value>true if the collection is read-only; otherwise, false. The default is false</value>
+        </member>
+        <member name="P:log4net.Appender.AppenderCollection.Capacity">
+            <summary>
+            Gets or sets the number of elements the <c>AppenderCollection</c> can contain.
+            </summary>
+        </member>
+        <member name="T:log4net.Appender.AppenderCollection.IAppenderCollectionEnumerator">
+            <summary>
+            Supports type-safe iteration over a <see cref="T:log4net.Appender.AppenderCollection"/>.
+            </summary>
+            <exclude/>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.IAppenderCollectionEnumerator.MoveNext">
+            <summary>
+            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>false</c> if the enumerator has passed the end of the collection.
+            </returns>
+            <exception cref="T:System.InvalidOperationException">
+            The collection was modified after the enumerator was created.
+            </exception>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.IAppenderCollectionEnumerator.Reset">
+            <summary>
+            Sets the enumerator to its initial position, before the first element in the collection.
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.AppenderCollection.IAppenderCollectionEnumerator.Current">
+            <summary>
+            Gets the current element in the collection.
+            </summary>
+        </member>
+        <member name="T:log4net.Appender.AppenderCollection.Tag">
+            <summary>
+            Type visible only to our subclasses
+            Used to access protected constructor
+            </summary>
+            <exclude/>
+        </member>
+        <member name="F:log4net.Appender.AppenderCollection.Tag.Default">
+            <summary>
+            A value
+            </summary>
+        </member>
+        <member name="T:log4net.Appender.AppenderCollection.Enumerator">
+            <summary>
+            Supports simple iteration over a <see cref="T:log4net.Appender.AppenderCollection"/>.
+            </summary>
+            <exclude/>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.Enumerator.#ctor(log4net.Appender.AppenderCollection)">
+            <summary>
+            Initializes a new instance of the <c>Enumerator</c> class.
+            </summary>
+            <param name="tc"></param>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.Enumerator.MoveNext">
+            <summary>
+            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>false</c> if the enumerator has passed the end of the collection.
+            </returns>
+            <exception cref="T:System.InvalidOperationException">
+            The collection was modified after the enumerator was created.
+            </exception>
+        </member>
+        <member name="M:log4net.Appender.AppenderCollection.Enumerator.Reset">
+            <summary>
+            Sets the enumerator to its initial position, before the first element in the collection.
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.AppenderCollection.Enumerator.Current">
+            <summary>
+            Gets the current element in the collection.
+            </summary>
+        </member>
+        <member name="T:log4net.Appender.AppenderCollection.ReadOnlyAppenderCollection">
+            <exclude/>
+        </member>
+        <member name="T:log4net.Appender.AspNetTraceAppender">
+            <summary>
+            <para>
+            Appends log events to the ASP.NET <see cref="T:System.Web.TraceContext"/> system.
+            </para>
+            </summary>
+            <remarks>
+            <para>
+            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 
+            given application.
+            </para>
+            <para>
+            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:System.Web.TraceContext.Write(System.String)"/> or 
+            <see cref="M:System.Web.TraceContext.Warn(System.String)"/> method depending on the level of the logging event.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Appender.AspNetTraceAppender.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.AspNetTraceAppender"/> class.
+            </summary>
+            <remarks>
+            <para>
+            Default constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.AspNetTraceAppender.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            Write the logging event to the ASP.NET trace
+            </summary>
+            <param name="loggingEvent">the event to log</param>
+            <remarks>
+            <para>
+            Write the logging event to the ASP.NET trace
+            <c>HttpContext.Current.Trace</c> 
+            (<see cref="T:System.Web.TraceContext"/>).
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.AspNetTraceAppender.RequiresLayout">
+            <summary>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </summary>
+            <value><c>true</c></value>
+            <remarks>
+            <para>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.BufferingForwardingAppender">
+            <summary>
+            Buffers events and then forwards them to attached appenders.
+            </summary>
+            <remarks>
+            <para>
+            The events are buffered in this appender until conditions are
+            met to allow the appender to deliver the events to the attached 
+            appenders. See <see cref="T:log4net.Appender.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 
+            within the hierarchy.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Core.IAppenderAttachable">
+            <summary>
+            Interface for attaching appenders to objects.
+            </summary>
+            <remarks>
+            <para>
+            Interface for attaching, removing and retrieving appenders.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Core.IAppenderAttachable.AddAppender(log4net.Appender.IAppender)">
+            <summary>
+            Attaches an appender.
+            </summary>
+            <param name="appender">The appender to add.</param>
+            <remarks>
+            <para>
+            Add the specified appender. The implementation may
+            choose to allow or deny duplicate appenders.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.IAppenderAttachable.GetAppender(System.String)">
+            <summary>
+            Gets an attached appender with the specified name.
+            </summary>
+            <param name="name">The name of the appender to get.</param>
+            <returns>
+            The appender with the name specified, or <c>null</c> if no appender with the
+            specified name is found.
+            </returns>
+            <remarks>
+            <para>
+            Returns an attached appender with the <paramref name="name"/> specified.
+            If no appender with the specified name is found <c>null</c> will be
+            returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.IAppenderAttachable.RemoveAllAppenders">
+            <summary>
+            Removes all attached appenders.
+            </summary>
+            <remarks>
+            <para>
+            Removes and closes all attached appenders
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.IAppenderAttachable.RemoveAppender(log4net.Appender.IAppender)">
+            <summary>
+            Removes the specified appender from the list of attached appenders.
+            </summary>
+            <param name="appender">The appender to remove.</param>
+            <returns>The appender removed from the list</returns>
+            <remarks>
+            <para>
+            The appender removed is not closed.
+            If you are discarding the appender you must call
+            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.IAppenderAttachable.RemoveAppender(System.String)">
+            <summary>
+            Removes the appender with the specified name from the list of appenders.
+            </summary>
+            <param name="name">The name of the appender to remove.</param>
+            <returns>The appender removed from the list</returns>
+            <remarks>
+            <para>
+            The appender removed is not closed.
+            If you are discarding the appender you must call
+            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.IAppenderAttachable.Appenders">
+            <summary>
+            Gets all attached appenders.
+            </summary>
+            <value>
+            A collection of attached appenders.
+            </value>
+            <remarks>
+            <para>
+            Gets a collection of attached appenders.
+            If there are no attached appenders the
+            implementation should return an empty 
+            collection rather than <c>null</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.BufferingForwardingAppender.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.BufferingForwardingAppender"/> class.
+            </summary>
+            <remarks>
+            <para>
+            Default constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.BufferingForwardingAppender.OnClose">
+            <summary>
+            Closes the appender and releases resources.
+            </summary>
+            <remarks>
+            <para>
+            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>
+        </member>
+        <member name="M:log4net.Appender.BufferingForwardingAppender.SendBuffer(log4net.Core.LoggingEvent[])">
+            <summary>
+            Send the events.
+            </summary>
+            <param name="events">The events that need to be send.</param>
+            <remarks>
+            <para>
+            Forwards the events to the attached appenders.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.BufferingForwardingAppender.AddAppender(log4net.Appender.IAppender)">
+            <summary>
+            Adds an <see cref="T:log4net.Appender.IAppender"/> to the list of appenders of this
+            instance.
+            </summary>
+            <param name="newAppender">The <see cref="T:log4net.Appender.IAppender"/> to add to this appender.</param>
+            <remarks>
+            <para>
+            If the specified <see cref="T:log4net.Appender.IAppender"/> is already in the list of
+            appenders, then it won't be added again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.BufferingForwardingAppender.GetAppender(System.String)">
+            <summary>
+            Looks for the appender with the specified name.
+            </summary>
+            <param name="name">The name of the appender to lookup.</param>
+            <returns>
+            The appender with the specified name, or <c>null</c>.
+            </returns>
+            <remarks>
+            <para>
+            Get the named appender attached to this buffering appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.BufferingForwardingAppender.RemoveAllAppenders">
+            <summary>
+            Removes all previously added appenders from this appender.
+            </summary>
+            <remarks>
+            <para>
+            This is useful when re-reading configuration information.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.BufferingForwardingAppender.RemoveAppender(log4net.Appender.IAppender)">
+            <summary>
+            Removes the specified appender from the list of appenders.
+            </summary>
+            <param name="appender">The appender to remove.</param>
+            <returns>The appender removed from the list</returns>
+            <remarks>
+            The appender removed is not closed.
+            If you are discarding the appender you must call
+            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.BufferingForwardingAppender.RemoveAppender(System.String)">
+            <summary>
+            Removes the appender with the specified name from the list of appenders.
+            </summary>
+            <param name="name">The name of the appender to remove.</param>
+            <returns>The appender removed from the list</returns>
+            <remarks>
+            The appender removed is not closed.
+            If you are discarding the appender you must call
+            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.BufferingForwardingAppender.m_appenderAttachedImpl">
+            <summary>
+            Implementation of the <see cref="T:log4net.Core.IAppenderAttachable"/> interface
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.BufferingForwardingAppender.Appenders">
+            <summary>
+            Gets the appenders contained in this appender as an 
+            <see cref="T:System.Collections.ICollection"/>.
+            </summary>
+            <remarks>
+            If no appenders can be found, then an <see cref="T:log4net.Util.EmptyCollection"/> 
+            is returned.
+            </remarks>
+            <returns>
+            A collection of the appenders in this appender.
+            </returns>
+        </member>
+        <member name="T:log4net.Appender.ConsoleAppender">
+            <summary>
+            Appends logging events to the console.
+            </summary>
+            <remarks>
+            <para>
+            ConsoleAppender appends log events to the standard output stream
+            or the error output stream using a layout specified by the 
+            user.
+            </para>
+            <para>
+            By default, all output is written to the console's standard output stream.
+            The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> property can be set to direct the output to the
+            error stream.
+            </para>
+            <para>
+            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 
+            (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. 
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="F:log4net.Appender.ConsoleAppender.ConsoleOut">
+            <summary>
+            The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use when writing to the Console 
+            standard output stream.
+            </summary>
+            <remarks>
+            <para>
+            The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use when writing to the Console 
+            standard output stream.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.ConsoleAppender.ConsoleError">
+            <summary>
+            The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use when writing to the Console 
+            standard error output stream.
+            </summary>
+            <remarks>
+            <para>
+            The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use when writing to the Console 
+            standard error output stream.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.ConsoleAppender.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.ConsoleAppender"/> class.
+            </summary>
+            <remarks>
+            The instance of the <see cref="T:log4net.Appender.ConsoleAppender"/> class is set up to write 
+            to the standard output stream.
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.ConsoleAppender.#ctor(log4net.Layout.ILayout)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.ConsoleAppender"/> class
+            with the specified layout.
+            </summary>
+            <param name="layout">the layout to use for this appender</param>
+            <remarks>
+            The instance of the <see cref="T:log4net.Appender.ConsoleAppender"/> class is set up to write 
+            to the standard output stream.
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.ConsoleAppender.#ctor(log4net.Layout.ILayout,System.Boolean)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.ConsoleAppender"/> class
+            with the specified layout.
+            </summary>
+            <param name="layout">the layout to use for this appender</param>
+            <param name="writeToErrorStream">flag set to <c>true</c> to write to the console error stream</param>
+            <remarks>
+            When <paramref name="writeToErrorStream"/> is set to <c>true</c>, output is written to
+            the standard error output stream.  Otherwise, output is written to the standard
+            output stream.
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.ConsoleAppender.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/> method.
+            </summary>
+            <param name="loggingEvent">The event to log.</param>
+            <remarks>
+            <para>
+            Writes the event to the console.
+            </para>
+            <para>
+            The format of the output will depend on the appender's layout.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.ConsoleAppender.Target">
+            <summary>
+            Target is the value of the console output stream.
+            This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
+            </summary>
+            <value>
+            Target is the value of the console output stream.
+            This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
+            </value>
+            <remarks>
+            <para>
+            Target is the value of the console output stream.
+            This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.ConsoleAppender.RequiresLayout">
+            <summary>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </summary>
+            <value><c>true</c></value>
+            <remarks>
+            <para>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.DebugAppender">
+            <summary>
+            Appends log events to the <see cref="T:System.Diagnostics.Debug"/> system.
+            </summary>
+            <remarks>
+            <para>
+            The application configuration file can be used to control what listeners 
+            are actually used. See the MSDN documentation for the 
+            <see cref="T:System.Diagnostics.Debug"/> class for details on configuring the
+            debug system.
+            </para>
+            <para>
+            Events are written using the <see cref="M:System.Diagnostics.Debug.Write(System.String,System.String)"/>
+            method. The event's logger name is passed as the value for the category name to the Write method.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Appender.DebugAppender.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.DebugAppender"/>.
+            </summary>
+            <remarks>
+            <para>
+            Default constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.DebugAppender.#ctor(log4net.Layout.ILayout)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.DebugAppender"/> 
+            with a specified layout.
+            </summary>
+            <param name="layout">The layout to use with this appender.</param>
+            <remarks>
+            <para>
+            Obsolete constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.DebugAppender.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            Writes the logging event to the <see cref="T:System.Diagnostics.Debug"/> system.
+            </summary>
+            <param name="loggingEvent">The event to log.</param>
+            <remarks>
+            <para>
+            Writes the logging event to the <see cref="T:System.Diagnostics.Debug"/> system.
+            If <see cref="P:log4net.Appender.DebugAppender.ImmediateFlush"/> is <c>true</c> then the <see cref="M:System.Diagnostics.Debug.Flush"/>
+            is called.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.DebugAppender.m_immediateFlush">
+            <summary>
+            Immediate flush means that the underlying writer 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 
+            actually written. If <see cref="P:log4net.Appender.DebugAppender.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
+            when the application crashes.
+            </para>
+            <para>
+            The default value is <c>true</c>.</para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.DebugAppender.ImmediateFlush">
+            <summary>
+            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>
+            <para>
+            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
+            be recorded on disk when the application exits. This is a high
+            price to pay even for a 20% performance gain.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.DebugAppender.RequiresLayout">
+            <summary>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </summary>
+            <value><c>true</c></value>
+            <remarks>
+            <para>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.EventLogAppender">
+            <summary>
+            Writes events to the system event log.
+            </summary>
+            <remarks>
+            <para>
+            The <c>EventID</c> of the event log entry can be
+            set using the <c>EventLogEventID</c> property (<see cref="P:log4net.Core.LoggingEvent.Properties"/>)
+            on the <see cref="T:log4net.Core.LoggingEvent"/>.
+            </para>
+            <para>
+            There is a limit of 32K characters for an event log message
+            </para>
+            <para>
+            When configuring the EventLogAppender a mapping can be
+            specified to map a logging level to an event log entry type. For example:
+            </para>
+            <code lang="XML">
+            &lt;mapping&gt;
+            	&lt;level value="ERROR" /&gt;
+            	&lt;eventLogEntryType value="Error" /&gt;
+            &lt;/mapping&gt;
+            &lt;mapping&gt;
+            	&lt;level value="DEBUG" /&gt;
+            	&lt;eventLogEntryType value="Information" /&gt;
+            &lt;/mapping&gt;
+            </code>
+            <para>
+            The Level is the standard log4net logging level and eventLogEntryType can be any value
+            from the <see cref="T:System.Diagnostics.EventLogEntryType"/> enum, i.e.:
+            <list type="bullet">
+            <item><term>Error</term><description>an error event</description></item>
+            <item><term>Warning</term><description>a warning event</description></item>
+            <item><term>Information</term><description>an informational event</description></item>
+            </list>
+            </para>
+            </remarks>
+            <author>Aspi Havewala</author>
+            <author>Douglas de la Torre</author>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+            <author>Thomas Voss</author>
+        </member>
+        <member name="M:log4net.Appender.EventLogAppender.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.EventLogAppender"/> class.
+            </summary>
+            <remarks>
+            <para>
+            Default constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.EventLogAppender.#ctor(log4net.Layout.ILayout)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.EventLogAppender"/> class
+            with the specified <see cref="T:log4net.Layout.ILayout"/>.
+            </summary>
+            <param name="layout">The <see cref="T:log4net.Layout.ILayout"/> to use with this appender.</param>
+            <remarks>
+            <para>
+            Obsolete constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.EventLogAppender.AddMapping(log4net.Appender.EventLogAppender.Level2EventLogEntryType)">
+            <summary>
+            Add a mapping of level to <see cref="T:System.Diagnostics.EventLogEntryType"/> - done by the config file
+            </summary>
+            <param name="mapping">The mapping to add</param>
+            <remarks>
+            <para>
+            Add a <see cref="T:log4net.Appender.EventLogAppender.Level2EventLogEntryType"/> mapping to this appender.
+            Each mapping defines the event log entry type for a level.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.EventLogAppender.ActivateOptions">
+            <summary>
+            Initialize the appender based on the options set
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Appender.EventLogAppender.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Appender.EventLogAppender.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Appender.EventLogAppender.ActivateOptions"/> must be called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.EventLogAppender.CreateEventSource(System.String,System.String,System.String)">
+            <summary>
+            Create an event log source
+            </summary>
+            <remarks>
+            Uses different API calls under NET_2_0
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.EventLogAppender.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/>
+            method. 
+            </summary>
+            <param name="loggingEvent">the event to log</param>
+            <remarks>
+            <para>Writes the event to the system event log using the 
+            <see cref="P:log4net.Appender.EventLogAppender.ApplicationName"/>.</para>
+            
+            <para>If the event has an <c>EventID</c> property (see <see cref="P:log4net.Core.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>
+        </member>
+        <member name="M:log4net.Appender.EventLogAppender.GetEntryType(log4net.Core.Level)">
+            <summary>
+            Get the equivalent <see cref="T:System.Diagnostics.EventLogEntryType"/> for a <see cref="T:log4net.Core.Level"/> <paramref name="p"/>
+            </summary>
+            <param name="level">the Level to convert to an EventLogEntryType</param>
+            <returns>The equivalent <see cref="T:System.Diagnostics.EventLogEntryType"/> for a <see cref="T:log4net.Core.Level"/> <paramref name="p"/></returns>
+            <remarks>
+            Because there are fewer applicable <see cref="T:System.Diagnostics.EventLogEntryType"/>
+            values to use in logging levels than there are in the 
+            <see cref="T:log4net.Core.Level"/> this is a one way mapping. There is
+            a loss of information during the conversion.
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.EventLogAppender.m_logName">
+            <summary>
+            The log name is the section in the event logs where the messages
+            are stored.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.EventLogAppender.m_applicationName">
+            <summary>
+            Name of the application to use when logging.  This appears in the
+            application column of the event log named by <see cref="F:log4net.Appender.EventLogAppender.m_logName"/>.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.EventLogAppender.m_machineName">
+            <summary>
+            The name of the machine which holds the event log. This is
+            currently only allowed to be '.' i.e. the current machine.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.EventLogAppender.m_levelMapping">
+            <summary>
+            Mapping from level object to EventLogEntryType
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.EventLogAppender.m_securityContext">
+            <summary>
+            The security context to use for privileged calls
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.EventLogAppender.LogName">
+            <summary>
+            The name of the log where messages will be stored.
+            </summary>
+            <value>
+            The string name of the log where messages will be stored.
+            </value>
+            <remarks>
+            <para>This is the name of the log as it appears in the Event Viewer
+            tree. The default value is to log into the <c>Application</c>
+            log, this is where most applications write their events. However
+            if you need a separate log for your application (or applications)
+            then you should set the <see cref="P:log4net.Appender.EventLogAppender.LogName"/> appropriately.</para>
+            <para>This should not be used to distinguish your event log messages
+            from those of other applications, the <see cref="P:log4net.Appender.EventLogAppender.ApplicationName"/>
+            property should be used to distinguish events. This property should be 
+            used to group together events into a single log.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.EventLogAppender.ApplicationName">
+            <summary>
+            Property used to set the Application name.  This appears in the
+            event logs when logging.
+            </summary>
+            <value>
+            The string used to distinguish events from different sources.
+            </value>
+            <remarks>
+            Sets the event log source property.
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.EventLogAppender.MachineName">
+            <summary>
+            This property is used to return the name of the computer to use
+            when accessing the event logs.  Currently, this is the current
+            computer, denoted by a dot "."
+            </summary>
+            <value>
+            The string name of the machine holding the event log that 
+            will be logged into.
+            </value>
+            <remarks>
+            This property cannot be changed. It is currently set to '.'
+            i.e. the local machine. This may be changed in future.
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.EventLogAppender.SecurityContext">
+            <summary>
+            Gets or sets the <see cref="P:log4net.Appender.EventLogAppender.SecurityContext"/> used to write to the EventLog.
+            </summary>
+            <value>
+            The <see cref="P:log4net.Appender.EventLogAppender.SecurityContext"/> used to write to the EventLog.
+            </value>
+            <remarks>
+            <para>
+            The system security context used to write to the EventLog.
+            </para>
+            <para>
+            Unless a <see cref="P:log4net.Appender.EventLogAppender.SecurityContext"/> specified here for this appender
+            the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> is queried for the
+            security context to use. The default behavior is to use the security context
+            of the current thread.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.EventLogAppender.RequiresLayout">
+            <summary>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </summary>
+            <value><c>true</c></value>
+            <remarks>
+            <para>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.EventLogAppender.Level2EventLogEntryType">
+            <summary>
+            A class to act as a mapping between the level that a logging call is made at and
+            the color it should be displayed as.
+            </summary>
+            <remarks>
+            <para>
+            Defines the mapping between a level and its event log entry type.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.EventLogAppender.Level2EventLogEntryType.EventLogEntryType">
+            <summary>
+            The <see cref="P:log4net.Appender.EventLogAppender.Level2EventLogEntryType.EventLogEntryType"/> for this entry
+            </summary>
+            <remarks>
+            <para>
+            Required property.
+            The <see cref="P:log4net.Appender.EventLogAppender.Level2EventLogEntryType.EventLogEntryType"/> for this entry
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.FileAppender">
+            <summary>
+            Appends logging events to a file.
+            </summary>
+            <remarks>
+            <para>
+            Logging events are sent to the file specified by
+            the <see cref="P:log4net.Appender.FileAppender.File"/> property.
+            </para>
+            <para>
+            The file can be opened in either append or overwrite mode 
+            by specifying the <see cref="P:log4net.Appender.FileAppender.AppendToFile"/> property.
+            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="P:log4net.Appender.FileAppender.Encoding"/> property.
+            </para>
+            <para>
+            The layout's <see cref="P:log4net.Layout.ILayout.Header"/> and <see cref="P:log4net.Layout.ILayout.Footer"/>
+            values will be written each time the file is opened and closed
+            respectively. If the <see cref="P:log4net.Appender.FileAppender.AppendToFile"/> property is <see langword="true"/>
+            then the file may contain multiple copies of the header and footer.
+            </para>
+            <para>
+            This appender will first try to open the file for writing when <see cref="M:log4net.Appender.FileAppender.ActivateOptions"/>
+            is called. This will typically be during configuration.
+            If the file cannot be opened for writing the appender will attempt
+            to open the file again each time a message is logged to the appender.
+            If the file cannot be opened for writing when a message is logged then
+            the message will be discarded by this appender.
+            </para>
+            <para>
+            The <see cref="T:log4net.Appender.FileAppender"/> supports pluggable file locking models via
+            the <see cref="P:log4net.Appender.FileAppender.LockingModel"/> property.
+            The default behavior, implemented by <see cref="T:log4net.Appender.FileAppender.ExclusiveLock"/> 
+            is to obtain an exclusive write lock on the file until this appender is closed.
+            The alternative model, <see cref="T:log4net.Appender.FileAppender.MinimalLock"/>, only holds a
+            write lock while the appender is writing a logging event.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+            <author>Rodrigo B. de Oliveira</author>
+            <author>Douglas de la Torre</author>
+            <author>Niall Daley</author>
+        </member>
+        <member name="T:log4net.Appender.TextWriterAppender">
+            <summary>
+            Sends logging events to a <see cref="T:System.IO.TextWriter"/>.
+            </summary>
+            <remarks>
+            <para>
+            An Appender that writes to a <see cref="T:System.IO.TextWriter"/>.
+            </para>
+            <para>
+            This appender may be used stand alone if initialized with an appropriate
+            writer, however it is typically used as a base class for an appender that
+            can open a <see cref="T:System.IO.TextWriter"/> to write to.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+            <author>Douglas de la Torre</author>
+        </member>
+        <member name="M:log4net.Appender.TextWriterAppender.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.TextWriterAppender"/> class.
+            </summary>
+            <remarks>
+            <para>
+            Default constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TextWriterAppender.#ctor(log4net.Layout.ILayout,System.IO.Stream)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.TextWriterAppender"/> class and
+            sets the output destination to a new <see cref="T:System.IO.StreamWriter"/> initialized 
+            with the specified <see cref="T:System.IO.Stream"/>.
+            </summary>
+            <param name="layout">The layout to use with this appender.</param>
+            <param name="os">The <see cref="T:System.IO.Stream"/> to output to.</param>
+            <remarks>
+            <para>
+            Obsolete constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TextWriterAppender.#ctor(log4net.Layout.ILayout,System.IO.TextWriter)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.TextWriterAppender"/> class and sets
+            the output destination to the specified <see cref="T:System.IO.StreamWriter"/>.
+            </summary>
+            <param name="layout">The layout to use with this appender</param>
+            <param name="writer">The <see cref="T:System.IO.TextWriter"/> to output to</param>
+            <remarks>
+            The <see cref="T:System.IO.TextWriter"/> must have been previously opened.
+            </remarks>
+            <remarks>
+            <para>
+            Obsolete constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TextWriterAppender.PreAppendCheck">
+            <summary>
+            This method determines if there is a sense in attempting to append.
+            </summary>
+            <remarks>
+            <para>
+            This method checked if an output target has been set and if a
+            layout has been set. 
+            </para>
+            </remarks>
+            <returns><c>false</c> if any of the preconditions fail.</returns>
+        </member>
+        <member name="M:log4net.Appender.TextWriterAppender.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/>
+            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.  
+            </para>
+            <para>
+            The format of the output will depend on the appender's layout.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TextWriterAppender.Append(log4net.Core.LoggingEvent[])">
+            <summary>
+            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent[])"/>
+            method. 
+            </summary>
+            <param name="loggingEvents">The array of events to log.</param>
+            <remarks>
+            <para>
+            This method writes all the bulk logged events to the output writer
+            before flushing the stream.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TextWriterAppender.OnClose">
+            <summary>
+            Close this appender instance. The underlying stream or writer is also closed.
+            </summary>
+            <remarks>
+            Closed appenders cannot be reused.
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TextWriterAppender.WriteFooterAndCloseWriter">
+            <summary>
+            Writes the footer and closes the underlying <see cref="T:System.IO.TextWriter"/>.
+            </summary>
+            <remarks>
+            <para>
+            Writes the footer and closes the underlying <see cref="T:System.IO.TextWriter"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TextWriterAppender.CloseWriter">
+            <summary>
+            Closes the underlying <see cref="T:System.IO.TextWriter"/>.
+            </summary>
+            <remarks>
+            <para>
+            Closes the underlying <see cref="T:System.IO.TextWriter"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TextWriterAppender.Reset">
+            <summary>
+            Clears internal references to the underlying <see cref="T:System.IO.TextWriter"/> 
+            and other variables.
+            </summary>
+            <remarks>
+            <para>
+            Subclasses can override this method for an alternate closing behavior.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TextWriterAppender.WriteFooter">
+            <summary>
+            Writes a footer as produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Footer"/> property.
+            </summary>
+            <remarks>
+            <para>
+            Writes a footer as produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Footer"/> property.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TextWriterAppender.WriteHeader">
+            <summary>
+            Writes a header produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Header"/> property.
+            </summary>
+            <remarks>
+            <para>
+            Writes a header produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Header"/> property.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TextWriterAppender.PrepareWriter">
+            <summary>
+            Called to allow a subclass to lazily initialize the writer
+            </summary>
+            <remarks>
+            <para>
+            This method is called when an event is logged and the <see cref="P:log4net.Appender.TextWriterAppender.Writer"/> or
+            <see cref="P:log4net.Appender.TextWriterAppender.QuietWriter"/> have not been set. This allows a subclass to
+            attempt to initialize the writer multiple times.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.TextWriterAppender.m_qtw">
+            <summary>
+            This is the <see cref="T:log4net.Util.QuietTextWriter"/> where logging events
+            will be written to. 
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.TextWriterAppender.m_immediateFlush">
+            <summary>
+            Immediate flush means that the underlying <see cref="T:System.IO.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 
+            actually written. If <see cref="P:log4net.Appender.TextWriterAppender.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 
+            crashes.
+            </para>
+            <para>
+            The default value is <c>true</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.TextWriterAppender.ImmediateFlush">
+            <summary>
+            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 
+            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 
+            time.
+            </para>
+            </value>
+            <remarks>
+            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
+            be recorded on disk when the application exits. This is a high
+            price to pay even for a 20% performance gain.
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.TextWriterAppender.Writer">
+            <summary>
+            Sets the <see cref="T:System.IO.TextWriter"/> where the log output will go.
+            </summary>
+            <remarks>
+            <para>
+            The specified <see cref="T:System.IO.TextWriter"/> must be open and writable.
+            </para>
+            <para>
+            The <see cref="T:System.IO.TextWriter"/> will be closed when the appender 
+            instance is closed.
+            </para>
+            <para>
+            <b>Note:</b> Logging to an unopened <see cref="T:System.IO.TextWriter"/> will fail.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.TextWriterAppender.ErrorHandler">
+            <summary>
+            Gets or set the <see cref="T:log4net.Core.IErrorHandler"/> and the underlying 
+            <see cref="T:log4net.Util.QuietTextWriter"/>, if any, for this appender. 
+            </summary>
+            <value>
+            The <see cref="T:log4net.Core.IErrorHandler"/> for this appender.
+            </value>
+        </member>
+        <member name="P:log4net.Appender.TextWriterAppender.RequiresLayout">
+            <summary>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </summary>
+            <value><c>true</c></value>
+            <remarks>
+            <para>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.TextWriterAppender.QuietWriter">
+            <summary>
+            Gets or sets the <see cref="T:log4net.Util.QuietTextWriter"/> where logging events
+            will be written to. 
+            </summary>
+            <value>
+            The <see cref="T:log4net.Util.QuietTextWriter"/> where logging events are written.
+            </value>
+            <remarks>
+            <para>
+            This is the <see cref="T:log4net.Util.QuietTextWriter"/> where logging events
+            will be written to. 
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+            <remarks>
+            <para>
+            Default constructor
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.#ctor(log4net.Layout.ILayout,System.String,System.Boolean)">
+            <summary>
+            Construct a new appender using the layout, file and append mode.
+            </summary>
+            <param name="layout">the layout to use with this appender</param>
+            <param name="filename">the full path to the file to write to</param>
+            <param name="append">flag to indicate if the file should be appended to</param>
+            <remarks>
+            <para>
+            Obsolete constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.#ctor(log4net.Layout.ILayout,System.String)">
+            <summary>
+            Construct a new appender using the layout and file specified.
+            The file will be appended to.
+            </summary>
+            <param name="layout">the layout to use with this appender</param>
+            <param name="filename">the full path to the file to write to</param>
+            <remarks>
+            <para>
+            Obsolete constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.ActivateOptions">
+            <summary>
+            Activate the options on the file appender. 
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Appender.FileAppender.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Appender.FileAppender.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Appender.FileAppender.ActivateOptions"/> must be called again.
+            </para>
+            <para>
+            This will cause the file to be opened.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.Reset">
+            <summary>
+            Closes any previously opened file and calls the parent's <see cref="M:log4net.Appender.TextWriterAppender.Reset"/>.
+            </summary>
+            <remarks>
+            <para>
+            Resets the filename and the file stream.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.PrepareWriter">
+            <summary>
+            Called to initialize the file writer
+            </summary>
+            <remarks>
+            <para>
+            Will be called for each logged message until the file is
+            successfully opened.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/>
+            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.  
+            </para>
+            <para>
+            The format of the output will depend on the appender's layout.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.Append(log4net.Core.LoggingEvent[])">
+            <summary>
+            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent[])"/>
+            method. 
+            </summary>
+            <param name="loggingEvents">The array of events to log.</param>
+            <remarks>
+            <para>
+            Acquires the output file locks once before writing all the events to
+            the stream.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.WriteFooter">
+            <summary>
+            Writes a footer as produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Footer"/> property.
+            </summary>
+            <remarks>
+            <para>
+            Writes a footer as produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Footer"/> property.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.WriteHeader">
+            <summary>
+            Writes a header produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Header"/> property.
+            </summary>
+            <remarks>
+            <para>
+            Writes a header produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Header"/> property.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.CloseWriter">
+            <summary>
+            Closes the underlying <see cref="T:System.IO.TextWriter"/>.
+            </summary>
+            <remarks>
+            <para>
+            Closes the underlying <see cref="T:System.IO.TextWriter"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.CloseFile">
+            <summary>
+            Closes the previously opened file.
+            </summary>
+            <remarks>
+            <para>
+            Writes the <see cref="P:log4net.Layout.ILayout.Footer"/> to the file and then
+            closes the file.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.SafeOpenFile(System.String,System.Boolean)">
+            <summary>
+            Sets and <i>opens</i> the file where the log output will go. The specified file must be writable.
+            </summary>
+            <param name="fileName">The path to the log file. Must be a fully qualified path.</param>
+            <param name="append">If true will append to fileName. Otherwise will truncate fileName</param>
+            <remarks>
+            <para>
+            Calls <see cref="M:log4net.Appender.FileAppender.OpenFile(System.String,System.Boolean)"/> but guarantees not to throw an exception.
+            Errors are passed to the <see cref="P:log4net.Appender.TextWriterAppender.ErrorHandler"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.OpenFile(System.String,System.Boolean)">
+            <summary>
+            Sets and <i>opens</i> the file where the log output will go. The specified file must be writable.
+            </summary>
+            <param name="fileName">The path to the log file. Must be a fully qualified path.</param>
+            <param name="append">If true will append to fileName. Otherwise will truncate fileName</param>
+            <remarks>
+            <para>
+            If there was already an opened file, then the previous file
+            is closed first.
+            </para>
+            <para>
+            This method will ensure that the directory structure
+            for the <paramref name="fileName"/> specified exists.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.SetQWForFiles(System.IO.Stream)">
+            <summary>
+            Sets the quiet writer used for file output
+            </summary>
+            <param name="fileStream">the file stream that has been opened for writing</param>
+            <remarks>
+            <para>
+            This implementation of <see cref="M:log4net.Appender.FileAppender.SetQWForFiles(System.IO.Stream)"/> creates a <see cref="T:System.IO.StreamWriter"/>
+            over the <paramref name="fileStream"/> and passes it to the 
+            <see cref="M:log4net.Appender.FileAppender.SetQWForFiles(System.IO.TextWriter)"/> method.
+            </para>
+            <para>
+            This method can be overridden by sub classes that want to wrap the
+            <see cref="T:System.IO.Stream"/> in some way, for example to encrypt the output
+            data using a <c>System.Security.Cryptography.CryptoStream</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.SetQWForFiles(System.IO.TextWriter)">
+            <summary>
+            Sets the quiet writer being used.
+            </summary>
+            <param name="writer">the writer over the file stream that has been opened for writing</param>
+            <remarks>
+            <para>
+            This method can be overridden by sub classes that want to
+            wrap the <see cref="T:System.IO.TextWriter"/> in some way.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.ConvertToFullPath(System.String)">
+            <summary>
+            Convert a path into a fully qualified path.
+            </summary>
+            <param name="path">The path to convert.</param>
+            <returns>The fully qualified path.</returns>
+            <remarks>
+            <para>
+            Converts the path specified to a fully
+            qualified path. If the path is relative it is
+            taken as relative from the application base 
+            directory.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.FileAppender.m_appendToFile">
+            <summary>
+            Flag to indicate if we should append to the file
+            or overwrite the file. The default is to append.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.FileAppender.m_fileName">
+            <summary>
+            The name of the log file.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.FileAppender.m_encoding">
+            <summary>
+            The encoding to use for the file stream.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.FileAppender.m_securityContext">
+            <summary>
+            The security context to use for privileged calls
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.FileAppender.m_stream">
+            <summary>
+            The stream to log to. Has added locking semantics
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.FileAppender.m_lockingModel">
+            <summary>
+            The locking model to use
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.FileAppender.File">
+            <summary>
+            Gets or sets the path to the file that logging will be written to.
+            </summary>
+            <value>
+            The path to the file that logging will be written to.
+            </value>
+            <remarks>
+            <para>
+            If the path is relative it is taken as relative from 
+            the application base directory.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.FileAppender.AppendToFile">
+            <summary>
+            Gets or sets a flag that indicates whether the file should be
+            appended to or overwritten.
+            </summary>
+            <value>
+            Indicates whether the file should be appended to or overwritten.
+            </value>
+            <remarks>
+            <para>
+            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.
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.FileAppender.Encoding">
+            <summary>
+            Gets or sets <see cref="P:log4net.Appender.FileAppender.Encoding"/> used to write to the file.
+            </summary>
+            <value>
+            The <see cref="P:log4net.Appender.FileAppender.Encoding"/> used to write to the file.
+            </value>
+            <remarks>
+            <para>
+            The default encoding set is <see cref="P:System.Text.Encoding.Default"/>
+            which is the encoding for the system's current ANSI code page.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.FileAppender.SecurityContext">
+            <summary>
+            Gets or sets the <see cref="P:log4net.Appender.FileAppender.SecurityContext"/> used to write to the file.
+            </summary>
+            <value>
+            The <see cref="P:log4net.Appender.FileAppender.SecurityContext"/> used to write to the file.
+            </value>
+            <remarks>
+            <para>
+            Unless a <see cref="P:log4net.Appender.FileAppender.SecurityContext"/> specified here for this appender
+            the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> is queried for the
+            security context to use. The default behavior is to use the security context
+            of the current thread.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.FileAppender.LockingModel">
+            <summary>
+            Gets or sets the <see cref="P:log4net.Appender.FileAppender.LockingModel"/> used to handle locking of the file.
+            </summary>
+            <value>
+            The <see cref="P:log4net.Appender.FileAppender.LockingModel"/> used to lock the file.
+            </value>
+            <remarks>
+            <para>
+            Gets or sets the <see cref="P:log4net.Appender.FileAppender.LockingModel"/> used to handle locking of the file.
+            </para>
+            <para>
+            There are two built in locking models, <see cref="T:log4net.Appender.FileAppender.ExclusiveLock"/> and <see cref="T:log4net.Appender.FileAppender.MinimalLock"/>.
+            The former locks the file from the start of logging to the end and the 
+            later lock only for the minimal amount of time when logging each message.
+            </para>
+            <para>
+            The default locking model is the <see cref="T:log4net.Appender.FileAppender.ExclusiveLock"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.FileAppender.LockingStream">
+            <summary>
+            Write only <see cref="T:System.IO.Stream"/> that uses the <see cref="T:log4net.Appender.FileAppender.LockingModelBase"/> 
+            to manage access to an underlying resource.
+            </summary>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.LockingStream.BeginWrite(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)">
+            <summary>
+            True asynchronous writes are not supported, the implementation forces a synchronous write.
+            </summary>
+        </member>
+        <member name="T:log4net.Core.LogException">
+            <summary>
+            Exception base type for log4net.
+            </summary>
+            <remarks>
+            <para>
+            This type extends <see cref="T:System.ApplicationException"/>. It
+            does not add any new functionality but does differentiate the
+            type of exception being thrown.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Core.LogException.#ctor">
+            <summary>
+            Constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Core.LogException"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogException.#ctor(System.String)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="message">A message to include with the exception.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Core.LogException"/> class with
+            the specified message.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogException.#ctor(System.String,System.Exception)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="message">A message to include with the exception.</param>
+            <param name="innerException">A nested exception to include.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Core.LogException"/> class
+            with the specified message and inner exception.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Serialization constructor
+            </summary>
+            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Core.LogException"/> class 
+            with serialized data.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.FileAppender.LockingModelBase">
+            <summary>
+            Locking model base class
+            </summary>
+            <remarks>
+            <para>
+            Base class for the locking models available to the <see cref="T:log4net.Appender.FileAppender"/> derived loggers.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.LockingModelBase.OpenFile(System.String,System.Boolean,System.Text.Encoding)">
+            <summary>
+            Open the output file
+            </summary>
+            <param name="filename">The filename to use</param>
+            <param name="append">Whether to append to the file, or overwrite</param>
+            <param name="encoding">The encoding to use</param>
+            <remarks>
+            <para>
+            Open the file specified and prepare for logging. 
+            No writes will be made until <see cref="M:log4net.Appender.FileAppender.LockingModelBase.AcquireLock"/> is called.
+            Must be called before any calls to <see cref="M:log4net.Appender.FileAppender.LockingModelBase.AcquireLock"/>,
+            <see cref="M:log4net.Appender.FileAppender.LockingModelBase.ReleaseLock"/> and <see cref="M:log4net.Appender.FileAppender.LockingModelBase.CloseFile"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.LockingModelBase.CloseFile">
+            <summary>
+            Close the file
+            </summary>
+            <remarks>
+            <para>
+            Close the file. No further writes will be made.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.LockingModelBase.AcquireLock">
+            <summary>
+            Acquire the lock on the file
+            </summary>
+            <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. 
+            Return a stream pointing to the file. <see cref="M:log4net.Appender.FileAppender.LockingModelBase.ReleaseLock"/>
+            must be called to release the lock on the output file.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.LockingModelBase.ReleaseLock">
+            <summary>
+            Release the lock on the file
+            </summary>
+            <remarks>
+            <para>
+            Release the lock on the file. No further writes will be made to the 
+            stream until <see cref="M:log4net.Appender.FileAppender.LockingModelBase.AcquireLock"/> is called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.FileAppender.LockingModelBase.CurrentAppender">
+            <summary>
+            Gets or sets the <see cref="T:log4net.Appender.FileAppender"/> for this LockingModel
+            </summary>
+            <value>
+            The <see cref="T:log4net.Appender.FileAppender"/> for this LockingModel
+            </value>
+            <remarks>
+            <para>
+            The file appender this locking model is attached to and working on
+            behalf of.
+            </para>
+            <para>
+            The file appender is used to locate the security context and the error handler to use.
+            </para>
+            <para>
+            The value of this property will be set before <see cref="M:log4net.Appender.FileAppender.LockingModelBase.OpenFile(System.String,System.Boolean,System.Text.Encoding)"/> is
+            called.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.FileAppender.ExclusiveLock">
+            <summary>
+            Hold an exclusive lock on the output file
+            </summary>
+            <remarks>
+            <para>
+            Open the file once for writing and hold it open until <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.CloseFile"/> is called. 
+            Maintains an exclusive lock on the file during this time.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.ExclusiveLock.OpenFile(System.String,System.Boolean,System.Text.Encoding)">
+            <summary>
+            Open the file specified and prepare for logging.
+            </summary>
+            <param name="filename">The filename to use</param>
+            <param name="append">Whether to append to the file, or overwrite</param>
+            <param name="encoding">The encoding to use</param>
+            <remarks>
+            <para>
+            Open the file specified and prepare for logging. 
+            No writes will be made until <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.AcquireLock"/> is called.
+            Must be called before any calls to <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.AcquireLock"/>,
+            <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.ReleaseLock"/> and <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.CloseFile"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.ExclusiveLock.CloseFile">
+            <summary>
+            Close the file
+            </summary>
+            <remarks>
+            <para>
+            Close the file. No further writes will be made.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.ExclusiveLock.AcquireLock">
+            <summary>
+            Acquire the lock on the file
+            </summary>
+            <returns>A stream that is ready to be written to.</returns>
+            <remarks>
+            <para>
+            Does nothing. The lock is already taken
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.ExclusiveLock.ReleaseLock">
+            <summary>
+            Release the lock on the file
+            </summary>
+            <remarks>
+            <para>
+            Does nothing. The lock will be released when the file is closed.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.FileAppender.MinimalLock">
+            <summary>
+            Acquires the file lock for each write
+            </summary>
+            <remarks>
+            <para>
+            Opens the file once for each <see cref="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock"/>/<see cref="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock"/> cycle, 
+            thus holding the lock for the minimal amount of time. This method of locking
+            is considerably slower than <see cref="T:log4net.Appender.FileAppender.ExclusiveLock"/> but allows 
+            other processes to move/delete the log file whilst logging continues.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.MinimalLock.OpenFile(System.String,System.Boolean,System.Text.Encoding)">
+            <summary>
+            Prepares to open the file when the first message is logged.
+            </summary>
+            <param name="filename">The filename to use</param>
+            <param name="append">Whether to append to the file, or overwrite</param>
+            <param name="encoding">The encoding to use</param>
+            <remarks>
+            <para>
+            Open the file specified and prepare for logging. 
+            No writes will be made until <see cref="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock"/> is called.
+            Must be called before any calls to <see cref="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock"/>,
+            <see cref="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock"/> and <see cref="M:log4net.Appender.FileAppender.MinimalLock.CloseFile"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.MinimalLock.CloseFile">
+            <summary>
+            Close the file
+            </summary>
+            <remarks>
+            <para>
+            Close the file. No further writes will be made.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock">
+            <summary>
+            Acquire the lock on the file
+            </summary>
+            <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. 
+            Return a stream pointing to the file. <see cref="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock"/>
+            must be called to release the lock on the output file.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock">
+            <summary>
+            Release the lock on the file
+            </summary>
+            <remarks>
+            <para>
+            Release the lock on the file. No further writes will be made to the 
+            stream until <see cref="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock"/> is called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.ForwardingAppender">
+            <summary>
+            This appender forwards logging events to attached appenders.
+            </summary>
+            <remarks>
+            <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>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Appender.ForwardingAppender.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.ForwardingAppender"/> class.
+            </summary>
+            <remarks>
+            <para>
+            Default constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.ForwardingAppender.OnClose">
+            <summary>
+            Closes the appender and releases resources.
+            </summary>
+            <remarks>
+            <para>
+            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>
+        </member>
+        <member name="M:log4net.Appender.ForwardingAppender.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            Forward the logging event to the attached appenders 
+            </summary>
+            <param name="loggingEvent">The event to log.</param>
+            <remarks>
+            <para>
+            Delivers the logging event to all the attached appenders.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.ForwardingAppender.Append(log4net.Core.LoggingEvent[])">
+            <summary>
+            Forward the logging events to the attached appenders 
+            </summary>
+            <param name="loggingEvents">The array of events to log.</param>
+            <remarks>
+            <para>
+            Delivers the logging events to all the attached appenders.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.ForwardingAppender.AddAppender(log4net.Appender.IAppender)">
+            <summary>
+            Adds an <see cref="T:log4net.Appender.IAppender"/> to the list of appenders of this
+            instance.
+            </summary>
+            <param name="newAppender">The <see cref="T:log4net.Appender.IAppender"/> to add to this appender.</param>
+            <remarks>
+            <para>
+            If the specified <see cref="T:log4net.Appender.IAppender"/> is already in the list of
+            appenders, then it won't be added again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.ForwardingAppender.GetAppender(System.String)">
+            <summary>
+            Looks for the appender with the specified name.
+            </summary>
+            <param name="name">The name of the appender to lookup.</param>
+            <returns>
+            The appender with the specified name, or <c>null</c>.
+            </returns>
+            <remarks>
+            <para>
+            Get the named appender attached to this appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.ForwardingAppender.RemoveAllAppenders">
+            <summary>
+            Removes all previously added appenders from this appender.
+            </summary>
+            <remarks>
+            <para>
+            This is useful when re-reading configuration information.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.ForwardingAppender.RemoveAppender(log4net.Appender.IAppender)">
+            <summary>
+            Removes the specified appender from the list of appenders.
+            </summary>
+            <param name="appender">The appender to remove.</param>
+            <returns>The appender removed from the list</returns>
+            <remarks>
+            The appender removed is not closed.
+            If you are discarding the appender you must call
+            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.ForwardingAppender.RemoveAppender(System.String)">
+            <summary>
+            Removes the appender with the specified name from the list of appenders.
+            </summary>
+            <param name="name">The name of the appender to remove.</param>
+            <returns>The appender removed from the list</returns>
+            <remarks>
+            The appender removed is not closed.
+            If you are discarding the appender you must call
+            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.ForwardingAppender.m_appenderAttachedImpl">
+            <summary>
+            Implementation of the <see cref="T:log4net.Core.IAppenderAttachable"/> interface
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.ForwardingAppender.Appenders">
+            <summary>
+            Gets the appenders contained in this appender as an 
+            <see cref="T:System.Collections.ICollection"/>.
+            </summary>
+            <remarks>
+            If no appenders can be found, then an <see cref="T:log4net.Util.EmptyCollection"/> 
+            is returned.
+            </remarks>
+            <returns>
+            A collection of the appenders in this appender.
+            </returns>
+        </member>
+        <member name="T:log4net.Appender.LocalSyslogAppender">
+            <summary>
+            Logs events to a local syslog service.
+            </summary>
+            <remarks>
+            <note>
+            This appender uses the POSIX libc library functions <c>openlog</c>, <c>syslog</c>, and <c>closelog</c>.
+            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 
+            POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service.
+            </para>
+            <para>
+            This appender talks to a local syslog service. If you need to log to a remote syslog
+            daemon and you cannot configure your local syslog service to do this you may be
+            able to use the <see cref="T:log4net.Appender.RemoteSyslogAppender"/> to log via UDP.
+            </para>
+            <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 
+            <see cref="T:log4net.Appender.LocalSyslogAppender.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="P:log4net.Appender.LocalSyslogAppender.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="P:log4net.Util.SystemInfo.ApplicationFriendlyName"/>).
+            </para>
+            </remarks>
+            <author>Rob Lyon</author>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Appender.LocalSyslogAppender.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.LocalSyslogAppender"/> class.
+            </summary>
+            <remarks>
+            This instance of the <see cref="T:log4net.Appender.LocalSyslogAppender"/> class is set up to write 
+            to a local syslog service.
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.LocalSyslogAppender.AddMapping(log4net.Appender.LocalSyslogAppender.LevelSeverity)">
+            <summary>
+            Add a mapping of level to severity
+            </summary>
+            <param name="mapping">The mapping to add</param>
+            <remarks>
+            <para>
+            Adds a <see cref="T:log4net.Appender.LocalSyslogAppender.LevelSeverity"/> to this appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.LocalSyslogAppender.ActivateOptions">
+            <summary>
+            Initialize the appender based on the options set.
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Appender.LocalSyslogAppender.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Appender.LocalSyslogAppender.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Appender.LocalSyslogAppender.ActivateOptions"/> must be called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.LocalSyslogAppender.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/> method.
+            </summary>
+            <param name="loggingEvent">The event to log.</param>
+            <remarks>
+            <para>
+            Writes the event to a remote syslog daemon.
+            </para>
+            <para>
+            The format of the output will depend on the appender's layout.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.LocalSyslogAppender.OnClose">
+            <summary>
+            Close the syslog when the appender is closed
+            </summary>
+            <remarks>
+            <para>
+            Close the syslog when the appender is closed
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.LocalSyslogAppender.GetSeverity(log4net.Core.Level)">
+            <summary>
+            Translates a log4net level to a syslog severity.
+            </summary>
+            <param name="level">A log4net level.</param>
+            <returns>A syslog severity.</returns>
+            <remarks>
+            <para>
+            Translates a log4net level to a syslog severity.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.LocalSyslogAppender.GeneratePriority(log4net.Appender.LocalSyslogAppender.SyslogFacility,log4net.Appender.LocalSyslogAppender.SyslogSeverity)">
+            <summary>
+            Generate a syslog priority.
+            </summary>
+            <param name="facility">The syslog facility.</param>
+            <param name="severity">The syslog severity.</param>
+            <returns>A syslog priority.</returns>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.m_facility">
+            <summary>
+            The facility. The default facility is <see cref="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.User"/>.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.m_identity">
+            <summary>
+            The message identity
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.m_handleToIdentity">
+            <summary>
+            Marshaled handle to the identity string. We have to hold on to the
+            string as the <c>openlog</c> and <c>syslog</c> APIs just hold the
+            pointer to the ident and dereference it for each log message.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.m_levelMapping">
+            <summary>
+            Mapping from level object to syslog severity
+            </summary>
+        </member>
+        <member name="M:log4net.Appender.LocalSyslogAppender.openlog(System.IntPtr,System.Int32,log4net.Appender.LocalSyslogAppender.SyslogFacility)">
+            <summary>
+            Open connection to system logger.
+            </summary>
+        </member>
+        <member name="M:log4net.Appender.LocalSyslogAppender.syslog(System.Int32,System.String,System.String)">
+            <summary>
+            Generate a log message.
+            </summary>
+            <remarks>
+            <para>
+            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 
+            string to <c>"%s"</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.LocalSyslogAppender.closelog">
+            <summary>
+            Close descriptor used to write to system logger.
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.LocalSyslogAppender.Identity">
+            <summary>
+            Message identity
+            </summary>
+            <remarks>
+            <para>
+            An identifier is specified with each log message. This can be specified
+            by setting the <see cref="P:log4net.Appender.LocalSyslogAppender.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="P:log4net.Util.SystemInfo.ApplicationFriendlyName"/>).
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.LocalSyslogAppender.Facility">
+            <summary>
+            Syslog facility
+            </summary>
+            <remarks>
+            Set to one of the <see cref="T:log4net.Appender.LocalSyslogAppender.SyslogFacility"/> values. The list of
+            facilities is predefined and cannot be extended. The default value
+            is <see cref="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.User"/>.
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.LocalSyslogAppender.RequiresLayout">
+            <summary>
+            This appender requires a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/> to be set.
+            </summary>
+            <value><c>true</c></value>
+            <remarks>
+            <para>
+            This appender requires a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/> to be set.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.LocalSyslogAppender.SyslogSeverity">
+            <summary>
+            syslog severities
+            </summary>
+            <remarks>
+            <para>
+            The log4net Level maps to a syslog severity using the
+            <see cref="M:log4net.Appender.LocalSyslogAppender.AddMapping(log4net.Appender.LocalSyslogAppender.LevelSeverity)"/> method and the <see cref="T:log4net.Appender.LocalSyslogAppender.LevelSeverity"/>
+            class. The severity is set on <see cref="P:log4net.Appender.LocalSyslogAppender.LevelSeverity.Severity"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Emergency">
+            <summary>
+            system is unusable
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Alert">
+            <summary>
+            action must be taken immediately
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Critical">
+            <summary>
+            critical conditions
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Error">
+            <summary>
+            error conditions
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Warning">
+            <summary>
+            warning conditions
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Notice">
+            <summary>
+            normal but significant condition
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Informational">
+            <summary>
+            informational
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Debug">
+            <summary>
+            debug-level messages
+            </summary>
+        </member>
+        <member name="T:log4net.Appender.LocalSyslogAppender.SyslogFacility">
+            <summary>
+            syslog facilities
+            </summary>
+            <remarks>
+            <para>
+            The syslog facility defines which subsystem the logging comes from.
+            This is set on the <see cref="P:log4net.Appender.LocalSyslogAppender.Facility"/> property.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Kernel">
+            <summary>
+            kernel messages
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.User">
+            <summary>
+            random user-level messages
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Mail">
+            <summary>
+            mail system
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Daemons">
+            <summary>
+            system daemons
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Authorization">
+            <summary>
+            security/authorization messages
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Syslog">
+            <summary>
+            messages generated internally by syslogd
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Printer">
+            <summary>
+            line printer subsystem
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.News">
+            <summary>
+            network news subsystem
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Uucp">
+            <summary>
+            UUCP subsystem
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Clock">
+            <summary>
+            clock (cron/at) daemon
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Authorization2">
+            <summary>
+            security/authorization  messages (private)
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Ftp">
+            <summary>
+            ftp daemon
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Ntp">
+            <summary>
+            NTP subsystem
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Audit">
+            <summary>
+            log audit
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Alert">
+            <summary>
+            log alert
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Clock2">
+            <summary>
+            clock daemon
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Local0">
+            <summary>
+            reserved for local use
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Local1">
+            <summary>
+            reserved for local use
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Local2">
+            <summary>
+            reserved for local use
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Local3">
+            <summary>
+            reserved for local use
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Local4">
+            <summary>
+            reserved for local use
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Local5">
+            <summary>
+            reserved for local use
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Local6">
+            <summary>
+            reserved for local use
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Local7">
+            <summary>
+            reserved for local use
+            </summary>
+        </member>
+        <member name="T:log4net.Appender.LocalSyslogAppender.LevelSeverity">
+            <summary>
+            A class to act as a mapping between the level that a logging call is made at and
+            the syslog severity that is should be logged at.
+            </summary>
+            <remarks>
+            <para>
+            A class to act as a mapping between the level that a logging call is made at and
+            the syslog severity that is should be logged at.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.LocalSyslogAppender.LevelSeverity.Severity">
+            <summary>
+            The mapped syslog severity for the specified level
+            </summary>
+            <remarks>
+            <para>
+            Required property.
+            The mapped syslog severity for the specified level
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.MemoryAppender">
+            <summary>
+            Stores logging events in an array.
+            </summary>
+            <remarks>
+            <para>
+            The memory appender stores all the logging events
+            that are appended in an in-memory array.
+            </para>
+            <para>
+            Use the <see cref="M:log4net.Appender.MemoryAppender.GetEvents"/> method to get
+            the current list of events that have been appended.
+            </para>
+            <para>
+            Use the <see cref="M:log4net.Appender.MemoryAppender.Clear"/> method to clear the
+            current list of events.
+            </para>
+            </remarks>
+            <author>Julian Biddle</author>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Appender.MemoryAppender.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.MemoryAppender"/> class.
+            </summary>
+            <remarks>
+            <para>
+            Default constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.MemoryAppender.GetEvents">
+            <summary>
+            Gets the events that have been logged.
+            </summary>
+            <returns>The events that have been logged</returns>
+            <remarks>
+            <para>
+            Gets the events that have been logged.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.MemoryAppender.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/> method. 
+            </summary>
+            <param name="loggingEvent">the event to log</param>
+            <remarks>
+            <para>Stores the <paramref name="loggingEvent"/> in the events list.</para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.MemoryAppender.Clear">
+            <summary>
+            Clear the list of events
+            </summary>
+            <remarks>
+            Clear the list of events
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.MemoryAppender.m_eventsList">
+            <summary>
+            The list of events that have been appended.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.MemoryAppender.m_fixFlags">
+            <summary>
+            Value indicating which fields in the event should be fixed
+            </summary>
+            <remarks>
+            By default all fields are fixed
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.MemoryAppender.OnlyFixPartialEventData">
+            <summary>
+            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 
+            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. 
+            </para>
+            <para>
+            See <see cref="M:log4net.Core.LoggingEvent.FixVolatileData(System.Boolean)"/> for more information.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.MemoryAppender.Fix">
+            <summary>
+            Gets or sets the fields that will be fixed in the event
+            </summary>
+            <remarks>
+            <para>
+            The logging event needs to have certain thread specific values 
+            captured before it can be buffered. See <see cref="P:log4net.Core.LoggingEvent.Fix"/>
+            for details.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.RemoteSyslogAppender">
+            <summary>
+            Logs events to a remote syslog daemon.
+            </summary>
+            <remarks>
+            <para>
+            The BSD syslog protocol is used to remotely log to
+            a syslog daemon. The syslogd listens for for messages
+            on UDP port 514.
+            </para>
+            <para>
+            The syslog UDP protocol is not authenticated. Most syslog daemons
+            do not accept remote log messages because of the security implications.
+            You may be able to use the LocalSyslogAppender to talk to a local
+            syslog service.
+            </para>
+            <para>
+            There is an RFC 3164 that claims to document the BSD Syslog Protocol.
+            This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html.
+            This appender generates what the RFC calls an "Original Device Message",
+            i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation
+            this format of message will be accepted by all current syslog daemon
+            implementations. The daemon will attach the current time and the source
+            hostname or IP address to any messages received.
+            </para>
+            <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 
+            <see cref="T:log4net.Appender.RemoteSyslogAppender.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="P:log4net.Appender.RemoteSyslogAppender.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="P:log4net.Core.LoggingEvent.Domain"/>).
+            </para>
+            </remarks>
+            <author>Rob Lyon</author>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="T:log4net.Appender.UdpAppender">
+            <summary>
+            Sends logging events as connectionless UDP datagrams to a remote host or a 
+            multicast group using an <see cref="T:System.Net.Sockets.UdpClient"/>.
+            </summary>
+            <remarks>
+            <para>
+            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 
+            events.
+            </para>
+            <para>
+            When decoding events send via this appender remember to use the same encoding
+            to decode the events as was used to send the events. See the <see cref="P:log4net.Appender.UdpAppender.Encoding"/>
+            property to specify the encoding to use.
+            </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. 
+            <code lang="C#">
+            IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
+            UdpClient udpClient;
+            byte[] buffer;
+            string loggingEvent;
+            
+            try 
+            {
+                udpClient = new UdpClient(8080);
+                
+                while(true) 
+                {
+                    buffer = udpClient.Receive(ref remoteEndPoint);
+                    loggingEvent = System.Text.Encoding.Unicode.GetString(buffer);
+                    Console.WriteLine(loggingEvent);
+                }
+            } 
+            catch(Exception e) 
+            {
+                Console.WriteLine(e.ToString());
+            }
+            </code>
+            <code lang="Visual Basic">
+            Dim remoteEndPoint as IPEndPoint
+            Dim udpClient as UdpClient
+            Dim buffer as Byte()
+            Dim loggingEvent as String
+            
+            Try 
+                remoteEndPoint = new IPEndPoint(IPAddress.Any, 0)
+                udpClient = new UdpClient(8080)
+            
+                While True
+                    buffer = udpClient.Receive(ByRef remoteEndPoint)
+                    loggingEvent = System.Text.Encoding.Unicode.GetString(buffer)
+                    Console.WriteLine(loggingEvent)
+                Wend
+            Catch e As Exception
+                Console.WriteLine(e.ToString())
+            End Try
+            </code>
+            <para>
+            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">
+            <appender name="UdpAppender" type="log4net.Appender.UdpAppender">
+                <remoteAddress value="224.0.0.1"/>
+                <remotePort value="8080"/>
+                <layout type="log4net.Layout.PatternLayout" value="%-5level %logger [%ndc] - %message%newline"/>
+            </appender>
+            </code>
+            </example>
+            <author>Gert Driesen</author>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Appender.UdpAppender.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.UdpAppender"/> class.
+            </summary>
+            <remarks>
+            The default constructor initializes all fields to their default values.
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.UdpAppender.ActivateOptions">
+            <summary>
+            Initialize the appender based on the options set.
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Appender.UdpAppender.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Appender.UdpAppender.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Appender.UdpAppender.ActivateOptions"/> must be called again.
+            </para>
+            <para>
+            The appender will be ignored if no <see cref="P:log4net.Appender.UdpAppender.RemoteAddress"/> was specified or 
+            an invalid remote or local TCP port number was specified.
+            </para>
+            </remarks>
+            <exception cref="T:System.ArgumentNullException">The required property <see cref="P:log4net.Appender.UdpAppender.RemoteAddress"/> was not specified.</exception>
+            <exception cref="T:System.ArgumentOutOfRangeException">The TCP port number assigned to <see cref="P:log4net.Appender.UdpAppender.LocalPort"/> or <see cref="P:log4net.Appender.UdpAppender.RemotePort"/> is less than <see cref="F:System.Net.IPEndPoint.MinPort"/> or greater than <see cref="F:System.Net.IPEndPoint.MaxPort"/>.</exception>
+        </member>
+        <member name="M:log4net.Appender.UdpAppender.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/> method.
+            </summary>
+            <param name="loggingEvent">The event to log.</param>
+            <remarks>
+            <para>
+            Sends the event using an UDP datagram.
+            </para>
+            <para>
+            Exceptions are passed to the <see cref="P:log4net.Appender.AppenderSkeleton.ErrorHandler"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.UdpAppender.OnClose">
+            <summary>
+            Closes the UDP connection and releases all resources associated with 
+            this <see cref="T:log4net.Appender.UdpAppender"/> instance.
+            </summary>
+            <remarks>
+            <para>
+            Disables the underlying <see cref="T:System.Net.Sockets.UdpClient"/> and releases all managed 
+            and unmanaged resources associated with the <see cref="T:log4net.Appender.UdpAppender"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.UdpAppender.InitializeClientConnection">
+            <summary>
+            Initializes the underlying  <see cref="T:System.Net.Sockets.UdpClient"/> connection.
+            </summary>
+            <remarks>
+            <para>
+            The underlying <see cref="T:System.Net.Sockets.UdpClient"/> is initialized and binds to the 
+            port number from which you intend to communicate.
+            </para>
+            <para>
+            Exceptions are passed to the <see cref="P:log4net.Appender.AppenderSkeleton.ErrorHandler"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.UdpAppender.m_remoteAddress">
+            <summary>
+            The IP address of the remote host or multicast group to which 
+            the logging event will be sent.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.UdpAppender.m_remotePort">
+            <summary>
+            The TCP port number of the remote host or multicast group to 
+            which the logging event will be sent.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.UdpAppender.m_remoteEndPoint">
+            <summary>
+            The cached remote endpoint to which the logging events will be sent.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.UdpAppender.m_localPort">
+            <summary>
+            The TCP port number from which the <see cref="T:System.Net.Sockets.UdpClient"/> will communicate.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.UdpAppender.m_client">
+            <summary>
+            The <see cref="T:System.Net.Sockets.UdpClient"/> instance that will be used for sending the 
+            logging events.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.UdpAppender.m_encoding">
+            <summary>
+            The encoding to use for the packet.
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.UdpAppender.RemoteAddress">
+            <summary>
+            Gets or sets the IP address of the remote host or multicast group to which
+            the underlying <see cref="T:System.Net.Sockets.UdpClient"/> should sent the logging event.
+            </summary>
+            <value>
+            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 
+            supports multicasting.
+            </para>
+            <para>
+            Hosts that want to receive particular multicast messages must register their interest by joining
+            the multicast group.  Multicast messages are not sent to networks where no host has joined
+            the multicast group.  Class <b>D</b> IP addresses are used for multicast groups, to differentiate
+            them from normal host addresses, allowing nodes to easily detect if a message is of interest.
+            </para>
+            <para>
+            Static multicast addresses that are needed globally are assigned by IANA.  A few examples are listed in the table below:
+            </para>
+            <para>
+            <list type="table">
+                <listheader>
+                    <term>IP Address</term>
+                    <description>Description</description>
+                </listheader>
+                <item>
+                    <term>224.0.0.1</term>
+                    <description>
+                        <para>
+                        Sends a message to all system on the subnet.
+                        </para>
+                    </description>
+                </item>
+                <item>
+                    <term>224.0.0.2</term>
+                    <description>
+                        <para>
+                        Sends a message to all routers on the subnet.
+                        </para>
+                    </description>
+                </item>
+                <item>
+                    <term>224.0.0.12</term>
+                    <description>
+                        <para>
+                        The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet.
+                        </para>
+                    </description>
+                </item>
+            </list>
+            </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>. 
+            </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 
+            configured with filters to prevent multicast traffic in this range from flowing outside
+            of the local network.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.UdpAppender.RemotePort">
+            <summary>
+            Gets or sets the TCP port number of the remote host or multicast group to which 
+            the underlying <see cref="T:System.Net.Sockets.UdpClient"/> should sent the logging event.
+            </summary>
+            <value>
+            An integer value in the range <see cref="F:System.Net.IPEndPoint.MinPort"/> to <see cref="F:System.Net.IPEndPoint.MaxPort"/> 
+            indicating the TCP port number of the remote host or multicast group to which the logging event 
+            will be sent.
+            </value>
+            <remarks>
+            The underlying <see cref="T:System.Net.Sockets.UdpClient"/> will send messages to this TCP port number
+            on the remote host or multicast group.
+            </remarks>
+            <exception cref="T:System.ArgumentOutOfRangeException">The value specified is less than <see cref="F:System.Net.IPEndPoint.MinPort"/> or greater than <see cref="F:System.Net.IPEndPoint.MaxPort"/>.</exception>
+        </member>
+        <member name="P:log4net.Appender.UdpAppender.LocalPort">
+            <summary>
+            Gets or sets the TCP port number from which the underlying <see cref="T:System.Net.Sockets.UdpClient"/> will communicate.
+            </summary>
+            <value>
+            An integer value in the range <see cref="F:System.Net.IPEndPoint.MinPort"/> to <see cref="F:System.Net.IPEndPoint.MaxPort"/> 
+            indicating the TCP port number from which the underlying <see cref="T:System.Net.Sockets.UdpClient"/> will communicate.
+            </value>
+            <remarks>
+            <para>
+            The underlying <see cref="T:System.Net.Sockets.UdpClient"/> will bind to this port for sending messages.
+            </para>
+            <para>
+            Setting the value to 0 (the default) will cause the udp client not to bind to
+            a local port.
+            </para>
+            </remarks>
+            <exception cref="T:System.ArgumentOutOfRangeException">The value specified is less than <see cref="F:System.Net.IPEndPoint.MinPort"/> or greater than <see cref="F:System.Net.IPEndPoint.MaxPort"/>.</exception>
+        </member>
+        <member name="P:log4net.Appender.UdpAppender.Encoding">
+            <summary>
+            Gets or sets <see cref="P:log4net.Appender.UdpAppender.Encoding"/> used to write the packets.
+            </summary>
+            <value>
+            The <see cref="P:log4net.Appender.UdpAppender.Encoding"/> used to write the packets.
+            </value>
+            <remarks>
+            <para>
+            The <see cref="P:log4net.Appender.UdpAppender.Encoding"/> used to write the packets.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.UdpAppender.Client">
+            <summary>
+            Gets or sets the underlying <see cref="T:System.Net.Sockets.UdpClient"/>.
+            </summary>
+            <value>
+            The underlying <see cref="T:System.Net.Sockets.UdpClient"/>.
+            </value>
+            <remarks>
+            <see cref="T:log4net.Appender.UdpAppender"/> creates a <see cref="T:System.Net.Sockets.UdpClient"/> to send logging events 
+            over a network.  Classes deriving from <see cref="T:log4net.Appender.UdpAppender"/> can use this
+            property to get or set this <see cref="T:System.Net.Sockets.UdpClient"/>.  Use the underlying <see cref="T:System.Net.Sockets.UdpClient"/>
+            returned from <see cref="P:log4net.Appender.UdpAppender.Client"/> if you require access beyond that which 
+            <see cref="T:log4net.Appender.UdpAppender"/> provides.
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.UdpAppender.RemoteEndPoint">
+            <summary>
+            Gets or sets the cached remote endpoint to which the logging events should be sent.
+            </summary>
+            <value>
+            The cached remote endpoint to which the logging events will be sent.
+            </value>
+            <remarks>
+            The <see cref="M:log4net.Appender.UdpAppender.ActivateOptions"/> method will initialize the remote endpoint 
+            with the values of the <see cref="P:log4net.Appender.UdpAppender.RemoteAddress"/> and <see cref="P:log4net.Appender.UdpAppender.RemotePort"/>
+            properties.
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.UdpAppender.RequiresLayout">
+            <summary>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </summary>
+            <value><c>true</c></value>
+            <remarks>
+            <para>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.DefaultSyslogPort">
+            <summary>
+            Syslog port 514
+            </summary>
+        </member>
+        <member name="M:log4net.Appender.RemoteSyslogAppender.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.RemoteSyslogAppender"/> class.
+            </summary>
+            <remarks>
+            This instance of the <see cref="T:log4net.Appender.RemoteSyslogAppender"/> class is set up to write 
+            to a remote syslog daemon.
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RemoteSyslogAppender.AddMapping(log4net.Appender.RemoteSyslogAppender.LevelSeverity)">
+            <summary>
+            Add a mapping of level to severity
+            </summary>
+            <param name="mapping">The mapping to add</param>
+            <remarks>
+            <para>
+            Add a <see cref="T:log4net.Appender.RemoteSyslogAppender.LevelSeverity"/> mapping to this appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RemoteSyslogAppender.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/> method.
+            </summary>
+            <param name="loggingEvent">The event to log.</param>
+            <remarks>
+            <para>
+            Writes the event to a remote syslog daemon.
+            </para>
+            <para>
+            The format of the output will depend on the appender's layout.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RemoteSyslogAppender.ActivateOptions">
+            <summary>
+            Initialize the options for this appender
+            </summary>
+            <remarks>
+            <para>
+            Initialize the level to syslog severity mappings set on this appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RemoteSyslogAppender.GetSeverity(log4net.Core.Level)">
+            <summary>
+            Translates a log4net level to a syslog severity.
+            </summary>
+            <param name="level">A log4net level.</param>
+            <returns>A syslog severity.</returns>
+            <remarks>
+            <para>
+            Translates a log4net level to a syslog severity.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RemoteSyslogAppender.GeneratePriority(log4net.Appender.RemoteSyslogAppender.SyslogFacility,log4net.Appender.RemoteSyslogAppender.SyslogSeverity)">
+            <summary>
+            Generate a syslog priority.
+            </summary>
+            <param name="facility">The syslog facility.</param>
+            <param name="severity">The syslog severity.</param>
+            <returns>A syslog priority.</returns>
+            <remarks>
+            <para>
+            Generate a syslog priority.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.m_facility">
+            <summary>
+            The facility. The default facility is <see cref="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.User"/>.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.m_identity">
+            <summary>
+            The message identity
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.m_levelMapping">
+            <summary>
+            Mapping from level object to syslog severity
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.RemoteSyslogAppender.Identity">
+            <summary>
+            Message identity
+            </summary>
+            <remarks>
+            <para>
+            An identifier is specified with each log message. This can be specified
+            by setting the <see cref="P:log4net.Appender.RemoteSyslogAppender.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="P:log4net.Core.LoggingEvent.Domain"/>).
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.RemoteSyslogAppender.Facility">
+            <summary>
+            Syslog facility
+            </summary>
+            <remarks>
+            Set to one of the <see cref="T:log4net.Appender.RemoteSyslogAppender.SyslogFacility"/> values. The list of
+            facilities is predefined and cannot be extended. The default value
+            is <see cref="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.User"/>.
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.RemoteSyslogAppender.SyslogSeverity">
+            <summary>
+            syslog severities
+            </summary>
+            <remarks>
+            <para>
+            The syslog severities.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Emergency">
+            <summary>
+            system is unusable
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Alert">
+            <summary>
+            action must be taken immediately
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Critical">
+            <summary>
+            critical conditions
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Error">
+            <summary>
+            error conditions
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Warning">
+            <summary>
+            warning conditions
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Notice">
+            <summary>
+            normal but significant condition
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Informational">
+            <summary>
+            informational
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Debug">
+            <summary>
+            debug-level messages
+            </summary>
+        </member>
+        <member name="T:log4net.Appender.RemoteSyslogAppender.SyslogFacility">
+            <summary>
+            syslog facilities
+            </summary>
+            <remarks>
+            <para>
+            The syslog facilities
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Kernel">
+            <summary>
+            kernel messages
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.User">
+            <summary>
+            random user-level messages
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Mail">
+            <summary>
+            mail system
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Daemons">
+            <summary>
+            system daemons
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Authorization">
+            <summary>
+            security/authorization messages
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Syslog">
+            <summary>
+            messages generated internally by syslogd
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Printer">
+            <summary>
+            line printer subsystem
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.News">
+            <summary>
+            network news subsystem
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Uucp">
+            <summary>
+            UUCP subsystem
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Clock">
+            <summary>
+            clock (cron/at) daemon
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Authorization2">
+            <summary>
+            security/authorization  messages (private)
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Ftp">
+            <summary>
+            ftp daemon
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Ntp">
+            <summary>
+            NTP subsystem
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Audit">
+            <summary>
+            log audit
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Alert">
+            <summary>
+            log alert
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Clock2">
+            <summary>
+            clock daemon
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Local0">
+            <summary>
+            reserved for local use
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Local1">
+            <summary>
+            reserved for local use
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Local2">
+            <summary>
+            reserved for local use
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Local3">
+            <summary>
+            reserved for local use
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Local4">
+            <summary>
+            reserved for local use
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Local5">
+            <summary>
+            reserved for local use
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Local6">
+            <summary>
+            reserved for local use
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Local7">
+            <summary>
+            reserved for local use
+            </summary>
+        </member>
+        <member name="T:log4net.Appender.RemoteSyslogAppender.LevelSeverity">
+            <summary>
+            A class to act as a mapping between the level that a logging call is made at and
+            the syslog severity that is should be logged at.
+            </summary>
+            <remarks>
+            <para>
+            A class to act as a mapping between the level that a logging call is made at and
+            the syslog severity that is should be logged at.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.RemoteSyslogAppender.LevelSeverity.Severity">
+            <summary>
+            The mapped syslog severity for the specified level
+            </summary>
+            <remarks>
+            <para>
+            Required property.
+            The mapped syslog severity for the specified level
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.RemotingAppender">
+            <summary>
+            Delivers logging events to a remote logging sink. 
+            </summary>
+            <remarks>
+            <para>
+            This Appender is designed to deliver events to a remote sink. 
+            That is any object that implements the <see cref="T:log4net.Appender.RemotingAppender.IRemoteLoggingSink"/>
+            interface. It delivers the events using .NET remoting. The
+            object to deliver events to is specified by setting the
+            appenders <see cref="P:log4net.Appender.RemotingAppender.Sink"/> property.</para>
+            <para>
+            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 
+            flow thread local variables (stored in the <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/>),
+            if they are marked as <see cref="T:System.Runtime.Remoting.Messaging.ILogicalThreadAffinative"/>, across the 
+            remoting boundary. If the server is not contactable then
+            the remoting infrastructure will clear the <see cref="T:System.Runtime.Remoting.Messaging.ILogicalThreadAffinative"/>
+            objects from the <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/>. To prevent a logging failure from
+            having side effects on the calling application the remoting call must be made
+            from a separate thread to the one used by the application. A <see cref="T:System.Threading.ThreadPool"/>
+            thread is used for this. If no <see cref="T:System.Threading.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 
+            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 
+            this will timeout after 30 seconds regardless.</para>
+            <para>
+            If this appender is being closed because the <see cref="F:System.AppDomain.ProcessExit"/>
+            event has fired it may not be possible to send all the queued events. During process
+            exit the runtime limits the time that a <see cref="F:System.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 
+            <see cref="M:log4net.Core.LoggerManager.Shutdown"/> for details on how to shutdown
+            log4net programmatically.</para>
+            </remarks>
+            <seealso cref="T:log4net.Appender.RemotingAppender.IRemoteLoggingSink"/>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+            <author>Daniel Cazzulino</author>
+        </member>
+        <member name="M:log4net.Appender.RemotingAppender.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.RemotingAppender"/> class.
+            </summary>
+            <remarks>
+            <para>
+            Default constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RemotingAppender.ActivateOptions">
+            <summary>
+            Initialize the appender based on the options set
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Appender.RemotingAppender.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Appender.RemotingAppender.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Appender.RemotingAppender.ActivateOptions"/> must be called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RemotingAppender.SendBuffer(log4net.Core.LoggingEvent[])">
+            <summary>
+            Send the contents of the buffer to the remote sink.
+            </summary>
+            <remarks>
+            The events are 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="T:System.Runtime.Remoting.Messaging.CallContext"/>),
+            if they are marked as <see cref="T:System.Runtime.Remoting.Messaging.ILogicalThreadAffinative"/>, across the 
+            remoting boundary. If the server is not contactable then
+            the remoting infrastructure will clear the <see cref="T:System.Runtime.Remoting.Messaging.ILogicalThreadAffinative"/>
+            objects from the <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/>. To prevent a logging failure from
+            having side effects on the calling application the remoting call must be made
+            from a separate thread to the one used by the application. A <see cref="T:System.Threading.ThreadPool"/>
+            thread is used for this. If no <see cref="T:System.Threading.ThreadPool"/> thread is available then
+            the events will block in the thread pool manager until a thread is available.
+            </remarks>
+            <param name="events">The events to send.</param>
+        </member>
+        <member name="M:log4net.Appender.RemotingAppender.OnClose">
+            <summary>
+            Override base class close.
+            </summary>
+            <remarks>
+            <para>
+            This method waits while there are queued work items. The events are
+            sent asynchronously using <see cref="T:System.Threading.ThreadPool"/> work items. These items
+            will be sent once a thread pool thread is available to send them, therefore
+            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 
+            method will timeout after 30 seconds regardless.</para>
+            <para>
+            If the appender is being closed because the <see cref="F:System.AppDomain.ProcessExit"/>
+            event has fired it may not be possible to send all the queued events. During process
+            exit the runtime limits the time that a <see cref="F:System.AppDomain.ProcessExit"/>
+            event handler is allowed to run for.</para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RemotingAppender.BeginAsyncSend">
+            <summary>
+            A work item is being queued into the thread pool
+            </summary>
+        </member>
+        <member name="M:log4net.Appender.RemotingAppender.EndAsyncSend">
+            <summary>
+            A work item from the thread pool has completed
+            </summary>
+        </member>
+        <member name="M:log4net.Appender.RemotingAppender.SendBufferCallback(System.Object)">
+            <summary>
+            Send the contents of the buffer to the remote sink.
+            </summary>
+            <remarks>
+            This method is designed to be used with the <see cref="T:System.Threading.ThreadPool"/>.
+            This method expects to be passed an array of <see cref="T:log4net.Core.LoggingEvent"/>
+            objects in the state param.
+            </remarks>
+            <param name="state">the logging events to send</param>
+        </member>
+        <member name="F:log4net.Appender.RemotingAppender.m_sinkUrl">
+            <summary>
+            The URL of the remote sink.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemotingAppender.m_sinkObj">
+            <summary>
+            The local proxy (.NET remoting) for the remote logging sink.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemotingAppender.m_queuedCallbackCount">
+            <summary>
+            The number of queued callbacks currently waiting or executing
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RemotingAppender.m_workQueueEmptyEvent">
+            <summary>
+            Event used to signal when there are no queued work items
+            </summary>
+            <remarks>
+            This event is set when there are no queued work items. In this
+            state it is safe to close the appender.
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.RemotingAppender.Sink">
+            <summary>
+            Gets or sets the URL of the well-known object that will accept 
+            the logging events.
+            </summary>
+            <value>
+            The well-known URL of the remote sink.
+            </value>
+            <remarks>
+            <para>
+            The URL of the remoting sink that will accept logging events.
+            The sink must implement the <see cref="T:log4net.Appender.RemotingAppender.IRemoteLoggingSink"/>
+            interface.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.RemotingAppender.IRemoteLoggingSink">
+            <summary>
+            Interface used to deliver <see cref="T:log4net.Core.LoggingEvent"/> objects to a remote sink.
+            </summary>
+            <remarks>
+            This interface must be implemented by a remoting sink
+            if the <see cref="T:log4net.Appender.RemotingAppender"/> is to be used
+            to deliver logging events to the sink.
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RemotingAppender.IRemoteLoggingSink.LogEvents(log4net.Core.LoggingEvent[])">
+            <summary>
+            Delivers logging events to the remote sink
+            </summary>
+            <param name="events">Array of events to log.</param>
+            <remarks>
+            <para>
+            Delivers logging events to the remote sink
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.RollingFileAppender">
+            <summary>
+            Appender that rolls log files based on size or date or both.
+            </summary>
+            <remarks>
+            <para>
+            RollingFileAppender can roll log files based on size or date or both
+            depending on the setting of the <see cref="P:log4net.Appender.RollingFileAppender.RollingStyle"/> property.
+            When set to <see cref="F:log4net.Appender.RollingFileAppender.RollingMode.Size"/> the log file will be rolled
+            once its size exceeds the <see cref="P:log4net.Appender.RollingFileAppender.MaximumFileSize"/>.
+            When set to <see cref="F:log4net.Appender.RollingFileAppender.RollingMode.Date"/> the log file will be rolled
+            once the date boundary specified in the <see cref="P:log4net.Appender.RollingFileAppender.DatePattern"/> property
+            is crossed.
+            When set to <see cref="F:log4net.Appender.RollingFileAppender.RollingMode.Composite"/> the log file will be
+            rolled once the date boundary specified in the <see cref="P:log4net.Appender.RollingFileAppender.DatePattern"/> property
+            is crossed, but within a date boundary the file will also be rolled
+            once its size exceeds the <see cref="P:log4net.Appender.RollingFileAppender.MaximumFileSize"/>.
+            When set to <see cref="F:log4net.Appender.RollingFileAppender.RollingMode.Once"/> the log file will be rolled when
+            the appender is configured. This effectively means that the log file can be
+            rolled once per program execution.
+            </para>
+            <para>
+            A of few additional optional features have been added:
+            <list type="bullet">
+            <item>Attach date pattern for current log file <see cref="P:log4net.Appender.RollingFileAppender.StaticLogFileName"/></item>
+            <item>Backup number increments for newer files <see cref="P:log4net.Appender.RollingFileAppender.CountDirection"/></item>
+            <item>Infinite number of backups by file size <see cref="P:log4net.Appender.RollingFileAppender.MaxSizeRollBackups"/></item>
+            </list>
+            </para>
+            
+            <note>
+            <para>
+            For large or infinite numbers of backup files a <see cref="P:log4net.Appender.RollingFileAppender.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="P:log4net.Appender.RollingFileAppender.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="P:log4net.Appender.RollingFileAppender.StaticLogFileName"/> or <see cref="P:log4net.Appender.RollingFileAppender.CountDirection"/> without clearing
+            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 
+            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="T:log4net.Appender.RollingFileAppender"/> extends the <see cref="T:log4net.Appender.FileAppender"/> and
+            has the same behavior when opening the log file.
+            The appender will first try to open the file for writing when <see cref="M:log4net.Appender.RollingFileAppender.ActivateOptions"/>
+            is called. This will typically be during configuration.
+            If the file cannot be opened for writing the appender will attempt
+            to open the file again each time a message is logged to the appender.
+            If the file cannot be opened for writing when a message is logged then
+            the message will be discarded by this appender.
+            </para>
+            <para>
+            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.
+            </para>
+            </note>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+            <author>Aspi Havewala</author>
+            <author>Douglas de la Torre</author>
+            <author>Edward Smit</author>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.RollingFileAppender"/> class.
+            </summary>
+            <remarks>
+            <para>
+            Default constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.SetQWForFiles(System.IO.TextWriter)">
+            <summary>
+            Sets the quiet writer being used.
+            </summary>
+            <remarks>
+            This method can be overridden by sub classes.
+            </remarks>
+            <param name="writer">the writer to set</param>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            Write out a logging event.
+            </summary>
+            <param name="loggingEvent">the event to write to file.</param>
+            <remarks>
+            <para>
+            Handles append time behavior for RollingFileAppender.  This checks
+            if a roll over either by date (checked first) or time (checked second)
+            is need and then appends to the file last.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.Append(log4net.Core.LoggingEvent[])">
+            <summary>
+            Write out an array of logging events.
+            </summary>
+            <param name="loggingEvents">the events to write to file.</param>
+            <remarks>
+            <para>
+            Handles append time behavior for RollingFileAppender.  This checks
+            if a roll over either by date (checked first) or time (checked second)
+            is need and then appends to the file last.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.AdjustFileBeforeAppend">
+            <summary>
+            Performs any required rolling before outputting the next event
+            </summary>
+            <remarks>
+            <para>
+            Handles append time behavior for RollingFileAppender.  This checks
+            if a roll over either by date (checked first) or time (checked second)
+            is need and then appends to the file last.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.OpenFile(System.String,System.Boolean)">
+            <summary>
+            Creates and opens the file for logging.  If <see cref="P:log4net.Appender.RollingFileAppender.StaticLogFileName"/>
+            is false then the fully qualified name is determined and used.
+            </summary>
+            <param name="fileName">the name of the file to open</param>
+            <param name="append">true to append to existing file</param>
+            <remarks>
+            <para>This method will ensure that the directory structure
+            for the <paramref name="fileName"/> specified exists.</para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.GetNextOutputFileName(System.String)">
+            <summary>
+            Get the current output file name
+            </summary>
+            <param name="fileName">the base file name</param>
+            <returns>the output file name</returns>
+            <remarks>
+            The output file name is based on the base fileName specified.
+            If <see cref="P:log4net.Appender.RollingFileAppender.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>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.DetermineCurSizeRollBackups">
+            <summary>
+            Determines curSizeRollBackups (only within the current roll point)
+            </summary>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.GetWildcardPatternForFile(System.String)">
+            <summary>
+            Generates a wildcard pattern that can be used to find all files
+            that are similar to the base file name.
+            </summary>
+            <param name="baseFileName"></param>
+            <returns></returns>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.GetExistingFiles(System.String)">
+            <summary>
+            Builds a list of filenames for all files matching the base filename plus a file
+            pattern.
+            </summary>
+            <param name="baseFilePath"></param>
+            <returns></returns>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.RollOverIfDateBoundaryCrossing">
+            <summary>
+            Initiates a roll over if needed for crossing a date boundary since the last run.
+            </summary>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.ExistingInit">
+            <summary>
+            Initializes based on existing conditions at time of <see cref="M:log4net.Appender.RollingFileAppender.ActivateOptions"/>.
+            </summary>
+            <remarks>
+            <para>
+            Initializes based on existing conditions at time of <see cref="M:log4net.Appender.RollingFileAppender.ActivateOptions"/>.
+            The following is done
+            <list type="bullet">
+            <item>determine curSizeRollBackups (only within the current roll point)</item>
+            <item>initiates a roll over if needed for crossing a date boundary since the last run.</item>
+            </list>
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.InitializeFromOneFile(System.String,System.String)">
+            <summary>
+            Does the work of bumping the 'current' file counter higher
+            to the highest count when an incremental file name is seen.
+            The highest count is either the first file (when count direction
+            is greater than 0) or the last file (when count direction less than 0).
+            In either case, we want to know the highest count that is present.
+            </summary>
+            <param name="baseFile"></param>
+            <param name="curFileName"></param>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.InitializeRollBackups(System.String,System.Collections.ArrayList)">
+            <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>
+            <param name="baseFile"></param>
+            <param name="arrayFiles"></param>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.ComputeCheckPeriod(System.String)">
+            <summary>
+            Calculates the RollPoint for the datePattern supplied.
+            </summary>
+            <param name="datePattern">the date pattern to calculate the check period for</param>
+            <returns>The RollPoint that is most accurate for the date pattern supplied</returns>
+            <remarks>
+            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 
+            and hour then the smallest roll point that can be detected would be
+            and hourly roll point as minutes could not be detected.
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.ActivateOptions">
+            <summary>
+            Initialize the appender based on the options set
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Appender.RollingFileAppender.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Appender.RollingFileAppender.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Appender.RollingFileAppender.ActivateOptions"/> must be called again.
+            </para>
+            <para>
+            Sets initial conditions including date/time roll over information, first check,
+            scheduledFilename, and calls <see cref="M:log4net.Appender.RollingFileAppender.ExistingInit"/> to initialize
+            the current number of backups.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.RollOverTime(System.Boolean)">
+            <summary>
+            Rollover the file(s) to date/time tagged file(s).
+            </summary>
+            <param name="fileIsOpen">set to true if the file to be rolled is currently open</param>
+            <remarks>
+            <para>
+            Rollover the file(s) to date/time tagged file(s).
+            Resets curSizeRollBackups. 
+            If fileIsOpen is set then the new file is opened (through SafeOpenFile).
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.RollFile(System.String,System.String)">
+            <summary>
+            Renames file <paramref name="fromFile"/> to file <paramref name="toFile"/>.
+            </summary>
+            <param name="fromFile">Name of existing file to roll.</param>
+            <param name="toFile">New name for file.</param>
+            <remarks>
+            <para>
+            Renames file <paramref name="fromFile"/> to file <paramref name="toFile"/>. It
+            also checks for existence of target file and deletes if it does.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.FileExists(System.String)">
+            <summary>
+            Test if a file exists at a specified path
+            </summary>
+            <param name="path">the path to the file</param>
+            <returns>true if the file exists</returns>
+            <remarks>
+            <para>
+            Test if a file exists at a specified path
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.DeleteFile(System.String)">
+            <summary>
+            Deletes the specified file if it exists.
+            </summary>
+            <param name="fileName">The file to delete.</param>
+            <remarks>
+            <para>
+            Delete a file if is exists.
+            The file is first moved to a new filename then deleted.
+            This allows the file to be removed even when it cannot
+            be deleted, but it still can be moved.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.RollOverSize">
+            <summary>
+            Implements file roll base on file size.
+            </summary>
+            <remarks>
+            <para>
+            If the maximum number of size based backups is reached
+            (<c>curSizeRollBackups == maxSizeRollBackups</c>) then the oldest
+            file is deleted -- its index determined by the sign of countDirection.
+            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>}. Moreover, <c>File</c> is
+            renamed <c>File.1</c> and closed.
+            </para>
+            <para>
+            A new file is created to receive further log output.
+            </para>
+            <para>
+            If <c>maxSizeRollBackups</c> is equal to zero, then the
+            <c>File</c> is truncated with no backup files created.
+            </para>
+            <para>
+            If <c>maxSizeRollBackups</c> &lt; 0, then <c>File</c> is
+            renamed if needed and no files are deleted.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.RollOverRenameFiles(System.String)">
+            <summary>
+            Implements file roll.
+            </summary>
+            <param name="baseFileName">the base name to rename</param>
+            <remarks>
+            <para>
+            If the maximum number of size based backups is reached
+            (<c>curSizeRollBackups == maxSizeRollBackups</c>) then the oldest
+            file is deleted -- its index determined by the sign of countDirection.
+            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>}. 
+            </para>
+            <para>
+            If <c>maxSizeRollBackups</c> is equal to zero, then the
+            <c>File</c> is truncated with no backup files created.
+            </para>
+            <para>
+            If <c>maxSizeRollBackups</c> &lt; 0, then <c>File</c> is
+            renamed if needed and no files are deleted.
+            </para>
+            <para>
+            This is called by <see cref="M:log4net.Appender.RollingFileAppender.RollOverSize"/> to rename the files.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.RollingFileAppender.NextCheckDate(System.DateTime,log4net.Appender.RollingFileAppender.RollPoint)">
+            <summary>
+            Get the start time of the next window for the current rollpoint
+            </summary>
+            <param name="currentDateTime">the current date</param>
+            <param name="rollPoint">the type of roll point we are working with</param>
+            <returns>the start time for the next roll point an interval after the currentDateTime date</returns>
+            <remarks>
+            <para>
+            Returns the date of the next roll point after the currentDateTime date passed to the method.
+            </para>
+            <para>
+            The basic strategy is to subtract the time parts that are less significant
+            than the rollpoint from the current time. This should roll the time back to
+            the start of the time window for the current rollpoint. Then we add 1 window
+            worth of time and get the start time of the next window for the rollpoint.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.m_dateTime">
+            <summary>
+            This object supplies the current date/time.  Allows test code to plug in
+            a method to control this class when testing date/time based rolling.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.m_datePattern">
+            <summary>
+            The date pattern. By default, the pattern is set to <c>".yyyy-MM-dd"</c> 
+            meaning daily rollover.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.m_scheduledFilename">
+            <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>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.m_nextCheck">
+            <summary>
+            The timestamp when we shall next recompute the filename.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.m_now">
+            <summary>
+            Holds date of last roll over
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.m_rollPoint">
+            <summary>
+            The type of rolling done
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.m_maxFileSize">
+            <summary>
+            The default maximum file size is 10MB
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.m_maxSizeRollBackups">
+            <summary>
+            There is zero backup files by default
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.m_curSizeRollBackups">
+            <summary>
+            How many sized based backups have been made so far
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.m_countDirection">
+            <summary>
+            The rolling file count direction. 
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.m_rollingStyle">
+            <summary>
+            The rolling mode used in this appender.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.m_rollDate">
+            <summary>
+            Cache flag set if we are rolling by date.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.m_rollSize">
+            <summary>
+            Cache flag set if we are rolling by size.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.m_staticLogFileName">
+            <summary>
+            Value indicating whether to always log to the same file.
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.m_baseFileName">
+            <summary>
+            FileName provided in configuration.  Used for rolling properly
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.s_date1970">
+            <summary>
+            The 1st of January 1970 in UTC
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.RollingFileAppender.DatePattern">
+            <summary>
+            Gets or sets the date pattern to be used for generating file names
+            when rolling over on date.
+            </summary>
+            <value>
+            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 
+            <see cref="T:log4net.DateFormatter.SimpleDateFormatter"/>.
+            </para>
+            <para>
+            This property determines the rollover schedule when rolling over
+            on date.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.RollingFileAppender.MaxSizeRollBackups">
+            <summary>
+            Gets or sets the maximum number of backup files that are kept before
+            the oldest is erased.
+            </summary>
+            <value>
+            The maximum number of backup files that are kept before the oldest is
+            erased.
+            </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="P:log4net.Appender.RollingFileAppender.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 
+            files are rolled over unless <see cref="P:log4net.Appender.RollingFileAppender.CountDirection"/> is used.
+            </para>
+            <para>
+            The maximum applies to <b>each</b> time based group of files and 
+            <b>not</b> the total.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.RollingFileAppender.MaxFileSize">
+            <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 
+            rolled over to backup files.
+            </value>
+            <remarks>
+            <para>
+            This property is equivalent to <see cref="P:log4net.Appender.RollingFileAppender.MaximumFileSize"/> except
+            that it is required for differentiating the setter taking a
+            <see cref="T:System.Int64"/> argument from the setter taking a <see cref="T:System.String"/> 
+            argument.
+            </para>
+            <para>
+            The default maximum file size is 10MB (10*1024*1024).
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.RollingFileAppender.MaximumFileSize">
+            <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 
+            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. 
+            </para>
+            <para>
+            For example, the value "10KB" will be interpreted as 10240 bytes.
+            </para>
+            <para>
+            The default maximum file size is 10MB.
+            </para>
+            <para>
+            If you have the option to set the maximum file size programmatically
+            consider using the <see cref="P:log4net.Appender.RollingFileAppender.MaxFileSize"/> property instead as this
+            allows you to set the size in bytes as a <see cref="T:System.Int64"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.RollingFileAppender.CountDirection">
+            <summary>
+            Gets or sets the rolling file count direction. 
+            </summary>
+            <value>
+            The rolling file count direction.
+            </value>
+            <remarks>
+            <para>
+            Indicates if the current file is the lowest numbered file or the
+            highest numbered file.
+            </para>
+            <para>
+            By default newer files have lower numbers (<see cref="P:log4net.Appender.RollingFileAppender.CountDirection"/> &lt; 0),
+            i.e. log.1 is most recent, log.5 is the 5th backup, etc...
+            </para>
+            <para>
+            <see cref="P:log4net.Appender.RollingFileAppender.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="P:log4net.Appender.RollingFileAppender.CountDirection"/> &gt;= 0 to reduce 
+            rollover costs.
+            </para>
+            <para>The default file count direction is -1.</para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.RollingFileAppender.RollingStyle">
+            <summary>
+            Gets or sets the rolling style.
+            </summary>
+            <value>The rolling style.</value>
+            <remarks>
+            <para>
+            The default rolling style is <see cref="F:log4net.Appender.RollingFileAppender.RollingMode.Composite"/>.
+            </para>
+            <para>
+            When set to <see cref="F:log4net.Appender.RollingFileAppender.RollingMode.Once"/> this appender's
+            <see cref="P:log4net.Appender.FileAppender.AppendToFile"/> property is set to <c>false</c>, otherwise
+            the appender would append to a single file rather than rolling
+            the file each time it is opened.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.RollingFileAppender.StaticLogFileName">
+            <summary>
+            Gets or sets a value indicating whether to always log to
+            the same file.
+            </summary>
+            <value>
+            <c>true</c> if always should be logged to the same file, otherwise <c>false</c>.
+            </value>
+            <remarks>
+            <para>
+            By default file.log is always the current file.  Optionally
+            file.log.yyyy-mm-dd for current formatted datePattern can by the currently
+            logging file (or file.log.curSizeRollBackup or even
+            file.log.yyyy-mm-dd.curSizeRollBackup).
+            </para>
+            <para>
+            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>
+        </member>
+        <member name="T:log4net.Appender.RollingFileAppender.RollingMode">
+            <summary>
+            Style of rolling to use
+            </summary>
+            <remarks>
+            <para>
+            Style of rolling to use
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.RollingMode.Once">
+            <summary>
+            Roll files once per program execution
+            </summary>
+            <remarks>
+            <para>
+            Roll files once per program execution.
+            Well really once each time this appender is
+            configured.
+            </para>
+            <para>
+            Setting this option also sets <c>AppendToFile</c> to
+            <c>false</c> on the <c>RollingFileAppender</c>, otherwise
+            this appender would just be a normal file appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.RollingMode.Size">
+            <summary>
+            Roll files based only on the size of the file
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.RollingMode.Date">
+            <summary>
+            Roll files based only on the date
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.RollingMode.Composite">
+            <summary>
+            Roll files based on both the size and date of the file
+            </summary>
+        </member>
+        <member name="T:log4net.Appender.RollingFileAppender.RollPoint">
+            <summary>
+            The code assumes that the following 'time' constants are in a increasing sequence.
+            </summary>
+            <remarks>
+            <para>
+            The code assumes that the following 'time' constants are in a increasing sequence.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.RollPoint.InvalidRollPoint">
+            <summary>
+            Roll the log not based on the date
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.RollPoint.TopOfMinute">
+            <summary>
+            Roll the log for each minute
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.RollPoint.TopOfHour">
+            <summary>
+            Roll the log for each hour
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.RollPoint.HalfDay">
+            <summary>
+            Roll the log twice a day (midday and midnight)
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.RollPoint.TopOfDay">
+            <summary>
+            Roll the log each day (midnight)
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.RollPoint.TopOfWeek">
+            <summary>
+            Roll the log each week
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.RollingFileAppender.RollPoint.TopOfMonth">
+            <summary>
+            Roll the log each month
+            </summary>
+        </member>
+        <member name="T:log4net.Appender.RollingFileAppender.IDateTime">
+            <summary>
+            This interface is used to supply Date/Time information to the <see cref="T:log4net.Appender.RollingFileAppender"/>.
+            </summary>
+            <remarks>
+            This interface is used to supply Date/Time information to the <see cref="T:log4net.Appender.RollingFileAppender"/>.
+            Used primarily to allow test classes to plug themselves in so they can
+            supply test date/times.
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.RollingFileAppender.IDateTime.Now">
+            <summary>
+            Gets the <i>current</i> time.
+            </summary>
+            <value>The <i>current</i> time.</value>
+            <remarks>
+            <para>
+            Gets the <i>current</i> time.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.RollingFileAppender.DefaultDateTime">
+            <summary>
+            Default implementation of <see cref="T:log4net.Appender.RollingFileAppender.IDateTime"/> that returns the current time.
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.RollingFileAppender.DefaultDateTime.Now">
+            <summary>
+            Gets the <b>current</b> time.
+            </summary>
+            <value>The <b>current</b> time.</value>
+            <remarks>
+            <para>
+            Gets the <b>current</b> time.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.SmtpAppender">
+            <summary>
+            Send an e-mail when a specific logging event occurs, typically on errors 
+            or fatal errors.
+            </summary>
+            <remarks>
+            <para>
+            The number of logging events delivered in this e-mail depend on
+            the value of <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> option. The
+            <see cref="T:log4net.Appender.SmtpAppender"/> keeps only the last
+            <see cref="P:log4net.Appender.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">
+            Authentication and setting the server Port are only available on the MS .NET 1.1 runtime.
+            For these features to be enabled you need to ensure that you are using a version of
+            the log4net assembly that is built against the MS .NET 1.1 framework and that you are
+            running the your application on the MS .NET 1.1 runtime. On all other platforms only sending
+            unauthenticated messages to a server listening on port 25 (the default) is supported.
+            </note>
+            <para>
+            Authentication is supported by setting the <see cref="P:log4net.Appender.SmtpAppender.Authentication"/> property to
+            either <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic"/> or <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Ntlm"/>.
+            If using <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic"/> authentication then the <see cref="P:log4net.Appender.SmtpAppender.Username"/>
+            and <see cref="P:log4net.Appender.SmtpAppender.Password"/> properties must also be set.
+            </para>
+            <para>
+            To set the SMTP server port use the <see cref="P:log4net.Appender.SmtpAppender.Port"/> property. The default port is 25.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Appender.SmtpAppender.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+            <remarks>
+            <para>
+            Default constructor
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.SmtpAppender.SendBuffer(log4net.Core.LoggingEvent[])">
+            <summary>
+            Sends the contents of the cyclic buffer as an e-mail message.
+            </summary>
+            <param name="events">The logging events to send.</param>
+        </member>
+        <member name="M:log4net.Appender.SmtpAppender.SendEmail(System.String)">
+            <summary>
+            Send the email message
+            </summary>
+            <param name="messageBody">the body text to include in the mail</param>
+        </member>
+        <member name="P:log4net.Appender.SmtpAppender.To">
+            <summary>
+            Gets or sets a semicolon-delimited list of recipient e-mail addresses.
+            </summary>
+            <value>
+            A semicolon-delimited list of e-mail addresses.
+            </value>
+            <remarks>
+            <para>
+            A semicolon-delimited list of recipient e-mail addresses.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.SmtpAppender.From">
+            <summary>
+            Gets or sets the e-mail address of the sender.
+            </summary>
+            <value>
+            The e-mail address of the sender.
+            </value>
+            <remarks>
+            <para>
+            The e-mail address of the sender.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.SmtpAppender.Subject">
+            <summary>
+            Gets or sets the subject line of the e-mail message.
+            </summary>
+            <value>
+            The subject line of the e-mail message.
+            </value>
+            <remarks>
+            <para>
+            The subject line of the e-mail message.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.SmtpAppender.SmtpHost">
+            <summary>
+            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 
+            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 
+            name of the local SMTP server is used.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.SmtpAppender.LocationInfo">
+            <summary>
+            Obsolete
+            </summary>
+            <remarks>
+            Use the BufferingAppenderSkeleton Fix methods instead 
+            </remarks>
+            <remarks>
+            <para>
+            Obsolete property.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.SmtpAppender.Authentication">
+            <summary>
+            The mode to use to authentication with the SMTP server
+            </summary>
+            <remarks>
+            <note type="caution">Authentication is only available on the MS .NET 1.1 runtime.</note>
+            <para>
+            Valid Authentication mode values are: <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.None"/>, 
+            <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic"/>, and <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Ntlm"/>. 
+            The default value is <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.None"/>. When using 
+            <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic"/> you must specify the <see cref="P:log4net.Appender.SmtpAppender.Username"/> 
+            and <see cref="P:log4net.Appender.SmtpAppender.Password"/> to use to authenticate.
+            When using <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Ntlm"/> the Windows credentials for the current
+            thread, if impersonating, or the process will be used to authenticate. 
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.SmtpAppender.Username">
+            <summary>
+            The username to use to authenticate with the SMTP server
+            </summary>
+            <remarks>
+            <note type="caution">Authentication is only available on the MS .NET 1.1 runtime.</note>
+            <para>
+            A <see cref="P:log4net.Appender.SmtpAppender.Username"/> and <see cref="P:log4net.Appender.SmtpAppender.Password"/> must be specified when 
+            <see cref="P:log4net.Appender.SmtpAppender.Authentication"/> is set to <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic"/>, 
+            otherwise the username will be ignored. 
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.SmtpAppender.Password">
+            <summary>
+            The password to use to authenticate with the SMTP server
+            </summary>
+            <remarks>
+            <note type="caution">Authentication is only available on the MS .NET 1.1 runtime.</note>
+            <para>
+            A <see cref="P:log4net.Appender.SmtpAppender.Username"/> and <see cref="P:log4net.Appender.SmtpAppender.Password"/> must be specified when 
+            <see cref="P:log4net.Appender.SmtpAppender.Authentication"/> is set to <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic"/>, 
+            otherwise the password will be ignored. 
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.SmtpAppender.Port">
+            <summary>
+            The port on which the SMTP server is listening
+            </summary>
+            <remarks>
+            <note type="caution">Server Port is only available on the MS .NET 1.1 runtime.</note>
+            <para>
+            The port on which the SMTP server is listening. The default
+            port is <c>25</c>. The Port can only be changed when running on
+            the MS .NET 1.1 runtime.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.SmtpAppender.Priority">
+            <summary>
+            Gets or sets the priority of the e-mail message
+            </summary>
+            <value>
+            One of the <see cref="T:System.Web.Mail.MailPriority"/> values.
+            </value>
+            <remarks>
+            <para>
+            Sets the priority of the e-mails generated by this
+            appender. The default priority is <see cref="F:System.Web.Mail.MailPriority.Normal"/>.
+            </para>
+            <para>
+            If you are using this appender to report errors then
+            you may want to set the priority to <see cref="F:System.Web.Mail.MailPriority.High"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.SmtpAppender.RequiresLayout">
+            <summary>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </summary>
+            <value><c>true</c></value>
+            <remarks>
+            <para>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.SmtpAppender.SmtpAuthentication">
+            <summary>
+            Values for the <see cref="P:log4net.Appender.SmtpAppender.Authentication"/> property.
+            </summary>
+            <remarks>
+            <para>
+            SMTP authentication modes.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.SmtpAppender.SmtpAuthentication.None">
+            <summary>
+            No authentication
+            </summary>
+        </member>
+        <member name="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic">
+            <summary>
+            Basic authentication.
+            </summary>
+            <remarks>
+            Requires a username and password to be supplied
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Ntlm">
+            <summary>
+            Integrated authentication
+            </summary>
+            <remarks>
+            Uses the Windows credentials from the current thread or process to authenticate.
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.SmtpPickupDirAppender">
+            <summary>
+            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="P:log4net.Appender.SmtpPickupDirAppender.PickupDir"/>. This allows services such
+            as the IIS SMTP agent to manage sending the messages.
+            </summary>
+            <remarks>
+            <para>
+            The configuration for this appender is identical to that of the <c>SMTPAppender</c>,
+            except that instead of specifying the <c>SMTPAppender.SMTPHost</c> you specify
+            <see cref="P:log4net.Appender.SmtpPickupDirAppender.PickupDir"/>.
+            </para>
+            <para>
+            The number of logging events delivered in this e-mail depend on
+            the value of <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> option. The
+            <see cref="T:log4net.Appender.SmtpPickupDirAppender"/> keeps only the last
+            <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> logging events in its 
+            cyclic buffer. This keeps memory requirements at a reasonable level while 
+            still delivering useful application context.
+            </para>
+            </remarks>
+            <author>Niall Daley</author>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Appender.SmtpPickupDirAppender.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+            <remarks>
+            <para>
+            Default constructor
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.SmtpPickupDirAppender.SendBuffer(log4net.Core.LoggingEvent[])">
+            <summary>
+            Sends the contents of the cyclic buffer as an e-mail message.
+            </summary>
+            <param name="events">The logging events to send.</param>
+            <remarks>
+            <para>
+            Sends the contents of the cyclic buffer as an e-mail message.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.SmtpPickupDirAppender.ActivateOptions">
+            <summary>
+            Activate the options on this appender. 
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Appender.SmtpPickupDirAppender.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Appender.SmtpPickupDirAppender.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Appender.SmtpPickupDirAppender.ActivateOptions"/> must be called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.SmtpPickupDirAppender.ConvertToFullPath(System.String)">
+            <summary>
+            Convert a path into a fully qualified path.
+            </summary>
+            <param name="path">The path to convert.</param>
+            <returns>The fully qualified path.</returns>
+            <remarks>
+            <para>
+            Converts the path specified to a fully
+            qualified path. If the path is relative it is
+            taken as relative from the application base 
+            directory.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.SmtpPickupDirAppender.m_securityContext">
+            <summary>
+            The security context to use for privileged calls
+            </summary>
+        </member>
+        <member name="P:log4net.Appender.SmtpPickupDirAppender.To">
+            <summary>
+            Gets or sets a semicolon-delimited list of recipient e-mail addresses.
+            </summary>
+            <value>
+            A semicolon-delimited list of e-mail addresses.
+            </value>
+            <remarks>
+            <para>
+            A semicolon-delimited list of e-mail addresses.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.SmtpPickupDirAppender.From">
+            <summary>
+            Gets or sets the e-mail address of the sender.
+            </summary>
+            <value>
+            The e-mail address of the sender.
+            </value>
+            <remarks>
+            <para>
+            The e-mail address of the sender.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.SmtpPickupDirAppender.Subject">
+            <summary>
+            Gets or sets the subject line of the e-mail message.
+            </summary>
+            <value>
+            The subject line of the e-mail message.
+            </value>
+            <remarks>
+            <para>
+            The subject line of the e-mail message.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.SmtpPickupDirAppender.PickupDir">
+            <summary>
+            Gets or sets the path to write the messages to.
+            </summary>
+            <remarks>
+            <para>
+            Gets or sets the path to write the messages to. This should be the same
+            as that used by the agent sending the messages.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.SmtpPickupDirAppender.SecurityContext">
+            <summary>
+            Gets or sets the <see cref="P:log4net.Appender.SmtpPickupDirAppender.SecurityContext"/> used to write to the pickup directory.
+            </summary>
+            <value>
+            The <see cref="P:log4net.Appender.SmtpPickupDirAppender.SecurityContext"/> used to write to the pickup directory.
+            </value>
+            <remarks>
+            <para>
+            Unless a <see cref="P:log4net.Appender.SmtpPickupDirAppender.SecurityContext"/> specified here for this appender
+            the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> is queried for the
+            security context to use. The default behavior is to use the security context
+            of the current thread.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.SmtpPickupDirAppender.RequiresLayout">
+            <summary>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </summary>
+            <value><c>true</c></value>
+            <remarks>
+            <para>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.TelnetAppender">
+            <summary>
+            Appender that allows clients to connect via Telnet to receive log messages
+            </summary>
+            <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 
+            over a TCP/IP socket.
+            This allows simple remote monitoring of application logging.
+            </para>
+            <para>
+            The default <see cref="P:log4net.Appender.TelnetAppender.Port"/> is 23 (the telnet port).
+            </para>
+            </remarks>
+            <author>Keith Long</author>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Appender.TelnetAppender.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+            <remarks>
+            <para>
+            Default constructor
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TelnetAppender.OnClose">
+            <summary>
+            Overrides the parent method to close the socket handler
+            </summary>
+            <remarks>
+            <para>
+            Closes all the outstanding connections.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TelnetAppender.ActivateOptions">
+            <summary>
+            Initialize the appender based on the options set.
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Appender.TelnetAppender.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Appender.TelnetAppender.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Appender.TelnetAppender.ActivateOptions"/> must be called again.
+            </para>
+            <para>
+            Create the socket handler and wait for connections
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TelnetAppender.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            Writes the logging event to each connected client.
+            </summary>
+            <param name="loggingEvent">The event to log.</param>
+            <remarks>
+            <para>
+            Writes the logging event to each connected client.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.TelnetAppender.Port">
+            <summary>
+            Gets or sets the TCP port number on which this <see cref="T:log4net.Appender.TelnetAppender"/> will listen for connections.
+            </summary>
+            <value>
+            An integer value in the range <see cref="F:System.Net.IPEndPoint.MinPort"/> to <see cref="F:System.Net.IPEndPoint.MaxPort"/> 
+            indicating the TCP port number on which this <see cref="T:log4net.Appender.TelnetAppender"/> will listen for connections.
+            </value>
+            <remarks>
+            <para>
+            The default value is 23 (the telnet port).
+            </para>
+            </remarks>
+            <exception cref="T:System.ArgumentOutOfRangeException">The value specified is less than <see cref="F:System.Net.IPEndPoint.MinPort"/> 
+            or greater than <see cref="F:System.Net.IPEndPoint.MaxPort"/>.</exception>
+        </member>
+        <member name="P:log4net.Appender.TelnetAppender.RequiresLayout">
+            <summary>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </summary>
+            <value><c>true</c></value>
+            <remarks>
+            <para>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.TelnetAppender.SocketHandler">
+            <summary>
+            Helper class to manage connected clients
+            </summary>
+            <remarks>
+            <para>
+            The SocketHandler class is used to accept connections from
+            clients.  It is threaded so that clients can connect/disconnect
+            asynchronously.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.#ctor(System.Int32)">
+            <summary>
+            Opens a new server port on <paramref ref="port"/>
+            </summary>
+            <param name="port">the local port to listen on for connections</param>
+            <remarks>
+            <para>
+            Creates a socket handler on the specified local server port.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.Send(System.String)">
+            <summary>
+            Sends a string message to each of the connected clients
+            </summary>
+            <param name="message">the text to send</param>
+            <remarks>
+            <para>
+            Sends a string message to each of the connected clients
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.AddClient(log4net.Appender.TelnetAppender.SocketHandler.SocketClient)">
+            <summary>
+            Add a client to the internal clients list
+            </summary>
+            <param name="client">client to add</param>
+        </member>
+        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.RemoveClient(log4net.Appender.TelnetAppender.SocketHandler.SocketClient)">
+            <summary>
+            Remove a client from the internal clients list
+            </summary>
+            <param name="client">client to remove</param>
+        </member>
+        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.OnConnect(System.IAsyncResult)">
+            <summary>
+            Callback used to accept a connection on the server socket
+            </summary>
+            <param name="asyncResult">The result of the asynchronous operation</param>
+            <remarks>
+            <para>
+            On connection adds to the list of connections 
+            if there are two many open connections you will be disconnected
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.Dispose">
+            <summary>
+            Close all network connections
+            </summary>
+            <remarks>
+            <para>
+            Make sure we close all network connections
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.TelnetAppender.SocketHandler.HasConnections">
+            <summary>
+            Test if this handler has active connections
+            </summary>
+            <value>
+            <c>true</c> if this handler has active connections
+            </value>
+            <remarks>
+            <para>
+            This property will be <c>true</c> while this handler has
+            active connections, that is at least one connection that 
+            the handler will attempt to send a message to.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.TelnetAppender.SocketHandler.SocketClient">
+            <summary>
+            Class that represents a client connected to this handler
+            </summary>
+            <remarks>
+            <para>
+            Class that represents a client connected to this handler
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.SocketClient.#ctor(System.Net.Sockets.Socket)">
+            <summary>
+            Create this <see cref="T:log4net.Appender.TelnetAppender.SocketHandler.SocketClient"/> for the specified <see cref="T:System.Net.Sockets.Socket"/>
+            </summary>
+            <param name="socket">the client's socket</param>
+            <remarks>
+            <para>
+            Opens a stream writer on the socket.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.SocketClient.Send(System.String)">
+            <summary>
+            Write a string to the client
+            </summary>
+            <param name="message">string to send</param>
+            <remarks>
+            <para>
+            Write a string to the client
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.SocketClient.Dispose">
+            <summary>
+            Cleanup the clients connection
+            </summary>
+            <remarks>
+            <para>
+            Close the socket connection.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Appender.TraceAppender">
+            <summary>
+            Appends log events to the <see cref="T:System.Diagnostics.Trace"/> system.
+            </summary>
+            <remarks>
+            <para>
+            The application configuration file can be used to control what listeners 
+            are actually used. See the MSDN documentation for the 
+            <see cref="T: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 passed as the value for the category name to the Write method.
+            </para>
+            <para>
+            <b>Compact Framework</b><br/>
+            The Compact Framework does not support the <see cref="T:System.Diagnostics.Trace"/>
+            class for any operation except <c>Assert</c>. When using the Compact Framework this
+            appender will write to the <see cref="T:System.Diagnostics.Debug"/> system rather than
+            the Trace system. This appender will therefore behave like the <see cref="T:log4net.Appender.DebugAppender"/>.
+            </para>
+            </remarks>
+            <author>Douglas de la Torre</author>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Appender.TraceAppender.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.TraceAppender"/>.
+            </summary>
+            <remarks>
+            <para>
+            Default constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TraceAppender.#ctor(log4net.Layout.ILayout)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Appender.TraceAppender"/> 
+            with a specified layout.
+            </summary>
+            <param name="layout">The layout to use with this appender.</param>
+            <remarks>
+            <para>
+            Obsolete constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Appender.TraceAppender.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            Writes the logging event to the <see cref="T:System.Diagnostics.Trace"/> system.
+            </summary>
+            <param name="loggingEvent">The event to log.</param>
+            <remarks>
+            <para>
+            Writes the logging event to the <see cref="T:System.Diagnostics.Trace"/> system.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Appender.TraceAppender.m_immediateFlush">
+            <summary>
+            Immediate flush means that the underlying writer 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 
+            actually written. If <see cref="P:log4net.Appender.TraceAppender.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
+            when the application crashes.
+            </para>
+            <para>
+            The default value is <c>true</c>.</para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.TraceAppender.ImmediateFlush">
+            <summary>
+            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>
+            <para>
+            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
+            be recorded on disk when the application exits. This is a high
+            price to pay even for a 20% performance gain.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Appender.TraceAppender.RequiresLayout">
+            <summary>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </summary>
+            <value><c>true</c></value>
+            <remarks>
+            <para>
+            This appender requires a <see cref="N:log4net.Layout"/> to be set.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Config.AliasDomainAttribute">
+            <summary>
+            Assembly level attribute that specifies a domain to alias to this assembly's repository.
+            </summary>
+            <remarks>
+            <para>
+            <b>AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute.</b>
+            </para>
+            <para>
+            An assembly's logger repository is defined by its <see cref="T:log4net.Config.DomainAttribute"/>,
+            however this can be overridden by an assembly loaded before the target assembly.
+            </para>
+            <para>
+            An assembly can alias another assembly's domain to its repository by
+            specifying this attribute with the name of the target domain.
+            </para>
+            <para>
+            This attribute can only be specified on the assembly and may be used
+            as many times as necessary to alias all the required domains.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Config.AliasRepositoryAttribute">
+            <summary>
+            Assembly level attribute that specifies a repository to alias to this assembly's repository.
+            </summary>
+            <remarks>
+            <para>
+            An assembly's logger repository is defined by its <see cref="T:log4net.Config.RepositoryAttribute"/>,
+            however this can be overridden by an assembly loaded before the target assembly.
+            </para>
+            <para>
+            An assembly can alias another assembly's repository to its repository by
+            specifying this attribute with the name of the target repository.
+            </para>
+            <para>
+            This attribute can only be specified on the assembly and may be used
+            as many times as necessary to alias all the required repositories.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Config.AliasRepositoryAttribute.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Config.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="T:log4net.Config.AliasRepositoryAttribute"/> class with 
+            the specified repository to alias to this assembly's repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Config.AliasRepositoryAttribute.Name">
+            <summary>
+            Gets or sets the repository to alias to this assemby's repository.
+            </summary>
+            <value>
+            The repository to alias to this assemby's repository.
+            </value>
+            <remarks>
+            <para>
+            The name of the repository to alias to this assemby's repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.AliasDomainAttribute.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Config.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>
+            <remarks>
+            <para>
+            Obsolete. Use <see cref="T:log4net.Config.AliasRepositoryAttribute"/> instead of <see cref="T:log4net.Config.AliasDomainAttribute"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Config.BasicConfigurator">
+            <summary>
+            Use this class to quickly configure a <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/>.
+            </summary>
+            <remarks>
+            <para>
+            Allows very simple programmatic configuration of log4net.
+            </para>
+            <para>
+            Only one appender can be configured using this configurator.
+            The appender is set at the root of the hierarchy and all logging
+            events will be delivered to that appender.
+            </para>
+            <para>
+            Appenders can also implement the <see cref="T:log4net.Core.IOptionHandler"/> interface. Therefore
+            they would require that the <see cref="M:log4net.Core.IOptionHandler.ActivateOptions"/> method
+            be called after the appenders properties have been configured.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Config.BasicConfigurator.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Config.BasicConfigurator"/> class. 
+            </summary>
+            <remarks>
+            <para>
+            Uses a private access modifier to prevent instantiation of this class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.BasicConfigurator.Configure">
+            <summary>
+            Initializes the log4net system with a default configuration.
+            </summary>
+            <remarks>
+            <para>
+            Initializes the log4net logging system using a <see cref="T:log4net.Appender.ConsoleAppender"/>
+            that will write to <c>Console.Out</c>. The log messages are
+            formatted using the <see cref="T:log4net.Layout.PatternLayout"/> layout object
+            with the <see cref="F:log4net.Layout.PatternLayout.DetailConversionPattern"/>
+            layout style.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.BasicConfigurator.Configure(log4net.Appender.IAppender)">
+            <summary>
+            Initializes the log4net system using the specified appender.
+            </summary>
+            <param name="appender">The appender to use to log all logging events.</param>
+            <remarks>
+            <para>
+            Initializes the log4net system using the specified appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.BasicConfigurator.Configure(log4net.Repository.ILoggerRepository)">
+            <summary>
+            Initializes the <see cref="T:log4net.Repository.ILoggerRepository"/> with a default configuration.
+            </summary>
+            <param name="repository">The repository to configure.</param>
+            <remarks>
+            <para>
+            Initializes the specified repository using a <see cref="T:log4net.Appender.ConsoleAppender"/>
+            that will write to <c>Console.Out</c>. The log messages are
+            formatted using the <see cref="T:log4net.Layout.PatternLayout"/> layout object
+            with the <see cref="F:log4net.Layout.PatternLayout.DetailConversionPattern"/>
+            layout style.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.BasicConfigurator.Configure(log4net.Repository.ILoggerRepository,log4net.Appender.IAppender)">
+            <summary>
+            Initializes the <see cref="T:log4net.Repository.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="T:log4net.Repository.ILoggerRepository"/> using the specified appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Config.ConfiguratorAttribute">
+            <summary>
+            Base class for all log4net configuration attributes.
+            </summary>
+            <remarks>
+            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.
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Config.ConfiguratorAttribute.#ctor(System.Int32)">
+            <summary>
+            Constructor used by subclasses.
+            </summary>
+            <param name="priority">the ordering priority for this configurator</param>
+            <remarks>
+            <para>
+            The <paramref name="priority"/> is used to order the configurator
+            attributes before they are invoked. Higher priority configurators are executed
+            before lower priority ones.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.ConfiguratorAttribute.Configure(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
+            <summary>
+            Configures the <see cref="T:log4net.Repository.ILoggerRepository"/> for the specified assembly.
+            </summary>
+            <param name="sourceAssembly">The assembly that this attribute was defined on.</param>
+            <param name="targetRepository">The repository to configure.</param>
+            <remarks>
+            <para>
+            Abstract method implemented by a subclass. When this method is called
+            the subclass should configure the <paramref name="targetRepository"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.ConfiguratorAttribute.CompareTo(System.Object)">
+            <summary>
+            Compare this instance to another ConfiguratorAttribute
+            </summary>
+            <param name="obj">the object to compare to</param>
+            <returns>see <see cref="M:System.IComparable.CompareTo(System.Object)"/></returns>
+            <remarks>
+            <para>
+            Compares the priorities of the two <see cref="T:log4net.Config.ConfiguratorAttribute"/> instances.
+            Sorts by priority in descending order. Objects with the same priority are
+            randomly ordered.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Config.DomainAttribute">
+            <summary>
+            Assembly level attribute that specifies the logging domain for the assembly.
+            </summary>
+            <remarks>
+            <para>
+            <b>DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute.</b>
+            </para>
+            <para>
+            Assemblies are mapped to logging domains. Each domain has its own
+            logging repository. This attribute specified on the assembly controls
+            the configuration of the domain. The <see cref="P:log4net.Config.RepositoryAttribute.Name"/> property specifies the name
+            of the domain that this assembly is a part of. The <see cref="P:log4net.Config.RepositoryAttribute.RepositoryType"/>
+            specifies the type of the repository objects to create for the domain. If 
+            this attribute is not specified and a <see cref="P:log4net.Config.RepositoryAttribute.Name"/> is not specified
+            then the assembly will be part of the default shared logging domain.
+            </para>
+            <para>
+            This attribute can only be specified on the assembly and may only be used
+            once per assembly.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Config.RepositoryAttribute">
+            <summary>
+            Assembly level attribute that specifies the logging repository for the assembly.
+            </summary>
+            <remarks>
+            <para>
+            Assemblies are mapped to logging repository. This attribute specified 
+            on the assembly controls
+            the configuration of the repository. The <see cref="P:log4net.Config.RepositoryAttribute.Name"/> property specifies the name
+            of the repository that this assembly is a part of. The <see cref="P:log4net.Config.RepositoryAttribute.RepositoryType"/>
+            specifies the type of the <see cref="T:log4net.Repository.ILoggerRepository"/> object 
+            to create for the assembly. If this attribute is not specified or a <see cref="P:log4net.Config.RepositoryAttribute.Name"/> 
+            is not specified then the assembly will be part of the default shared logging repository.
+            </para>
+            <para>
+            This attribute can only be specified on the assembly and may only be used
+            once per assembly.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Config.RepositoryAttribute.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Config.RepositoryAttribute"/> class.
+            </summary>
+            <remarks>
+            <para>
+            Default constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.RepositoryAttribute.#ctor(System.String)">
+            <summary>
+            Initialize a new instance of the <see cref="T:log4net.Config.RepositoryAttribute"/> class 
+            with the name of the repository.
+            </summary>
+            <param name="name">The name of the repository.</param>
+            <remarks>
+            <para>
+            Initialize the attribute with the name for the assembly's repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Config.RepositoryAttribute.Name">
+            <summary>
+            Gets or sets the name of the logging repository.
+            </summary>
+            <value>
+            The string name to use as the name of the repository associated with this
+            assembly.
+            </value>
+            <remarks>
+            <para>
+            This value does not have to be unique. Several assemblies can share the
+            same repository. They will share the logging configuration of the repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Config.RepositoryAttribute.RepositoryType">
+            <summary>
+            Gets or sets the type of repository to create for this assembly.
+            </summary>
+            <value>
+            The type of repository to create for this assembly.
+            </value>
+            <remarks>
+            <para>
+            The type of the repository to create for the assembly.
+            The type must implement the <see cref="T:log4net.Repository.ILoggerRepository"/>
+            interface.
+            </para>
+            <para>
+            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="P:log4net.Config.RepositoryAttribute.RepositoryType"/> of the first assembly to call into the 
+            repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.DomainAttribute.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Config.DomainAttribute"/> class.
+            </summary>
+            <remarks>
+            <para>
+            Obsolete. Use RepositoryAttribute instead of DomainAttribute.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.DomainAttribute.#ctor(System.String)">
+            <summary>
+            Initialize a new instance of the <see cref="T:log4net.Config.DomainAttribute"/> class 
+            with the name of the domain.
+            </summary>
+            <param name="name">The name of the domain.</param>
+            <remarks>
+            <para>
+            Obsolete. Use RepositoryAttribute instead of DomainAttribute.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Config.DOMConfigurator">
+            <summary>
+            Use this class to initialize the log4net environment using an Xml tree.
+            </summary>
+            <remarks>
+            <para>
+            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
+            </para>
+            <para>
+            Configures a <see cref="T:log4net.Repository.ILoggerRepository"/> using an Xml tree.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Config.DOMConfigurator.#ctor">
+            <summary>
+            Private constructor
+            </summary>
+        </member>
+        <member name="M:log4net.Config.DOMConfigurator.Configure">
+            <summary>
+            Automatically configures the log4net system based on the 
+            application's configuration settings.
+            </summary>
+            <remarks>
+            <para>
+            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
+            </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.
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.DOMConfigurator.Configure(log4net.Repository.ILoggerRepository)">
+            <summary>
+            Automatically configures the <see cref="T:log4net.Repository.ILoggerRepository"/> using settings
+            stored in the application's configuration file.
+            </summary>
+            <remarks>
+            <para>
+            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
+            </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.
+            </remarks>
+            <param name="repository">The repository to configure.</param>
+        </member>
+        <member name="M:log4net.Config.DOMConfigurator.Configure(System.Xml.XmlElement)">
+            <summary>
+            Configures log4net using a <c>log4net</c> element
+            </summary>
+            <remarks>
+            <para>
+            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
+            </para>
+            Loads the log4net configuration from the XML element
+            supplied as <paramref name="element"/>.
+            </remarks>
+            <param name="element">The element to parse.</param>
+        </member>
+        <member name="M:log4net.Config.DOMConfigurator.Configure(log4net.Repository.ILoggerRepository,System.Xml.XmlElement)">
+            <summary>
+            Configures the <see cref="T:log4net.Repository.ILoggerRepository"/> using the specified XML 
+            element.
+            </summary>
+            <remarks>
+            <para>
+            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
+            </para>
+            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>
+        </member>
+        <member name="M:log4net.Config.DOMConfigurator.Configure(System.IO.FileInfo)">
+            <summary>
+            Configures log4net using the specified configuration file.
+            </summary>
+            <param name="configFile">The XML file to load the configuration from.</param>
+            <remarks>
+            <para>
+            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
+            </para>
+            <para>
+            The configuration file must be valid XML. It must contain
+            at least one element called <c>log4net</c> that holds
+            the log4net 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>
+            <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;
+            
+            ...
+            
+            DOMConfigurator.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>
+        </member>
+        <member name="M:log4net.Config.DOMConfigurator.Configure(System.IO.Stream)">
+            <summary>
+            Configures log4net using the specified configuration file.
+            </summary>
+            <param name="configStream">A stream to load the XML configuration from.</param>
+            <remarks>
+            <para>
+            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
+            </para>
+            <para>
+            The configuration data must be valid XML. It must contain
+            at least one element called <c>log4net</c> that holds
+            the log4net configuration data.
+            </para>
+            <para>
+            Note that this method will NOT close the stream parameter.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.DOMConfigurator.Configure(log4net.Repository.ILoggerRepository,System.IO.FileInfo)">
+            <summary>
+            Configures the <see cref="T:log4net.Repository.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>
+            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
+            </para>
+            <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>
+            <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;
+            
+            ...
+            
+            DOMConfigurator.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>
+        </member>
+        <member name="M:log4net.Config.DOMConfigurator.Configure(log4net.Repository.ILoggerRepository,System.IO.Stream)">
+            <summary>
+            Configures the <see cref="T:log4net.Repository.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>
+            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
+            </para>
+            <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>
+        </member>
+        <member name="M:log4net.Config.DOMConfigurator.ConfigureAndWatch(System.IO.FileInfo)">
+            <summary>
+            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>
+            <remarks>
+            <para>
+            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
+            </para>
+            <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="T:System.IO.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:log4net.Config.DOMConfigurator.Configure(System.IO.FileInfo)"/>.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.Config.DOMConfigurator.Configure(System.IO.FileInfo)"/>
+        </member>
+        <member name="M:log4net.Config.DOMConfigurator.ConfigureAndWatch(log4net.Repository.ILoggerRepository,System.IO.FileInfo)">
+            <summary>
+            Configures the <see cref="T:log4net.Repository.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>
+            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
+            </para>
+            <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="T:System.IO.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:log4net.Config.DOMConfigurator.Configure(System.IO.FileInfo)"/>.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.Config.DOMConfigurator.Configure(System.IO.FileInfo)"/>
+        </member>
+        <member name="T:log4net.Config.DOMConfiguratorAttribute">
+            <summary>
+            Assembly level attribute to configure the <see cref="T:log4net.Config.XmlConfigurator"/>.
+            </summary>
+            <remarks>
+            <para>
+            <b>AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute.</b>
+            </para>
+            <para>
+            This attribute may only be used at the assembly scope and can only
+            be used once per assembly.
+            </para>
+            <para>
+            Use this attribute to configure the <see cref="T:log4net.Config.XmlConfigurator"/>
+            without calling one of the <see cref="M:log4net.Config.XmlConfigurator.Configure"/>
+            methods.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Config.XmlConfiguratorAttribute">
+            <summary>
+            Assembly level attribute to configure the <see cref="T:log4net.Config.XmlConfigurator"/>.
+            </summary>
+            <remarks>
+            <para>
+            This attribute may only be used at the assembly scope and can only
+            be used once per assembly.
+            </para>
+            <para>
+            Use this attribute to configure the <see cref="T:log4net.Config.XmlConfigurator"/>
+            without calling one of the <see cref="M:log4net.Config.XmlConfigurator.Configure"/>
+            methods.
+            </para>
+            <para>
+            If neither of the <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFile"/> or <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtension"/>
+            properties are set the configuration is loaded from the application's .config file.
+            If set the <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFile"/> property takes priority over the
+            <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtension"/> property. The <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFile"/> property
+            specifies a path to a file to load the config from. The path is relative to the
+            application's base directory; <see cref="P:System.AppDomain.BaseDirectory"/>.
+            The <see cref="P:log4net.Config.XmlConfiguratorAttribute.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="P:System.AppDomain.BaseDirectory"/>.
+            For example in a console application setting the <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtension"/> to
+            <c>config</c> has the same effect as not specifying the <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFile"/> or 
+            <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtension"/> properties.
+            </para>
+            <para>
+            The <see cref="P:log4net.Config.XmlConfiguratorAttribute.Watch"/> property can be set to cause the <see cref="T:log4net.Config.XmlConfigurator"/>
+            to watch the configuration file for changes.
+            </para>
+            <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 
+            <see cref="T:log4net.Core.LoggerManager"/> methods is made from the assembly with the configuration
+            attributes. 
+            </para>
+            <para>
+            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:log4net.Config.XmlConfigurator.Configure"/> method directly.
+            </para>
+            </note>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Config.XmlConfiguratorAttribute.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+            <remarks>
+            <para>
+            Default constructor
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.XmlConfiguratorAttribute.Configure(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
+            <summary>
+            Configures the <see cref="T:log4net.Repository.ILoggerRepository"/> for the specified assembly.
+            </summary>
+            <param name="sourceAssembly">The assembly that this attribute was defined on.</param>
+            <param name="targetRepository">The repository to configure.</param>
+            <remarks>
+            <para>
+            Configure the repository using the <see cref="T:log4net.Config.XmlConfigurator"/>.
+            The <paramref name="targetRepository"/> specified must extend the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/>
+            class otherwise the <see cref="T:log4net.Config.XmlConfigurator"/> will not be able to
+            configure it.
+            </para>
+            </remarks>
+            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="repository"/> does not extend <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/>.</exception>
+        </member>
+        <member name="M:log4net.Config.XmlConfiguratorAttribute.ConfigureFromFile(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
+            <summary>
+            Attempt to load configuration from the local file system
+            </summary>
+            <param name="sourceAssembly">The assembly that this attribute was defined on.</param>
+            <param name="targetRepository">The repository to configure.</param>
+        </member>
+        <member name="M:log4net.Config.XmlConfiguratorAttribute.ConfigureFromFile(log4net.Repository.ILoggerRepository,System.IO.FileInfo)">
+            <summary>
+            Configure the specified repository using a <see cref="T:System.IO.FileInfo"/>
+            </summary>
+            <param name="targetRepository">The repository to configure.</param>
+            <param name="configFile">the FileInfo pointing to the config file</param>
+        </member>
+        <member name="M:log4net.Config.XmlConfiguratorAttribute.ConfigureFromUri(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
+            <summary>
+            Attempt to load configuration from a URI
+            </summary>
+            <param name="sourceAssembly">The assembly that this attribute was defined on.</param>
+            <param name="targetRepository">The repository to configure.</param>
+        </member>
+        <member name="P:log4net.Config.XmlConfiguratorAttribute.ConfigFile">
+            <summary>
+            Gets or sets the filename of the configuration file.
+            </summary>
+            <value>
+            The filename of the configuration file.
+            </value>
+            <remarks>
+            <para>
+            If specified, this is the name of the configuration file to use with
+            the <see cref="T:log4net.Config.XmlConfigurator"/>. This file path is relative to the
+            <b>application base</b> directory (<see cref="P:System.AppDomain.BaseDirectory"/>).
+            </para>
+            <para>
+            The <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFile"/> takes priority over the <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtension"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtension">
+            <summary>
+            Gets or sets the extension of the configuration file.
+            </summary>
+            <value>
+            The extension of the configuration file.
+            </value>
+            <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 
+            base</b> directory (<see cref="P:System.AppDomain.BaseDirectory"/>),
+            the <b>assembly file name</b> and the config file extension.
+            </para>
+            <para>
+            If the <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtension"/> is set to <c>MyExt</c> then
+            possible config file names would be: <c>MyConsoleApp.exe.MyExt</c> or
+            <c>MyClassLibrary.dll.MyExt</c>.
+            </para>
+            <para>
+            The <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFile"/> takes priority over the <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtension"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Config.XmlConfiguratorAttribute.Watch">
+            <summary>
+            Gets or sets a value indicating whether to watch the configuration file.
+            </summary>
+            <value>
+            <c>true</c> if the configuration should be watched, <c>false</c> otherwise.
+            </value>
+            <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 
+            the file is modified.
+            </para>
+            <para>
+            The config file can only be watched if it is loaded from local disk.
+            In a No-Touch (Smart Client) deployment where the application is downloaded
+            from a web server the config file may not reside on the local disk
+            and therefore it may not be able to watch it.
+            </para>
+            <note>
+            Watching configuration is not supported on the SSCLI.
+            </note>
+            </remarks>
+        </member>
+        <member name="T:log4net.Config.Log4NetConfigurationSectionHandler">
+            <summary>
+            Class to register for the log4net section of the configuration file
+            </summary>
+            <remarks>
+            The log4net section of the configuration file needs to have a section
+            handler registered. This is the section handler used. It simply returns
+            the XML element that is the root of the section.
+            </remarks>
+            <example>
+            Example of registering the log4net section handler :
+            <code lang="XML" escaped="true">
+            <configuration>
+            	<configSections>
+            		<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
+            	</configSections>
+            	<log4net>
+            		log4net configuration XML goes here
+            	</log4net>
+            </configuration>
+            </code>
+            </example>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Config.Log4NetConfigurationSectionHandler.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Config.Log4NetConfigurationSectionHandler"/> class.
+            </summary>
+            <remarks>
+            <para>
+            Default constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.Log4NetConfigurationSectionHandler.Create(System.Object,System.Object,System.Xml.XmlNode)">
+            <summary>
+            Parses the configuration section.
+            </summary>
+            <param name="parent">The configuration settings in a corresponding parent configuration section.</param>
+            <param name="configContext">The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference.</param>
+            <param name="section">The <see cref="T:System.Xml.XmlNode"/> for the log4net section.</param>
+            <returns>The <see cref="T:System.Xml.XmlNode"/> for the log4net section.</returns>
+            <remarks>
+            <para>
+            Returns the <see cref="T:System.Xml.XmlNode"/> containing the configuration data,
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Config.PluginAttribute">
+            <summary>
+            Assembly level attribute that specifies a plugin to attach to 
+            the repository.
+            </summary>
+            <remarks>
+            <para>
+            Specifies the type of a plugin to create and attach to the
+            assembly's repository. The plugin type must implement the
+            <see cref="T:log4net.Plugin.IPlugin"/> interface.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Plugin.IPluginFactory">
+            <summary>
+            Interface used to create plugins.
+            </summary>
+            <remarks>
+            <para>
+            Interface used to create  a plugin.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Plugin.IPluginFactory.CreatePlugin">
+            <summary>
+            Creates the plugin object.
+            </summary>
+            <returns>the new plugin instance</returns>
+            <remarks>
+            <para>
+            Create and return a new plugin instance.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.PluginAttribute.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Config.PluginAttribute"/> class
+            with the specified type.
+            </summary>
+            <param name="typeName">The type name of plugin to create.</param>
+            <remarks>
+            <para>
+            Create the attribute with the plugin type specified.
+            </para>
+            <para>
+            Where possible use the constructor that takes a <see cref="T:System.Type"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.PluginAttribute.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Config.PluginAttribute"/> class
+            with the specified type.
+            </summary>
+            <param name="type">The type of plugin to create.</param>
+            <remarks>
+            <para>
+            Create the attribute with the plugin type specified.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.PluginAttribute.CreatePlugin">
+            <summary>
+            Creates the plugin object defined by this attribute.
+            </summary>
+            <remarks>
+            <para>
+            Creates the instance of the <see cref="T:log4net.Plugin.IPlugin"/> object as 
+            specified by this attribute.
+            </para>
+            </remarks>
+            <returns>The plugin object.</returns>
+        </member>
+        <member name="M:log4net.Config.PluginAttribute.ToString">
+            <summary>
+            Returns a representation of the properties of this object.
+            </summary>
+            <remarks>
+            <para>
+            Overrides base class <see cref="M:System.Object.ToString"/> method to 
+            return a representation of the properties of this object.
+            </para>
+            </remarks>
+            <returns>A representation of the properties of this object</returns>
+        </member>
+        <member name="P:log4net.Config.PluginAttribute.Type">
+            <summary>
+            Gets or sets the type for the plugin.
+            </summary>
+            <value>
+            The type for the plugin.
+            </value>
+            <remarks>
+            <para>
+            The type for the plugin.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Config.PluginAttribute.TypeName">
+            <summary>
+            Gets or sets the type name for the plugin.
+            </summary>
+            <value>
+            The type name for the plugin.
+            </value>
+            <remarks>
+            <para>
+            The type name for the plugin.
+            </para>
+            <para>
+            Where possible use the <see cref="P:log4net.Config.PluginAttribute.Type"/> property instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Config.SecurityContextProviderAttribute">
+            <summary>
+            Assembly level attribute to configure the <see cref="T:log4net.Core.SecurityContextProvider"/>.
+            </summary>
+            <remarks>
+            <para>
+            This attribute may only be used at the assembly scope and can only
+            be used once per assembly.
+            </para>
+            <para>
+            Use this attribute to configure the <see cref="T:log4net.Config.XmlConfigurator"/>
+            without calling one of the <see cref="M:log4net.Config.XmlConfigurator.Configure"/>
+            methods.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Config.SecurityContextProviderAttribute.#ctor(System.Type)">
+            <summary>
+            Construct provider attribute with type specified
+            </summary>
+            <param name="providerType">the type of the provider to use</param>
+            <remarks>
+            <para>
+            The provider specified must subclass the <see cref="T:log4net.Core.SecurityContextProvider"/>
+            class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.SecurityContextProviderAttribute.Configure(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
+            <summary>
+            Configures the SecurityContextProvider
+            </summary>
+            <param name="sourceAssembly">The assembly that this attribute was defined on.</param>
+            <param name="targetRepository">The repository to configure.</param>
+            <remarks>
+            <para>
+            Creates a provider instance from the <see cref="P:log4net.Config.SecurityContextProviderAttribute.ProviderType"/> specified.
+            Sets this as the default security context provider <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Config.SecurityContextProviderAttribute.ProviderType">
+            <summary>
+            Gets or sets the type of the provider to use.
+            </summary>
+            <value>
+            the type of the provider to use.
+            </value>
+            <remarks>
+            <para>
+            The provider specified must subclass the <see cref="T:log4net.Core.SecurityContextProvider"/>
+            class.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Config.XmlConfigurator">
+            <summary>
+            Use this class to initialize the log4net environment using an Xml tree.
+            </summary>
+            <remarks>
+            <para>
+            Configures a <see cref="T:log4net.Repository.ILoggerRepository"/> using an Xml tree.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.#ctor">
+            <summary>
+            Private constructor
+            </summary>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.Configure">
+            <summary>
+            Automatically configures the log4net system based on the 
+            application's configuration settings.
+            </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="T:log4net.Config.Log4NetConfigurationSectionHandler"/> section
+            handler for the <c>log4net</c> configuration section. See the
+            <see cref="T:log4net.Config.Log4NetConfigurationSectionHandler"/> for an example.
+            </para>
+            </remarks>
+            <seealso cref="T:log4net.Config.Log4NetConfigurationSectionHandler"/>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.Configure(log4net.Repository.ILoggerRepository)">
+            <summary>
+            Automatically configures the <see cref="T:log4net.Repository.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="T:log4net.Config.Log4NetConfigurationSectionHandler"/> section
+            handler for the <c>log4net</c> configuration section. See the
+            <see cref="T:log4net.Config.Log4NetConfigurationSectionHandler"/> for an example.
+            </para>
+            </remarks>
+            <param name="repository">The repository to configure.</param>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.Configure(System.Xml.XmlElement)">
+            <summary>
+            Configures log4net using a <c>log4net</c> element
+            </summary>
+            <remarks>
+            <para>
+            Loads the log4net configuration from the XML element
+            supplied as <paramref name="element"/>.
+            </para>
+            </remarks>
+            <param name="element">The element to parse.</param>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.Configure(log4net.Repository.ILoggerRepository,System.Xml.XmlElement)">
+            <summary>
+            Configures the <see cref="T:log4net.Repository.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>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.Configure(System.IO.FileInfo)">
+            <summary>
+            Configures log4net using the specified configuration file.
+            </summary>
+            <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 log4net 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="T: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>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.Configure(System.Uri)">
+            <summary>
+            Configures log4net using the specified configuration URI.
+            </summary>
+            <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 log4net configuration data.
+            </para>
+            <para>
+            The <see cref="T:System.Net.WebRequest"/> must support the URI scheme specified.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.Configure(System.IO.Stream)">
+            <summary>
+            Configures log4net using the specified configuration data stream.
+            </summary>
+            <param name="configStream">A 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 log4net configuration data.
+            </para>
+            <para>
+            Note that this method will NOT close the stream parameter.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.Configure(log4net.Repository.ILoggerRepository,System.IO.FileInfo)">
+            <summary>
+            Configures the <see cref="T:log4net.Repository.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="T: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>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.Configure(log4net.Repository.ILoggerRepository,System.Uri)">
+            <summary>
+            Configures the <see cref="T:log4net.Repository.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="T:System.Net.WebRequest"/> must support the URI scheme specified.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.Configure(log4net.Repository.ILoggerRepository,System.IO.Stream)">
+            <summary>
+            Configures the <see cref="T:log4net.Repository.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>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatch(System.IO.FileInfo)">
+            <summary>
+            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>
+            <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="T:System.IO.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:log4net.Config.XmlConfigurator.Configure(System.IO.FileInfo)"/>.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.Config.XmlConfigurator.Configure(System.IO.FileInfo)"/>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatch(log4net.Repository.ILoggerRepository,System.IO.FileInfo)">
+            <summary>
+            Configures the <see cref="T:log4net.Repository.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="T:System.IO.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:log4net.Config.XmlConfigurator.Configure(System.IO.FileInfo)"/>.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.Config.XmlConfigurator.Configure(System.IO.FileInfo)"/>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.ConfigureFromXml(log4net.Repository.ILoggerRepository,System.Xml.XmlElement)">
+            <summary>
+            Configures the specified repository using a <c>log4net</c> element.
+            </summary>
+            <param name="repository">The hierarchy to configure.</param>
+            <param name="element">The element to parse.</param>
+            <remarks>
+            <para>
+            Loads the log4net configuration from the XML element
+            supplied as <paramref name="element"/>.
+            </para>
+            <para>
+            This method is ultimately called by one of the Configure methods 
+            to load the configuration from an <see cref="T:System.Xml.XmlElement"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler">
+            <summary>
+            Class used to watch config files.
+            </summary>
+            <remarks>
+            <para>
+            Uses the <see cref="T:System.IO.FileSystemWatcher"/> to monitor
+            changes to a specified file. Because multiple change notifications
+            may be raised when the file is modified, a timer is used to
+            compress the notifications into a single event. The timer
+            waits for <see cref="F:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.TimeoutMillis"/> time before delivering
+            the event notification. If any further <see cref="T:System.IO.FileSystemWatcher"/>
+            change notifications arrive while the timer is waiting it
+            is reset and waits again for <see cref="F:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.TimeoutMillis"/> to
+            elapse.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.TimeoutMillis">
+            <summary>
+            The default amount of time to wait after receiving notification
+            before reloading the config file.
+            </summary>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.StartWatching(log4net.Repository.ILoggerRepository,System.IO.FileInfo)">
+            <summary>
+            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>
+            <remarks>
+            <para>
+            Watch a specified config file used to configure a repository
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.m_configFile">
+            <summary>
+            Holds the FileInfo used to configure the XmlConfigurator
+            </summary>
+        </member>
+        <member name="F:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.m_repository">
+            <summary>
+            Holds the repository being configured.
+            </summary>
+        </member>
+        <member name="F:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.m_timer">
+            <summary>
+            The timer used to compress the notification events.
+            </summary>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.#ctor(log4net.Repository.ILoggerRepository,System.IO.FileInfo)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler"/> class.
+            </summary>
+            <param name="repository">The repository to configure.</param>
+            <param name="configFile">The configuration file to watch.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.ConfigureAndWatchHandler_OnChanged(System.Object,System.IO.FileSystemEventArgs)">
+            <summary>
+            Event handler used by <see cref="T:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler"/>.
+            </summary>
+            <param name="source">The <see cref="T:System.IO.FileSystemWatcher"/> firing the event.</param>
+            <param name="e">The argument indicates the file that caused the event to be fired.</param>
+            <remarks>
+            <para>
+            This handler reloads the configuration from the file when the event is fired.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.ConfigureAndWatchHandler_OnRenamed(System.Object,System.IO.RenamedEventArgs)">
+            <summary>
+            Event handler used by <see cref="T:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler"/>.
+            </summary>
+            <param name="source">The <see cref="T:System.IO.FileSystemWatcher"/> firing the event.</param>
+            <param name="e">The argument indicates the file that caused the event to be fired.</param>
+            <remarks>
+            <para>
+            This handler reloads the configuration from the file when the event is fired.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.OnWatchedFileChange(System.Object)">
+            <summary>
+            Called by the timer when the configuration has been updated.
+            </summary>
+            <param name="state">null</param>
+        </member>
+        <member name="T:log4net.Core.CompactRepositorySelector">
+            <summary>
+            The implementation of the <see cref="T:log4net.Core.IRepositorySelector"/> interface suitable
+            for use with the compact framework
+            </summary>
+            <remarks>
+            <para>
+            This <see cref="T:log4net.Core.IRepositorySelector"/> implementation is a simple
+            mapping between repository name and <see cref="T:log4net.Repository.ILoggerRepository"/>
+            object.
+            </para>
+            <para>
+            The .NET Compact Framework 1.0 does not support retrieving assembly
+            level attributes therefore unlike the <c>DefaultRepositorySelector</c>
+            this selector does not examine the calling assembly for attributes.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="T:log4net.Core.IRepositorySelector">
+            <summary>
+            Interface used by the <see cref="T:log4net.LogManager"/> to select the <see cref="T:log4net.Repository.ILoggerRepository"/>.
+            </summary>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.LogManager"/> uses a <see cref="T:log4net.Core.IRepositorySelector"/> 
+            to specify the policy for selecting the correct <see cref="T:log4net.Repository.ILoggerRepository"/> 
+            to return to the caller.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Core.IRepositorySelector.GetRepository(System.Reflection.Assembly)">
+            <summary>
+            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the specified assembly.
+            </summary>
+            <param name="assembly">The assembly to use to lookup to the <see cref="T:log4net.Repository.ILoggerRepository"/></param>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> for the assembly.</returns>
+            <remarks>
+            <para>
+            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the specified assembly.
+            </para>
+            <para>
+            How the association between <see cref="T:System.Reflection.Assembly"/> and <see cref="T:log4net.Repository.ILoggerRepository"/>
+            is made is not defined. The implementation may choose any method for
+            this association. The results of this method must be repeatable, i.e.
+            when called again with the same arguments the result must be the
+            save value.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.IRepositorySelector.GetRepository(System.String)">
+            <summary>
+            Gets the named <see cref="T:log4net.Repository.ILoggerRepository"/>.
+            </summary>
+            <param name="repositoryName">The name to use to lookup to the <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
+            <returns>The named <see cref="T:log4net.Repository.ILoggerRepository"/></returns>
+            <remarks>
+            Lookup a named <see cref="T:log4net.Repository.ILoggerRepository"/>. This is the repository created by
+            calling <see cref="M:log4net.Core.IRepositorySelector.CreateRepository(System.String,System.Type)"/>.
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.IRepositorySelector.CreateRepository(System.Reflection.Assembly,System.Type)">
+            <summary>
+            Creates a new repository for the assembly specified.
+            </summary>
+            <param name="assembly">The assembly to use to create the domain to associate with the <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
+            <param name="repositoryType">The type of repository to create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
+            <returns>The repository created.</returns>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the domain
+            specified such that a call to <see cref="M:log4net.Core.IRepositorySelector.GetRepository(System.Reflection.Assembly)"/> with the
+            same assembly specified will return the same repository instance.
+            </para>
+            <para>
+            How the association between <see cref="T:System.Reflection.Assembly"/> and <see cref="T:log4net.Repository.ILoggerRepository"/>
+            is made is not defined. The implementation may choose any method for
+            this association.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.IRepositorySelector.CreateRepository(System.String,System.Type)">
+            <summary>
+            Creates a new repository with the name specified.
+            </summary>
+            <param name="repositoryName">The name to associate with the <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
+            <param name="repositoryType">The type of repository to create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
+            <returns>The repository created.</returns>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the name
+            specified such that a call to <see cref="M:log4net.Core.IRepositorySelector.GetRepository(System.String)"/> with the
+            same name will return the same repository instance.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.IRepositorySelector.ExistsRepository(System.String)">
+            <summary>
+            Test if a named repository exists
+            </summary>
+            <param name="repositoryName">the named repository to check</param>
+            <returns><c>true</c> if the repository exists</returns>
+            <remarks>
+            <para>
+            Test if a named repository exists. Use <see cref="M:log4net.Core.IRepositorySelector.CreateRepository(System.Reflection.Assembly,System.Type)"/>
+            to create a new repository and <see cref="M:log4net.Core.IRepositorySelector.GetRepository(System.Reflection.Assembly)"/> to retrieve 
+            a repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.IRepositorySelector.GetAllRepositories">
+            <summary>
+            Gets an array of all currently defined repositories.
+            </summary>
+            <returns>
+            An array of the <see cref="T:log4net.Repository.ILoggerRepository"/> instances created by 
+            this <see cref="T:log4net.Core.IRepositorySelector"/>.</returns>
+            <remarks>
+            <para>
+            Gets an array of all of the repositories created by this selector.
+            </para>
+            </remarks>
+        </member>
+        <member name="E:log4net.Core.IRepositorySelector.LoggerRepositoryCreatedEvent">
+            <summary>
+            Event to notify that a logger repository has been created.
+            </summary>
+            <value>
+            Event to notify that a logger repository has been created.
+            </value>
+            <remarks>
+            <para>
+            Event raised when a new repository is created.
+            The event source will be this selector. The event args will
+            be a <see cref="T:log4net.Core.LoggerRepositoryCreationEventArgs"/> which
+            holds the newly created <see cref="T:log4net.Repository.ILoggerRepository"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.CompactRepositorySelector.#ctor(System.Type)">
+            <summary>
+            Create a new repository selector
+            </summary>
+            <param name="defaultRepositoryType">the type of the repositories to create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/></param>
+            <remarks>
+            <para>
+            Create an new compact repository selector.
+            The default type for repositories must be specified,
+            an appropriate value would be <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/>.
+            </para>
+            </remarks>
+            <exception cref="T:System.ArgumentNullException">throw if <paramref name="defaultRepositoryType"/> is null</exception>
+            <exception cref="T:System.ArgumentOutOfRangeException">throw if <paramref name="defaultRepositoryType"/> does not implement <see cref="T:log4net.Repository.ILoggerRepository"/></exception>
+        </member>
+        <member name="M:log4net.Core.CompactRepositorySelector.GetRepository(System.Reflection.Assembly)">
+            <summary>
+            Get the <see cref="T:log4net.Repository.ILoggerRepository"/> for the specified assembly
+            </summary>
+            <param name="assembly">not used</param>
+            <returns>The default <see cref="T:log4net.Repository.ILoggerRepository"/></returns>
+            <remarks>
+            <para>
+            The <paramref name="assembly"/> argument is not used. This selector does not create a
+            separate repository for each assembly. 
+            </para>
+            <para>
+            As a named repository is not specified the default repository is 
+            returned. The default repository is named <c>log4net-default-repository</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.CompactRepositorySelector.GetRepository(System.String)">
+            <summary>
+            Get the named <see cref="T:log4net.Repository.ILoggerRepository"/>
+            </summary>
+            <param name="repositoryName">the name of the repository to lookup</param>
+            <returns>The named <see cref="T:log4net.Repository.ILoggerRepository"/></returns>
+            <remarks>
+            <para>
+            Get the named <see cref="T:log4net.Repository.ILoggerRepository"/>. The default 
+            repository is <c>log4net-default-repository</c>. Other repositories 
+            must be created using the <see cref="M:log4net.Core.CompactRepositorySelector.CreateRepository(System.String,System.Type)"/>.
+            If the named repository does not exist an exception is thrown.
+            </para>
+            </remarks>
+            <exception cref="T:System.ArgumentNullException">throw if <paramref name="repositoryName"/> is null</exception>
+            <exception cref="T:log4net.Core.LogException">throw if the <paramref name="repositoryName"/> does not exist</exception>
+        </member>
+        <member name="M:log4net.Core.CompactRepositorySelector.CreateRepository(System.Reflection.Assembly,System.Type)">
+            <summary>
+            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="T:log4net.Repository.ILoggerRepository"/></param>
+            <returns>the repository created</returns>
+            <remarks>
+            <para>
+            The <paramref name="assembly"/> argument is not used. This selector does not create a
+            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 
+            returned. The default repository is named <c>log4net-default-repository</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.CompactRepositorySelector.CreateRepository(System.String,System.Type)">
+            <summary>
+            Create a new repository for the repository specified
+            </summary>
+            <param name="repositoryName">the repository to associate with the <see cref="T:log4net.Repository.ILoggerRepository"/></param>
+            <param name="repositoryType">the type of repository to create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/>.
+            If this param is null then the default repository type is used.</param>
+            <returns>the repository created</returns>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
+            specified such that a call to <see cref="M:log4net.Core.CompactRepositorySelector.GetRepository(System.String)"/> with the
+            same repository specified will return the same repository instance.
+            </para>
+            <para>
+            If the named repository already exists an exception will be thrown.
+            </para>
+            <para>
+            If <paramref name="repositoryType"/> is <c>null</c> then the default 
+            repository type specified to the constructor is used.
+            </para>
+            </remarks>
+            <exception cref="T:System.ArgumentNullException">throw if <paramref name="repositoryName"/> is null</exception>
+            <exception cref="T:log4net.Core.LogException">throw if the <paramref name="repositoryName"/> already exists</exception>
+        </member>
+        <member name="M:log4net.Core.CompactRepositorySelector.ExistsRepository(System.String)">
+            <summary>
+            Test if a named repository exists
+            </summary>
+            <param name="repositoryName">the named repository to check</param>
+            <returns><c>true</c> if the repository exists</returns>
+            <remarks>
+            <para>
+            Test if a named repository exists. Use <see cref="M:log4net.Core.CompactRepositorySelector.CreateRepository(System.String,System.Type)"/>
+            to create a new repository and <see cref="M:log4net.Core.CompactRepositorySelector.GetRepository(System.String)"/> to retrieve 
+            a repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.CompactRepositorySelector.GetAllRepositories">
+            <summary>
+            Gets a list of <see cref="T:log4net.Repository.ILoggerRepository"/> objects
+            </summary>
+            <returns>an array of all known <see cref="T:log4net.Repository.ILoggerRepository"/> objects</returns>
+            <remarks>
+            <para>
+            Gets an array of all of the repositories created by this selector.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.CompactRepositorySelector.OnLoggerRepositoryCreatedEvent(log4net.Repository.ILoggerRepository)">
+            <summary>
+            Notify the registered listeners that the repository has been created
+            </summary>
+            <param name="repository">The repository that has been created</param>
+            <remarks>
+            <para>
+            Raises the <event cref="E:log4net.Core.CompactRepositorySelector.LoggerRepositoryCreatedEvent">LoggerRepositoryCreatedEvent</event>
+            event.
+            </para>
+            </remarks>
+        </member>
+        <member name="E:log4net.Core.CompactRepositorySelector.LoggerRepositoryCreatedEvent">
+            <summary>
+            Event to notify that a logger repository has been created.
+            </summary>
+            <value>
+            Event to notify that a logger repository has been created.
+            </value>
+            <remarks>
+            <para>
+            Event raised when a new repository is created.
+            The event source will be this selector. The event args will
+            be a <see cref="T:log4net.Core.LoggerRepositoryCreationEventArgs"/> which
+            holds the newly created <see cref="T:log4net.Repository.ILoggerRepository"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.DefaultRepositorySelector">
+            <summary>
+            The default implementation of the <see cref="T:log4net.Core.IRepositorySelector"/> interface.
+            </summary>
+            <remarks>
+            <para>
+            Uses attributes defined on the calling assembly to determine how to
+            configure the hierarchy for the repository.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Core.DefaultRepositorySelector.#ctor(System.Type)">
+            <summary>
+            Creates a new repository selector.
+            </summary>
+            <param name="defaultRepositoryType">The type of the repositories to create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/></param>
+            <remarks>
+            <para>
+            Create an new repository selector.
+            The default type for repositories must be specified,
+            an appropriate value would be <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/>.
+            </para>
+            </remarks>
+            <exception cref="T:System.ArgumentNullException"><paramref name="defaultRepositoryType"/> is <see langword="null"/>.</exception>
+            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="defaultRepositoryType"/> does not implement <see cref="T:log4net.Repository.ILoggerRepository"/>.</exception>
+        </member>
+        <member name="M:log4net.Core.DefaultRepositorySelector.GetRepository(System.Reflection.Assembly)">
+            <summary>
+            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the specified assembly.
+            </summary>
+            <param name="repositoryAssembly">The assembly use to lookup the <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
+            <remarks>
+            <para>
+            The type of the <see cref="T:log4net.Repository.ILoggerRepository"/> created and the repository 
+            to create can be overridden by specifying the <see cref="T:log4net.Config.RepositoryAttribute"/> 
+            attribute on the <paramref name="repositoryAssembly"/>.
+            </para>
+            <para>
+            The default values are to use the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> 
+            implementation of the <see cref="T:log4net.Repository.ILoggerRepository"/> interface and to use the
+            <see cref="P:System.Reflection.AssemblyName.Name"/> as the name of the repository.
+            </para>
+            <para>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be automatically configured using 
+            any <see cref="T:log4net.Config.ConfiguratorAttribute"/> attributes defined on
+            the <paramref name="repositoryAssembly"/>.
+            </para>
+            </remarks>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> for the assembly</returns>
+            <exception cref="T:System.ArgumentNullException"><paramref name="repositoryAssembly"/> is <see langword="null"/>.</exception>
+        </member>
+        <member name="M:log4net.Core.DefaultRepositorySelector.GetRepository(System.String)">
+            <summary>
+            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the specified repository.
+            </summary>
+            <param name="repositoryName">The repository to use to lookup the <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> for the specified repository.</returns>
+            <remarks>
+            <para>
+            Returns the named repository. If <paramref name="repositoryName"/> is <c>null</c>
+            a <see cref="T:System.ArgumentNullException"/> is thrown. If the repository 
+            does not exist a <see cref="T:log4net.Core.LogException"/> is thrown.
+            </para>
+            <para>
+            Use <see cref="M:log4net.Core.DefaultRepositorySelector.CreateRepository(System.String,System.Type)"/> to create a repository.
+            </para>
+            </remarks>
+            <exception cref="T:System.ArgumentNullException"><paramref name="repositoryName"/> is <see langword="null"/>.</exception>
+            <exception cref="T:log4net.Core.LogException"><paramref name="repositoryName"/> does not exist.</exception>
+        </member>
+        <member name="M:log4net.Core.DefaultRepositorySelector.CreateRepository(System.Reflection.Assembly,System.Type)">
+            <summary>
+            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="T:log4net.Repository.ILoggerRepository"/>.</param>
+            <param name="repositoryType">The type of repository to create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
+            <returns>The repository created.</returns>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
+            specified such that a call to <see cref="M:log4net.Core.DefaultRepositorySelector.GetRepository(System.Reflection.Assembly)"/> with the
+            same assembly specified will return the same repository instance.
+            </para>
+            <para>
+            The type of the <see cref="T:log4net.Repository.ILoggerRepository"/> created and
+            the repository to create can be overridden by specifying the
+            <see cref="T:log4net.Config.RepositoryAttribute"/> attribute on the 
+            <paramref name="repositoryAssembly"/>.  The default values are to use the 
+            <paramref name="repositoryType"/> implementation of the 
+            <see cref="T:log4net.Repository.ILoggerRepository"/> interface and to use the
+            <see cref="P:System.Reflection.AssemblyName.Name"/> as the name of the repository.
+            </para>
+            <para>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be automatically
+            configured using any <see cref="T: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 
+            repository may be of a different type to that specified in <paramref name="repositoryType"/>.
+            Also the <see cref="T:log4net.Config.RepositoryAttribute"/> attribute on the
+            assembly may be used to override the repository type specified in 
+            <paramref name="repositoryType"/>.
+            </para>
+            </remarks>
+            <exception cref="T:System.ArgumentNullException"><paramref name="repositoryAssembly"/> is <see langword="null"/>.</exception>
+        </member>
+        <member name="M:log4net.Core.DefaultRepositorySelector.CreateRepository(System.Reflection.Assembly,System.Type,System.String,System.Boolean)">
+            <summary>
+            Creates 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="T:log4net.Repository.ILoggerRepository"/>.</param>
+            <param name="repositoryType">The type of repository to create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
+            <param name="repositoryName">The name to assign to the created repository</param>
+            <param name="readAssemblyAttributes">Set to <c>true</c> to read and apply the assembly attributes</param>
+            <returns>The repository created.</returns>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
+            specified such that a call to <see cref="M:log4net.Core.DefaultRepositorySelector.GetRepository(System.Reflection.Assembly)"/> with the
+            same assembly specified will return the same repository instance.
+            </para>
+            <para>
+            The type of the <see cref="T:log4net.Repository.ILoggerRepository"/> created and
+            the repository to create can be overridden by specifying the
+            <see cref="T:log4net.Config.RepositoryAttribute"/> attribute on the 
+            <paramref name="repositoryAssembly"/>.  The default values are to use the 
+            <paramref name="repositoryType"/> implementation of the 
+            <see cref="T:log4net.Repository.ILoggerRepository"/> interface and to use the
+            <see cref="P:System.Reflection.AssemblyName.Name"/> as the name of the repository.
+            </para>
+            <para>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be automatically
+            configured using any <see cref="T: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 
+            repository may be of a different type to that specified in <paramref name="repositoryType"/>.
+            Also the <see cref="T:log4net.Config.RepositoryAttribute"/> attribute on the
+            assembly may be used to override the repository type specified in 
+            <paramref name="repositoryType"/>.
+            </para>
+            </remarks>
+            <exception cref="T:System.ArgumentNullException"><paramref name="repositoryAssembly"/> is <see langword="null"/>.</exception>
+        </member>
+        <member name="M:log4net.Core.DefaultRepositorySelector.CreateRepository(System.String,System.Type)">
+            <summary>
+            Creates a new repository for the specified repository.
+            </summary>
+            <param name="repositoryName">The repository to associate with the <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
+            <param name="repositoryType">The type of repository to create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/>.
+            If this param is <see langword="null"/> then the default repository type is used.</param>
+            <returns>The new repository.</returns>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
+            specified such that a call to <see cref="M:log4net.Core.DefaultRepositorySelector.GetRepository(System.String)"/> with the
+            same repository specified will return the same repository instance.
+            </para>
+            </remarks>
+            <exception cref="T:System.ArgumentNullException"><paramref name="repositoryName"/> is <see langword="null"/>.</exception>
+            <exception cref="T:log4net.Core.LogException"><paramref name="repositoryName"/> already exists.</exception>
+        </member>
+        <member name="M:log4net.Core.DefaultRepositorySelector.ExistsRepository(System.String)">
+            <summary>
+            Test if a named repository exists
+            </summary>
+            <param name="repositoryName">the named repository to check</param>
+            <returns><c>true</c> if the repository exists</returns>
+            <remarks>
+            <para>
+            Test if a named repository exists. Use <see cref="M:log4net.Core.DefaultRepositorySelector.CreateRepository(System.String,System.Type)"/>
+            to create a new repository and <see cref="M:log4net.Core.DefaultRepositorySelector.GetRepository(System.String)"/> to retrieve 
+            a repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.DefaultRepositorySelector.GetAllRepositories">
+            <summary>
+            Gets a list of <see cref="T:log4net.Repository.ILoggerRepository"/> objects
+            </summary>
+            <returns>an array of all known <see cref="T:log4net.Repository.ILoggerRepository"/> objects</returns>
+            <remarks>
+            <para>
+            Gets an array of all of the repositories created by this selector.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.DefaultRepositorySelector.AliasRepository(System.String,log4net.Repository.ILoggerRepository)">
+            <summary>
+            Aliases a repository to an existing repository.
+            </summary>
+            <param name="repositoryAlias">The repository to alias.</param>
+            <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 must not already exist.
+            </para>
+            <para>
+            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>
+            <exception cref="T:System.ArgumentNullException">
+            <para><paramref name="repositoryAlias"/> is <see langword="null"/>.</para>
+            <para>-or-</para>
+            <para><paramref name="repositoryTarget"/> is <see langword="null"/>.</para>
+            </exception>
+        </member>
+        <member name="M:log4net.Core.DefaultRepositorySelector.OnLoggerRepositoryCreatedEvent(log4net.Repository.ILoggerRepository)">
+            <summary>
+            Notifies the registered listeners that the repository has been created.
+            </summary>
+            <param name="repository">The repository that has been created.</param>
+            <remarks>
+            <para>
+            Raises the <see cref="E:log4net.Core.DefaultRepositorySelector.LoggerRepositoryCreatedEvent"/> event.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.DefaultRepositorySelector.GetInfoForAssembly(System.Reflection.Assembly,System.String@,System.Type@)">
+            <summary>
+            Gets the repository name and repository type for the specified assembly.
+            </summary>
+            <param name="assembly">The assembly that has a <see cref="T:log4net.Config.RepositoryAttribute"/>.</param>
+            <param name="repositoryName">in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling.</param>
+            <param name="repositoryType">in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling.</param>
+            <exception cref="T:System.ArgumentNullException"><paramref name="assembly"/> is <see langword="null"/>.</exception>
+        </member>
+        <member name="M:log4net.Core.DefaultRepositorySelector.ConfigureRepository(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
+            <summary>
+            Configures the repository using information from the assembly.
+            </summary>
+            <param name="assembly">The assembly containing <see cref="T:log4net.Config.ConfiguratorAttribute"/>
+            attributes which define the configuration for the repository.</param>
+            <param name="repository">The repository to configure.</param>
+            <exception cref="T:System.ArgumentNullException">
+            <para><paramref name="assembly"/> is <see langword="null"/>.</para>
+            <para>-or-</para>
+            <para><paramref name="repository"/> is <see langword="null"/>.</para>
+            </exception>
+        </member>
+        <member name="M:log4net.Core.DefaultRepositorySelector.LoadPlugins(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
+            <summary>
+            Loads the attribute defined plugins on the assembly.
+            </summary>
+            <param name="assembly">The assembly that contains the attributes.</param>
+            <param name="repository">The repository to add the plugins to.</param>
+            <exception cref="T:System.ArgumentNullException">
+            <para><paramref name="assembly"/> is <see langword="null"/>.</para>
+            <para>-or-</para>
+            <para><paramref name="repository"/> is <see langword="null"/>.</para>
+            </exception>
+        </member>
+        <member name="M:log4net.Core.DefaultRepositorySelector.LoadAliases(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
+            <summary>
+            Loads the attribute defined aliases on the assembly.
+            </summary>
+            <param name="assembly">The assembly that contains the attributes.</param>
+            <param name="repository">The repository to alias to.</param>
+            <exception cref="T:System.ArgumentNullException">
+            <para><paramref name="assembly"/> is <see langword="null"/>.</para>
+            <para>-or-</para>
+            <para><paramref name="repository"/> is <see langword="null"/>.</para>
+            </exception>
+        </member>
+        <member name="E:log4net.Core.DefaultRepositorySelector.LoggerRepositoryCreatedEvent">
+            <summary>
+            Event to notify that a logger repository has been created.
+            </summary>
+            <value>
+            Event to notify that a logger repository has been created.
+            </value>
+            <remarks>
+            <para>
+            Event raised when a new repository is created.
+            The event source will be this selector. The event args will
+            be a <see cref="T:log4net.Core.LoggerRepositoryCreationEventArgs"/> which
+            holds the newly created <see cref="T:log4net.Repository.ILoggerRepository"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.ErrorCode">
+            <summary>
+            Defined error codes that can be passed to the <see cref="M:log4net.Core.IErrorHandler.Error(System.String,System.Exception,log4net.Core.ErrorCode)"/> method.
+            </summary>
+            <remarks>
+            <para>
+            Values passed to the <see cref="M:log4net.Core.IErrorHandler.Error(System.String,System.Exception,log4net.Core.ErrorCode)"/> method.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="F:log4net.Core.ErrorCode.GenericFailure">
+            <summary>
+            A general error
+            </summary>
+        </member>
+        <member name="F:log4net.Core.ErrorCode.WriteFailure">
+            <summary>
+            Error while writing output
+            </summary>
+        </member>
+        <member name="F:log4net.Core.ErrorCode.FlushFailure">
+            <summary>
+            Failed to flush file
+            </summary>
+        </member>
+        <member name="F:log4net.Core.ErrorCode.CloseFailure">
+            <summary>
+            Failed to close file
+            </summary>
+        </member>
+        <member name="F:log4net.Core.ErrorCode.FileOpenFailure">
+            <summary>
+            Unable to open output file
+            </summary>
+        </member>
+        <member name="F:log4net.Core.ErrorCode.MissingLayout">
+            <summary>
+            No layout specified
+            </summary>
+        </member>
+        <member name="F:log4net.Core.ErrorCode.AddressParseFailure">
+            <summary>
+            Failed to parse address
+            </summary>
+        </member>
+        <member name="T:log4net.Core.IErrorHandler">
+            <summary>
+            Appenders may delegate their error handling to an <see cref="T:log4net.Core.IErrorHandler"/>.
+            </summary>
+            <remarks>
+            <para>
+            Error handling is a particularly tedious to get right because by
+            definition errors are hard to predict and to reproduce. 
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Core.IErrorHandler.Error(System.String,System.Exception,log4net.Core.ErrorCode)">
+            <summary>
+            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>
+            <param name="e">The <see cref="T:System.Exception"/> that was thrown when the error occurred.</param>
+            <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 
+            a parameter.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.IErrorHandler.Error(System.String,System.Exception)">
+            <summary>
+            Prints the error message passed as a parameter.
+            </summary>
+            <param name="message">The message associated with the error.</param>
+            <param name="e">The <see cref="T:System.Exception"/> that was thrown when the error occurred.</param>
+            <remarks>
+            <para>
+            See <see cref="M:log4net.Core.IErrorHandler.Error(System.String,System.Exception,log4net.Core.ErrorCode)"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.IErrorHandler.Error(System.String)">
+            <summary>
+            Prints the error message passed as a parameter.
+            </summary>
+            <param name="message">The message associated with the error.</param>
+            <remarks>
+            <para>
+            See <see cref="M:log4net.Core.IErrorHandler.Error(System.String,System.Exception,log4net.Core.ErrorCode)"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.IFixingRequired">
+            <summary>
+            Interface for objects that require fixing.
+            </summary>
+            <remarks>
+            <para>
+            Interface that indicates that the object requires fixing before it
+            can be taken outside the context of the appender's 
+            <see cref="M:log4net.Appender.IAppender.DoAppend(log4net.Core.LoggingEvent)"/> method.
+            </para>
+            <para>
+            When objects that implement this interface are stored 
+            in the context properties maps <see cref="T:log4net.GlobalContext"/>
+            <see cref="P:log4net.GlobalContext.Properties"/> and <see cref="T:log4net.ThreadContext"/>
+            <see cref="P:log4net.ThreadContext.Properties"/> are fixed 
+            (see <see cref="P:log4net.Core.LoggingEvent.Fix"/>) the <see cref="M:log4net.Core.IFixingRequired.GetFixedObject"/>
+            method will be called.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Core.IFixingRequired.GetFixedObject">
+            <summary>
+            Get a portable version of this object
+            </summary>
+            <returns>the portable instance of this object</returns>
+            <remarks>
+            <para>
+            Get a portable instance object that represents the current
+            state of this object. The portable object can be stored
+            and logged from any thread with identical results.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.ILogger">
+            <summary>
+            Interface that all loggers implement
+            </summary>
+            <remarks>
+            <para>
+            This interface supports logging events and testing if a level
+            is enabled for logging.
+            </para>
+            <para>
+            These methods will not throw exceptions. Note to implementor, ensure
+            that the implementation of these methods cannot allow an exception
+            to be thrown to the caller.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Core.ILogger.Log(System.Type,log4net.Core.Level,System.Object,System.Exception)">
+            <summary>
+            This generic form is intended to be used by wrappers.
+            </summary>
+            <param name="callerStackBoundaryDeclaringType">The declaring type of the method that is
+            the stack boundary into the logging system for this call.</param>
+            <param name="level">The level of the message to be logged.</param>
+            <param name="message">The message object to log.</param>
+            <param name="exception">the exception to log, including its stack trace. Pass <c>null</c> to not log an exception.</param>
+            <remarks>
+            <para>
+            Generates a logging event for the specified <paramref name="level"/> using
+            the <paramref name="message"/> and <paramref name="exception"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.ILogger.Log(log4net.Core.LoggingEvent)">
+            <summary>
+            This is the most generic printing method that is intended to be used 
+            by wrappers.
+            </summary>
+            <param name="logEvent">The event being logged.</param>
+            <remarks>
+            <para>
+            Logs the specified logging event through this logger.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.ILogger.IsEnabledFor(log4net.Core.Level)">
+            <summary>
+            Checks if this logger is enabled for a given <see cref="T:log4net.Core.Level"/> passed as parameter.
+            </summary>
+            <param name="level">The level to check.</param>
+            <returns>
+            <c>true</c> if this logger is enabled for <c>level</c>, otherwise <c>false</c>.
+            </returns>
+            <remarks>
+            <para>
+            Test if this logger is going to log events of the specified <paramref name="level"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.ILogger.Name">
+            <summary>
+            Gets the name of the logger.
+            </summary>
+            <value>
+            The name of the logger.
+            </value>
+            <remarks>
+            <para>
+            The name of this logger
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.ILogger.Repository">
+            <summary>
+            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> where this 
+            <c>Logger</c> instance is attached to.
+            </summary>
+            <value>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> that this logger belongs to.
+            </value>
+            <remarks>
+            <para>
+            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> where this 
+            <c>Logger</c> instance is attached to.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.ILoggerWrapper">
+            <summary>
+            Base interface for all wrappers
+            </summary>
+            <remarks>
+            <para>
+            Base interface for all wrappers.
+            </para>
+            <para>
+            All wrappers must implement this interface.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="P:log4net.Core.ILoggerWrapper.Logger">
+            <summary>
+            Get the implementation behind this wrapper object.
+            </summary>
+            <value>
+            The <see cref="T:log4net.Core.ILogger"/> object that in implementing this object.
+            </value>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.Core.ILogger"/> object that in implementing this
+            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.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.LoggerRepositoryCreationEventHandler">
+            <summary>
+            Delegate used to handle logger repository creation event notifications
+            </summary>
+            <param name="sender">The <see cref="T:log4net.Core.IRepositorySelector"/> which created the repository.</param>
+            <param name="e">The <see cref="T:log4net.Core.LoggerRepositoryCreationEventArgs"/> event args
+            that holds the <see cref="T:log4net.Repository.ILoggerRepository"/> instance that has been created.</param>
+            <remarks>
+            <para>
+            Delegate used to handle logger repository creation event notifications.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.LoggerRepositoryCreationEventArgs">
+            <summary>
+            Provides data for the <see cref="E:log4net.Core.IRepositorySelector.LoggerRepositoryCreatedEvent"/> event.
+            </summary>
+            <remarks>
+            <para>
+            A <see cref="E:log4net.Core.IRepositorySelector.LoggerRepositoryCreatedEvent"/> 
+            event is raised every time a <see cref="T:log4net.Repository.ILoggerRepository"/> is created.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.LoggerRepositoryCreationEventArgs.m_repository">
+            <summary>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> created
+            </summary>
+        </member>
+        <member name="M:log4net.Core.LoggerRepositoryCreationEventArgs.#ctor(log4net.Repository.ILoggerRepository)">
+            <summary>
+            Construct instance using <see cref="T:log4net.Repository.ILoggerRepository"/> specified
+            </summary>
+            <param name="repository">the <see cref="T:log4net.Repository.ILoggerRepository"/> that has been created</param>
+            <remarks>
+            <para>
+            Construct instance using <see cref="T:log4net.Repository.ILoggerRepository"/> specified
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LoggerRepositoryCreationEventArgs.LoggerRepository">
+            <summary>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> that has been created
+            </summary>
+            <value>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> that has been created
+            </value>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> that has been created
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.ITriggeringEventEvaluator">
+            <summary>
+            Test if an <see cref="T:log4net.Core.LoggingEvent"/> triggers an action
+            </summary>
+            <remarks>
+            <para>
+            Implementations of this interface allow certain appenders to decide
+            when to perform an appender specific action.
+            </para>
+            <para>
+            The action or behavior triggered is defined by the implementation.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Core.ITriggeringEventEvaluator.IsTriggeringEvent(log4net.Core.LoggingEvent)">
+            <summary>
+            Test if this event triggers the action
+            </summary>
+            <param name="loggingEvent">The event to check</param>
+            <returns><c>true</c> if this event triggers the action, otherwise <c>false</c></returns>
+            <remarks>
+            <para>
+            Return <c>true</c> if this event triggers the action
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.Level">
+            <summary>
+            Defines the default set of levels recognized by the system.
+            </summary>
+            <remarks>
+            <para>
+            Each <see cref="T:log4net.Core.LoggingEvent"/> has an associated <see cref="T:log4net.Core.Level"/>.
+            </para>
+            <para>
+            Levels have a numeric <see cref="P:log4net.Core.Level.Value"/> that defines the relative 
+            ordering between levels. Two Levels with the same <see cref="P:log4net.Core.Level.Value"/> 
+            are deemed to be equivalent.
+            </para>
+            <para>
+            The levels that are recognized by log4net are set for each <see cref="T:log4net.Repository.ILoggerRepository"/>
+            and each repository can have different levels defined. The levels are stored
+            in the <see cref="P:log4net.Repository.ILoggerRepository.LevelMap"/> on the repository. Levels are
+            looked up by name from the <see cref="P:log4net.Repository.ILoggerRepository.LevelMap"/>.
+            </para>
+            <para>
+            When logging at level INFO the actual level used is not <see cref="F:log4net.Core.Level.Info"/> but
+            the value of <c>LoggerRepository.LevelMap["INFO"]</c>. The default value for this is
+            <see cref="F:log4net.Core.Level.Info"/>, but this can be changed by reconfiguring the level map.
+            </para>
+            <para>
+            Each level has a <see cref="P:log4net.Core.Level.DisplayName"/> in addition to its <see cref="P:log4net.Core.Level.Name"/>. The 
+            <see cref="P:log4net.Core.Level.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.
+            </para>
+            <para>
+            Some of the predefined levels recognized by the system are:
+            </para>
+            <list type="bullet">
+            	<item>
+            		<description><see cref="F:log4net.Core.Level.Off"/>.</description>
+            	</item>
+            	<item>
+            		<description><see cref="F:log4net.Core.Level.Fatal"/>.</description>
+            	</item>
+            	<item>
+            		<description><see cref="F:log4net.Core.Level.Error"/>.</description>
+            	</item>
+            	<item>
+            		<description><see cref="F:log4net.Core.Level.Warn"/>.</description>
+            	</item>
+            	<item>
+            		<description><see cref="F:log4net.Core.Level.Info"/>.</description>
+            	</item>
+            	<item>
+            		<description><see cref="F:log4net.Core.Level.Debug"/>.</description>
+            	</item>
+            	<item>
+            		<description><see cref="F:log4net.Core.Level.All"/>.</description>
+            	</item>
+            </list>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Core.Level.#ctor(System.Int32,System.String,System.String)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="level">Integer value for this level, higher values represent more severe levels.</param>
+            <param name="levelName">The string name of this level.</param>
+            <param name="displayName">The display name for this level. This may be localized or otherwise different from the name</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Core.Level"/> class with
+            the specified level name and value.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.Level.#ctor(System.Int32,System.String)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="level">Integer value for this level, higher values represent more severe levels.</param>
+            <param name="levelName">The string name of this level.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Core.Level"/> class with
+            the specified level name and value.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.Level.ToString">
+            <summary>
+            Returns the <see cref="T:System.String"/> representation of the current 
+            <see cref="T:log4net.Core.Level"/>.
+            </summary>
+            <returns>
+            A <see cref="T:System.String"/> representation of the current <see cref="T:log4net.Core.Level"/>.
+            </returns>
+            <remarks>
+            <para>
+            Returns the level <see cref="P:log4net.Core.Level.Name"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.Level.Equals(System.Object)">
+            <summary>
+            Compares levels.
+            </summary>
+            <param name="o">The object to compare against.</param>
+            <returns><c>true</c> if the objects are equal.</returns>
+            <remarks>
+            <para>
+            Compares the levels of <see cref="T:log4net.Core.Level"/> instances, and 
+            defers to base class if the target object is not a <see cref="T:log4net.Core.Level"/>
+            instance.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.Level.GetHashCode">
+            <summary>
+            Returns a hash code
+            </summary>
+            <returns>A hash code for the current <see cref="T:log4net.Core.Level"/>.</returns>
+            <remarks>
+            <para>
+            Returns a hash code suitable for use in hashing algorithms and data 
+            structures like a hash table.
+            </para>
+            <para>
+            Returns the hash code of the level <see cref="P:log4net.Core.Level.Value"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.Level.CompareTo(System.Object)">
+            <summary>
+            Compares this instance to a specified object and returns an 
+            indication of their relative values.
+            </summary>
+            <param name="r">A <see cref="T:log4net.Core.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 
+            values compared. The return value has these meanings:
+            <list type="table">
+            	<listheader>
+            		<term>Value</term>
+            		<description>Meaning</description>
+            	</listheader>
+            	<item>
+            		<term>Less than zero</term>
+            		<description>This instance is less than <paramref name="r"/>.</description>
+            	</item>
+            	<item>
+            		<term>Zero</term>
+            		<description>This instance is equal to <paramref name="r"/>.</description>
+            	</item>
+            	<item>
+            		<term>Greater than zero</term>
+            		<description>
+            			<para>This instance is greater than <paramref name="r"/>.</para>
+            			<para>-or-</para>
+            			<para><paramref name="r"/> is <see langword="null"/>.</para>
+            			</description>
+            	</item>
+            </list>
+            </returns>
+            <remarks>
+            <para>
+            <paramref name="r"/> must be an instance of <see cref="T:log4net.Core.Level"/> 
+            or <see langword="null"/>; otherwise, an exception is thrown.
+            </para>
+            </remarks>
+            <exception cref="T:System.ArgumentException"><paramref name="r"/> is not a <see cref="T:log4net.Core.Level"/>.</exception>
+        </member>
+        <member name="M:log4net.Core.Level.op_GreaterThan(log4net.Core.Level,log4net.Core.Level)">
+            <summary>
+            Returns a value indicating whether a specified <see cref="T:log4net.Core.Level"/> 
+            is greater than another specified <see cref="T:log4net.Core.Level"/>.
+            </summary>
+            <param name="l">A <see cref="T:log4net.Core.Level"/></param>
+            <param name="r">A <see cref="T:log4net.Core.Level"/></param>
+            <returns>
+            <c>true</c> if <paramref name="l"/> is greater than 
+            <paramref name="r"/>; otherwise, <c>false</c>.
+            </returns>
+            <remarks>
+            <para>
+            Compares two levels.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.Level.op_LessThan(log4net.Core.Level,log4net.Core.Level)">
+            <summary>
+            Returns a value indicating whether a specified <see cref="T:log4net.Core.Level"/> 
+            is less than another specified <see cref="T:log4net.Core.Level"/>.
+            </summary>
+            <param name="l">A <see cref="T:log4net.Core.Level"/></param>
+            <param name="r">A <see cref="T:log4net.Core.Level"/></param>
+            <returns>
+            <c>true</c> if <paramref name="l"/> is less than 
+            <paramref name="r"/>; otherwise, <c>false</c>.
+            </returns>
+            <remarks>
+            <para>
+            Compares two levels.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.Level.op_GreaterThanOrEqual(log4net.Core.Level,log4net.Core.Level)">
+            <summary>
+            Returns a value indicating whether a specified <see cref="T:log4net.Core.Level"/> 
+            is greater than or equal to another specified <see cref="T:log4net.Core.Level"/>.
+            </summary>
+            <param name="l">A <see cref="T:log4net.Core.Level"/></param>
+            <param name="r">A <see cref="T:log4net.Core.Level"/></param>
+            <returns>
+            <c>true</c> if <paramref name="l"/> is greater than or equal to 
+            <paramref name="r"/>; otherwise, <c>false</c>.
+            </returns>
+            <remarks>
+            <para>
+            Compares two levels.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.Level.op_LessThanOrEqual(log4net.Core.Level,log4net.Core.Level)">
+            <summary>
+            Returns a value indicating whether a specified <see cref="T:log4net.Core.Level"/> 
+            is less than or equal to another specified <see cref="T:log4net.Core.Level"/>.
+            </summary>
+            <param name="l">A <see cref="T:log4net.Core.Level"/></param>
+            <param name="r">A <see cref="T:log4net.Core.Level"/></param>
+            <returns>
+            <c>true</c> if <paramref name="l"/> is less than or equal to 
+            <paramref name="r"/>; otherwise, <c>false</c>.
+            </returns>
+            <remarks>
+            <para>
+            Compares two levels.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.Level.op_Equality(log4net.Core.Level,log4net.Core.Level)">
+            <summary>
+            Returns a value indicating whether two specified <see cref="T:log4net.Core.Level"/> 
+            objects have the same value.
+            </summary>
+            <param name="l">A <see cref="T:log4net.Core.Level"/> or <see langword="null"/>.</param>
+            <param name="r">A <see cref="T:log4net.Core.Level"/> or <see langword="null"/>.</param>
+            <returns>
+            <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>
+            <para>
+            Compares two levels.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.Level.op_Inequality(log4net.Core.Level,log4net.Core.Level)">
+            <summary>
+            Returns a value indicating whether two specified <see cref="T:log4net.Core.Level"/> 
+            objects have different values.
+            </summary>
+            <param name="l">A <see cref="T:log4net.Core.Level"/> or <see langword="null"/>.</param>
+            <param name="r">A <see cref="T:log4net.Core.Level"/> or <see langword="null"/>.</param>
+            <returns>
+            <c>true</c> if the value of <paramref name="l"/> is different from
+            the value of <paramref name="r"/>; otherwise, <c>false</c>.
+            </returns>
+            <remarks>
+            <para>
+            Compares two levels.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.Level.Compare(log4net.Core.Level,log4net.Core.Level)">
+            <summary>
+            Compares two specified <see cref="T:log4net.Core.Level"/> instances.
+            </summary>
+            <param name="l">The first <see cref="T:log4net.Core.Level"/> to compare.</param>
+            <param name="r">The second <see cref="T:log4net.Core.Level"/> to compare.</param>
+            <returns>
+            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>
+            		<term>Value</term>
+            		<description>Meaning</description>
+            	</listheader>
+            	<item>
+            		<term>Less than zero</term>
+            		<description><paramref name="l"/> is less than <paramref name="r"/>.</description>
+            	</item>
+            	<item>
+            		<term>Zero</term>
+            		<description><paramref name="l"/> is equal to <paramref name="r"/>.</description>
+            	</item>
+            	<item>
+            		<term>Greater than zero</term>
+            		<description><paramref name="l"/> is greater than <paramref name="r"/>.</description>
+            	</item>
+            </list>
+            </returns>
+            <remarks>
+            <para>
+            Compares two levels.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.Level.Off">
+            <summary>
+            The <see cref="F:log4net.Core.Level.Off"/> level designates a higher level than all the rest.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.Level.Emergency">
+            <summary>
+            The <see cref="F:log4net.Core.Level.Emergency"/> level designates very severe error events. 
+            System unusable, emergencies.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.Level.Fatal">
+            <summary>
+            The <see cref="F:log4net.Core.Level.Fatal"/> level designates very severe error events 
+            that will presumably lead the application to abort.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.Level.Alert">
+            <summary>
+            The <see cref="F:log4net.Core.Level.Alert"/> level designates very severe error events. 
+            Take immediate action, alerts.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.Level.Critical">
+            <summary>
+            The <see cref="F:log4net.Core.Level.Critical"/> level designates very severe error events. 
+            Critical condition, critical.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.Level.Severe">
+            <summary>
+            The <see cref="F:log4net.Core.Level.Severe"/> level designates very severe error events.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.Level.Error">
+            <summary>
+            The <see cref="F:log4net.Core.Level.Error"/> level designates error events that might 
+            still allow the application to continue running.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.Level.Warn">
+            <summary>
+            The <see cref="F:log4net.Core.Level.Warn"/> level designates potentially harmful 
+            situations.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.Level.Notice">
+            <summary>
+            The <see cref="F:log4net.Core.Level.Notice"/> level designates informational messages 
+            that highlight the progress of the application at the highest level.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.Level.Info">
+            <summary>
+            The <see cref="F:log4net.Core.Level.Info"/> level designates informational messages that 
+            highlight the progress of the application at coarse-grained level.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.Level.Debug">
+            <summary>
+            The <see cref="F:log4net.Core.Level.Debug"/> level designates fine-grained informational 
+            events that are most useful to debug an application.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.Level.Fine">
+            <summary>
+            The <see cref="F:log4net.Core.Level.Fine"/> level designates fine-grained informational 
+            events that are most useful to debug an application.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.Level.Trace">
+            <summary>
+            The <see cref="F:log4net.Core.Level.Trace"/> level designates fine-grained informational 
+            events that are most useful to debug an application.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.Level.Finer">
+            <summary>
+            The <see cref="F:log4net.Core.Level.Finer"/> level designates fine-grained informational 
+            events that are most useful to debug an application.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.Level.Verbose">
+            <summary>
+            The <see cref="F:log4net.Core.Level.Verbose"/> level designates fine-grained informational 
+            events that are most useful to debug an application.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.Level.Finest">
+            <summary>
+            The <see cref="F:log4net.Core.Level.Finest"/> level designates fine-grained informational 
+            events that are most useful to debug an application.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.Level.All">
+            <summary>
+            The <see cref="F:log4net.Core.Level.All"/> level designates the lowest level possible.
+            </summary>
+        </member>
+        <member name="P:log4net.Core.Level.Name">
+            <summary>
+            Gets the name of this level.
+            </summary>
+            <value>
+            The name of this level.
+            </value>
+            <remarks>
+            <para>
+            Gets the name of this level.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.Level.Value">
+            <summary>
+            Gets the value of this level.
+            </summary>
+            <value>
+            The value of this level.
+            </value>
+            <remarks>
+            <para>
+            Gets the value of this level.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.Level.DisplayName">
+            <summary>
+            Gets the display name of this level.
+            </summary>
+            <value>
+            The display name of this level.
+            </value>
+            <remarks>
+            <para>
+            Gets the display name of this level.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.LevelCollection">
+            <summary>
+            A strongly-typed collection of <see cref="T:log4net.Core.Level"/> objects.
+            </summary>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.ReadOnly(log4net.Core.LevelCollection)">
+            <summary>
+            Creates a read-only wrapper for a <c>LevelCollection</c> instance.
+            </summary>
+            <param name="list">list to create a readonly wrapper arround</param>
+            <returns>
+            A <c>LevelCollection</c> wrapper that is read-only.
+            </returns>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.#ctor">
+            <summary>
+            Initializes a new instance of the <c>LevelCollection</c> class
+            that is empty and has the default initial capacity.
+            </summary>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.#ctor(System.Int32)">
+            <summary>
+            Initializes a new instance of the <c>LevelCollection</c> class
+            that has the specified initial capacity.
+            </summary>
+            <param name="capacity">
+            The number of elements that the new <c>LevelCollection</c> is initially capable of storing.
+            </param>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.#ctor(log4net.Core.LevelCollection)">
+            <summary>
+            Initializes a new instance of the <c>LevelCollection</c> class
+            that contains elements copied from the specified <c>LevelCollection</c>.
+            </summary>
+            <param name="c">The <c>LevelCollection</c> whose elements are copied to the new collection.</param>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.#ctor(log4net.Core.Level[])">
+            <summary>
+            Initializes a new instance of the <c>LevelCollection</c> class
+            that contains elements copied from the specified <see cref="T:log4net.Core.Level"/> array.
+            </summary>
+            <param name="a">The <see cref="T:log4net.Core.Level"/> array whose elements are copied to the new list.</param>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.#ctor(System.Collections.ICollection)">
+            <summary>
+            Initializes a new instance of the <c>LevelCollection</c> class
+            that contains elements copied from the specified <see cref="T:log4net.Core.Level"/> collection.
+            </summary>
+            <param name="col">The <see cref="T:log4net.Core.Level"/> collection whose elements are copied to the new list.</param>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.#ctor(log4net.Core.LevelCollection.Tag)">
+            <summary>
+            Allow subclasses to avoid our default constructors
+            </summary>
+            <param name="tag"></param>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.CopyTo(log4net.Core.Level[])">
+            <summary>
+            Copies the entire <c>LevelCollection</c> to a one-dimensional
+            <see cref="T:log4net.Core.Level"/> array.
+            </summary>
+            <param name="array">The one-dimensional <see cref="T:log4net.Core.Level"/> array to copy to.</param>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.CopyTo(log4net.Core.Level[],System.Int32)">
+            <summary>
+            Copies the entire <c>LevelCollection</c> to a one-dimensional
+            <see cref="T:log4net.Core.Level"/> array, starting at the specified index of the target array.
+            </summary>
+            <param name="array">The one-dimensional <see cref="T:log4net.Core.Level"/> array to copy to.</param>
+            <param name="start">The zero-based index in <paramref name="array"/> at which copying begins.</param>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.Add(log4net.Core.Level)">
+            <summary>
+            Adds a <see cref="T:log4net.Core.Level"/> to the end of the <c>LevelCollection</c>.
+            </summary>
+            <param name="item">The <see cref="T:log4net.Core.Level"/> to be added to the end of the <c>LevelCollection</c>.</param>
+            <returns>The index at which the value has been added.</returns>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.Clear">
+            <summary>
+            Removes all elements from the <c>LevelCollection</c>.
+            </summary>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.Clone">
+            <summary>
+            Creates a shallow copy of the <see cref="T:log4net.Core.LevelCollection"/>.
+            </summary>
+            <returns>A new <see cref="T:log4net.Core.LevelCollection"/> with a shallow copy of the collection data.</returns>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.Contains(log4net.Core.Level)">
+            <summary>
+            Determines whether a given <see cref="T:log4net.Core.Level"/> is in the <c>LevelCollection</c>.
+            </summary>
+            <param name="item">The <see cref="T:log4net.Core.Level"/> to check for.</param>
+            <returns><c>true</c> if <paramref name="item"/> is found in the <c>LevelCollection</c>; otherwise, <c>false</c>.</returns>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.IndexOf(log4net.Core.Level)">
+            <summary>
+            Returns the zero-based index of the first occurrence of a <see cref="T:log4net.Core.Level"/>
+            in the <c>LevelCollection</c>.
+            </summary>
+            <param name="item">The <see cref="T:log4net.Core.Level"/> to locate in the <c>LevelCollection</c>.</param>
+            <returns>
+            The zero-based index of the first occurrence of <paramref name="item"/> 
+            in the entire <c>LevelCollection</c>, if found; otherwise, -1.
+            </returns>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.Insert(System.Int32,log4net.Core.Level)">
+            <summary>
+            Inserts an element into the <c>LevelCollection</c> at the specified index.
+            </summary>
+            <param name="index">The zero-based index at which <paramref name="item"/> should be inserted.</param>
+            <param name="item">The <see cref="T:log4net.Core.Level"/> to insert.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">
+            <para><paramref name="index"/> is less than zero</para>
+            <para>-or-</para>
+            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Core.LevelCollection.Count"/>.</para>
+            </exception>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.Remove(log4net.Core.Level)">
+            <summary>
+            Removes the first occurrence of a specific <see cref="T:log4net.Core.Level"/> from the <c>LevelCollection</c>.
+            </summary>
+            <param name="item">The <see cref="T:log4net.Core.Level"/> to remove from the <c>LevelCollection</c>.</param>
+            <exception cref="T:System.ArgumentException">
+            The specified <see cref="T:log4net.Core.Level"/> was not found in the <c>LevelCollection</c>.
+            </exception>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.RemoveAt(System.Int32)">
+            <summary>
+            Removes the element at the specified index of the <c>LevelCollection</c>.
+            </summary>
+            <param name="index">The zero-based index of the element to remove.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">
+            <para><paramref name="index"/> is less than zero</para>
+            <para>-or-</para>
+            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Core.LevelCollection.Count"/>.</para>
+            </exception>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.GetEnumerator">
+            <summary>
+            Returns an enumerator that can iterate through the <c>LevelCollection</c>.
+            </summary>
+            <returns>An <see cref="T:log4net.Core.LevelCollection.Enumerator"/> for the entire <c>LevelCollection</c>.</returns>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.AddRange(log4net.Core.LevelCollection)">
+            <summary>
+            Adds the elements of another <c>LevelCollection</c> to the current <c>LevelCollection</c>.
+            </summary>
+            <param name="x">The <c>LevelCollection</c> whose elements should be added to the end of the current <c>LevelCollection</c>.</param>
+            <returns>The new <see cref="P:log4net.Core.LevelCollection.Count"/> of the <c>LevelCollection</c>.</returns>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.AddRange(log4net.Core.Level[])">
+            <summary>
+            Adds the elements of a <see cref="T:log4net.Core.Level"/> array to the current <c>LevelCollection</c>.
+            </summary>
+            <param name="x">The <see cref="T:log4net.Core.Level"/> array whose elements should be added to the end of the <c>LevelCollection</c>.</param>
+            <returns>The new <see cref="P:log4net.Core.LevelCollection.Count"/> of the <c>LevelCollection</c>.</returns>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.AddRange(System.Collections.ICollection)">
+            <summary>
+            Adds the elements of a <see cref="T:log4net.Core.Level"/> collection to the current <c>LevelCollection</c>.
+            </summary>
+            <param name="col">The <see cref="T:log4net.Core.Level"/> collection whose elements should be added to the end of the <c>LevelCollection</c>.</param>
+            <returns>The new <see cref="P:log4net.Core.LevelCollection.Count"/> of the <c>LevelCollection</c>.</returns>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.TrimToSize">
+            <summary>
+            Sets the capacity to the actual number of elements.
+            </summary>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.ValidateIndex(System.Int32)">
+            <exception cref="T:System.ArgumentOutOfRangeException">
+            <para><paramref name="index"/> is less than zero</para>
+            <para>-or-</para>
+            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Core.LevelCollection.Count"/>.</para>
+            </exception>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.ValidateIndex(System.Int32,System.Boolean)">
+            <exception cref="T:System.ArgumentOutOfRangeException">
+            <para><paramref name="index"/> is less than zero</para>
+            <para>-or-</para>
+            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Core.LevelCollection.Count"/>.</para>
+            </exception>
+        </member>
+        <member name="P:log4net.Core.LevelCollection.Count">
+            <summary>
+            Gets the number of elements actually contained in the <c>LevelCollection</c>.
+            </summary>
+        </member>
+        <member name="P:log4net.Core.LevelCollection.IsSynchronized">
+            <summary>
+            Gets a value indicating whether access to the collection is synchronized (thread-safe).
+            </summary>
+            <value>true if access to the ICollection is synchronized (thread-safe); otherwise, false.</value>
+        </member>
+        <member name="P:log4net.Core.LevelCollection.SyncRoot">
+            <summary>
+            Gets an object that can be used to synchronize access to the collection.
+            </summary>
+        </member>
+        <member name="P:log4net.Core.LevelCollection.Item(System.Int32)">
+            <summary>
+            Gets or sets the <see cref="T:log4net.Core.Level"/> at the specified index.
+            </summary>
+            <param name="index">The zero-based index of the element to get or set.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">
+            <para><paramref name="index"/> is less than zero</para>
+            <para>-or-</para>
+            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Core.LevelCollection.Count"/>.</para>
+            </exception>
+        </member>
+        <member name="P:log4net.Core.LevelCollection.IsFixedSize">
+            <summary>
+            Gets a value indicating whether the collection has a fixed size.
+            </summary>
+            <value>true if the collection has a fixed size; otherwise, false. The default is false</value>
+        </member>
+        <member name="P:log4net.Core.LevelCollection.IsReadOnly">
+            <summary>
+            Gets a value indicating whether the IList is read-only.
+            </summary>
+            <value>true if the collection is read-only; otherwise, false. The default is false</value>
+        </member>
+        <member name="P:log4net.Core.LevelCollection.Capacity">
+            <summary>
+            Gets or sets the number of elements the <c>LevelCollection</c> can contain.
+            </summary>
+        </member>
+        <member name="T:log4net.Core.LevelCollection.ILevelCollectionEnumerator">
+            <summary>
+            Supports type-safe iteration over a <see cref="T:log4net.Core.LevelCollection"/>.
+            </summary>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.ILevelCollectionEnumerator.MoveNext">
+            <summary>
+            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>false</c> if the enumerator has passed the end of the collection.
+            </returns>
+            <exception cref="T:System.InvalidOperationException">
+            The collection was modified after the enumerator was created.
+            </exception>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.ILevelCollectionEnumerator.Reset">
+            <summary>
+            Sets the enumerator to its initial position, before the first element in the collection.
+            </summary>
+        </member>
+        <member name="P:log4net.Core.LevelCollection.ILevelCollectionEnumerator.Current">
+            <summary>
+            Gets the current element in the collection.
+            </summary>
+        </member>
+        <member name="T:log4net.Core.LevelCollection.Tag">
+            <summary>
+            Type visible only to our subclasses
+            Used to access protected constructor
+            </summary>
+        </member>
+        <member name="F:log4net.Core.LevelCollection.Tag.Default">
+            <summary>
+            A value
+            </summary>
+        </member>
+        <member name="T:log4net.Core.LevelCollection.Enumerator">
+            <summary>
+            Supports simple iteration over a <see cref="T:log4net.Core.LevelCollection"/>.
+            </summary>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.Enumerator.#ctor(log4net.Core.LevelCollection)">
+            <summary>
+            Initializes a new instance of the <c>Enumerator</c> class.
+            </summary>
+            <param name="tc"></param>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.Enumerator.MoveNext">
+            <summary>
+            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>false</c> if the enumerator has passed the end of the collection.
+            </returns>
+            <exception cref="T:System.InvalidOperationException">
+            The collection was modified after the enumerator was created.
+            </exception>
+        </member>
+        <member name="M:log4net.Core.LevelCollection.Enumerator.Reset">
+            <summary>
+            Sets the enumerator to its initial position, before the first element in the collection.
+            </summary>
+        </member>
+        <member name="P:log4net.Core.LevelCollection.Enumerator.Current">
+            <summary>
+            Gets the current element in the collection.
+            </summary>
+        </member>
+        <member name="T:log4net.Core.LevelEvaluator">
+            <summary>
+            An evaluator that triggers at a threshold level
+            </summary>
+            <remarks>
+            <para>
+            This evaluator will trigger if the level of the event
+            passed to <see cref="M:log4net.Core.LevelEvaluator.IsTriggeringEvent(log4net.Core.LoggingEvent)"/>
+            is equal to or greater than the <see cref="P:log4net.Core.LevelEvaluator.Threshold"/>
+            level.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="F:log4net.Core.LevelEvaluator.m_threshold">
+            <summary>
+            The threshold for triggering
+            </summary>
+        </member>
+        <member name="M:log4net.Core.LevelEvaluator.#ctor">
+            <summary>
+            Create a new evaluator using the <see cref="F:log4net.Core.Level.Off"/> threshold.
+            </summary>
+            <remarks>
+            <para>
+            Create a new evaluator using the <see cref="F:log4net.Core.Level.Off"/> threshold.
+            </para>
+            <para>
+            This evaluator will trigger if the level of the event
+            passed to <see cref="M:log4net.Core.LevelEvaluator.IsTriggeringEvent(log4net.Core.LoggingEvent)"/>
+            is equal to or greater than the <see cref="P:log4net.Core.LevelEvaluator.Threshold"/>
+            level.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LevelEvaluator.#ctor(log4net.Core.Level)">
+            <summary>
+            Create a new evaluator using the specified <see cref="T:log4net.Core.Level"/> threshold.
+            </summary>
+            <param name="threshold">the threshold to trigger at</param>
+            <remarks>
+            <para>
+            Create a new evaluator using the specified <see cref="T:log4net.Core.Level"/> threshold.
+            </para>
+            <para>
+            This evaluator will trigger if the level of the event
+            passed to <see cref="M:log4net.Core.LevelEvaluator.IsTriggeringEvent(log4net.Core.LoggingEvent)"/>
+            is equal to or greater than the <see cref="P:log4net.Core.LevelEvaluator.Threshold"/>
+            level.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LevelEvaluator.IsTriggeringEvent(log4net.Core.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 event level
+            is equal or higher than the <see cref="P:log4net.Core.LevelEvaluator.Threshold"/>. 
+            Otherwise it returns <c>false</c></returns>
+            <remarks>
+            <para>
+            This evaluator will trigger if the level of the event
+            passed to <see cref="M:log4net.Core.LevelEvaluator.IsTriggeringEvent(log4net.Core.LoggingEvent)"/>
+            is equal to or greater than the <see cref="P:log4net.Core.LevelEvaluator.Threshold"/>
+            level.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LevelEvaluator.Threshold">
+            <summary>
+            the threshold to trigger at
+            </summary>
+            <value>
+            The <see cref="T:log4net.Core.Level"/> that will cause this evaluator to trigger
+            </value>
+            <remarks>
+            <para>
+            This evaluator will trigger if the level of the event
+            passed to <see cref="M:log4net.Core.LevelEvaluator.IsTriggeringEvent(log4net.Core.LoggingEvent)"/>
+            is equal to or greater than the <see cref="P:log4net.Core.LevelEvaluator.Threshold"/>
+            level.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.LevelMap">
+            <summary>
+            Mapping between string name and Level object
+            </summary>
+            <remarks>
+            <para>
+            Mapping between string name and <see cref="T:log4net.Core.Level"/> object.
+            This mapping is held separately for each <see cref="T:log4net.Repository.ILoggerRepository"/>.
+            The level name is case insensitive.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="F:log4net.Core.LevelMap.m_mapName2Level">
+            <summary>
+            Mapping from level name to Level object. The
+            level name is case insensitive
+            </summary>
+        </member>
+        <member name="M:log4net.Core.LevelMap.#ctor">
+            <summary>
+            Construct the level map
+            </summary>
+            <remarks>
+            <para>
+            Construct the level map.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LevelMap.Clear">
+            <summary>
+            Clear the internal maps of all levels
+            </summary>
+            <remarks>
+            <para>
+            Clear the internal maps of all levels
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LevelMap.Add(System.String,System.Int32)">
+            <summary>
+            Create a new Level and add it to the map
+            </summary>
+            <param name="name">the string to display for the Level</param>
+            <param name="value">the level value to give to the Level</param>
+            <remarks>
+            <para>
+            Create a new Level and add it to the map
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.Core.LevelMap.Add(System.String,System.Int32,System.String)"/>
+        </member>
+        <member name="M:log4net.Core.LevelMap.Add(System.String,System.Int32,System.String)">
+            <summary>
+            Create a new Level and add it to the map
+            </summary>
+            <param name="name">the string to display for the Level</param>
+            <param name="value">the level value to give to the Level</param>
+            <param name="displayName">the display name to give to the Level</param>
+            <remarks>
+            <para>
+            Create a new Level and add it to the map
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LevelMap.Add(log4net.Core.Level)">
+            <summary>
+            Add a Level to the map
+            </summary>
+            <param name="level">the Level to add</param>
+            <remarks>
+            <para>
+            Add a Level to the map
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LevelMap.LookupWithDefault(log4net.Core.Level)">
+            <summary>
+            Lookup a named level from the map
+            </summary>
+            <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>
+            <para>
+            Lookup a named level from the map. The name of the level to lookup is taken
+            from the <see cref="P:log4net.Core.Level.Name"/> property of the <paramref name="defaultLevel"/>
+            argument.
+            </para>
+            <para>
+            If no level with the specified name is found then the 
+            <paramref name="defaultLevel"/> argument is added to the level map
+            and returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LevelMap.Item(System.String)">
+            <summary>
+            Lookup a <see cref="T:log4net.Core.Level"/> by name
+            </summary>
+            <param name="name">The name of the Level to lookup</param>
+            <returns>a Level from the map with the name specified</returns>
+            <remarks>
+            <para>
+            Returns the <see cref="T:log4net.Core.Level"/> from the
+            map with the name specified. If the no level is
+            found then <c>null</c> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LevelMap.AllLevels">
+            <summary>
+            Return all possible levels as a list of Level objects.
+            </summary>
+            <returns>all possible levels as a list of Level objects</returns>
+            <remarks>
+            <para>
+            Return all possible levels as a list of Level objects.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.LocationInfo">
+            <summary>
+            The internal representation of caller location information.
+            </summary>
+            <remarks>
+            <para>
+            This class uses the <c>System.Diagnostics.StackTrace</c> class to generate
+            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 
+            .NET Compact Framework 1.0 therefore caller location information is not
+            available on that framework.
+            </para>
+            <para>
+            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 
+            that occur during optimization."
+            </para>
+            <para>
+            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>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="F:log4net.Core.LocationInfo.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>
+        </member>
+        <member name="M:log4net.Core.LocationInfo.#ctor(System.Type)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="callerStackBoundaryDeclaringType">The declaring type of the method that is
+            the stack boundary into the logging system for this call.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Core.LocationInfo"/>
+            class based on the current thread.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LocationInfo.#ctor(System.String,System.String,System.String,System.String)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="className">The fully qualified class name.</param>
+            <param name="methodName">The method name.</param>
+            <param name="fileName">The file name.</param>
+            <param name="lineNumber">The line number of the method within the file.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Core.LocationInfo"/>
+            class with the specified data.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LocationInfo.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>
+        </member>
+        <member name="P:log4net.Core.LocationInfo.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>
+        </member>
+        <member name="P:log4net.Core.LocationInfo.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>
+        </member>
+        <member name="P:log4net.Core.LocationInfo.MethodName">
+            <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>
+        </member>
+        <member name="P:log4net.Core.LocationInfo.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>
+        </member>
+        <member name="T:log4net.Core.LoggerManager">
+            <summary>
+            Static manager that controls the creation of repositories
+            </summary>
+            <remarks>
+            <para>
+            Static manager that controls the creation of repositories
+            </para>
+            <para>
+            This class is used by the wrapper managers (e.g. <see cref="T:log4net.LogManager"/>)
+            to provide access to the <see cref="T:log4net.Core.ILogger"/> objects.
+            </para>
+            <para>
+            This manager also holds the <see cref="T:log4net.Core.IRepositorySelector"/> that is used to
+            lookup and create repositories. The selector can be set either programmatically using
+            the <see cref="P:log4net.Core.LoggerManager.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. 
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.#ctor">
+            <summary>
+            Private constructor to prevent instances. Only static methods should be used.
+            </summary>
+            <remarks>
+            <para>
+            Private constructor to prevent instances. Only static methods should be used.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.#cctor">
+            <summary>
+            Hook the shutdown event
+            </summary>
+            <remarks>
+            <para>
+            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>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.RegisterAppDomainEvents">
+            <summary>
+            Register for ProcessExit and DomainUnload events on the AppDomain
+            </summary>
+            <remarks>
+            <para>
+            This needs to be in a separate method because the events make
+            a LinkDemand for the ControlAppDomain SecurityPermission. Because
+            this is a LinkDemand it is demanded at JIT time. Therefore we cannot
+            catch the exception in the method itself, we have to catch it in the
+            caller.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.GetLoggerRepository(System.String)">
+            <summary>
+            Return the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
+            </summary>
+            <param name="repository">the repository to lookup in</param>
+            <returns>Return the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance</returns>
+            <remarks>
+            <para>
+            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified
+            by the <paramref name="repository"/> argument.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.GetLoggerRepository(System.Reflection.Assembly)">
+            <summary>
+            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
+            </summary>
+            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
+            <returns>The default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.</returns>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.GetRepository(System.String)">
+            <summary>
+            Return the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
+            </summary>
+            <param name="repository">the repository to lookup in</param>
+            <returns>Return the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance</returns>
+            <remarks>
+            <para>
+            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified
+            by the <paramref name="repository"/> argument.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.GetRepository(System.Reflection.Assembly)">
+            <summary>
+            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
+            </summary>
+            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
+            <returns>The default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.</returns>
+            <remarks>
+            <para>
+            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.Exists(System.String,System.String)">
+            <summary>
+            Returns the named logger if it exists.
+            </summary>
+            <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 named logger does not exist in the
+            specified repository.
+            </returns>
+            <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>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.Exists(System.Reflection.Assembly,System.String)">
+            <summary>
+            Returns the named logger if it exists.
+            </summary>
+            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
+            <param name="name">The fully qualified logger name to look for.</param>
+            <returns>
+            The logger found, or <c>null</c> if the named logger does not exist in the
+            specified assembly's repository.
+            </returns>
+            <remarks>
+            <para>
+            If the named logger exists (in the specified assembly's repository) then it
+            returns a reference to the logger, otherwise it returns
+            <c>null</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.GetCurrentLoggers(System.String)">
+            <summary>
+            Returns all the currently defined loggers in the specified repository.
+            </summary>
+            <param name="repository">The repository to lookup in.</param>
+            <returns>All the defined loggers.</returns>
+            <remarks>
+            <para>
+            The root logger is <b>not</b> included in the returned array.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.GetCurrentLoggers(System.Reflection.Assembly)">
+            <summary>
+            Returns all the currently defined loggers in the specified assembly's repository.
+            </summary>
+            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
+            <returns>All the defined loggers.</returns>
+            <remarks>
+            <para>
+            The root logger is <b>not</b> included in the returned array.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.GetLogger(System.String,System.String)">
+            <summary>
+            Retrieves or creates a named logger.
+            </summary>
+            <param name="repository">The repository to lookup in.</param>
+            <param name="name">The name of the logger to retrieve.</param>
+            <returns>The logger with the name specified.</returns>
+            <remarks>
+            <para>
+            Retrieves a logger named as the <paramref name="name"/>
+            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>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.GetLogger(System.Reflection.Assembly,System.String)">
+            <summary>
+            Retrieves or creates a named logger.
+            </summary>
+            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
+            <param name="name">The name of the logger to retrieve.</param>
+            <returns>The logger with the name specified.</returns>
+            <remarks>
+            <para>
+            Retrieves a logger named as the <paramref name="name"/>
+            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>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.GetLogger(System.String,System.Type)">
+            <summary>
+            Shorthand for <see cref="M:log4net.LogManager.GetLogger(System.String)"/>.
+            </summary>
+            <param name="repository">The repository to lookup in.</param>
+            <param name="type">The <paramref name="type"/> of which the fullname will be used as the name of the logger to retrieve.</param>
+            <returns>The logger with the name specified.</returns>
+            <remarks>
+            <para>
+            Gets the logger for the fully qualified name of the type specified.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.GetLogger(System.Reflection.Assembly,System.Type)">
+            <summary>
+            Shorthand for <see cref="M:log4net.LogManager.GetLogger(System.String)"/>.
+            </summary>
+            <param name="repositoryAssembly">the assembly to use to lookup the repository</param>
+            <param name="type">The <paramref name="type"/> of which the fullname will be used as the name of the logger to retrieve.</param>
+            <returns>The logger with the name specified.</returns>
+            <remarks>
+            <para>
+            Gets the logger for the fully qualified name of the type specified.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.Shutdown">
+            <summary>
+            Shuts down the log4net system.
+            </summary>
+            <remarks>
+            <para>
+            Calling this method will <b>safely</b> close and remove all
+            appenders in all the loggers including root contained in all the
+            default repositories.
+            </para>
+            <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
+            appenders before closing regular appenders. This is allows
+            configurations where a regular appender is attached to a logger
+            and again to a nested appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.ShutdownRepository(System.String)">
+            <summary>
+            Shuts down the repository for the repository specified.
+            </summary>
+            <param name="repository">The repository to shutdown.</param>
+            <remarks>
+            <para>
+            Calling this method will <b>safely</b> close and remove all
+            appenders in all the loggers including root contained in the
+            repository for the <paramref name="repository"/> specified.
+            </para>
+            <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
+            appenders before closing regular appenders. This is allows
+            configurations where a regular appender is attached to a logger
+            and again to a nested appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.ShutdownRepository(System.Reflection.Assembly)">
+            <summary>
+            Shuts down the repository for the repository specified.
+            </summary>
+            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
+            <remarks>
+            <para>
+            Calling this method will <b>safely</b> close and remove all
+            appenders in all the loggers including root contained in the
+            repository for the repository. The repository is looked up using
+            the <paramref name="repositoryAssembly"/> specified.
+            </para>
+            <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
+            appenders before closing regular appenders. This is allows
+            configurations where a regular appender is attached to a logger
+            and again to a nested appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.ResetConfiguration(System.String)">
+            <summary>
+            Resets all values contained in this repository instance to their defaults.
+            </summary>
+            <param name="repository">The repository to reset.</param>
+            <remarks>
+            <para>
+            Resets all values contained in the repository instance to their
+            defaults.  This removes all appenders from all loggers, sets
+            the level of all non-root loggers to <c>null</c>,
+            sets their additivity flag to <c>true</c> and sets the level
+            of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. Moreover,
+            message disabling is set its default "off" value.
+            </para>		
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.ResetConfiguration(System.Reflection.Assembly)">
+            <summary>
+            Resets all values contained in this repository instance to their defaults.
+            </summary>
+            <param name="repositoryAssembly">The assembly to use to lookup the repository to reset.</param>
+            <remarks>
+            <para>
+            Resets all values contained in the repository instance to their
+            defaults.  This removes all appenders from all loggers, sets
+            the level of all non-root loggers to <c>null</c>,
+            sets their additivity flag to <c>true</c> and sets the level
+            of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. Moreover,
+            message disabling is set its default "off" value.
+            </para>		
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.CreateDomain(System.String)">
+            <summary>
+            Creates a repository with the specified name.
+            </summary>
+            <param name="repository">The name of the repository, this must be unique amongst repositories.</param>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
+            <remarks>
+            <para>
+            <b>CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.</b>
+            </para>
+            <para>
+            Creates the default type of <see cref="T:log4net.Repository.ILoggerRepository"/> which is a
+            <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> object.
+            </para>
+            <para>
+            The <paramref name="repository"/> name must be unique. Repositories cannot be redefined.
+            An <see cref="T:System.Exception"/> will be thrown if the repository already exists.
+            </para>
+            </remarks>
+            <exception cref="T:log4net.Core.LogException">The specified repository already exists.</exception>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.CreateRepository(System.String)">
+            <summary>
+            Creates a repository with the specified name.
+            </summary>
+            <param name="repository">The name of the repository, this must be unique amongst repositories.</param>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
+            <remarks>
+            <para>
+            Creates the default type of <see cref="T:log4net.Repository.ILoggerRepository"/> which is a
+            <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> object.
+            </para>
+            <para>
+            The <paramref name="repository"/> name must be unique. Repositories cannot be redefined.
+            An <see cref="T:System.Exception"/> will be thrown if the repository already exists.
+            </para>
+            </remarks>
+            <exception cref="T:log4net.Core.LogException">The specified repository already exists.</exception>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.CreateDomain(System.String,System.Type)">
+            <summary>
+            Creates a repository with the specified name and repository type.
+            </summary>
+            <param name="repository">The name of the repository, this must be unique to the repository.</param>
+            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
+            and has a no arg constructor. An instance of this type will be created to act
+            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
+            <remarks>
+            <para>
+            <b>CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.</b>
+            </para>
+            <para>
+            The <paramref name="repository"/> name must be unique. Repositories cannot be redefined.
+            An Exception will be thrown if the repository already exists.
+            </para>
+            </remarks>
+            <exception cref="T:log4net.Core.LogException">The specified repository already exists.</exception>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.CreateRepository(System.String,System.Type)">
+            <summary>
+            Creates a repository with the specified name and repository type.
+            </summary>
+            <param name="repository">The name of the repository, this must be unique to the repository.</param>
+            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
+            and has a no arg constructor. An instance of this type will be created to act
+            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
+            <remarks>
+            <para>
+            The <paramref name="repository"/> name must be unique. Repositories cannot be redefined.
+            An Exception will be thrown if the repository already exists.
+            </para>
+            </remarks>
+            <exception cref="T:log4net.Core.LogException">The specified repository already exists.</exception>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.CreateDomain(System.Reflection.Assembly,System.Type)">
+            <summary>
+            Creates a repository for the specified assembly and repository type.
+            </summary>
+            <param name="repositoryAssembly">The assembly to use to get the name of the repository.</param>
+            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
+            and has a no arg constructor. An instance of this type will be created to act
+            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
+            <remarks>
+            <para>
+            <b>CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.</b>
+            </para>
+            <para>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
+            specified such that a call to <see cref="M:log4net.Core.LoggerManager.GetRepository(System.Reflection.Assembly)"/> with the
+            same assembly specified will return the same repository instance.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.CreateRepository(System.Reflection.Assembly,System.Type)">
+            <summary>
+            Creates a repository for the specified assembly and repository type.
+            </summary>
+            <param name="repositoryAssembly">The assembly to use to get the name of the repository.</param>
+            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
+            and has a no arg constructor. An instance of this type will be created to act
+            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
+            specified such that a call to <see cref="M:log4net.Core.LoggerManager.GetRepository(System.Reflection.Assembly)"/> with the
+            same assembly specified will return the same repository instance.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.GetAllRepositories">
+            <summary>
+            Gets an array of all currently defined repositories.
+            </summary>
+            <returns>An array of all the known <see cref="T:log4net.Repository.ILoggerRepository"/> objects.</returns>
+            <remarks>
+            <para>
+            Gets an array of all currently defined repositories.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.GetVersionInfo">
+            <summary>
+            Internal method to get pertinent version info.
+            </summary>
+            <returns>A string of version info.</returns>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.OnDomainUnload(System.Object,System.EventArgs)">
+            <summary>
+            Called when the <see cref="F:System.AppDomain.DomainUnload"/> event fires
+            </summary>
+            <param name="sender">the <see cref="T:System.AppDomain"/> that is exiting</param>
+            <param name="e">null</param>
+            <remarks>
+            <para>
+            Called when the <see cref="F:System.AppDomain.DomainUnload"/> event fires.
+            </para>
+            <para>
+            When the event is triggered the log4net system is <see cref="M:log4net.Core.LoggerManager.Shutdown"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggerManager.OnProcessExit(System.Object,System.EventArgs)">
+            <summary>
+            Called when the <see cref="F:System.AppDomain.ProcessExit"/> event fires
+            </summary>
+            <param name="sender">the <see cref="T:System.AppDomain"/> that is exiting</param>
+            <param name="e">null</param>
+            <remarks>
+            <para>
+            Called when the <see cref="F:System.AppDomain.ProcessExit"/> event fires.
+            </para>
+            <para>
+            When the event is triggered the log4net system is <see cref="M:log4net.Core.LoggerManager.Shutdown"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.LoggerManager.s_repositorySelector">
+            <summary>
+            Initialize the default repository selector
+            </summary>
+        </member>
+        <member name="P:log4net.Core.LoggerManager.RepositorySelector">
+            <summary>
+            Gets or sets the repository selector used by the <see cref="T:log4net.LogManager"/>.
+            </summary>
+            <value>
+            The repository selector used by the <see cref="T:log4net.LogManager"/>.
+            </value>
+            <remarks>
+            <para>
+            The repository selector (<see cref="T:log4net.Core.IRepositorySelector"/>) is used by 
+            the <see cref="T:log4net.LogManager"/> to create and select repositories 
+            (<see cref="T:log4net.Repository.ILoggerRepository"/>).
+            </para>
+            <para>
+            The caller to <see cref="T:log4net.LogManager"/> supplies either a string name 
+            or an assembly (if not supplied the assembly is inferred using 
+            <see cref="M:System.Reflection.Assembly.GetCallingAssembly"/>).
+            </para>
+            <para>
+            This context is used by the selector to lookup a specific repository.
+            </para>
+            <para>
+            For the full .NET Framework, the default repository is <c>DefaultRepositorySelector</c>;
+            for the .NET Compact Framework <c>CompactRepositorySelector</c> is the default
+            repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.LoggerWrapperImpl">
+            <summary>
+            Implementation of the <see cref="T:log4net.Core.ILoggerWrapper"/> interface.
+            </summary>
+            <remarks>
+            <para>
+            This class should be used as the base for all wrapper implementations.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Core.LoggerWrapperImpl.#ctor(log4net.Core.ILogger)">
+            <summary>
+            Constructs a new wrapper for the specified logger.
+            </summary>
+            <param name="logger">The logger to wrap.</param>
+            <remarks>
+            <para>
+            Constructs a new wrapper for the specified logger.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.LoggerWrapperImpl.m_logger">
+            <summary>
+            The logger that this object is wrapping
+            </summary>
+        </member>
+        <member name="P:log4net.Core.LoggerWrapperImpl.Logger">
+            <summary>
+            Gets the implementation behind this wrapper object.
+            </summary>
+            <value>
+            The <see cref="T:log4net.Core.ILogger"/> object that this object is implementing.
+            </value>
+            <remarks>
+            <para>
+            The <c>Logger</c> object may not be the same object as this object 
+            because of logger decorators.
+            </para>
+            <para>
+            This gets the actual underlying objects that is used to process
+            the log events.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.LoggingEventData">
+            <summary>
+            Portable data structure used by <see cref="T:log4net.Core.LoggingEvent"/>
+            </summary>
+            <remarks>
+            <para>
+            Portable data structure used by <see cref="T:log4net.Core.LoggingEvent"/>
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="F:log4net.Core.LoggingEventData.LoggerName">
+            <summary>
+            The logger name.
+            </summary>
+            <remarks>
+            <para>
+            The logger name.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.LoggingEventData.Level">
+            <summary>
+            Level of logging event.
+            </summary>
+            <remarks>
+            <para>
+            Level of logging event. Level cannot be Serializable
+            because it is a flyweight.  Due to its special serialization it
+            cannot be declared final either.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.LoggingEventData.Message">
+            <summary>
+            The application supplied message.
+            </summary>
+            <remarks>
+            <para>
+            The application supplied message of logging event.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.LoggingEventData.ThreadName">
+            <summary>
+            The name of thread
+            </summary>
+            <remarks>
+            <para>
+            The name of thread in which this logging event was generated
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.LoggingEventData.TimeStamp">
+            <summary>
+            The time the event was logged
+            </summary>
+            <remarks>
+            <para>
+            The TimeStamp is stored in the local time zone for this computer.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.LoggingEventData.LocationInfo">
+            <summary>
+            Location information for the caller.
+            </summary>
+            <remarks>
+            <para>
+            Location information for the caller.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.LoggingEventData.UserName">
+            <summary>
+            String representation of the user
+            </summary>
+            <remarks>
+            <para>
+            String representation of the user's windows name,
+            like DOMAIN\username
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.LoggingEventData.Identity">
+            <summary>
+            String representation of the identity.
+            </summary>
+            <remarks>
+            <para>
+            String representation of the current thread's principal identity.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.LoggingEventData.ExceptionString">
+            <summary>
+            The string representation of the exception
+            </summary>
+            <remarks>
+            <para>
+            The string representation of the exception
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.LoggingEventData.Domain">
+            <summary>
+            String representation of the AppDomain.
+            </summary>
+            <remarks>
+            <para>
+            String representation of the AppDomain.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.LoggingEventData.Properties">
+            <summary>
+            Additional event specific properties
+            </summary>
+            <remarks>
+            <para>
+            A logger or an appender may attach additional
+            properties to specific events. These properties
+            have a string key and an object value.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.FixFlags">
+            <summary>
+            Flags passed to the <see cref="P:log4net.Core.LoggingEvent.Fix"/> property
+            </summary>
+            <remarks>
+            <para>
+            Flags passed to the <see cref="P:log4net.Core.LoggingEvent.Fix"/> property
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="F:log4net.Core.FixFlags.Mdc">
+            <summary>
+            Fix the MDC
+            </summary>
+        </member>
+        <member name="F:log4net.Core.FixFlags.Ndc">
+            <summary>
+            Fix the NDC
+            </summary>
+        </member>
+        <member name="F:log4net.Core.FixFlags.Message">
+            <summary>
+            Fix the rendered message
+            </summary>
+        </member>
+        <member name="F:log4net.Core.FixFlags.ThreadName">
+            <summary>
+            Fix the thread name
+            </summary>
+        </member>
+        <member name="F:log4net.Core.FixFlags.LocationInfo">
+            <summary>
+            Fix the callers location information
+            </summary>
+            <remarks>
+            CAUTION: Very slow to generate
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.FixFlags.UserName">
+            <summary>
+            Fix the callers windows user name
+            </summary>
+            <remarks>
+            CAUTION: Slow to generate
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.FixFlags.Domain">
+            <summary>
+            Fix the domain friendly name
+            </summary>
+        </member>
+        <member name="F:log4net.Core.FixFlags.Identity">
+            <summary>
+            Fix the callers principal name
+            </summary>
+            <remarks>
+            CAUTION: May be slow to generate
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.FixFlags.Exception">
+            <summary>
+            Fix the exception text
+            </summary>
+        </member>
+        <member name="F:log4net.Core.FixFlags.Properties">
+            <summary>
+            Fix the event properties
+            </summary>
+        </member>
+        <member name="F:log4net.Core.FixFlags.None">
+            <summary>
+            No fields fixed
+            </summary>
+        </member>
+        <member name="F:log4net.Core.FixFlags.All">
+            <summary>
+            All fields fixed
+            </summary>
+        </member>
+        <member name="F:log4net.Core.FixFlags.Partial">
+            <summary>
+            Partial fields fixed
+            </summary>
+            <remarks>
+            <para>
+            This set of partial fields gives good performance. The following fields are fixed:
+            </para>
+            <list type="bullet">
+            <item><description><see cref="F:log4net.Core.FixFlags.Message"/></description></item>
+            <item><description><see cref="F:log4net.Core.FixFlags.ThreadName"/></description></item>
+            <item><description><see cref="F:log4net.Core.FixFlags.Exception"/></description></item>
+            <item><description><see cref="F:log4net.Core.FixFlags.Domain"/></description></item>
+            <item><description><see cref="F:log4net.Core.FixFlags.Properties"/></description></item>
+            </list>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.LoggingEvent">
+            <summary>
+            The internal representation of logging events. 
+            </summary>
+            <remarks>
+            <para>
+            When an affirmative decision is made to log then a 
+            <see cref="T:log4net.Core.LoggingEvent"/> instance is created. This instance 
+            is passed around to the different log4net components.
+            </para>
+            <para>
+            This class is of concern to those wishing to extend log4net.
+            </para>
+            <para>
+            Some of the values in instances of <see cref="T:log4net.Core.LoggingEvent"/>
+            are considered volatile, that is the values are correct at the
+            time the event is delivered to appenders, but will not be consistent
+            at any time afterwards. If an event is to be stored and then processed
+            at a later time these volatile values must be fixed by calling
+            <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/>. There is a performance penalty
+            for incurred by calling <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/> but it
+            is essential to maintaining data consistency.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+            <author>Douglas de la Torre</author>
+            <author>Daniel Cazzulino</author>
+        </member>
+        <member name="F:log4net.Core.LoggingEvent.HostNameProperty">
+            <summary>
+            The key into the Properties map for the host name value.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.LoggingEvent.IdentityProperty">
+            <summary>
+            The key into the Properties map for the thread identity value.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.LoggingEvent.UserNameProperty">
+            <summary>
+            The key into the Properties map for the user name value.
+            </summary>
+        </member>
+        <member name="M:log4net.Core.LoggingEvent.#ctor(System.Type,log4net.Repository.ILoggerRepository,System.String,log4net.Core.Level,System.Object,System.Exception)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Core.LoggingEvent"/> class
+            from the supplied parameters.
+            </summary>
+            <param name="callerStackBoundaryDeclaringType">The declaring type of the method that is
+            the stack boundary into the logging system for this call.</param>
+            <param name="repository">The repository this event is logged in.</param>
+            <param name="loggerName">The name of the logger of this event.</param>
+            <param name="level">The level of this event.</param>
+            <param name="message">The message of this event.</param>
+            <param name="exception">The exception for this event.</param>
+            <remarks>
+            <para>
+            Except <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/>, <see cref="P:log4net.Core.LoggingEvent.Level"/> and <see cref="P:log4net.Core.LoggingEvent.LoggerName"/>, 
+            all fields of <c>LoggingEvent</c> are filled when actually needed. Call
+            <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/> to cache all data locally
+            to prevent inconsistencies.
+            </para>
+            <para>This method is called by the log4net framework
+            to create a logging event.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggingEvent.#ctor(System.Type,log4net.Repository.ILoggerRepository,log4net.Core.LoggingEventData,log4net.Core.FixFlags)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Core.LoggingEvent"/> class 
+            using specific data.
+            </summary>
+            <param name="callerStackBoundaryDeclaringType">The declaring type of the method that is
+            the stack boundary into the logging system for this call.</param>
+            <param name="repository">The repository this event is logged in.</param>
+            <param name="data">Data used to initialize the logging event.</param>
+            <param name="fixedData">The fields in the <paranref name="data"/> struct that have already been fixed.</param>
+            <remarks>
+            <para>
+            This constructor is provided to allow a <see cref="T:log4net.Core.LoggingEvent"/>
+            to be created independently of the log4net framework. This can
+            be useful if you require a custom serialization scheme.
+            </para>
+            <para>
+            Use the <see cref="M:log4net.Core.LoggingEvent.GetLoggingEventData(log4net.Core.FixFlags)"/> method to obtain an 
+            instance of the <see cref="T:log4net.Core.LoggingEventData"/> class.
+            </para>
+            <para>
+            The <paramref name="fixedData"/> parameter should be used to specify which fields in the
+            <paramref name="data"/> struct have been preset. Fields not specified in the <paramref name="fixedData"/>
+            will be captured from the environment if requested or fixed.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggingEvent.#ctor(System.Type,log4net.Repository.ILoggerRepository,log4net.Core.LoggingEventData)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Core.LoggingEvent"/> class 
+            using specific data.
+            </summary>
+            <param name="callerStackBoundaryDeclaringType">The declaring type of the method that is
+            the stack boundary into the logging system for this call.</param>
+            <param name="repository">The repository this event is logged in.</param>
+            <param name="data">Data used to initialize the logging event.</param>
+            <remarks>
+            <para>
+            This constructor is provided to allow a <see cref="T:log4net.Core.LoggingEvent"/>
+            to be created independently of the log4net framework. This can
+            be useful if you require a custom serialization scheme.
+            </para>
+            <para>
+            Use the <see cref="M:log4net.Core.LoggingEvent.GetLoggingEventData(log4net.Core.FixFlags)"/> method to obtain an 
+            instance of the <see cref="T:log4net.Core.LoggingEventData"/> class.
+            </para>
+            <para>
+            This constructor sets this objects <see cref="P:log4net.Core.LoggingEvent.Fix"/> flags to <see cref="F:log4net.Core.FixFlags.All"/>,
+            this assumes that all the data relating to this event is passed in via the <paramref name="data"/>
+            parameter and no other data should be captured from the environment.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggingEvent.#ctor(log4net.Core.LoggingEventData)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Core.LoggingEvent"/> class 
+            using specific data.
+            </summary>
+            <param name="data">Data used to initialize the logging event.</param>
+            <remarks>
+            <para>
+            This constructor is provided to allow a <see cref="T:log4net.Core.LoggingEvent"/>
+            to be created independently of the log4net framework. This can
+            be useful if you require a custom serialization scheme.
+            </para>
+            <para>
+            Use the <see cref="M:log4net.Core.LoggingEvent.GetLoggingEventData(log4net.Core.FixFlags)"/> method to obtain an 
+            instance of the <see cref="T:log4net.Core.LoggingEventData"/> class.
+            </para>
+            <para>
+            This constructor sets this objects <see cref="P:log4net.Core.LoggingEvent.Fix"/> flags to <see cref="F:log4net.Core.FixFlags.All"/>,
+            this assumes that all the data relating to this event is passed in via the <paramref name="data"/>
+            parameter and no other data should be captured from the environment.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggingEvent.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Serialization constructor
+            </summary>
+            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data.</param>
+            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Core.LoggingEvent"/> class 
+            with serialized data.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggingEvent.EnsureRepository(log4net.Repository.ILoggerRepository)">
+            <summary>
+            Ensure that the repository is set.
+            </summary>
+            <param name="repository">the value for the repository</param>
+        </member>
+        <member name="M:log4net.Core.LoggingEvent.WriteRenderedMessage(System.IO.TextWriter)">
+            <summary>
+            Write the rendered message to a TextWriter
+            </summary>
+            <param name="writer">the writer to write the message to</param>
+            <remarks>
+            <para>
+            Unlike the <see cref="P:log4net.Core.LoggingEvent.RenderedMessage"/> property this method
+            does store the message data in the internal cache. Therefore 
+            if called only once this method should be faster than the
+            <see cref="P:log4net.Core.LoggingEvent.RenderedMessage"/> property, however if the message is
+            to be accessed multiple times then the property will be more efficient.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggingEvent.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Serializes this object into the <see cref="T:System.Runtime.Serialization.SerializationInfo"/> provided.
+            </summary>
+            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> to populate with data.</param>
+            <param name="context">The destination for this serialization.</param>
+            <remarks>
+            <para>
+            The data in this event must be fixed before it can be serialized.
+            </para>
+            <para>
+            The <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/> method must be called during the
+            <see cref="M:log4net.Appender.IAppender.DoAppend(log4net.Core.LoggingEvent)"/> method call if this event 
+            is to be used outside that method.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggingEvent.GetLoggingEventData">
+            <summary>
+            Gets the portable data for this <see cref="T:log4net.Core.LoggingEvent"/>.
+            </summary>
+            <returns>The <see cref="T:log4net.Core.LoggingEventData"/> for this event.</returns>
+            <remarks>
+            <para>
+            A new <see cref="T:log4net.Core.LoggingEvent"/> can be constructed using a
+            <see cref="T:log4net.Core.LoggingEventData"/> instance.
+            </para>
+            <para>
+            Does a <see cref="F:log4net.Core.FixFlags.Partial"/> fix of the data
+            in the logging event before returning the event data.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggingEvent.GetLoggingEventData(log4net.Core.FixFlags)">
+            <summary>
+            Gets the portable data for this <see cref="T:log4net.Core.LoggingEvent"/>.
+            </summary>
+            <param name="fixFlags">The set of data to ensure is fixed in the LoggingEventData</param>
+            <returns>The <see cref="T:log4net.Core.LoggingEventData"/> for this event.</returns>
+            <remarks>
+            <para>
+            A new <see cref="T:log4net.Core.LoggingEvent"/> can be constructed using a
+            <see cref="T:log4net.Core.LoggingEventData"/> instance.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggingEvent.GetExceptionStrRep">
+            <summary>
+            Returns this event's exception's rendered using the 
+            <see cref="P:log4net.Repository.ILoggerRepository.RendererMap"/>.
+            </summary>
+            <returns>
+            This event's exception's rendered using the <see cref="P:log4net.Repository.ILoggerRepository.RendererMap"/>.
+            </returns>
+            <remarks>
+            <para>
+            <b>Obsolete. Use <see cref="M:log4net.Core.LoggingEvent.GetExceptionString"/> instead.</b>
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggingEvent.GetExceptionString">
+            <summary>
+            Returns this event's exception's rendered using the 
+            <see cref="P:log4net.Repository.ILoggerRepository.RendererMap"/>.
+            </summary>
+            <returns>
+            This event's exception's rendered using the <see cref="P:log4net.Repository.ILoggerRepository.RendererMap"/>.
+            </returns>
+            <remarks>
+            <para>
+            Returns this event's exception's rendered using the 
+            <see cref="P:log4net.Repository.ILoggerRepository.RendererMap"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggingEvent.FixVolatileData">
+            <summary>
+            Fix instance fields that hold volatile data.
+            </summary>
+            <remarks>
+            <para>
+            Some of the values in instances of <see cref="T:log4net.Core.LoggingEvent"/>
+            are considered volatile, that is the values are correct at the
+            time the event is delivered to appenders, but will not be consistent
+            at any time afterwards. If an event is to be stored and then processed
+            at a later time these volatile values must be fixed by calling
+            <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/>. There is a performance penalty
+            incurred by calling <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/> but it
+            is essential to maintaining data consistency.
+            </para>
+            <para>
+            Calling <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/> is equivalent to
+            calling <see cref="M:log4net.Core.LoggingEvent.FixVolatileData(System.Boolean)"/> passing the parameter
+            <c>false</c>.
+            </para>
+            <para>
+            See <see cref="M:log4net.Core.LoggingEvent.FixVolatileData(System.Boolean)"/> for more
+            information.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggingEvent.FixVolatileData(System.Boolean)">
+            <summary>
+            Fixes instance fields that hold volatile data.
+            </summary>
+            <param name="fastButLoose">Set to <c>true</c> to not fix data that takes a long time to fix.</param>
+            <remarks>
+            <para>
+            Some of the values in instances of <see cref="T:log4net.Core.LoggingEvent"/>
+            are considered volatile, that is the values are correct at the
+            time the event is delivered to appenders, but will not be consistent
+            at any time afterwards. If an event is to be stored and then processed
+            at a later time these volatile values must be fixed by calling
+            <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/>. There is a performance penalty
+            for incurred by calling <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/> but it
+            is essential to maintaining data consistency.
+            </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 
+            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="P:log4net.Core.LoggingEvent.LocationInformation"/>
+            and <see cref="P:log4net.Core.LoggingEvent.UserName"/> settings.
+            </para>
+            <para>
+            Set <paramref name="fastButLoose"/> to <c>false</c> to ensure that all 
+            settings are fixed.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggingEvent.FixVolatileData(log4net.Core.FixFlags)">
+            <summary>
+            Fix the fields specified by the <see cref="T:log4net.Core.FixFlags"/> parameter
+            </summary>
+            <param name="flags">the fields to fix</param>
+            <remarks>
+            <para>
+            Only fields specified in the <paramref name="flags"/> will be fixed.
+            Fields will not be fixed if they have previously been fixed.
+            It is not possible to 'unfix' a field.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggingEvent.LookupProperty(System.String)">
+            <summary>
+            Lookup a composite property in this event
+            </summary>
+            <param name="key">the key for the property to lookup</param>
+            <returns>the value for the property</returns>
+            <remarks>
+            <para>
+            This event has composite properties that combine together properties from
+            several different contexts in the following order:
+            <list type="definition">
+            	<item>
+            		<term>this events properties</term>
+            		<description>
+            		This event has <see cref="P:log4net.Core.LoggingEvent.Properties"/> that can be set. These 
+            		properties are specific to this event only.
+            		</description>
+            	</item>
+            	<item>
+            		<term>the thread properties</term>
+            		<description>
+            		The <see cref="P:log4net.ThreadContext.Properties"/> that are set on the current
+            		thread. These properties are shared by all events logged on this thread.
+            		</description>
+            	</item>
+            	<item>
+            		<term>the global properties</term>
+            		<description>
+            		The <see cref="P:log4net.GlobalContext.Properties"/> that are set globally. These 
+            		properties are shared by all the threads in the AppDomain.
+            		</description>
+            	</item>
+            </list>
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LoggingEvent.GetProperties">
+            <summary>
+            Get all the composite properties in this event
+            </summary>
+            <returns>the <see cref="T:log4net.Util.PropertiesDictionary"/> containing all the properties</returns>
+            <remarks>
+            <para>
+            See <see cref="M:log4net.Core.LoggingEvent.LookupProperty(System.String)"/> for details of the composite properties 
+            stored by the event.
+            </para>
+            <para>
+            This method returns a single <see cref="T:log4net.Util.PropertiesDictionary"/> containing all the
+            properties defined for this event.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.LoggingEvent.m_data">
+            <summary>
+            The internal logging event data.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.LoggingEvent.m_compositeProperties">
+            <summary>
+            The internal logging event data.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.LoggingEvent.m_eventProperties">
+            <summary>
+            The internal logging event data.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.LoggingEvent.m_callerStackBoundaryDeclaringType">
+            <summary>
+            The fully qualified Type of the calling 
+            logger class in the stack frame (i.e. the declaring type of the method).
+            </summary>
+        </member>
+        <member name="F:log4net.Core.LoggingEvent.m_message">
+            <summary>
+            The application supplied message of logging event.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.LoggingEvent.m_thrownException">
+            <summary>
+            The exception that was thrown.
+            </summary>
+            <remarks>
+            This is not serialized. The string representation
+            is serialized instead.
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.LoggingEvent.m_repository">
+            <summary>
+            The repository that generated the logging event
+            </summary>
+            <remarks>
+            This is not serialized.
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.LoggingEvent.m_fixFlags">
+            <summary>
+            The fix state for this event
+            </summary>
+            <remarks>
+            These flags indicate which fields have been fixed.
+            Not serialized.
+            </remarks>
+        </member>
+        <member name="F:log4net.Core.LoggingEvent.m_cacheUpdatable">
+            <summary>
+            Indicated that the internal cache is updateable (ie not fixed)
+            </summary>
+            <remarks>
+            This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler
+            changes in the caching strategy.
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LoggingEvent.StartTime">
+            <summary>
+            Gets the time when the current process started.
+            </summary>
+            <value>
+            This is the time when this process started.
+            </value>
+            <remarks>
+            <para>
+            The TimeStamp is stored in the local time zone for this computer.
+            </para>
+            <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>
+        </member>
+        <member name="P:log4net.Core.LoggingEvent.Level">
+            <summary>
+            Gets the <see cref="P:log4net.Core.LoggingEvent.Level"/> of the logging event.
+            </summary>
+            <value>
+            The <see cref="P:log4net.Core.LoggingEvent.Level"/> of the logging event.
+            </value>
+            <remarks>
+            <para>
+            Gets the <see cref="P:log4net.Core.LoggingEvent.Level"/> of the logging event.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LoggingEvent.TimeStamp">
+            <summary>
+            Gets the time of the logging event.
+            </summary>
+            <value>
+            The time of the logging event.
+            </value>
+            <remarks>
+            <para>
+            The TimeStamp is stored in the local time zone for this computer.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LoggingEvent.LoggerName">
+            <summary>
+            Gets the name of the logger that logged the event.
+            </summary>
+            <value>
+            The name of the logger that logged the event.
+            </value>
+            <remarks>
+            <para>
+            Gets the name of the logger that logged the event.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LoggingEvent.LocationInformation">
+            <summary>
+            Gets the location information for this logging event.
+            </summary>
+            <value>
+            The location information for this logging event.
+            </value>
+            <remarks>
+            <para>
+            The collected information is cached for future use.
+            </para>
+            <para>
+            See the <see cref="T:log4net.Core.LocationInfo"/> class for more information on
+            supported frameworks and the different behavior in Debug and
+            Release builds.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LoggingEvent.MessageObject">
+            <summary>
+            Gets the message object used to initialize this event.
+            </summary>
+            <value>
+            The message object used to initialize this event.
+            </value>
+            <remarks>
+            <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 
+            be transferred. To get the text of the message the
+            <see cref="P:log4net.Core.LoggingEvent.RenderedMessage"/> property must be used 
+            not this property.
+            </para>
+            <para>
+            If there is no defined message object for this event then
+            null will be returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LoggingEvent.ExceptionObject">
+            <summary>
+            Gets the exception object used to initialize this event.
+            </summary>
+            <value>
+            The exception object used to initialize this event.
+            </value>
+            <remarks>
+            <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 
+            be transferred. To get the text of the exception the
+            <see cref="M:log4net.Core.LoggingEvent.GetExceptionString"/> method must be used 
+            not this property.
+            </para>
+            <para>
+            If there is no defined exception object for this event then
+            null will be returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LoggingEvent.Repository">
+            <summary>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> that this event was created in.
+            </summary>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> that this event was created in.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LoggingEvent.RenderedMessage">
+            <summary>
+            Gets the message, rendered through the <see cref="P:log4net.Repository.ILoggerRepository.RendererMap"/>.
+            </summary>
+            <value>
+            The message rendered through the <see cref="P:log4net.Repository.ILoggerRepository.RendererMap"/>.
+            </value>
+            <remarks>
+            <para>
+            The collected information is cached for future use.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LoggingEvent.ThreadName">
+            <summary>
+            Gets the name of the current thread.  
+            </summary>
+            <value>
+            The name of the current thread, or the thread ID when 
+            the name is not available.
+            </value>
+            <remarks>
+            <para>
+            The collected information is cached for future use.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LoggingEvent.UserName">
+            <summary>
+            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 
+            current user.
+            </value>
+            <remarks>
+            <para>
+            Calls <c>WindowsIdentity.GetCurrent().Name</c> to get the name of
+            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 
+            the string.
+            </para>
+            <para>
+            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>
+            Timing for these operations:
+            </para>
+            <list type="table">
+              <listheader>
+                <term>Method</term>
+                <description>Results</description>
+              </listheader>
+              <item>
+                <term><c>WindowsIdentity.GetCurrent()</c></term>
+                <description>10000 loops, 00:00:00.2031250 seconds</description>
+              </item>
+              <item>
+                <term><c>WindowsIdentity.GetCurrent().Name</c></term>
+                <description>10000 loops, 00:00:08.0468750 seconds</description>
+              </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 takes (8.04-0.20) = 7.84375 seconds.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LoggingEvent.Identity">
+            <summary>
+            Gets the identity of the current thread principal.
+            </summary>
+            <value>
+            The string name of the identity of the current thread principal.
+            </value>
+            <remarks>
+            <para>
+            Calls <c>System.Threading.Thread.CurrentPrincipal.Identity.Name</c> to get
+            the name of the current thread principal.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LoggingEvent.Domain">
+            <summary>
+            Gets the AppDomain friendly name.
+            </summary>
+            <value>
+            The AppDomain friendly name.
+            </value>
+            <remarks>
+            <para>
+            Gets the AppDomain friendly name.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LoggingEvent.Properties">
+            <summary>
+            Additional event specific properties.
+            </summary>
+            <value>
+            Additional event specific properties.
+            </value>
+            <remarks>
+            <para>
+            A logger or an appender may attach additional
+            properties to specific events. These properties
+            have a string key and an object value.
+            </para>
+            <para>
+            This property is for events that have been added directly to
+            this event. The aggregate properties (which include these
+            event properties) can be retrieved using <see cref="M:log4net.Core.LoggingEvent.LookupProperty(System.String)"/>
+            and <see cref="M:log4net.Core.LoggingEvent.GetProperties"/>.
+            </para>
+            <para>
+            Once the properties have been fixed <see cref="P:log4net.Core.LoggingEvent.Fix"/> this property
+            returns the combined cached properties. This ensures that updates to
+            this property are always reflected in the underlying storage. When
+            returning the combined properties there may be more keys in the
+            Dictionary than expected.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LoggingEvent.Fix">
+            <summary>
+            The fixed fields in this event
+            </summary>
+            <value>
+            The set of fields that are fixed in this event
+            </value>
+            <remarks>
+            <para>
+            Fields will not be fixed if they have previously been fixed.
+            It is not possible to 'unfix' a field.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.LogImpl">
+            <summary>
+            Implementation of <see cref="T:log4net.ILog"/> wrapper interface.
+            </summary>
+            <remarks>
+            <para>
+            This implementation of the <see cref="T:log4net.ILog"/> interface
+            forwards to the <see cref="T:log4net.Core.ILogger"/> held by the base class.
+            </para>
+            <para>
+            This logger has methods to allow the caller to log at the following
+            levels:
+            </para>
+            <list type="definition">
+              <item>
+                <term>DEBUG</term>
+                <description>
+                The <see cref="M:log4net.Core.LogImpl.Debug(System.Object)"/> and <see cref="M:log4net.Core.LogImpl.DebugFormat(System.String,System.Object[])"/> methods log messages
+                at the <c>DEBUG</c> level. That is the level with that name defined in the
+                repositories <see cref="P:log4net.Repository.ILoggerRepository.LevelMap"/>. The default value
+                for this level is <see cref="F:log4net.Core.Level.Debug"/>. The <see cref="P:log4net.Core.LogImpl.IsDebugEnabled"/>
+                property tests if this level is enabled for logging.
+                </description>
+              </item>
+              <item>
+                <term>INFO</term>
+                <description>
+                The <see cref="M:log4net.Core.LogImpl.Info(System.Object)"/> and <see cref="M:log4net.Core.LogImpl.InfoFormat(System.String,System.Object[])"/> methods log messages
+                at the <c>INFO</c> level. That is the level with that name defined in the
+                repositories <see cref="P:log4net.Repository.ILoggerRepository.LevelMap"/>. The default value
+                for this level is <see cref="F:log4net.Core.Level.Info"/>. The <see cref="P:log4net.Core.LogImpl.IsInfoEnabled"/>
+                property tests if this level is enabled for logging.
+                </description>
+              </item>
+              <item>
+                <term>WARN</term>
+                <description>
+                The <see cref="M:log4net.Core.LogImpl.Warn(System.Object)"/> and <see cref="M:log4net.Core.LogImpl.WarnFormat(System.String,System.Object[])"/> methods log messages
+                at the <c>WARN</c> level. That is the level with that name defined in the
+                repositories <see cref="P:log4net.Repository.ILoggerRepository.LevelMap"/>. The default value
+                for this level is <see cref="F:log4net.Core.Level.Warn"/>. The <see cref="P:log4net.Core.LogImpl.IsWarnEnabled"/>
+                property tests if this level is enabled for logging.
+                </description>
+              </item>
+              <item>
+                <term>ERROR</term>
+                <description>
+                The <see cref="M:log4net.Core.LogImpl.Error(System.Object)"/> and <see cref="M:log4net.Core.LogImpl.ErrorFormat(System.String,System.Object[])"/> methods log messages
+                at the <c>ERROR</c> level. That is the level with that name defined in the
+                repositories <see cref="P:log4net.Repository.ILoggerRepository.LevelMap"/>. The default value
+                for this level is <see cref="F:log4net.Core.Level.Error"/>. The <see cref="P:log4net.Core.LogImpl.IsErrorEnabled"/>
+                property tests if this level is enabled for logging.
+                </description>
+              </item>
+              <item>
+                <term>FATAL</term>
+                <description>
+                The <see cref="M:log4net.Core.LogImpl.Fatal(System.Object)"/> and <see cref="M:log4net.Core.LogImpl.FatalFormat(System.String,System.Object[])"/> methods log messages
+                at the <c>FATAL</c> level. That is the level with that name defined in the
+                repositories <see cref="P:log4net.Repository.ILoggerRepository.LevelMap"/>. The default value
+                for this level is <see cref="F:log4net.Core.Level.Fatal"/>. The <see cref="P:log4net.Core.LogImpl.IsFatalEnabled"/>
+                property tests if this level is enabled for logging.
+                </description>
+              </item>
+            </list>
+            <para>
+            The values for these levels and their semantic meanings can be changed by 
+            configuring the <see cref="P:log4net.Repository.ILoggerRepository.LevelMap"/> for the repository.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.ILog">
+            <summary>
+            The ILog interface is use by application to log messages into
+            the log4net framework.
+            </summary>
+            <remarks>
+            <para>
+            Use the <see cref="T:log4net.LogManager"/> to obtain logger instances
+            that implement this interface. The <see cref="M:log4net.LogManager.GetLogger(System.Reflection.Assembly,System.Type)"/>
+            static method is used to get logger instances.
+            </para>
+            <para>
+            This class contains methods for logging at different levels and also
+            has properties for determining if those logging levels are
+            enabled in the current configuration.
+            </para>
+            <para>
+            This interface can be implemented in different ways. This documentation
+            specifies reasonable behavior that a caller can expect from the actual
+            implementation, however different implementations reserve the right to
+            do things differently.
+            </para>
+            </remarks>
+            <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");
+            }
+            </code>
+            </example>
+            <seealso cref="T:log4net.LogManager"/>
+            <seealso cref="M:log4net.LogManager.GetLogger(System.Reflection.Assembly,System.Type)"/>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.ILog.Debug(System.Object)">
+            <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Debug"/> level.</overloads>
+            <summary>
+            Log a message object with the <see cref="F:log4net.Core.Level.Debug"/> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <remarks>
+            <para>
+            This method first checks if this logger is <c>DEBUG</c>
+            enabled by comparing the level of this logger with the 
+            <see cref="F:log4net.Core.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="T: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="T:System.Exception"/> 
+            to this method will print the name of the <see cref="T:System.Exception"/> 
+            but no stack trace. To print a stack trace use the 
+            <see cref="M:log4net.ILog.Debug(System.Object,System.Exception)"/> form instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Debug(System.Object,System.Exception)"/>
+            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.Debug(System.Object,System.Exception)">
+            <summary>
+            Log a message object with the <see cref="F:log4net.Core.Level.Debug"/> level including
+            the stack trace of the <see cref="T:System.Exception"/> passed
+            as a parameter.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+            <remarks>
+            <para>
+            See the <see cref="M:log4net.ILog.Debug(System.Object)"/> form for more detailed information.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Debug(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.DebugFormat(System.String,System.Object[])">
+            <overloads>Log a formatted string with the <see cref="F:log4net.Core.Level.Debug"/> level.</overloads>
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Debug(System.Object,System.Exception)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Debug(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.DebugFormat(System.String,System.Object)">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Debug(System.Object,System.Exception)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Debug(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.DebugFormat(System.String,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Debug(System.Object,System.Exception)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Debug(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.DebugFormat(System.String,System.Object,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <param name="arg2">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Debug(System.Object,System.Exception)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Debug(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.DebugFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
+            </summary>
+            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Debug(System.Object,System.Exception)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Debug(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.Info(System.Object)">
+            <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Info"/> level.</overloads>
+            <summary>
+            Logs a message object with the <see cref="F:log4net.Core.Level.Info"/> level.
+            </summary>
+            <remarks>
+            <para>
+            This method first checks if this logger is <c>INFO</c>
+            enabled by comparing the level of this logger with the 
+            <see cref="F:log4net.Core.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="T: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="T:System.Exception"/> 
+            to this method will print the name of the <see cref="T:System.Exception"/> 
+            but no stack trace. To print a stack trace use the 
+            <see cref="M:log4net.ILog.Info(System.Object,System.Exception)"/> form instead.
+            </para>
+            </remarks>
+            <param name="message">The message object to log.</param>
+            <seealso cref="M:log4net.ILog.Info(System.Object,System.Exception)"/>
+            <seealso cref="P:log4net.ILog.IsInfoEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.Info(System.Object,System.Exception)">
+            <summary>
+            Logs a message object with the <c>INFO</c> level including
+            the stack trace of the <see cref="T:System.Exception"/> passed
+            as a parameter.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+            <remarks>
+            <para>
+            See the <see cref="M:log4net.ILog.Info(System.Object)"/> form for more detailed information.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Info(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsInfoEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.InfoFormat(System.String,System.Object[])">
+            <overloads>Log a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.</overloads>
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Info(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Info(System.Object,System.Exception)"/>
+            <seealso cref="P:log4net.ILog.IsInfoEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.InfoFormat(System.String,System.Object)">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Info(System.Object,System.Exception)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Info(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsInfoEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.InfoFormat(System.String,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Info(System.Object,System.Exception)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Info(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsInfoEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.InfoFormat(System.String,System.Object,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <param name="arg2">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Info(System.Object,System.Exception)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Info(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsInfoEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.InfoFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
+            </summary>
+            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Info(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Info(System.Object,System.Exception)"/>
+            <seealso cref="P:log4net.ILog.IsInfoEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.Warn(System.Object)">
+            <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Warn"/> level.</overloads>
+            <summary>
+            Log a message object with the <see cref="F:log4net.Core.Level.Warn"/> level.
+            </summary>
+            <remarks>
+            <para>
+            This method first checks if this logger is <c>WARN</c>
+            enabled by comparing the level of this logger with the 
+            <see cref="F:log4net.Core.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="T: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="T:System.Exception"/> 
+            to this method will print the name of the <see cref="T:System.Exception"/> 
+            but no stack trace. To print a stack trace use the 
+            <see cref="M:log4net.ILog.Warn(System.Object,System.Exception)"/> form instead.
+            </para>
+            </remarks>
+            <param name="message">The message object to log.</param>
+            <seealso cref="M:log4net.ILog.Warn(System.Object,System.Exception)"/>
+            <seealso cref="P:log4net.ILog.IsWarnEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.Warn(System.Object,System.Exception)">
+            <summary>
+            Log a message object with the <see cref="F:log4net.Core.Level.Warn"/> level including
+            the stack trace of the <see cref="T:System.Exception"/> passed
+            as a parameter.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+            <remarks>
+            <para>
+            See the <see cref="M:log4net.ILog.Warn(System.Object)"/> form for more detailed information.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Warn(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsWarnEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.WarnFormat(System.String,System.Object[])">
+            <overloads>Log a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.</overloads>
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Warn(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Warn(System.Object,System.Exception)"/>
+            <seealso cref="P:log4net.ILog.IsWarnEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.WarnFormat(System.String,System.Object)">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Warn(System.Object,System.Exception)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Warn(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsWarnEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.WarnFormat(System.String,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Warn(System.Object,System.Exception)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Warn(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsWarnEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.WarnFormat(System.String,System.Object,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <param name="arg2">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Warn(System.Object,System.Exception)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Warn(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsWarnEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.WarnFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
+            </summary>
+            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Warn(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Warn(System.Object,System.Exception)"/>
+            <seealso cref="P:log4net.ILog.IsWarnEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.Error(System.Object)">
+            <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Error"/> level.</overloads>
+            <summary>
+            Logs a message object with the <see cref="F:log4net.Core.Level.Error"/> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <remarks>
+            <para>
+            This method first checks if this logger is <c>ERROR</c>
+            enabled by comparing the level of this logger with the 
+            <see cref="F:log4net.Core.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="T: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="T:System.Exception"/> 
+            to this method will print the name of the <see cref="T:System.Exception"/> 
+            but no stack trace. To print a stack trace use the 
+            <see cref="M:log4net.ILog.Error(System.Object,System.Exception)"/> form instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Error(System.Object,System.Exception)"/>
+            <seealso cref="P:log4net.ILog.IsErrorEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.Error(System.Object,System.Exception)">
+            <summary>
+            Log a message object with the <see cref="F:log4net.Core.Level.Error"/> level including
+            the stack trace of the <see cref="T:System.Exception"/> passed
+            as a parameter.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+            <remarks>
+            <para>
+            See the <see cref="M:log4net.ILog.Error(System.Object)"/> form for more detailed information.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Error(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsErrorEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.ErrorFormat(System.String,System.Object[])">
+            <overloads>Log a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.</overloads>
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Error(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Error(System.Object,System.Exception)"/>
+            <seealso cref="P:log4net.ILog.IsErrorEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.ErrorFormat(System.String,System.Object)">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Error(System.Object,System.Exception)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Error(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsErrorEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.ErrorFormat(System.String,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Error(System.Object,System.Exception)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Error(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsErrorEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.ErrorFormat(System.String,System.Object,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <param name="arg2">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Error(System.Object,System.Exception)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Error(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsErrorEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.ErrorFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
+            </summary>
+            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Error(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Error(System.Object,System.Exception)"/>
+            <seealso cref="P:log4net.ILog.IsErrorEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.Fatal(System.Object)">
+            <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Fatal"/> level.</overloads>
+            <summary>
+            Log a message object with the <see cref="F:log4net.Core.Level.Fatal"/> level.
+            </summary>
+            <remarks>
+            <para>
+            This method first checks if this logger is <c>FATAL</c>
+            enabled by comparing the level of this logger with the 
+            <see cref="F:log4net.Core.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="T: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="T:System.Exception"/> 
+            to this method will print the name of the <see cref="T:System.Exception"/> 
+            but no stack trace. To print a stack trace use the 
+            <see cref="M:log4net.ILog.Fatal(System.Object,System.Exception)"/> form instead.
+            </para>
+            </remarks>
+            <param name="message">The message object to log.</param>
+            <seealso cref="M:log4net.ILog.Fatal(System.Object,System.Exception)"/>
+            <seealso cref="P:log4net.ILog.IsFatalEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.Fatal(System.Object,System.Exception)">
+            <summary>
+            Log a message object with the <see cref="F:log4net.Core.Level.Fatal"/> level including
+            the stack trace of the <see cref="T:System.Exception"/> passed
+            as a parameter.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+            <remarks>
+            <para>
+            See the <see cref="M:log4net.ILog.Fatal(System.Object)"/> form for more detailed information.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsFatalEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.FatalFormat(System.String,System.Object[])">
+            <overloads>Log a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.</overloads>
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Fatal(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Fatal(System.Object,System.Exception)"/>
+            <seealso cref="P:log4net.ILog.IsFatalEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.FatalFormat(System.String,System.Object)">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Fatal(System.Object,System.Exception)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsFatalEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.FatalFormat(System.String,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Fatal(System.Object,System.Exception)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsFatalEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.FatalFormat(System.String,System.Object,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <param name="arg2">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Fatal(System.Object,System.Exception)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
+            <seealso cref="P:log4net.ILog.IsFatalEnabled"/>
+        </member>
+        <member name="M:log4net.ILog.FatalFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
+            </summary>
+            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <c>String.Format</c> method. See
+            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Fatal(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Fatal(System.Object,System.Exception)"/>
+            <seealso cref="P:log4net.ILog.IsFatalEnabled"/>
+        </member>
+        <member name="P:log4net.ILog.IsDebugEnabled">
+            <summary>
+            Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Debug"/> level.
+            </summary>
+            <value>
+            <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Debug"/> events, <c>false</c> otherwise.
+            </value>
+            <remarks>
+            <para>
+            This function is intended to lessen the computational cost of
+            disabled log debug statements.
+            </para>
+            <para> For some ILog interface <c>log</c>, when you write:</para>
+            <code lang="C#">
+            log.Debug("This is entry number: " + i );
+            </code>
+            <para>
+            You incur the cost constructing the message, string construction and concatenation in
+            this case, regardless of whether the message is logged or not.
+            </para>
+            <para>
+            If you are worried about speed (who isn't), then you should write:
+            </para>
+            <code lang="C#">
+            if (log.IsDebugEnabled)
+            { 
+                log.Debug("This is entry number: " + i );
+            }
+            </code>
+            <para>
+            This way you will not incur the cost of parameter
+            construction if debugging is disabled for <c>log</c>. On
+            the other hand, if the <c>log</c> is debug enabled, you
+            will incur the cost of evaluating whether the logger is debug
+            enabled twice. Once in <see cref="P:log4net.ILog.IsDebugEnabled"/> and once in
+            the <see cref="M:log4net.ILog.Debug(System.Object)"/>.  This is an insignificant overhead
+            since evaluating a logger takes about 1% of the time it
+            takes to actually log. This is the preferred style of logging.
+            </para>
+            <para>Alternatively if your logger is available statically then the is debug
+            enabled state can be stored in a static variable like this:
+            </para>
+            <code lang="C#">
+            private static readonly bool isDebugEnabled = log.IsDebugEnabled;
+            </code>
+            <para>
+            Then when you come to log you can write:
+            </para>
+            <code lang="C#">
+            if (isDebugEnabled)
+            { 
+                log.Debug("This is entry number: " + i );
+            }
+            </code>
+            <para>
+            This way the debug enabled state is only queried once
+            when the class is loaded. Using a <c>private static readonly</c>
+            variable is the most efficient because it is a run time constant
+            and can be heavily optimized by the JIT compiler.
+            </para>
+            <para>
+            Of course if you use a static readonly variable to
+            hold the enabled state of the logger then you cannot
+            change the enabled state at runtime to vary the logging
+            that is produced. You have to decide if you need absolute
+            speed or runtime flexibility.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.ILog.Debug(System.Object)"/>
+            <seealso cref="M:log4net.ILog.DebugFormat(System.IFormatProvider,System.String,System.Object[])"/>
+        </member>
+        <member name="P:log4net.ILog.IsInfoEnabled">
+            <summary>
+            Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Info"/> level.
+            </summary>
+            <value>
+            <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Info"/> events, <c>false</c> otherwise.
+            </value>
+            <remarks>
+            For more information see <see cref="P:log4net.ILog.IsDebugEnabled"/>.
+            </remarks>
+            <seealso cref="M:log4net.ILog.Info(System.Object)"/>
+            <seealso cref="M:log4net.ILog.InfoFormat(System.IFormatProvider,System.String,System.Object[])"/>
+            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
+        </member>
+        <member name="P:log4net.ILog.IsWarnEnabled">
+            <summary>
+            Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Warn"/> level.
+            </summary>
+            <value>
+            <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Warn"/> events, <c>false</c> otherwise.
+            </value>
+            <remarks>
+            For more information see <see cref="P:log4net.ILog.IsDebugEnabled"/>.
+            </remarks>
+            <seealso cref="M:log4net.ILog.Warn(System.Object)"/>
+            <seealso cref="M:log4net.ILog.WarnFormat(System.IFormatProvider,System.String,System.Object[])"/>
+            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
+        </member>
+        <member name="P:log4net.ILog.IsErrorEnabled">
+            <summary>
+            Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Error"/> level.
+            </summary>
+            <value>
+            <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Error"/> events, <c>false</c> otherwise.
+            </value>
+            <remarks>
+            For more information see <see cref="P:log4net.ILog.IsDebugEnabled"/>.
+            </remarks>
+            <seealso cref="M:log4net.ILog.Error(System.Object)"/>
+            <seealso cref="M:log4net.ILog.ErrorFormat(System.IFormatProvider,System.String,System.Object[])"/>
+            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
+        </member>
+        <member name="P:log4net.ILog.IsFatalEnabled">
+            <summary>
+            Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Fatal"/> level.
+            </summary>
+            <value>
+            <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Fatal"/> events, <c>false</c> otherwise.
+            </value>
+            <remarks>
+            For more information see <see cref="P:log4net.ILog.IsDebugEnabled"/>.
+            </remarks>
+            <seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
+            <seealso cref="M:log4net.ILog.FatalFormat(System.IFormatProvider,System.String,System.Object[])"/>
+            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
+        </member>
+        <member name="M:log4net.Core.LogImpl.#ctor(log4net.Core.ILogger)">
+            <summary>
+            Construct a new wrapper for the specified logger.
+            </summary>
+            <param name="logger">The logger to wrap.</param>
+            <remarks>
+            <para>
+            Construct a new wrapper for the specified logger.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.ReloadLevels(log4net.Repository.ILoggerRepository)">
+            <summary>
+            Virtual method called when the configuration of the repository changes
+            </summary>
+            <param name="repository">the repository holding the levels</param>
+            <remarks>
+            <para>
+            Virtual method called when the configuration of the repository changes
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.Debug(System.Object)">
+            <summary>
+            Logs a message object with the <c>DEBUG</c> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <remarks>
+            <para>
+            This method first checks if this logger is <c>DEBUG</c>
+            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="T: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="T:System.Exception"/> 
+            to this method will print the name of the <see cref="T:System.Exception"/> 
+            but no stack trace. To print a stack trace use the 
+            <see cref="M:log4net.Core.LogImpl.Debug(System.Object,System.Exception)"/> form instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.Debug(System.Object,System.Exception)">
+            <summary>
+            Logs a message object with the <c>DEBUG</c> level
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+            <remarks>
+            <para>
+            Logs a message object with the <c>DEBUG</c> level including
+            the stack trace of the <see cref="T:System.Exception"/> <paramref name="exception"/> passed
+            as a parameter.
+            </para>
+            <para>
+            See the <see cref="M:log4net.Core.LogImpl.Debug(System.Object)"/> form for more detailed information.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.Core.LogImpl.Debug(System.Object)"/>
+        </member>
+        <member name="M:log4net.Core.LogImpl.DebugFormat(System.String,System.Object[])">
+            <summary>
+            Logs a formatted message string with the <c>DEBUG</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.DebugFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Debug(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.DebugFormat(System.String,System.Object)">
+            <summary>
+            Logs a formatted message string with the <c>DEBUG</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.DebugFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Debug(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.DebugFormat(System.String,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <c>DEBUG</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.DebugFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Debug(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.DebugFormat(System.String,System.Object,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <c>DEBUG</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <param name="arg2">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.DebugFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Debug(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.DebugFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Logs a formatted message string with the <c>DEBUG</c> level.
+            </summary>
+            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Debug(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.Info(System.Object)">
+            <summary>
+            Logs a message object with the <c>INFO</c> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <remarks>
+            <para>
+            This method first checks if this logger is <c>INFO</c>
+            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="T: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="T:System.Exception"/> 
+            to this method will print the name of the <see cref="T:System.Exception"/> 
+            but no stack trace. To print a stack trace use the 
+            <see cref="M:log4net.Core.LogImpl.Info(System.Object,System.Exception)"/> form instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.Info(System.Object,System.Exception)">
+            <summary>
+            Logs a message object with the <c>INFO</c> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+            <remarks>
+            <para>
+            Logs a message object with the <c>INFO</c> level including
+            the stack trace of the <see cref="T:System.Exception"/> <paramref name="exception"/> 
+            passed as a parameter.
+            </para>
+            <para>
+            See the <see cref="M:log4net.Core.LogImpl.Info(System.Object)"/> form for more detailed information.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.Core.LogImpl.Info(System.Object)"/>
+        </member>
+        <member name="M:log4net.Core.LogImpl.InfoFormat(System.String,System.Object[])">
+            <summary>
+            Logs a formatted message string with the <c>INFO</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.InfoFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Info(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.InfoFormat(System.String,System.Object)">
+            <summary>
+            Logs a formatted message string with the <c>INFO</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.InfoFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Info(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.InfoFormat(System.String,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <c>INFO</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.InfoFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Info(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.InfoFormat(System.String,System.Object,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <c>INFO</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <param name="arg2">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.InfoFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Info(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.InfoFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Logs a formatted message string with the <c>INFO</c> level.
+            </summary>
+            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Info(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.Warn(System.Object)">
+            <summary>
+            Logs a message object with the <c>WARN</c> level.
+            </summary>
+            <param name="message">the message object to log</param>
+            <remarks>
+            <para>
+            This method first checks if this logger is <c>WARN</c>
+            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="T: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="T:System.Exception"/> to this
+            method will print the name of the <see cref="T:System.Exception"/> but no
+            stack trace. To print a stack trace use the 
+            <see cref="M:log4net.Core.LogImpl.Warn(System.Object,System.Exception)"/> form instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.Warn(System.Object,System.Exception)">
+            <summary>
+            Logs a message object with the <c>WARN</c> level
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+            <remarks>
+            <para>
+            Logs a message object with the <c>WARN</c> level including
+            the stack trace of the <see cref="T:System.Exception"/> <paramref name="exception"/> 
+            passed as a parameter.
+            </para>
+            <para>
+            See the <see cref="M:log4net.Core.LogImpl.Warn(System.Object)"/> form for more detailed information.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.Core.LogImpl.Warn(System.Object)"/>
+        </member>
+        <member name="M:log4net.Core.LogImpl.WarnFormat(System.String,System.Object[])">
+            <summary>
+            Logs a formatted message string with the <c>WARN</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.WarnFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Warn(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.WarnFormat(System.String,System.Object)">
+            <summary>
+            Logs a formatted message string with the <c>WARN</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.WarnFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Warn(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.WarnFormat(System.String,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <c>WARN</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.WarnFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Warn(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.WarnFormat(System.String,System.Object,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <c>WARN</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <param name="arg2">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.WarnFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Warn(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.WarnFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Logs a formatted message string with the <c>WARN</c> level.
+            </summary>
+            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Warn(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.Error(System.Object)">
+            <summary>
+            Logs a message object with the <c>ERROR</c> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <remarks>
+            <para>
+            This method first checks if this logger is <c>ERROR</c>
+            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="T: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="T:System.Exception"/> to this
+            method will print the name of the <see cref="T:System.Exception"/> but no
+            stack trace. To print a stack trace use the 
+            <see cref="M:log4net.Core.LogImpl.Error(System.Object,System.Exception)"/> form instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.Error(System.Object,System.Exception)">
+            <summary>
+            Logs a message object with the <c>ERROR</c> level
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+            <remarks>
+            <para>
+            Logs a message object with the <c>ERROR</c> level including
+            the stack trace of the <see cref="T:System.Exception"/> <paramref name="exception"/> 
+            passed as a parameter.
+            </para>
+            <para>
+            See the <see cref="M:log4net.Core.LogImpl.Error(System.Object)"/> form for more detailed information.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.Core.LogImpl.Error(System.Object)"/>
+        </member>
+        <member name="M:log4net.Core.LogImpl.ErrorFormat(System.String,System.Object[])">
+            <summary>
+            Logs a formatted message string with the <c>ERROR</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.ErrorFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Error(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.ErrorFormat(System.String,System.Object)">
+            <summary>
+            Logs a formatted message string with the <c>ERROR</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.ErrorFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Error(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.ErrorFormat(System.String,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <c>ERROR</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.ErrorFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Error(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.ErrorFormat(System.String,System.Object,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <c>ERROR</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <param name="arg2">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.ErrorFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Error(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.ErrorFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Logs a formatted message string with the <c>ERROR</c> level.
+            </summary>
+            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Error(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.Fatal(System.Object)">
+            <summary>
+            Logs a message object with the <c>FATAL</c> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <remarks>
+            <para>
+            This method first checks if this logger is <c>FATAL</c>
+            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="T: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="T:System.Exception"/> to this
+            method will print the name of the <see cref="T:System.Exception"/> but no
+            stack trace. To print a stack trace use the 
+            <see cref="M:log4net.Core.LogImpl.Fatal(System.Object,System.Exception)"/> form instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.Fatal(System.Object,System.Exception)">
+            <summary>
+            Logs a message object with the <c>FATAL</c> level
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+            <remarks>
+            <para>
+            Logs a message object with the <c>FATAL</c> level including
+            the stack trace of the <see cref="T:System.Exception"/> <paramref name="exception"/> 
+            passed as a parameter.
+            </para>
+            <para>
+            See the <see cref="M:log4net.Core.LogImpl.Fatal(System.Object)"/> form for more detailed information.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.Core.LogImpl.Fatal(System.Object)"/>
+        </member>
+        <member name="M:log4net.Core.LogImpl.FatalFormat(System.String,System.Object[])">
+            <summary>
+            Logs a formatted message string with the <c>FATAL</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.FatalFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Fatal(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.FatalFormat(System.String,System.Object)">
+            <summary>
+            Logs a formatted message string with the <c>FATAL</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.FatalFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Fatal(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.FatalFormat(System.String,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <c>FATAL</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.FatalFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Fatal(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.FatalFormat(System.String,System.Object,System.Object,System.Object)">
+            <summary>
+            Logs a formatted message string with the <c>FATAL</c> level.
+            </summary>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="arg0">An Object to format</param>
+            <param name="arg1">An Object to format</param>
+            <param name="arg2">An Object to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
+            format provider. To specify a localized provider use the
+            <see cref="M:log4net.Core.LogImpl.FatalFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Fatal(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.FatalFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Logs a formatted message string with the <c>FATAL</c> level.
+            </summary>
+            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
+            <param name="format">A String containing zero or more format items</param>
+            <param name="args">An Object array containing zero or more objects to format</param>
+            <remarks>
+            <para>
+            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
+            <c>String.Format</c> for details of the syntax of the format string and the behavior
+            of the formatting.
+            </para>
+            <para>
+            This method does not take an <see cref="T:System.Exception"/> object to include in the
+            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Fatal(System.Object)"/>
+            methods instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.LogImpl.LoggerRepositoryConfigurationChanged(System.Object,System.EventArgs)">
+            <summary>
+            Event handler for the <see cref="E:log4net.Repository.ILoggerRepository.ConfigurationChanged"/> event
+            </summary>
+            <param name="sender">the repository</param>
+            <param name="e">Empty</param>
+        </member>
+        <member name="F:log4net.Core.LogImpl.ThisDeclaringType">
+            <summary>
+            The fully qualified name of this declaring type not the type of any subclass.
+            </summary>
+        </member>
+        <member name="P:log4net.Core.LogImpl.IsDebugEnabled">
+            <summary>
+            Checks if this logger is enabled for the <c>DEBUG</c>
+            level.
+            </summary>
+            <value>
+            <c>true</c> if this logger is enabled for <c>DEBUG</c> events,
+            <c>false</c> otherwise.
+            </value>
+            <remarks>
+            <para>
+            This function is intended to lessen the computational cost of
+            disabled log debug statements.
+            </para>
+            <para>
+            For some <c>log</c> Logger object, when you write:
+            </para>
+            <code lang="C#">
+            log.Debug("This is entry number: " + i );
+            </code>
+            <para>
+            You incur the cost constructing the message, concatenation in
+            this case, regardless of whether the message is logged or not.
+            </para>
+            <para>
+            If you are worried about speed, then you should write:
+            </para>
+            <code lang="C#">
+            if (log.IsDebugEnabled())
+            { 
+             log.Debug("This is entry number: " + i );
+            }
+            </code>
+            <para>
+            This way you will not incur the cost of parameter
+            construction if debugging is disabled for <c>log</c>. On
+            the other hand, if the <c>log</c> is debug enabled, you
+            will incur the cost of evaluating whether the logger is debug
+            enabled twice. Once in <c>IsDebugEnabled</c> and once in
+            the <c>Debug</c>.  This is an insignificant overhead
+            since evaluating a logger takes about 1% of the time it
+            takes to actually log.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.LogImpl.IsInfoEnabled">
+            <summary>
+            Checks if this logger is enabled for the <c>INFO</c> level.
+            </summary>
+            <value>
+            <c>true</c> if this logger is enabled for <c>INFO</c> events,
+            <c>false</c> otherwise.
+            </value>
+            <remarks>
+            <para>
+            See <see cref="P:log4net.Core.LogImpl.IsDebugEnabled"/> for more information and examples 
+            of using this method.
+            </para>
+            </remarks>
+            <seealso cref="P:log4net.Core.LogImpl.IsDebugEnabled"/>
+        </member>
+        <member name="P:log4net.Core.LogImpl.IsWarnEnabled">
+            <summary>
+            Checks if this logger is enabled for the <c>WARN</c> level.
+            </summary>
+            <value>
+            <c>true</c> if this logger is enabled for <c>WARN</c> events,
+            <c>false</c> otherwise.
+            </value>
+            <remarks>
+            <para>
+            See <see cref="P:log4net.Core.LogImpl.IsDebugEnabled"/> for more information and examples 
+            of using this method.
+            </para>
+            </remarks>
+            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
+        </member>
+        <member name="P:log4net.Core.LogImpl.IsErrorEnabled">
+            <summary>
+            Checks if this logger is enabled for the <c>ERROR</c> level.
+            </summary>
+            <value>
+            <c>true</c> if this logger is enabled for <c>ERROR</c> events,
+            <c>false</c> otherwise.
+            </value>
+            <remarks>
+            <para>
+            See <see cref="P:log4net.Core.LogImpl.IsDebugEnabled"/> for more information and examples of using this method.
+            </para>
+            </remarks>
+            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
+        </member>
+        <member name="P:log4net.Core.LogImpl.IsFatalEnabled">
+            <summary>
+            Checks if this logger is enabled for the <c>FATAL</c> level.
+            </summary>
+            <value>
+            <c>true</c> if this logger is enabled for <c>FATAL</c> events,
+            <c>false</c> otherwise.
+            </value>
+            <remarks>
+            <para>
+            See <see cref="P:log4net.Core.LogImpl.IsDebugEnabled"/> for more information and examples of using this method.
+            </para>
+            </remarks>
+            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
+        </member>
+        <member name="T:log4net.Core.SecurityContext">
+            <summary>
+            A SecurityContext used by log4net when interacting with protected resources
+            </summary>
+            <remarks>
+            <para>
+            A SecurityContext used by log4net when interacting with protected resources
+            for example with operating system services. This can be used to impersonate
+            a principal that has been granted privileges on the system resources.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Core.SecurityContext.Impersonate(System.Object)">
+            <summary>
+            Impersonate this SecurityContext
+            </summary>
+            <param name="state">State supplied by the caller</param>
+            <returns>An <see cref="T:System.IDisposable"/> instance that will
+            revoke the impersonation of this SecurityContext, or <c>null</c></returns>
+            <remarks>
+            <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="T:System.IDisposable"/> result 
+            <see cref="M:System.IDisposable.Dispose"/> method is called the security
+            context of the thread should be reverted to the state it was in
+            before <see cref="M:log4net.Core.SecurityContext.Impersonate(System.Object)"/> was called.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.SecurityContextProvider">
+            <summary>
+            The <see cref="T:log4net.Core.SecurityContextProvider"/> providers default <see cref="T:log4net.Core.SecurityContext"/> instances.
+            </summary>
+            <remarks>
+            <para>
+            A configured component that interacts with potentially protected system
+            resources uses a <see cref="T:log4net.Core.SecurityContext"/> to provide the elevated
+            privileges required. If the <see cref="T:log4net.Core.SecurityContext"/> object has
+            been not been explicitly provided to the component then the component
+            will request one from this <see cref="T:log4net.Core.SecurityContextProvider"/>.
+            </para>
+            <para>
+            By default the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> is
+            an instance of <see cref="T:log4net.Core.SecurityContextProvider"/> which returns only
+            <see cref="T:log4net.Util.NullSecurityContext"/> objects. This is a reasonable default
+            where the privileges required are not know by the system.
+            </para>
+            <para>
+            This default behavior can be overridden by subclassing the <see cref="T:log4net.Core.SecurityContextProvider"/>
+            and overriding the <see cref="M:log4net.Core.SecurityContextProvider.CreateSecurityContext(System.Object)"/> method to return
+            the desired <see cref="T:log4net.Core.SecurityContext"/> objects. The default provider
+            can be replaced by programmatically setting the value of the 
+            <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> property.
+            </para>
+            <para>
+            An alternative is to use the <c>log4net.Config.SecurityContextProviderAttribute</c>
+            This attribute can be applied to an assembly in the same way as the
+            <c>log4net.Config.XmlConfiguratorAttribute"</c>. The attribute takes
+            the type to use as the <see cref="T:log4net.Core.SecurityContextProvider"/> as an argument.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="F:log4net.Core.SecurityContextProvider.s_defaultProvider">
+            <summary>
+            The default provider
+            </summary>
+        </member>
+        <member name="M:log4net.Core.SecurityContextProvider.#ctor">
+            <summary>
+            Protected default constructor to allow subclassing
+            </summary>
+            <remarks>
+            <para>
+            Protected default constructor to allow subclassing
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.SecurityContextProvider.CreateSecurityContext(System.Object)">
+            <summary>
+            Create a SecurityContext for a consumer
+            </summary>
+            <param name="consumer">The consumer requesting the SecurityContext</param>
+            <returns>An impersonation context</returns>
+            <remarks>
+            <para>
+            The default implementation is to return a <see cref="T:log4net.Util.NullSecurityContext"/>.
+            </para>
+            <para>
+            Subclasses should override this method to provide their own
+            behavior.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Core.SecurityContextProvider.DefaultProvider">
+            <summary>
+            Gets or sets the default SecurityContextProvider
+            </summary>
+            <value>
+            The default SecurityContextProvider
+            </value>
+            <remarks>
+            <para>
+            The default provider is used by configured components that
+            require a <see cref="T:log4net.Core.SecurityContext"/> and have not had one
+            given to them.
+            </para>
+            <para>
+            By default this is an instance of <see cref="T:log4net.Core.SecurityContextProvider"/>
+            that returns <see cref="T:log4net.Util.NullSecurityContext"/> objects.
+            </para>
+            <para>
+            The default provider can be set programmatically by setting
+            the value of this property to a sub class of <see cref="T:log4net.Core.SecurityContextProvider"/>
+            that has the desired behavior.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.WrapperCreationHandler">
+            <summary>
+            Delegate used to handle creation of new wrappers.
+            </summary>
+            <param name="logger">The logger to wrap in a wrapper.</param>
+            <remarks>
+            <para>
+            Delegate used to handle creation of new wrappers. This delegate
+            is called from the <see cref="M:log4net.Core.WrapperMap.CreateNewWrapperObject(log4net.Core.ILogger)"/>
+            method to construct the wrapper for the specified logger.
+            </para>
+            <para>
+            The delegate to use is supplied to the <see cref="T:log4net.Core.WrapperMap"/>
+            constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Core.WrapperMap">
+            <summary>
+            Maps between logger objects and wrapper objects.
+            </summary>
+            <remarks>
+            <para>
+            This class maintains a mapping between <see cref="T:log4net.Core.ILogger"/> objects and
+            <see cref="T:log4net.Core.ILoggerWrapper"/> objects. Use the <see cref="M:log4net.Core.WrapperMap.GetWrapper(log4net.Core.ILogger)"/> method to 
+            lookup the <see cref="T:log4net.Core.ILoggerWrapper"/> for the specified <see cref="T:log4net.Core.ILogger"/>.
+            </para>
+            <para>
+            New wrapper instances are created by the <see cref="M:log4net.Core.WrapperMap.CreateNewWrapperObject(log4net.Core.ILogger)"/>
+            method. The default behavior is for this method to delegate construction
+            of the wrapper to the <see cref="T:log4net.Core.WrapperCreationHandler"/> delegate supplied
+            to the constructor. This allows specialization of the behavior without
+            requiring subclassing of this type.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Core.WrapperMap.#ctor(log4net.Core.WrapperCreationHandler)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Core.WrapperMap"/>
+            </summary>
+            <param name="createWrapperHandler">The handler to use to create the wrapper objects.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Core.WrapperMap"/> class with 
+            the specified handler to create the wrapper objects.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.WrapperMap.GetWrapper(log4net.Core.ILogger)">
+            <summary>
+            Gets the wrapper object for the specified logger.
+            </summary>
+            <returns>The wrapper object for the specified logger</returns>
+            <remarks>
+            <para>
+            If the logger is null then the corresponding wrapper is null.
+            </para>
+            <para>
+            Looks up the wrapper it it has previously been requested and
+            returns it. If the wrapper has never been requested before then
+            the <see cref="M:log4net.Core.WrapperMap.CreateNewWrapperObject(log4net.Core.ILogger)"/> virtual method is
+            called.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.WrapperMap.CreateNewWrapperObject(log4net.Core.ILogger)">
+            <summary>
+            Creates the wrapper object for the specified logger.
+            </summary>
+            <param name="logger">The logger to wrap in a wrapper.</param>
+            <returns>The wrapper object for the logger.</returns>
+            <remarks>
+            <para>
+            This implementation uses the <see cref="T:log4net.Core.WrapperCreationHandler"/>
+            passed to the constructor to create the wrapper. This method
+            can be overridden in a subclass.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.WrapperMap.RepositoryShutdown(log4net.Repository.ILoggerRepository)">
+            <summary>
+            Called when a monitored repository shutdown event is received.
+            </summary>
+            <param name="repository">The <see cref="T:log4net.Repository.ILoggerRepository"/> that is shutting down</param>
+            <remarks>
+            <para>
+            This method is called when a <see cref="T:log4net.Repository.ILoggerRepository"/> that this
+            <see cref="T:log4net.Core.WrapperMap"/> is holding loggers for has signaled its shutdown
+            event <see cref="E:log4net.Repository.ILoggerRepository.ShutdownEvent"/>. The default
+            behavior of this method is to release the references to the loggers
+            and their wrappers generated for this repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Core.WrapperMap.ILoggerRepository_Shutdown(System.Object,System.EventArgs)">
+            <summary>
+            Event handler for repository shutdown event.
+            </summary>
+            <param name="sender">The sender of the event.</param>
+            <param name="e">The event args.</param>
+        </member>
+        <member name="F:log4net.Core.WrapperMap.m_repositories">
+            <summary>
+            Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings
+            </summary>
+        </member>
+        <member name="F:log4net.Core.WrapperMap.m_createWrapperHandler">
+            <summary>
+            The handler to use to create the extension wrapper objects.
+            </summary>
+        </member>
+        <member name="F:log4net.Core.WrapperMap.m_shutdownHandler">
+            <summary>
+            Internal reference to the delegate used to register for repository shutdown events.
+            </summary>
+        </member>
+        <member name="P:log4net.Core.WrapperMap.Repositories">
+            <summary>
+            Gets the map of logger repositories.
+            </summary>
+            <value>
+            Map of logger repositories.
+            </value>
+            <remarks>
+            <para>
+            Gets the hashtable that is keyed on <see cref="T:log4net.Repository.ILoggerRepository"/>. The
+            values are hashtables keyed on <see cref="T:log4net.Core.ILogger"/> with the
+            value being the corresponding <see cref="T:log4net.Core.ILoggerWrapper"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.DateFormatter.AbsoluteTimeDateFormatter">
+            <summary>
+            Formats a <see cref="T:System.DateTime"/> as <c>"HH:mm:ss,fff"</c>.
+            </summary>
+            <remarks>
+            <para>
+            Formats a <see cref="T:System.DateTime"/> in the format <c>"HH:mm:ss,fff"</c> for example, <c>"15:49:37,459"</c>.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.DateFormatter.IDateFormatter">
+            <summary>
+            Render a <see cref="T:System.DateTime"/> as a string.
+            </summary>
+            <remarks>
+            <para>
+            Interface to abstract the rendering of a <see cref="T:System.DateTime"/>
+            instance into a string.
+            </para>
+            <para>
+            The <see cref="M:log4net.DateFormatter.IDateFormatter.FormatDate(System.DateTime,System.IO.TextWriter)"/> method is used to render the
+            date to a text writer.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.DateFormatter.IDateFormatter.FormatDate(System.DateTime,System.IO.TextWriter)">
+            <summary>
+            Formats the specified date as a string.
+            </summary>
+            <param name="dateToFormat">The date to format.</param>
+            <param name="writer">The writer to write to.</param>
+            <remarks>
+            <para>
+            Format the <see cref="T:System.DateTime"/> as a string and write it
+            to the <see cref="T:System.IO.TextWriter"/> provided.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.AbsoluteTimeDateFormat">
+            <summary>
+            String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is <b>ABSOLUTE</b>.
+            </summary>
+        </member>
+        <member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.DateAndTimeDateFormat">
+            <summary>
+            String constant used to specify DateTimeDateFormat in layouts.  Current value is <b>DATE</b>.
+            </summary>
+        </member>
+        <member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.Iso8601TimeDateFormat">
+            <summary>
+            String constant used to specify ISO8601DateFormat in layouts. Current value is <b>ISO8601</b>.
+            </summary>
+        </member>
+        <member name="M:log4net.DateFormatter.AbsoluteTimeDateFormatter.FormatDateWithoutMillis(System.DateTime,System.Text.StringBuilder)">
+            <summary>
+            Renders the date into a string. Format is <c>"HH:mm:ss"</c>.
+            </summary>
+            <param name="dateToFormat">The date to render into a string.</param>
+            <param name="buffer">The string builder to write to.</param>
+            <remarks>
+            <para>
+            Subclasses should override this method to render the date
+            into a string using a precision up to the second. This method
+            will be called at most once per second and the result will be
+            reused if it is needed again during the same second.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.DateFormatter.AbsoluteTimeDateFormatter.FormatDate(System.DateTime,System.IO.TextWriter)">
+            <summary>
+            Renders the date into a string. Format is "HH:mm:ss,fff".
+            </summary>
+            <param name="dateToFormat">The date to render into a string.</param>
+            <param name="writer">The writer to write to.</param>
+            <remarks>
+            <para>
+            Uses the <see cref="M:log4net.DateFormatter.AbsoluteTimeDateFormatter.FormatDateWithoutMillis(System.DateTime,System.Text.StringBuilder)"/> method to generate the
+            time string up to the seconds and then appends the current
+            milliseconds. The results from <see cref="M:log4net.DateFormatter.AbsoluteTimeDateFormatter.FormatDateWithoutMillis(System.DateTime,System.Text.StringBuilder)"/> are
+            cached and <see cref="M:log4net.DateFormatter.AbsoluteTimeDateFormatter.FormatDateWithoutMillis(System.DateTime,System.Text.StringBuilder)"/> is called at most once
+            per second.
+            </para>
+            <para>
+            Sub classes should override <see cref="M:log4net.DateFormatter.AbsoluteTimeDateFormatter.FormatDateWithoutMillis(System.DateTime,System.Text.StringBuilder)"/>
+            rather than <see cref="M:log4net.DateFormatter.AbsoluteTimeDateFormatter.FormatDate(System.DateTime,System.IO.TextWriter)"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.s_lastTimeToTheSecond">
+            <summary>
+            Last stored time with precision up to the second.
+            </summary>
+        </member>
+        <member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.s_lastTimeBuf">
+            <summary>
+            Last stored time with precision up to the second, formatted
+            as a string.
+            </summary>
+        </member>
+        <member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.s_lastTimeString">
+            <summary>
+            Last stored time with precision up to the second, formatted
+            as a string.
+            </summary>
+        </member>
+        <member name="T:log4net.DateFormatter.DateTimeDateFormatter">
+            <summary>
+            Formats a <see cref="T:System.DateTime"/> as <c>"dd MMM yyyy HH:mm:ss,fff"</c>
+            </summary>
+            <remarks>
+            <para>
+            Formats a <see cref="T:System.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>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+            <author>Angelika Schnagl</author>
+        </member>
+        <member name="M:log4net.DateFormatter.DateTimeDateFormatter.#ctor">
+            <summary>
+            Default constructor.
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.DateFormatter.DateTimeDateFormatter"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.DateFormatter.DateTimeDateFormatter.FormatDateWithoutMillis(System.DateTime,System.Text.StringBuilder)">
+            <summary>
+            Formats the date without the milliseconds part
+            </summary>
+            <param name="dateToFormat">The date to format.</param>
+            <param name="buffer">The string builder to write to.</param>
+            <remarks>
+            <para>
+            Formats a DateTime in the format <c>"dd MMM yyyy HH:mm:ss"</c>
+            for example, <c>"06 Nov 1994 15:49:37"</c>.
+            </para>
+            <para>
+            The base class will append the <c>",fff"</c> milliseconds section.
+            This method will only be called at most once per second.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.DateFormatter.DateTimeDateFormatter.m_dateTimeFormatInfo">
+            <summary>
+            The format info for the invariant culture.
+            </summary>
+        </member>
+        <member name="T:log4net.DateFormatter.Iso8601DateFormatter">
+            <summary>
+            Formats the <see cref="T:System.DateTime"/> as <c>"yyyy-MM-dd HH:mm:ss,fff"</c>.
+            </summary>
+            <remarks>
+            <para>
+            Formats the <see cref="T:System.DateTime"/> specified as a string: <c>"yyyy-MM-dd HH:mm:ss,fff"</c>.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.DateFormatter.Iso8601DateFormatter.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.DateFormatter.Iso8601DateFormatter.FormatDateWithoutMillis(System.DateTime,System.Text.StringBuilder)">
+            <summary>
+            Formats the date without the milliseconds part
+            </summary>
+            <param name="dateToFormat">The date to format.</param>
+            <param name="buffer">The string builder to write to.</param>
+            <remarks>
+            <para>
+            Formats the date specified as a string: <c>"yyyy-MM-dd HH:mm:ss"</c>.
+            </para>
+            <para>
+            The base class will append the <c>",fff"</c> milliseconds section.
+            This method will only be called at most once per second.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.DateFormatter.SimpleDateFormatter">
+            <summary>
+            Formats the <see cref="T:System.DateTime"/> using the <see cref="M:System.DateTime.ToString(System.String,System.IFormatProvider)"/> method.
+            </summary>
+            <remarks>
+            <para>
+            Formats the <see cref="T:System.DateTime"/> using the <see cref="T:System.DateTime"/> <see cref="M:System.DateTime.ToString(System.String,System.IFormatProvider)"/> method.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.DateFormatter.SimpleDateFormatter.#ctor(System.String)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="format">The format string.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.DateFormatter.SimpleDateFormatter"/> class 
+            with the specified format string.
+            </para>
+            <para>
+            The format string must be compatible with the options
+            that can be supplied to <see cref="M:System.DateTime.ToString(System.String,System.IFormatProvider)"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.DateFormatter.SimpleDateFormatter.FormatDate(System.DateTime,System.IO.TextWriter)">
+            <summary>
+            Formats the date using <see cref="M:System.DateTime.ToString(System.String,System.IFormatProvider)"/>.
+            </summary>
+            <param name="dateToFormat">The date to convert to a string.</param>
+            <param name="writer">The writer to write to.</param>
+            <remarks>
+            <para>
+            Uses the date format string supplied to the constructor to call
+            the <see cref="M:System.DateTime.ToString(System.String,System.IFormatProvider)"/> method to format the date.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.DateFormatter.SimpleDateFormatter.m_formatString">
+            <summary>
+            The format string used to format the <see cref="T:System.DateTime"/>.
+            </summary>
+            <remarks>
+            <para>
+            The format string must be compatible with the options
+            that can be supplied to <see cref="M:System.DateTime.ToString(System.String,System.IFormatProvider)"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Filter.DenyAllFilter">
+            <summary>
+            This filter drops all <see cref="T:log4net.Core.LoggingEvent"/>. 
+            </summary>
+            <remarks>
+            <para>
+            You can add this filter to the end of a filter chain to
+            switch from the default "accept all unless instructed otherwise"
+            filtering behavior to a "deny all unless instructed otherwise"
+            behavior.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Filter.FilterSkeleton">
+            <summary>
+            Subclass this type to implement customized logging event filtering
+            </summary>
+            <remarks>
+            <para>
+            Users should extend this class to implement customized logging
+            event filtering. Note that <see cref="T:log4net.Repository.Hierarchy.Logger"/> and 
+            <see cref="T: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
+            your own custom filters.
+            </para>
+            <para>
+            This abstract class assumes and also imposes that filters be
+            organized in a linear chain. The <see cref="M:log4net.Filter.FilterSkeleton.Decide(log4net.Core.LoggingEvent)"/>
+            method of each filter is called sequentially, in the order of their 
+            addition to the chain.
+            </para>
+            <para>
+            The <see cref="M:log4net.Filter.FilterSkeleton.Decide(log4net.Core.LoggingEvent)"/> method must return one
+            of the integer constants <see cref="F:log4net.Filter.FilterDecision.Deny"/>, 
+            <see cref="F:log4net.Filter.FilterDecision.Neutral"/> or <see cref="F:log4net.Filter.FilterDecision.Accept"/>.
+            </para>
+            <para>
+            If the value <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned, then the log event is dropped 
+            immediately without consulting with the remaining filters.
+            </para>
+            <para>
+            If the value <see cref="F:log4net.Filter.FilterDecision.Neutral"/> is returned, then the next filter
+            in the chain is consulted. If there are no more filters in the
+            chain, then the log event is logged. Thus, in the presence of no
+            filters, the default behavior is to log all logging events.
+            </para>
+            <para>
+            If the value <see cref="F:log4net.Filter.FilterDecision.Accept"/> is returned, then the log
+            event is logged without consulting the remaining filters.
+            </para>
+            <para>
+            The philosophy of log4net filters is largely inspired from the
+            Linux ipchains.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Filter.IFilter">
+            <summary>
+            Implement this interface to provide customized logging event filtering
+            </summary>
+            <remarks>
+            <para>
+            Users should implement this interface to implement customized logging
+            event filtering. Note that <see cref="T:log4net.Repository.Hierarchy.Logger"/> and 
+            <see cref="T: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
+            your own custom filters.
+            </para>
+            <para>
+            This abstract class assumes and also imposes that filters be
+            organized in a linear chain. The <see cref="M:log4net.Filter.IFilter.Decide(log4net.Core.LoggingEvent)"/>
+            method of each filter is called sequentially, in the order of their 
+            addition to the chain.
+            </para>
+            <para>
+            The <see cref="M:log4net.Filter.IFilter.Decide(log4net.Core.LoggingEvent)"/> method must return one
+            of the integer constants <see cref="F:log4net.Filter.FilterDecision.Deny"/>, 
+            <see cref="F:log4net.Filter.FilterDecision.Neutral"/> or <see cref="F:log4net.Filter.FilterDecision.Accept"/>.
+            </para>
+            <para>
+            If the value <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned, then the log event is dropped 
+            immediately without consulting with the remaining filters.
+            </para>
+            <para>
+            If the value <see cref="F:log4net.Filter.FilterDecision.Neutral"/> is returned, then the next filter
+            in the chain is consulted. If there are no more filters in the
+            chain, then the log event is logged. Thus, in the presence of no
+            filters, the default behavior is to log all logging events.
+            </para>
+            <para>
+            If the value <see cref="F:log4net.Filter.FilterDecision.Accept"/> is returned, then the log
+            event is logged without consulting the remaining filters.
+            </para>
+            <para>
+            The philosophy of log4net filters is largely inspired from the
+            Linux ipchains.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Filter.IFilter.Decide(log4net.Core.LoggingEvent)">
+            <summary>
+            Decide if the logging event should be logged through an appender.
+            </summary>
+            <param name="loggingEvent">The LoggingEvent to decide upon</param>
+            <returns>The decision of the filter</returns>
+            <remarks>
+            <para>
+            If the decision is <see cref="F:log4net.Filter.FilterDecision.Deny"/>, then the event will be
+            dropped. If the decision is <see cref="F:log4net.Filter.FilterDecision.Neutral"/>, then the next
+            filter, if any, will be invoked. If the decision is <see cref="F:log4net.Filter.FilterDecision.Accept"/> then
+            the event will be logged without consulting with other filters in
+            the chain.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Filter.IFilter.Next">
+            <summary>
+            Property to get and set the next filter
+            </summary>
+            <value>
+            The next filter in the chain
+            </value>
+            <remarks>
+            <para>
+            Filters are typically composed into chains. This property allows the next filter in 
+            the chain to be accessed.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Filter.FilterSkeleton.m_next">
+            <summary>
+            Points to the next filter in the filter chain.
+            </summary>
+            <remarks>
+            <para>
+            See <see cref="P:log4net.Filter.FilterSkeleton.Next"/> for more information.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Filter.FilterSkeleton.ActivateOptions">
+            <summary>
+            Initialize the filter with the options set
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Filter.FilterSkeleton.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Filter.FilterSkeleton.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Filter.FilterSkeleton.ActivateOptions"/> must be called again.
+            </para>
+            <para>
+            Typically filter's options become active immediately on set, 
+            however this method must still be called. 
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Filter.FilterSkeleton.Decide(log4net.Core.LoggingEvent)">
+            <summary>
+            Decide if the <see cref="T:log4net.Core.LoggingEvent"/> should be logged through an appender.
+            </summary>
+            <param name="loggingEvent">The <see cref="T:log4net.Core.LoggingEvent"/> to decide upon</param>
+            <returns>The decision of the filter</returns>
+            <remarks>
+            <para>
+            If the decision is <see cref="F:log4net.Filter.FilterDecision.Deny"/>, then the event will be
+            dropped. If the decision is <see cref="F:log4net.Filter.FilterDecision.Neutral"/>, then the next
+            filter, if any, will be invoked. If the decision is <see cref="F:log4net.Filter.FilterDecision.Accept"/> then
+            the event will be logged without consulting with other filters in
+            the chain.
+            </para>
+            <para>
+            This method is marked <c>abstract</c> and must be implemented
+            in a subclass.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Filter.FilterSkeleton.Next">
+            <summary>
+            Property to get and set the next filter
+            </summary>
+            <value>
+            The next filter in the chain
+            </value>
+            <remarks>
+            <para>
+            Filters are typically composed into chains. This property allows the next filter in 
+            the chain to be accessed.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Filter.DenyAllFilter.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+        </member>
+        <member name="M:log4net.Filter.DenyAllFilter.Decide(log4net.Core.LoggingEvent)">
+            <summary>
+            Always returns the integer constant <see cref="F:log4net.Filter.FilterDecision.Deny"/>
+            </summary>
+            <param name="loggingEvent">the LoggingEvent to filter</param>
+            <returns>Always returns <see cref="F:log4net.Filter.FilterDecision.Deny"/></returns>
+            <remarks>
+            <para>
+            Ignores the event being logged and just returns
+            <see cref="F:log4net.Filter.FilterDecision.Deny"/>. This can be used to change the default filter
+            chain behavior from <see cref="F:log4net.Filter.FilterDecision.Accept"/> to <see cref="F:log4net.Filter.FilterDecision.Deny"/>. This filter
+            should only be used as the last filter in the chain
+            as any further filters will be ignored!
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Filter.FilterDecision">
+            <summary>
+            The return result from <see cref="M:log4net.Filter.IFilter.Decide(log4net.Core.LoggingEvent)"/>
+            </summary>
+            <remarks>
+            <para>
+            The return result from <see cref="M:log4net.Filter.IFilter.Decide(log4net.Core.LoggingEvent)"/>
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Filter.FilterDecision.Deny">
+            <summary>
+            The log event must be dropped immediately without 
+            consulting with the remaining filters, if any, in the chain.
+            </summary>
+        </member>
+        <member name="F:log4net.Filter.FilterDecision.Neutral">
+            <summary>
+            This filter is neutral with respect to the log event. 
+            The remaining filters, if any, should be consulted for a final decision.
+            </summary>
+        </member>
+        <member name="F:log4net.Filter.FilterDecision.Accept">
+            <summary>
+            The log event must be logged immediately without 
+            consulting with the remaining filters, if any, in the chain.
+            </summary>
+        </member>
+        <member name="T:log4net.Filter.LevelMatchFilter">
+            <summary>
+            This is a very simple filter based on <see cref="T:log4net.Core.Level"/> matching.
+            </summary>
+            <remarks>
+            <para>
+            The filter admits two options <see cref="P:log4net.Filter.LevelMatchFilter.LevelToMatch"/> and
+            <see cref="P:log4net.Filter.LevelMatchFilter.AcceptOnMatch"/>. If there is an exact match between the value
+            of the <see cref="P:log4net.Filter.LevelMatchFilter.LevelToMatch"/> option and the <see cref="T:log4net.Core.Level"/> of the 
+            <see cref="T:log4net.Core.LoggingEvent"/>, then the <see cref="M:log4net.Filter.LevelMatchFilter.Decide(log4net.Core.LoggingEvent)"/> method returns <see cref="F:log4net.Filter.FilterDecision.Accept"/> in 
+            case the <see cref="P:log4net.Filter.LevelMatchFilter.AcceptOnMatch"/> option value is set
+            to <c>true</c>, if it is <c>false</c> then 
+            <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned. If the <see cref="T:log4net.Core.Level"/> does not match then
+            the result will be <see cref="F:log4net.Filter.FilterDecision.Neutral"/>.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="F:log4net.Filter.LevelMatchFilter.m_acceptOnMatch">
+            <summary>
+            flag to indicate if the filter should <see cref="F:log4net.Filter.FilterDecision.Accept"/> on a match
+            </summary>
+        </member>
+        <member name="F:log4net.Filter.LevelMatchFilter.m_levelToMatch">
+            <summary>
+            the <see cref="T:log4net.Core.Level"/> to match against
+            </summary>
+        </member>
+        <member name="M:log4net.Filter.LevelMatchFilter.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+        </member>
+        <member name="M:log4net.Filter.LevelMatchFilter.Decide(log4net.Core.LoggingEvent)">
+            <summary>
+            Tests if the <see cref="T:log4net.Core.Level"/> of the logging event matches that of the filter
+            </summary>
+            <param name="loggingEvent">the event to filter</param>
+            <returns>see remarks</returns>
+            <remarks>
+            <para>
+            If the <see cref="T:log4net.Core.Level"/> of the event matches the level of the
+            filter then the result of the function depends on the
+            value of <see cref="P:log4net.Filter.LevelMatchFilter.AcceptOnMatch"/>. If it is true then
+            the function will return <see cref="F:log4net.Filter.FilterDecision.Accept"/>, it it is false then it
+            will return <see cref="F:log4net.Filter.FilterDecision.Deny"/>. If the <see cref="T:log4net.Core.Level"/> does not match then
+            the result will be <see cref="F:log4net.Filter.FilterDecision.Neutral"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Filter.LevelMatchFilter.AcceptOnMatch">
+            <summary>
+            <see cref="F:log4net.Filter.FilterDecision.Accept"/> when matching <see cref="P:log4net.Filter.LevelMatchFilter.LevelToMatch"/>
+            </summary>
+            <remarks>
+            <para>
+            The <see cref="P:log4net.Filter.LevelMatchFilter.AcceptOnMatch"/> property is a flag that determines
+            the behavior when a matching <see cref="T:log4net.Core.Level"/> is found. If the
+            flag is set to true then the filter will <see cref="F:log4net.Filter.FilterDecision.Accept"/> the 
+            logging event, otherwise it will <see cref="F:log4net.Filter.FilterDecision.Deny"/> the event.
+            </para>
+            <para>
+            The default is <c>true</c> i.e. to <see cref="F:log4net.Filter.FilterDecision.Accept"/> the event.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Filter.LevelMatchFilter.LevelToMatch">
+            <summary>
+            The <see cref="T:log4net.Core.Level"/> that the filter will match
+            </summary>
+            <remarks>
+            <para>
+            The level that this filter will attempt to match against the 
+            <see cref="T:log4net.Core.LoggingEvent"/> level. If a match is found then
+            the result depends on the value of <see cref="P:log4net.Filter.LevelMatchFilter.AcceptOnMatch"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Filter.LevelRangeFilter">
+            <summary>
+            This is a simple filter based on <see cref="T:log4net.Core.Level"/> matching.
+            </summary>
+            <remarks>
+            <para>
+            The filter admits three options <see cref="P:log4net.Filter.LevelRangeFilter.LevelMin"/> and <see cref="P:log4net.Filter.LevelRangeFilter.LevelMax"/>
+            that determine the range of priorities that are matched, and
+            <see cref="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch"/>. If there is a match between the range
+            of priorities and the <see cref="T:log4net.Core.Level"/> of the <see cref="T:log4net.Core.LoggingEvent"/>, then the 
+            <see cref="M:log4net.Filter.LevelRangeFilter.Decide(log4net.Core.LoggingEvent)"/> method returns <see cref="F:log4net.Filter.FilterDecision.Accept"/> in case the <see cref="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch"/> 
+            option value is set to <c>true</c>, if it is <c>false</c>
+            then <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned. If there is no match, <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="F:log4net.Filter.LevelRangeFilter.m_acceptOnMatch">
+            <summary>
+            Flag to indicate the behavior when matching a <see cref="T:log4net.Core.Level"/>
+            </summary>
+        </member>
+        <member name="F:log4net.Filter.LevelRangeFilter.m_levelMin">
+            <summary>
+            the minimum <see cref="T:log4net.Core.Level"/> value to match
+            </summary>
+        </member>
+        <member name="F:log4net.Filter.LevelRangeFilter.m_levelMax">
+            <summary>
+            the maximum <see cref="T:log4net.Core.Level"/> value to match
+            </summary>
+        </member>
+        <member name="M:log4net.Filter.LevelRangeFilter.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+        </member>
+        <member name="M:log4net.Filter.LevelRangeFilter.Decide(log4net.Core.LoggingEvent)">
+            <summary>
+            Check if the event should be logged.
+            </summary>
+            <param name="loggingEvent">the logging event to check</param>
+            <returns>see remarks</returns>
+            <remarks>
+            <para>
+            If the <see cref="T:log4net.Core.Level"/> of the logging event is outside the range
+            matched by this filter then <see cref="F:log4net.Filter.FilterDecision.Deny"/>
+            is returned. If the <see cref="T:log4net.Core.Level"/> is matched then the value of
+            <see cref="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch"/> is checked. If it is true then
+            <see cref="F:log4net.Filter.FilterDecision.Accept"/> is returned, otherwise
+            <see cref="F:log4net.Filter.FilterDecision.Neutral"/> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch">
+            <summary>
+            <see cref="F:log4net.Filter.FilterDecision.Accept"/> when matching <see cref="P:log4net.Filter.LevelRangeFilter.LevelMin"/> and <see cref="P:log4net.Filter.LevelRangeFilter.LevelMax"/>
+            </summary>
+            <remarks>
+            <para>
+            The <see cref="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch"/> property is a flag that determines
+            the behavior when a matching <see cref="T:log4net.Core.Level"/> is found. If the
+            flag is set to true then the filter will <see cref="F:log4net.Filter.FilterDecision.Accept"/> the 
+            logging event, otherwise it will <see cref="F:log4net.Filter.FilterDecision.Neutral"/> the event.
+            </para>
+            <para>
+            The default is <c>true</c> i.e. to <see cref="F:log4net.Filter.FilterDecision.Accept"/> the event.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Filter.LevelRangeFilter.LevelMin">
+            <summary>
+            Set the minimum matched <see cref="T:log4net.Core.Level"/>
+            </summary>
+            <remarks>
+            <para>
+            The minimum level that this filter will attempt to match against the 
+            <see cref="T:log4net.Core.LoggingEvent"/> level. If a match is found then
+            the result depends on the value of <see cref="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Filter.LevelRangeFilter.LevelMax">
+            <summary>
+            Sets the maximum matched <see cref="T:log4net.Core.Level"/>
+            </summary>
+            <remarks>
+            <para>
+            The maximum level that this filter will attempt to match against the 
+            <see cref="T:log4net.Core.LoggingEvent"/> level. If a match is found then
+            the result depends on the value of <see cref="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Filter.LoggerMatchFilter">
+            <summary>
+            Simple filter to match a string in the event's logger name.
+            </summary>
+            <remarks>
+            <para>
+            The works very similar to the <see cref="T:log4net.Filter.LevelMatchFilter"/>. It admits two 
+            options <see cref="P:log4net.Filter.LoggerMatchFilter.LoggerToMatch"/> and <see cref="P:log4net.Filter.LoggerMatchFilter.AcceptOnMatch"/>. If the 
+            <see cref="P:log4net.Core.LoggingEvent.LoggerName"/> of the <see cref="T:log4net.Core.LoggingEvent"/> starts 
+            with the value of the <see cref="P:log4net.Filter.LoggerMatchFilter.LoggerToMatch"/> option, then the 
+            <see cref="M:log4net.Filter.LoggerMatchFilter.Decide(log4net.Core.LoggingEvent)"/> method returns <see cref="F:log4net.Filter.FilterDecision.Accept"/> in 
+            case the <see cref="P:log4net.Filter.LoggerMatchFilter.AcceptOnMatch"/> option value is set to <c>true</c>, 
+            if it is <c>false</c> then <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned.
+            </para>
+            </remarks>
+            <author>Daniel Cazzulino</author>
+        </member>
+        <member name="F:log4net.Filter.LoggerMatchFilter.m_acceptOnMatch">
+            <summary>
+            Flag to indicate the behavior when we have a match
+            </summary>
+        </member>
+        <member name="F:log4net.Filter.LoggerMatchFilter.m_loggerToMatch">
+            <summary>
+            The logger name string to substring match against the event
+            </summary>
+        </member>
+        <member name="M:log4net.Filter.LoggerMatchFilter.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+        </member>
+        <member name="M:log4net.Filter.LoggerMatchFilter.Decide(log4net.Core.LoggingEvent)">
+            <summary>
+            Check if this filter should allow the event to be logged
+            </summary>
+            <param name="loggingEvent">the event being logged</param>
+            <returns>see remarks</returns>
+            <remarks>
+            <para>
+            The rendered message is matched against the <see cref="P:log4net.Filter.LoggerMatchFilter.LoggerToMatch"/>.
+            If the <see cref="P:log4net.Filter.LoggerMatchFilter.LoggerToMatch"/> equals the beginning of 
+            the incoming <see cref="P:log4net.Core.LoggingEvent.LoggerName"/> (<see cref="M:System.String.StartsWith(System.String)"/>)
+            then a match will have occurred. If no match occurs
+            this function will return <see cref="F:log4net.Filter.FilterDecision.Neutral"/>
+            allowing other filters to check the event. If a match occurs then
+            the value of <see cref="P:log4net.Filter.LoggerMatchFilter.AcceptOnMatch"/> is checked. If it is
+            true then <see cref="F:log4net.Filter.FilterDecision.Accept"/> is returned otherwise
+            <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Filter.LoggerMatchFilter.AcceptOnMatch">
+            <summary>
+            <see cref="F:log4net.Filter.FilterDecision.Accept"/> when matching <see cref="P:log4net.Filter.LoggerMatchFilter.LoggerToMatch"/>
+            </summary>
+            <remarks>
+            <para>
+            The <see cref="P:log4net.Filter.LoggerMatchFilter.AcceptOnMatch"/> property is a flag that determines
+            the behavior when a matching <see cref="T:log4net.Core.Level"/> is found. If the
+            flag is set to true then the filter will <see cref="F:log4net.Filter.FilterDecision.Accept"/> the 
+            logging event, otherwise it will <see cref="F:log4net.Filter.FilterDecision.Deny"/> the event.
+            </para>
+            <para>
+            The default is <c>true</c> i.e. to <see cref="F:log4net.Filter.FilterDecision.Accept"/> the event.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Filter.LoggerMatchFilter.LoggerToMatch">
+            <summary>
+            The <see cref="P:log4net.Core.LoggingEvent.LoggerName"/> that the filter will match
+            </summary>
+            <remarks>
+            <para>
+            This filter will attempt to match this value against logger name in
+            the following way. The match will be done against the beginning of the
+            logger name (using <see cref="M:System.String.StartsWith(System.String)"/>). The match is
+            case sensitive. If a match is found then
+            the result depends on the value of <see cref="P:log4net.Filter.LoggerMatchFilter.AcceptOnMatch"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Filter.MdcFilter">
+            <summary>
+            Simple filter to match a keyed string in the <see cref="T:log4net.MDC"/>
+            </summary>
+            <remarks>
+            <para>
+            Simple filter to match a keyed string in the <see cref="T:log4net.MDC"/>
+            </para>
+            <para>
+            As the MDC has been replaced with layered properties the
+            <see cref="T:log4net.Filter.PropertyFilter"/> should be used instead.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Filter.PropertyFilter">
+            <summary>
+            Simple filter to match a string an event property
+            </summary>
+            <remarks>
+            <para>
+            Simple filter to match a string in the value for a
+            specific event property
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="T:log4net.Filter.StringMatchFilter">
+            <summary>
+            Simple filter to match a string in the rendered message
+            </summary>
+            <remarks>
+            <para>
+            Simple filter to match a string in the rendered message
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="F:log4net.Filter.StringMatchFilter.m_acceptOnMatch">
+            <summary>
+            Flag to indicate the behavior when we have a match
+            </summary>
+        </member>
+        <member name="F:log4net.Filter.StringMatchFilter.m_stringToMatch">
+            <summary>
+            The string to substring match against the message
+            </summary>
+        </member>
+        <member name="F:log4net.Filter.StringMatchFilter.m_stringRegexToMatch">
+            <summary>
+            A string regex to match
+            </summary>
+        </member>
+        <member name="F:log4net.Filter.StringMatchFilter.m_regexToMatch">
+            <summary>
+            A regex object to match (generated from m_stringRegexToMatch)
+            </summary>
+        </member>
+        <member name="M:log4net.Filter.StringMatchFilter.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+        </member>
+        <member name="M:log4net.Filter.StringMatchFilter.ActivateOptions">
+            <summary>
+            Initialize and precompile the Regex if required
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Filter.StringMatchFilter.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Filter.StringMatchFilter.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Filter.StringMatchFilter.ActivateOptions"/> must be called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Filter.StringMatchFilter.Decide(log4net.Core.LoggingEvent)">
+            <summary>
+            Check if this filter should allow the event to be logged
+            </summary>
+            <param name="loggingEvent">the event being logged</param>
+            <returns>see remarks</returns>
+            <remarks>
+            <para>
+            The rendered message is matched against the <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/>.
+            If the <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/> occurs as a substring within
+            the message then a match will have occurred. If no match occurs
+            this function will return <see cref="F:log4net.Filter.FilterDecision.Neutral"/>
+            allowing other filters to check the event. If a match occurs then
+            the value of <see cref="P:log4net.Filter.StringMatchFilter.AcceptOnMatch"/> is checked. If it is
+            true then <see cref="F:log4net.Filter.FilterDecision.Accept"/> is returned otherwise
+            <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Filter.StringMatchFilter.AcceptOnMatch">
+            <summary>
+            <see cref="F:log4net.Filter.FilterDecision.Accept"/> when matching <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/> or <see cref="P:log4net.Filter.StringMatchFilter.RegexToMatch"/>
+            </summary>
+            <remarks>
+            <para>
+            The <see cref="P:log4net.Filter.StringMatchFilter.AcceptOnMatch"/> property is a flag that determines
+            the behavior when a matching <see cref="T:log4net.Core.Level"/> is found. If the
+            flag is set to true then the filter will <see cref="F:log4net.Filter.FilterDecision.Accept"/> the 
+            logging event, otherwise it will <see cref="F:log4net.Filter.FilterDecision.Neutral"/> the event.
+            </para>
+            <para>
+            The default is <c>true</c> i.e. to <see cref="F:log4net.Filter.FilterDecision.Accept"/> the event.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Filter.StringMatchFilter.StringToMatch">
+            <summary>
+            Sets the static string to match
+            </summary>
+            <remarks>
+            <para>
+            The string that will be substring matched against
+            the rendered message. If the message contains this
+            string then the filter will match. If a match is found then
+            the result depends on the value of <see cref="P:log4net.Filter.StringMatchFilter.AcceptOnMatch"/>.
+            </para>
+            <para>
+            One of <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/> or <see cref="P:log4net.Filter.StringMatchFilter.RegexToMatch"/>
+            must be specified.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Filter.StringMatchFilter.RegexToMatch">
+            <summary>
+            Sets the regular expression to match
+            </summary>
+            <remarks>
+            <para>
+            The regular expression pattern that will be matched against
+            the rendered message. If the message matches this
+            pattern then the filter will match. If a match is found then
+            the result depends on the value of <see cref="P:log4net.Filter.StringMatchFilter.AcceptOnMatch"/>.
+            </para>
+            <para>
+            One of <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/> or <see cref="P:log4net.Filter.StringMatchFilter.RegexToMatch"/>
+            must be specified.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Filter.PropertyFilter.m_key">
+            <summary>
+            The key to use to lookup the string from the event properties
+            </summary>
+        </member>
+        <member name="M:log4net.Filter.PropertyFilter.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+        </member>
+        <member name="M:log4net.Filter.PropertyFilter.Decide(log4net.Core.LoggingEvent)">
+            <summary>
+            Check if this filter should allow the event to be logged
+            </summary>
+            <param name="loggingEvent">the event being logged</param>
+            <returns>see remarks</returns>
+            <remarks>
+            <para>
+            The event property for the <see cref="P:log4net.Filter.PropertyFilter.Key"/> is matched against 
+            the <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/>.
+            If the <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/> occurs as a substring within
+            the property value then a match will have occurred. If no match occurs
+            this function will return <see cref="F:log4net.Filter.FilterDecision.Neutral"/>
+            allowing other filters to check the event. If a match occurs then
+            the value of <see cref="P:log4net.Filter.StringMatchFilter.AcceptOnMatch"/> is checked. If it is
+            true then <see cref="F:log4net.Filter.FilterDecision.Accept"/> is returned otherwise
+            <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Filter.PropertyFilter.Key">
+            <summary>
+            The key to lookup in the event properties and then match against.
+            </summary>
+            <remarks>
+            <para>
+            The key name to use to lookup in the properties map of the
+            <see cref="T:log4net.Core.LoggingEvent"/>. The match will be performed against 
+            the value of this property if it exists.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Filter.NdcFilter">
+            <summary>
+            Simple filter to match a string in the <see cref="T:log4net.NDC"/>
+            </summary>
+            <remarks>
+            <para>
+            Simple filter to match a string in the <see cref="T:log4net.NDC"/>
+            </para>
+            <para>
+            As the MDC has been replaced with named stacks stored in the
+            properties collections the <see cref="T:log4net.Filter.PropertyFilter"/> should 
+            be used instead.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Filter.NdcFilter.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+            <remarks>
+            <para>
+            Sets the <see cref="P:log4net.Filter.PropertyFilter.Key"/> to <c>"NDC"</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.Pattern.AppDomainPatternConverter">
+            <summary>
+            Write the event appdomain name to the output
+            </summary>
+            <remarks>
+            <para>
+            Writes the <see cref="P:log4net.Core.LoggingEvent.Domain"/> to the output writer.
+            </para>
+            </remarks>
+            <author>Daniel Cazzulino</author>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="T:log4net.Layout.Pattern.PatternLayoutConverter">
+            <summary>
+            Abstract class that provides the formatting functionality that 
+            derived classes need.
+            </summary>
+            <remarks>
+            Conversion specifiers in a conversion patterns are parsed to
+            individual PatternConverters. Each of which is responsible for
+            converting a logging event in a converter specific manner.
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="T:log4net.Util.PatternConverter">
+            <summary>
+            Abstract class that provides the formatting functionality that 
+            derived classes need.
+            </summary>
+            <remarks>
+            <para>
+            Conversion specifiers in a conversion patterns are parsed to
+            individual PatternConverters. Each of which is responsible for
+            converting a logging event in a converter specific manner.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="F:log4net.Util.PatternConverter.c_renderBufferSize">
+            <summary>
+            Initial buffer size
+            </summary>
+        </member>
+        <member name="F:log4net.Util.PatternConverter.c_renderBufferMaxCapacity">
+            <summary>
+            Maximum buffer size before it is recycled
+            </summary>
+        </member>
+        <member name="M:log4net.Util.PatternConverter.#ctor">
+            <summary>
+            Protected constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.PatternConverter"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternConverter.Convert(System.IO.TextWriter,System.Object)">
+            <summary>
+            Evaluate this pattern converter and write the output to a writer.
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="state">The state object on which the pattern converter should be executed.</param>
+            <remarks>
+            <para>
+            Derived pattern converters must override this method in order to
+            convert conversion specifiers in the appropriate way.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternConverter.SetNext(log4net.Util.PatternConverter)">
+            <summary>
+            Set the next pattern converter in the chains
+            </summary>
+            <param name="patternConverter">the pattern converter that should follow this converter in the chain</param>
+            <returns>the next converter</returns>
+            <remarks>
+            <para>
+            The PatternConverter can merge with its neighbor during this method (or a sub class).
+            Therefore the return value may or may not be the value of the argument passed in.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternConverter.Format(System.IO.TextWriter,System.Object)">
+            <summary>
+            Write the pattern converter to the writer with appropriate formatting
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="state">The state object on which the pattern converter should be executed.</param>
+            <remarks>
+            <para>
+            This method calls <see cref="M:log4net.Util.PatternConverter.Convert(System.IO.TextWriter,System.Object)"/> to allow the subclass to perform
+            appropriate conversion of the pattern converter. If formatting options have
+            been specified via the <see cref="P:log4net.Util.PatternConverter.FormattingInfo"/> then this method will
+            apply those formattings before writing the output.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternConverter.SpacePad(System.IO.TextWriter,System.Int32)">
+            <summary>
+            Fast space padding method.
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> to which the spaces will be appended.</param>
+            <param name="length">The number of spaces to be padded.</param>
+            <remarks>
+            <para>
+            Fast space padding method.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Util.PatternConverter.m_option">
+            <summary>
+            The option string to the converter
+            </summary>
+        </member>
+        <member name="M:log4net.Util.PatternConverter.WriteDictionary(System.IO.TextWriter,log4net.Repository.ILoggerRepository,System.Collections.IDictionary)">
+            <summary>
+            Write an dictionary to a <see cref="T:System.IO.TextWriter"/>
+            </summary>
+            <param name="writer">the writer to write to</param>
+            <param name="repository">a <see cref="T:log4net.Repository.ILoggerRepository"/> to use for object conversion</param>
+            <param name="value">the value to write to the writer</param>
+            <remarks>
+            <para>
+            Writes the <see cref="T:System.Collections.IDictionary"/> to a writer in the form:
+            </para>
+            <code>
+            {key1=value1, key2=value2, key3=value3}
+            </code>
+            <para>
+            If the <see cref="T:log4net.Repository.ILoggerRepository"/> specified
+            is not null then it is used to render the key and value to text, otherwise
+            the object's ToString method is called.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternConverter.WriteObject(System.IO.TextWriter,log4net.Repository.ILoggerRepository,System.Object)">
+            <summary>
+            Write an object to a <see cref="T:System.IO.TextWriter"/>
+            </summary>
+            <param name="writer">the writer to write to</param>
+            <param name="repository">a <see cref="T:log4net.Repository.ILoggerRepository"/> to use for object conversion</param>
+            <param name="value">the value to write to the writer</param>
+            <remarks>
+            <para>
+            Writes the Object to a writer. If the <see cref="T:log4net.Repository.ILoggerRepository"/> specified
+            is not null then it is used to render the object to text, otherwise
+            the object's ToString method is called.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.PatternConverter.Next">
+            <summary>
+            Get the next pattern converter in the chain
+            </summary>
+            <value>
+            the next pattern converter in the chain
+            </value>
+            <remarks>
+            <para>
+            Get the next pattern converter in the chain
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.PatternConverter.FormattingInfo">
+            <summary>
+            Gets or sets the formatting info for this converter
+            </summary>
+            <value>
+            The formatting info for this converter
+            </value>
+            <remarks>
+            <para>
+            Gets or sets the formatting info for this converter
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.PatternConverter.Option">
+            <summary>
+            Gets or sets the option value for this converter
+            </summary>
+            <summary>
+            The option for this converter
+            </summary>
+            <remarks>
+            <para>
+            Gets or sets the option value for this converter
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.Pattern.PatternLayoutConverter.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Layout.Pattern.PatternLayoutConverter"/> class.
+            </summary>
+        </member>
+        <member name="M:log4net.Layout.Pattern.PatternLayoutConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Derived pattern converters must override this method in order to
+            convert conversion specifiers in the correct way.
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">The <see cref="T:log4net.Core.LoggingEvent"/> on which the pattern converter should be executed.</param>
+        </member>
+        <member name="M:log4net.Layout.Pattern.PatternLayoutConverter.Convert(System.IO.TextWriter,System.Object)">
+            <summary>
+            Derived pattern converters must override this method in order to
+            convert conversion specifiers in the correct way.
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="state">The state object on which the pattern converter should be executed.</param>
+        </member>
+        <member name="F:log4net.Layout.Pattern.PatternLayoutConverter.m_ignoresException">
+            <summary>
+            Flag indicating if this converter handles exceptions
+            </summary>
+            <remarks>
+            <c>false</c> if this converter handles exceptions
+            </remarks>
+        </member>
+        <member name="P:log4net.Layout.Pattern.PatternLayoutConverter.IgnoresException">
+            <summary>
+            Flag indicating if this converter handles the logging event exception
+            </summary>
+            <value><c>false</c> if this converter handles the logging event exception</value>
+            <remarks>
+            <para>
+            If this converter handles the exception object contained within
+            <see cref="T:log4net.Core.LoggingEvent"/>, then this property should be set to
+            <c>false</c>. Otherwise, if the layout ignores the exception
+            object, then the property should be set to <c>true</c>.
+            </para>
+            <para>
+            Set this value to override a this default setting. The default
+            value is <c>true</c>, this converter does not handle the exception.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.Pattern.AppDomainPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Write the event appdomain name to the output
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">the event being logged</param>
+            <remarks>
+            <para>
+            Writes the <see cref="P:log4net.Core.LoggingEvent.Domain"/> to the output <paramref name="writer"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.Pattern.DatePatternConverter">
+            <summary>
+            Date pattern converter, uses a <see cref="T:log4net.DateFormatter.IDateFormatter"/> to format 
+            the date of a <see cref="T:log4net.Core.LoggingEvent"/>.
+            </summary>
+            <remarks>
+            <para>
+            Render the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> to the writer as a string.
+            </para>
+            <para>
+            The value of the <see cref="P:log4net.Util.PatternConverter.Option"/> determines 
+            the formatting of the date. The following values are allowed:
+            <list type="definition">
+            	<listheader>
+            		<term>Option value</term>
+            		<description>Output</description>
+            	</listheader>
+            	<item>
+            		<term>ISO8601</term>
+            		<description>
+            		Uses the <see cref="T:log4net.DateFormatter.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="T:log4net.DateFormatter.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="T:log4net.DateFormatter.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="T:log4net.DateFormatter.SimpleDateFormatter"/> formatter. 
+            		This formatter passes the pattern string to the <see cref="T:System.DateTime"/> 
+            		<see cref="M:System.DateTime.ToString(System.String)"/> method.
+            		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>
+            </list>
+            </para>
+            <para>
+            The <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> is in the local time zone and is rendered in that zone.
+            To output the time in Universal time see <see cref="T:log4net.Layout.Pattern.UtcDatePatternConverter"/>.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="F:log4net.Layout.Pattern.DatePatternConverter.m_dateFormatter">
+            <summary>
+            The <see cref="T:log4net.DateFormatter.IDateFormatter"/> used to render the date to a string
+            </summary>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.DateFormatter.IDateFormatter"/> used to render the date to a string
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.Pattern.DatePatternConverter.ActivateOptions">
+            <summary>
+            Initialize the converter pattern based on the <see cref="P:log4net.Util.PatternConverter.Option"/> property.
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Layout.Pattern.DatePatternConverter.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Layout.Pattern.DatePatternConverter.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Layout.Pattern.DatePatternConverter.ActivateOptions"/> must be called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.Pattern.DatePatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Convert the pattern into the rendered message
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">the event being logged</param>
+            <remarks>
+            <para>
+            Pass the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> to the <see cref="T:log4net.DateFormatter.IDateFormatter"/>
+            for it to render it to the writer.
+            </para>
+            <para>
+            The <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> passed is in the local time zone.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.Pattern.ExceptionPatternConverter">
+            <summary>
+            Write the exception text to the output
+            </summary>
+            <remarks>
+            <para>
+            If an exception object is stored in the logging event
+            it will be rendered into the pattern output with a
+            trailing newline.
+            </para>
+            <para>
+            If there is no exception then nothing will be output
+            and no trailing newline will be appended.
+            It is typical to put a newline before the exception
+            and to have the exception as the last data in the pattern.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Layout.Pattern.ExceptionPatternConverter.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+        </member>
+        <member name="M:log4net.Layout.Pattern.ExceptionPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Write the exception text to the output
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">the event being logged</param>
+            <remarks>
+            <para>
+            If an exception object is stored in the logging event
+            it will be rendered into the pattern output with a
+            trailing newline.
+            </para>
+            <para>
+            If there is no exception then nothing will be output
+            and no trailing newline will be appended.
+            It is typical to put a newline before the exception
+            and to have the exception as the last data in the pattern.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.Pattern.FileLocationPatternConverter">
+            <summary>
+            Writes the caller location file name to the output
+            </summary>
+            <remarks>
+            <para>
+            Writes the value of the <see cref="P:log4net.Core.LocationInfo.FileName"/> for
+            the event to the output writer.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Layout.Pattern.FileLocationPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Write the caller location file name to the output
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">the event being logged</param>
+            <remarks>
+            <para>
+            Writes the value of the <see cref="P:log4net.Core.LocationInfo.FileName"/> for
+            the <paramref name="loggingEvent"/> to the output <paramref name="writer"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.Pattern.FullLocationPatternConverter">
+            <summary>
+            Write the caller location info to the output
+            </summary>
+            <remarks>
+            <para>
+            Writes the <see cref="P:log4net.Core.LocationInfo.FullInfo"/> to the output writer.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Layout.Pattern.FullLocationPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Write the caller location info to the output
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">the event being logged</param>
+            <remarks>
+            <para>
+            Writes the <see cref="P:log4net.Core.LocationInfo.FullInfo"/> to the output writer.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.Pattern.IdentityPatternConverter">
+            <summary>
+            Writes the event identity to the output
+            </summary>
+            <remarks>
+            <para>
+            Writes the value of the <see cref="P:log4net.Core.LoggingEvent.Identity"/> to
+            the output writer.
+            </para>
+            </remarks>
+            <author>Daniel Cazzulino</author>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Layout.Pattern.IdentityPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Writes the event identity to the output
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">the event being logged</param>
+            <remarks>
+            <para>
+            Writes the value of the <paramref name="loggingEvent"/> 
+            <see cref="P:log4net.Core.LoggingEvent.Identity"/> to
+            the output <paramref name="writer"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.Pattern.LevelPatternConverter">
+            <summary>
+            Write the event level to the output
+            </summary>
+            <remarks>
+            <para>
+            Writes the display name of the event <see cref="P:log4net.Core.LoggingEvent.Level"/>
+            to the writer.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Layout.Pattern.LevelPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Write the event level to the output
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">the event being logged</param>
+            <remarks>
+            <para>
+            Writes the <see cref="P:log4net.Core.Level.DisplayName"/> of the <paramref name="loggingEvent"/> <see cref="P:log4net.Core.LoggingEvent.Level"/>
+            to the <paramref name="writer"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.Pattern.LineLocationPatternConverter">
+            <summary>
+            Write the caller location line number to the output
+            </summary>
+            <remarks>
+            <para>
+            Writes the value of the <see cref="P:log4net.Core.LocationInfo.LineNumber"/> for
+            the event to the output writer.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Layout.Pattern.LineLocationPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Write the caller location line number to the output
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">the event being logged</param>
+            <remarks>
+            <para>
+            Writes the value of the <see cref="P:log4net.Core.LocationInfo.LineNumber"/> for
+            the <paramref name="loggingEvent"/> to the output <paramref name="writer"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.Pattern.LoggerPatternConverter">
+            <summary>
+            Converter for logger name
+            </summary>
+            <remarks>
+            <para>
+            Outputs the <see cref="P:log4net.Core.LoggingEvent.LoggerName"/> of the event.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="T:log4net.Layout.Pattern.NamedPatternConverter">
+            <summary>
+            Converter to output and truncate <c>'.'</c> separated strings
+            </summary>
+            <remarks>
+            <para>
+            This abstract class supports truncating a <c>'.'</c> separated string
+            to show a specified number of elements from the right hand side.
+            This is used to truncate class names that are fully qualified.
+            </para>
+            <para>
+            Subclasses should override the <see cref="M:log4net.Layout.Pattern.NamedPatternConverter.GetFullyQualifiedName(log4net.Core.LoggingEvent)"/> method to
+            return the fully qualified string.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Layout.Pattern.NamedPatternConverter.ActivateOptions">
+            <summary>
+            Initialize the converter 
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Layout.Pattern.NamedPatternConverter.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Layout.Pattern.NamedPatternConverter.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Layout.Pattern.NamedPatternConverter.ActivateOptions"/> must be called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.Pattern.NamedPatternConverter.GetFullyQualifiedName(log4net.Core.LoggingEvent)">
+            <summary>
+            Get the fully qualified string data
+            </summary>
+            <param name="loggingEvent">the event being logged</param>
+            <returns>the fully qualified name</returns>
+            <remarks>
+            <para>
+            Overridden by subclasses to get the fully qualified name before the
+            precision is applied to it.
+            </para>
+            <para>
+            Return the fully qualified <c>'.'</c> (dot/period) separated string.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.Pattern.NamedPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Convert the pattern to the rendered message
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">the event being logged</param>
+            <remarks>
+            Render the <see cref="M:log4net.Layout.Pattern.NamedPatternConverter.GetFullyQualifiedName(log4net.Core.LoggingEvent)"/> to the precision
+            specified by the <see cref="P:log4net.Util.PatternConverter.Option"/> property.
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.Pattern.LoggerPatternConverter.GetFullyQualifiedName(log4net.Core.LoggingEvent)">
+            <summary>
+            Gets the fully qualified name of the logger
+            </summary>
+            <param name="loggingEvent">the event being logged</param>
+            <returns>The fully qualified logger name</returns>
+            <remarks>
+            <para>
+            Returns the <see cref="P:log4net.Core.LoggingEvent.LoggerName"/> of the <paramref name="loggingEvent"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.Pattern.MessagePatternConverter">
+            <summary>
+            Writes the event message to the output
+            </summary>
+            <remarks>
+            <para>
+            Uses the <see cref="M:log4net.Core.LoggingEvent.WriteRenderedMessage(System.IO.TextWriter)"/> method
+            to write out the event message.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Layout.Pattern.MessagePatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Writes the event message to the output
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">the event being logged</param>
+            <remarks>
+            <para>
+            Uses the <see cref="M:log4net.Core.LoggingEvent.WriteRenderedMessage(System.IO.TextWriter)"/> method
+            to write out the event message.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.Pattern.MethodLocationPatternConverter">
+            <summary>
+            Write the method name to the output
+            </summary>
+            <remarks>
+            <para>
+            Writes the caller location <see cref="P:log4net.Core.LocationInfo.MethodName"/> to
+            the output.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Layout.Pattern.MethodLocationPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Write the method name to the output
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">the event being logged</param>
+            <remarks>
+            <para>
+            Writes the caller location <see cref="P:log4net.Core.LocationInfo.MethodName"/> to
+            the output.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.Pattern.NdcPatternConverter">
+            <summary>
+            Converter to include event NDC
+            </summary>
+            <remarks>
+            <para>
+            Outputs the value of the event property named <c>NDC</c>.
+            </para>
+            <para>
+            The <see cref="T:log4net.Layout.Pattern.PropertyPatternConverter"/> should be used instead.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Layout.Pattern.NdcPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Write the event NDC to the output
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">the event being logged</param>
+            <remarks>
+            <para>
+            As the thread context stacks are now stored in named event properties
+            this converter simply looks up the value of the <c>NDC</c> property.
+            </para>
+            <para>
+            The <see cref="T:log4net.Layout.Pattern.PropertyPatternConverter"/> should be used instead.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.Pattern.PropertyPatternConverter">
+            <summary>
+            Property pattern converter
+            </summary>
+            <remarks>
+            <para>
+            Writes out the value of a named property. The property name
+            should be set in the <see cref="P:log4net.Util.PatternConverter.Option"/>
+            property.
+            </para>
+            <para>
+            If the <see cref="P:log4net.Util.PatternConverter.Option"/> is set to <c>null</c>
+            then all the properties are written as key value pairs.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Layout.Pattern.PropertyPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Write the property value to the output
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">the event being logged</param>
+            <remarks>
+            <para>
+            Writes out the value of a named property. The property name
+            should be set in the <see cref="P:log4net.Util.PatternConverter.Option"/>
+            property.
+            </para>
+            <para>
+            If the <see cref="P:log4net.Util.PatternConverter.Option"/> is set to <c>null</c>
+            then all the properties are written as key value pairs.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.Pattern.RelativeTimePatternConverter">
+            <summary>
+            Converter to output the relative time of the event
+            </summary>
+            <remarks>
+            <para>
+            Converter to output the time of the event relative to the start of the program.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Layout.Pattern.RelativeTimePatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Write the relative time to the output
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">the event being logged</param>
+            <remarks>
+            <para>
+            Writes out the relative time of the event in milliseconds.
+            That is the number of milliseconds between the event <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/>
+            and the <see cref="P:log4net.Core.LoggingEvent.StartTime"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.Pattern.RelativeTimePatternConverter.TimeDifferenceInMillis(System.DateTime,System.DateTime)">
+            <summary>
+            Helper method to get the time difference between two DateTime objects
+            </summary>
+            <param name="start">start time (in the current local time zone)</param>
+            <param name="end">end time (in the current local time zone)</param>
+            <returns>the time difference in milliseconds</returns>
+        </member>
+        <member name="T:log4net.Layout.Pattern.ThreadPatternConverter">
+            <summary>
+            Converter to include event thread name
+            </summary>
+            <remarks>
+            <para>
+            Writes the <see cref="P:log4net.Core.LoggingEvent.ThreadName"/> to the output.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Layout.Pattern.ThreadPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Write the ThreadName to the output
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">the event being logged</param>
+            <remarks>
+            <para>
+            Writes the <see cref="P:log4net.Core.LoggingEvent.ThreadName"/> to the <paramref name="writer"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.Pattern.TypeNamePatternConverter">
+            <summary>
+            Pattern converter for the class name
+            </summary>
+            <remarks>
+            <para>
+            Outputs the <see cref="P:log4net.Core.LocationInfo.ClassName"/> of the event.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Layout.Pattern.TypeNamePatternConverter.GetFullyQualifiedName(log4net.Core.LoggingEvent)">
+            <summary>
+            Gets the fully qualified name of the class
+            </summary>
+            <param name="loggingEvent">the event being logged</param>
+            <returns>The fully qualified type name for the caller location</returns>
+            <remarks>
+            <para>
+            Returns the <see cref="P:log4net.Core.LocationInfo.ClassName"/> of the <paramref name="loggingEvent"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.Pattern.UserNamePatternConverter">
+            <summary>
+            Converter to include event user name
+            </summary>
+            <author>Douglas de la Torre</author>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Layout.Pattern.UserNamePatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Convert the pattern to the rendered message
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">the event being logged</param>
+        </member>
+        <member name="T:log4net.Layout.Pattern.UtcDatePatternConverter">
+            <summary>
+            Write the TimeStamp to the output
+            </summary>
+            <remarks>
+            <para>
+            Date pattern converter, uses a <see cref="T:log4net.DateFormatter.IDateFormatter"/> to format 
+            the date of a <see cref="T:log4net.Core.LoggingEvent"/>.
+            </para>
+            <para>
+            Uses a <see cref="T:log4net.DateFormatter.IDateFormatter"/> to format the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> 
+            in Universal time.
+            </para>
+            <para>
+            See the <see cref="T:log4net.Layout.Pattern.DatePatternConverter"/> for details on the date pattern syntax.
+            </para>
+            </remarks>
+            <seealso cref="T:log4net.Layout.Pattern.DatePatternConverter"/>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Layout.Pattern.UtcDatePatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Write the TimeStamp to the output
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="loggingEvent">the event being logged</param>
+            <remarks>
+            <para>
+            Pass the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> to the <see cref="T:log4net.DateFormatter.IDateFormatter"/>
+            for it to render it to the writer.
+            </para>
+            <para>
+            The <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> passed is in the local time zone, this is converted
+            to Universal time before it is rendered.
+            </para>
+            </remarks>
+            <seealso cref="T:log4net.Layout.Pattern.DatePatternConverter"/>
+        </member>
+        <member name="T:log4net.Layout.ExceptionLayout">
+            <summary>
+            A Layout that renders only the Exception text from the logging event
+            </summary>
+            <remarks>
+            <para>
+            A Layout that renders only the Exception text from the logging event.
+            </para>
+            <para>
+            This Layout should only be used with appenders that utilize multiple
+            layouts (e.g. <see cref="T:log4net.Appender.AdoNetAppender"/>).
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Layout.LayoutSkeleton">
+            <summary>
+            Extend this abstract class to create your own log layout format.
+            </summary>
+            <remarks>
+            <para>
+            This is the base implementation of the <see cref="T:log4net.Layout.ILayout"/>
+            interface. Most layout objects should extend this class.
+            </para>
+            </remarks>
+            <remarks>
+            <note type="inheritinfo">
+            <para>
+            Subclasses must implement the <see cref="M:log4net.Layout.LayoutSkeleton.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)"/>
+            method.
+            </para>
+            <para>
+            Subclasses should set the <see cref="P:log4net.Layout.LayoutSkeleton.IgnoresException"/> in their default
+            constructor.
+            </para>
+            </note>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Layout.ILayout">
+            <summary>
+            Interface implemented by layout objects
+            </summary>
+            <remarks>
+            <para>
+            An <see cref="T:log4net.Layout.ILayout"/> object is used to format a <see cref="T:log4net.Core.LoggingEvent"/>
+            as text. The <see cref="M:log4net.Layout.ILayout.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)"/> method is called by an
+            appender to transform the <see cref="T:log4net.Core.LoggingEvent"/> into a string.
+            </para>
+            <para>
+            The layout can also supply <see cref="P:log4net.Layout.ILayout.Header"/> and <see cref="P:log4net.Layout.ILayout.Footer"/>
+            text that is appender before any events and after all the events respectively.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Layout.ILayout.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Implement this method to create your own layout format.
+            </summary>
+            <param name="writer">The TextWriter to write the formatted event to</param>
+            <param name="loggingEvent">The event to format</param>
+            <remarks>
+            <para>
+            This method is called by an appender to format
+            the <paramref name="loggingEvent"/> as text and output to a writer.
+            </para>
+            <para>
+            If the caller does not have a <see cref="T:System.IO.TextWriter"/> and prefers the
+            event to be formatted as a <see cref="T:System.String"/> then the following
+            code can be used to format the event into a <see cref="T:System.IO.StringWriter"/>.
+            </para>
+            <code lang="C#">
+            StringWriter writer = new StringWriter();
+            Layout.Format(writer, loggingEvent);
+            string formattedEvent = writer.ToString();
+            </code>
+            </remarks>
+        </member>
+        <member name="P:log4net.Layout.ILayout.ContentType">
+            <summary>
+            The content type output by this layout. 
+            </summary>
+            <value>The content type</value>
+            <remarks>
+            <para>
+            The content type output by this layout.
+            </para>
+            <para>
+            This is a MIME type e.g. <c>"text/plain"</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Layout.ILayout.Header">
+            <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>
+        </member>
+        <member name="P:log4net.Layout.ILayout.Footer">
+            <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>
+        </member>
+        <member name="P:log4net.Layout.ILayout.IgnoresException">
+            <summary>
+            Flag indicating if this layout handle 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="T:log4net.Core.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>
+            </remarks>
+        </member>
+        <member name="F:log4net.Layout.LayoutSkeleton.m_header">
+            <summary>
+            The header text
+            </summary>
+            <remarks>
+            <para>
+            See <see cref="P:log4net.Layout.LayoutSkeleton.Header"/> for more information.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Layout.LayoutSkeleton.m_footer">
+            <summary>
+            The footer text
+            </summary>
+            <remarks>
+            <para>
+            See <see cref="P:log4net.Layout.LayoutSkeleton.Footer"/> for more information.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Layout.LayoutSkeleton.m_ignoresException">
+            <summary>
+            Flag indicating if this layout handles exceptions
+            </summary>
+            <remarks>
+            <para>
+            <c>false</c> if this layout handles exceptions
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.LayoutSkeleton.#ctor">
+            <summary>
+            Empty default constructor
+            </summary>
+            <remarks>
+            <para>
+            Empty default constructor
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.LayoutSkeleton.ActivateOptions">
+            <summary>
+            Activate component options
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Layout.LayoutSkeleton.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Layout.LayoutSkeleton.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Layout.LayoutSkeleton.ActivateOptions"/> must be called again.
+            </para>
+            <para>
+            This method must be implemented by the subclass.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.LayoutSkeleton.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Implement this method to create your own layout format.
+            </summary>
+            <param name="writer">The TextWriter to write the formatted event to</param>
+            <param name="loggingEvent">The event to format</param>
+            <remarks>
+            <para>
+            This method is called by an appender to format
+            the <paramref name="loggingEvent"/> as text.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Layout.LayoutSkeleton.ContentType">
+            <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>
+        </member>
+        <member name="P:log4net.Layout.LayoutSkeleton.Header">
+            <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>
+        </member>
+        <member name="P:log4net.Layout.LayoutSkeleton.Footer">
+            <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>
+        </member>
+        <member name="P:log4net.Layout.LayoutSkeleton.IgnoresException">
+            <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="T:log4net.Core.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>
+        </member>
+        <member name="M:log4net.Layout.ExceptionLayout.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+            <remarks>
+            <para>
+            Constructs a ExceptionLayout
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.ExceptionLayout.ActivateOptions">
+            <summary>
+            Activate component options
+            </summary>
+            <remarks>
+            <para>
+            Part of the <see cref="T:log4net.Core.IOptionHandler"/> component activation
+            framework.
+            </para>
+            <para>
+            This method does nothing as options become effective immediately.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.ExceptionLayout.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Gets the exception text from the logging event
+            </summary>
+            <param name="writer">The TextWriter to write the formatted event to</param>
+            <param name="loggingEvent">the event being logged</param>
+            <remarks>
+            <para>
+            Write the exception string to the <see cref="T:System.IO.TextWriter"/>.
+            The exception string is retrieved from <see cref="M:log4net.Core.LoggingEvent.GetExceptionString"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.IRawLayout">
+            <summary>
+            Interface for raw layout objects
+            </summary>
+            <remarks>
+            <para>
+            Interface used to format a <see cref="T:log4net.Core.LoggingEvent"/>
+            to an object.
+            </para>
+            <para>
+            This interface should not be confused with the
+            <see cref="T:log4net.Layout.ILayout"/> interface. This interface is used in
+            only certain specialized situations where a raw object is
+            required rather than a formatted string. The <see cref="T:log4net.Layout.ILayout"/>
+            is not generally useful than this interface.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Layout.IRawLayout.Format(log4net.Core.LoggingEvent)">
+            <summary>
+            Implement this method to create your own layout format.
+            </summary>
+            <param name="loggingEvent">The event to format</param>
+            <returns>returns the formatted event</returns>
+            <remarks>
+            <para>
+            Implement this method to create your own layout format.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.Layout2RawLayoutAdapter">
+            <summary>
+            Adapts any <see cref="T:log4net.Layout.ILayout"/> to a <see cref="T:log4net.Layout.IRawLayout"/>
+            </summary>
+            <remarks>
+            <para>
+            Where an <see cref="T:log4net.Layout.IRawLayout"/> is required this adapter
+            allows a <see cref="T:log4net.Layout.ILayout"/> to be specified.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="F:log4net.Layout.Layout2RawLayoutAdapter.m_layout">
+            <summary>
+            The layout to adapt
+            </summary>
+        </member>
+        <member name="M:log4net.Layout.Layout2RawLayoutAdapter.#ctor(log4net.Layout.ILayout)">
+            <summary>
+            Construct a new adapter
+            </summary>
+            <param name="layout">the layout to adapt</param>
+            <remarks>
+            <para>
+            Create the adapter for the specified <paramref name="layout"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.Layout2RawLayoutAdapter.Format(log4net.Core.LoggingEvent)">
+            <summary>
+            Format the logging event as an object.
+            </summary>
+            <param name="loggingEvent">The event to format</param>
+            <returns>returns the formatted event</returns>
+            <remarks>
+            <para>
+            Format the logging event as an object.
+            </para>
+            <para>
+            Uses the <see cref="T:log4net.Layout.ILayout"/> object supplied to 
+            the constructor to perform the formatting.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.PatternLayout">
+            <summary>
+            A flexible layout configurable with pattern string.
+            </summary>
+            <remarks>
+            <para>
+            The goal of this class is to <see cref="M:log4net.Layout.PatternLayout.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)"/> a 
+            <see cref="T:log4net.Core.LoggingEvent"/> as a string. The results
+            depend on the <i>conversion pattern</i>.
+            </para>
+            <para>
+            The conversion pattern is closely related to the conversion
+            pattern of the printf function in C. A conversion pattern is
+            composed of literal text and format control expressions called
+            <i>conversion specifiers</i>.
+            </para>
+            <para>
+            <i>You are free to insert any literal text within the conversion
+            pattern.</i>
+            </para>
+            <para>
+            Each conversion specifier starts with a percent sign (%) and is
+            followed by optional <i>format modifiers</i> and a <i>conversion
+            pattern name</i>. The conversion pattern name specifies the type of
+            data, e.g. logger, level, date, thread name. The format
+            modifiers control such things as field width, padding, left and
+            right justification. The following is a simple example.
+            </para>
+            <para>
+            Let the conversion pattern be <b>"%-5level [%thread]: %message%newline"</b> and assume
+            that the log4net environment was set to use a PatternLayout. Then the
+            statements
+            </para>
+            <code lang="C#">
+            ILog log = LogManager.GetLogger(typeof(TestApp));
+            log.Debug("Message 1");
+            log.Warn("Message 2");   
+            </code>
+            <para>would yield the output</para>
+            <code>
+            DEBUG [main]: Message 1
+            WARN  [main]: Message 2  
+            </code>
+            <para>
+            Note that there is no explicit separator between text and
+            conversion specifiers. The pattern parser knows when it has reached
+            the end of a conversion specifier when it reads a conversion
+            character. In the example above the conversion specifier
+            <b>%-5level</b> means the level of the logging event should be left
+            justified to a width of five characters.
+            </para>
+            <para>
+            The recognized conversion pattern names are:
+            </para>
+            <list type="table">
+                <listheader>
+                    <term>Conversion Pattern Name</term>
+                    <description>Effect</description>
+                </listheader>
+                <item>
+                    <term>a</term>
+                    <description>Equivalent to <b>appdomain</b></description>
+                </item>
+                <item>
+                    <term>appdomain</term>
+                    <description>
+            			Used to output the friendly name of the AppDomain where the 
+            			logging event was generated. 
+                    </description>
+                </item>
+                <item>
+                    <term>c</term>
+                    <description>Equivalent to <b>logger</b></description>
+                </item>
+                <item>
+                    <term>C</term>
+                    <description>Equivalent to <b>type</b></description>
+                </item>
+                <item>
+                    <term>class</term>
+                    <description>Equivalent to <b>type</b></description>
+                </item>
+                <item>
+                    <term>d</term>
+                    <description>Equivalent to <b>date</b></description>
+                </item>
+                <item>
+            		<term>date</term> 
+            		<description>
+            			<para>
+            			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 
+            			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 
+            			given then ISO8601 format is
+            			assumed (<see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/>).
+            			</para>
+            			<para>
+            			The date format specifier admits the same syntax as the
+            			time pattern string of the <see cref="M:System.DateTime.ToString(System.String)"/>.
+            			</para>
+            			<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="T:log4net.DateFormatter.AbsoluteTimeDateFormatter"/>, 
+            			<see cref="T:log4net.DateFormatter.DateTimeDateFormatter"/> and respectively 
+            			<see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/>. For example, 
+            			<b>%date{ISO8601}</b> or <b>%date{ABSOLUTE}</b>.
+            			</para>
+            			<para>
+            			These dedicated date formatters perform significantly
+            			better than <see cref="M:System.DateTime.ToString(System.String)"/>.
+            			</para>
+            		</description>
+            	</item>
+            	<item>
+            		<term>exception</term>
+            		<description>
+            			<para>
+            			Used to output the exception passed in with the log message.
+            			</para>
+            			<para>
+            			If an exception object is stored in the logging event
+            			it will be rendered into the pattern output with a
+            			trailing newline.
+            			If there is no exception then nothing will be output
+            			and no trailing newline will be appended.
+            			It is typical to put a newline before the exception
+            			and to have the exception as the last data in the pattern.
+            			</para>
+            		</description>
+            	</item>
+                <item>
+                    <term>F</term>
+                    <description>Equivalent to <b>file</b></description>
+                </item>
+            	<item>
+            		<term>file</term>
+            		<description>
+            			<para>
+            			Used to output the file name where the logging request was
+            			issued.
+            			</para>
+            			<para>
+            			<b>WARNING</b> Generating caller location information is
+            			extremely slow. Its use should be avoided unless execution speed
+            			is not an issue.
+            			</para>
+            			<para>
+            			See the note below on the availability of caller location information.
+            			</para>
+            		</description>
+            	</item>
+            	<item>
+            		<term>identity</term>
+            		<description>
+            			<para>
+            			Used to output the user name for the currently active user
+            			(Principal.Identity.Name).
+            			</para>
+            			<para>
+            			<b>WARNING</b> Generating caller information is
+            			extremely slow. Its use should be avoided unless execution speed
+            			is not an issue.
+            			</para>
+            		</description>
+            	</item>
+                <item>
+                    <term>l</term>
+                    <description>Equivalent to <b>location</b></description>
+                </item>
+                <item>
+                    <term>L</term>
+                    <description>Equivalent to <b>line</b></description>
+                </item>
+            	<item>
+            		<term>location</term>
+            		<description>
+            			<para>
+            			Used to output location information of the caller which generated
+            			the logging event.
+            			</para>
+            			<para>
+            			The location information depends on the CLI implementation but
+            			usually consists of the fully qualified name of the calling
+            			method followed by the callers source the file name and line
+            			number between parentheses.
+            			</para>
+            			<para>
+            			The location information can be very useful. However, its
+            			generation is <b>extremely</b> slow. Its use should be avoided
+            			unless execution speed is not an issue.
+            			</para>
+            			<para>
+            			See the note below on the availability of caller location information.
+            			</para>
+            		</description>
+            	</item>
+            	<item>
+            		<term>level</term>
+            		<description>
+            			<para>
+            			Used to output the level of the logging event.
+            			</para>
+            		</description>
+            	</item>
+            	<item>
+            		<term>line</term>
+            		<description>
+            			<para>
+            			Used to output the line number from where the logging request
+            			was issued.
+            			</para>
+            			<para>
+            			<b>WARNING</b> Generating caller location information is
+            			extremely slow. Its use should be avoided unless execution speed
+            			is not an issue.
+            			</para>
+            			<para>
+            			See the note below on the availability of caller location information.
+            			</para>
+            		</description>
+            	</item>
+                <item>
+                    <term>logger</term>
+                    <description>
+                        <para>
+            			Used to output the logger of the logging event. The
+            			logger conversion specifier can be optionally followed by
+            			<i>precision specifier</i>, that is a decimal constant in
+            			brackets.
+                        </para>
+            			<para>
+            			If a precision specifier is given, then only the corresponding
+            			number of right most components of the logger name will be
+            			printed. By default the logger name is printed in full.
+            			</para>
+            			<para>
+            			For example, for the logger name "a.b.c" the pattern
+            			<b>%logger{2}</b> will output "b.c".
+            			</para>
+                    </description>
+                </item>
+                <item>
+                    <term>m</term>
+                    <description>Equivalent to <b>message</b></description>
+                </item>
+                <item>
+                    <term>M</term>
+                    <description>Equivalent to <b>method</b></description>
+                </item>
+            	<item>
+            		<term>message</term>
+            		<description>
+            			<para>
+            			Used to output the application supplied message associated with 
+            			the logging event.
+            			</para>
+            		</description>
+            	</item>
+            	<item>
+            		<term>mdc</term>
+            		<description>
+            			<para>
+            			The MDC (old name for the ThreadContext.Properties) is now part of the
+            			combined event properties. This pattern is supported for compatibility
+            			but is equivalent to <b>property</b>.
+            			</para>
+            		</description>
+            	</item>
+            	<item>
+            		<term>method</term>
+            		<description>
+            			<para>
+            			Used to output the method name where the logging request was
+            			issued.
+            			</para>
+            			<para>
+            			<b>WARNING</b> Generating caller location information is
+            			extremely slow. Its use should be avoided unless execution speed
+            			is not an issue.
+            			</para>
+            			<para>
+            			See the note below on the availability of caller location information.
+            			</para>
+            		</description>
+            	</item>
+                <item>
+                    <term>n</term>
+                    <description>Equivalent to <b>newline</b></description>
+                </item>
+            	<item>
+            		<term>newline</term>
+            		<description>
+            			<para>
+            			Outputs the platform dependent line separator character or
+            			characters.
+            			</para>
+            			<para>
+            			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> 
+            		</description>
+            	</item>
+            	<item>
+            		<term>ndc</term>
+            		<description>
+            			<para>
+            			Used to output the NDC (nested diagnostic context) associated
+            			with the thread that generated the logging event.
+            			</para>
+            		</description>
+            	</item>
+                <item>
+                    <term>p</term>
+                    <description>Equivalent to <b>level</b></description>
+                </item>
+                <item>
+                    <term>P</term>
+                    <description>Equivalent to <b>property</b></description>
+                </item>
+                <item>
+                    <term>properties</term>
+                    <description>Equivalent to <b>property</b></description>
+                </item>
+            	<item>
+            		<term>property</term>
+            		<description>
+            			<para>
+            			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 
+            			which the event was originally logged.
+            			</para>
+            			<para>
+            			If no key is specified, e.g. <b>%property</b> then all the keys and their
+            			values are printed in a comma separated list.
+            			</para>
+            			<para>
+            			The properties of an event are combined from a number of different
+            			contexts. These are listed below in the order in which they are searched.
+            			</para>
+            			<list type="definition">
+            				<item>
+            					<term>the event properties</term>
+            					<description>
+            					The event has <see cref="P:log4net.Core.LoggingEvent.Properties"/> that can be set. These 
+            					properties are specific to this event only.
+            					</description>
+            				</item>
+            				<item>
+            					<term>the thread properties</term>
+            					<description>
+            					The <see cref="P:log4net.ThreadContext.Properties"/> that are set on the current
+            					thread. These properties are shared by all events logged on this thread.
+            					</description>
+            				</item>
+            				<item>
+            					<term>the global properties</term>
+            					<description>
+            					The <see cref="P:log4net.GlobalContext.Properties"/> that are set globally. These 
+            					properties are shared by all the threads in the AppDomain.
+            					</description>
+            				</item>
+            			</list>
+            			
+            		</description>
+            	</item>
+                <item>
+                    <term>r</term>
+                    <description>Equivalent to <b>timestamp</b></description>
+                </item>
+                <item>
+                    <term>t</term>
+                    <description>Equivalent to <b>thread</b></description>
+                </item>
+            	<item>
+            		<term>timestamp</term>
+            		<description>
+            			<para>
+            			Used to output the number of milliseconds elapsed since the start
+            			of the application until the creation of the logging event.
+            			</para>
+            		</description>
+            	</item>
+            	<item>
+            		<term>thread</term>
+            		<description>
+            			<para>
+            			Used to output the name of the thread that generated the
+            			logging event. Uses the thread number if no name is available.
+            			</para>
+            		</description>
+            	</item>
+                <item>
+            		<term>type</term> 
+            		<description>
+            			<para>
+            			Used to output the fully qualified type name of the caller
+            			issuing the logging request. This conversion specifier
+            			can be optionally followed by <i>precision specifier</i>, that
+            			is a decimal constant in brackets.
+            			</para>
+            			<para>
+            			If a precision specifier is given, then only the corresponding
+            			number of right most components of the class name will be
+            			printed. By default the class name is output in fully qualified form.
+            			</para>
+            			<para>
+            			For example, for the class name "log4net.Layout.PatternLayout", the
+            			pattern <b>%type{1}</b> will output "PatternLayout".
+            			</para>
+            			<para>
+            			<b>WARNING</b> Generating the caller class information is
+            			slow. Thus, its use should be avoided unless execution speed is
+            			not an issue.
+            			</para>
+            			<para>
+            			See the note below on the availability of caller location information.
+            			</para>
+            		</description>
+                </item>
+                <item>
+                    <term>u</term>
+                    <description>Equivalent to <b>identity</b></description>
+                </item>
+            	<item>
+            		<term>username</term>
+            		<description>
+            			<para>
+            			Used to output the WindowsIdentity for the currently
+            			active user.
+            			</para>
+            			<para>
+            			<b>WARNING</b> Generating caller WindowsIdentity information is
+            			extremely slow. Its use should be avoided unless execution speed
+            			is not an issue.
+            			</para>
+            		</description>
+            	</item>
+                <item>
+            		<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 
+            			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 
+            			given then ISO8601 format is
+            			assumed (<see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/>).
+            			</para>
+            			<para>
+            			The date format specifier admits the same syntax as the
+            			time pattern string of the <see cref="M:System.DateTime.ToString(System.String)"/>.
+            			</para>
+            			<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="T:log4net.DateFormatter.AbsoluteTimeDateFormatter"/>, 
+            			<see cref="T:log4net.DateFormatter.DateTimeDateFormatter"/> and respectively 
+            			<see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/>. For example, 
+            			<b>%utcdate{ISO8601}</b> or <b>%utcdate{ABSOLUTE}</b>.
+            			</para>
+            			<para>
+            			These dedicated date formatters perform significantly
+            			better than <see cref="M:System.DateTime.ToString(System.String)"/>.
+            			</para>
+            		</description>
+            	</item>
+                <item>
+                    <term>w</term>
+                    <description>Equivalent to <b>username</b></description>
+                </item>
+                <item>
+                    <term>x</term>
+                    <description>Equivalent to <b>ndc</b></description>
+                </item>
+                <item>
+                    <term>X</term>
+                    <description>Equivalent to <b>mdc</b></description>
+                </item>
+            	<item>
+            		<term>%</term>
+            		<description>
+            			<para>
+            			The sequence %% outputs a single percent sign.
+            			</para>
+            		</description>
+            	</item>
+            </list>
+            <para>
+            The single letter patterns are deprecated in favor of the 
+            longer more descriptive pattern names.
+            </para>
+            <para>
+            By default the relevant information is output as is. However,
+            with the aid of format modifiers it is possible to change the
+            minimum field width, the maximum field width and justification.
+            </para>
+            <para>
+            The optional format modifier is placed between the percent sign
+            and the conversion pattern name.
+            </para>
+            <para>
+            The first optional format modifier is the <i>left justification
+            flag</i> which is just the minus (-) character. Then comes the
+            optional <i>minimum field width</i> modifier. This is a decimal
+            constant that represents the minimum number of characters to
+            output. If the data item requires fewer characters, it is padded on
+            either the left or the right until the minimum width is
+            reached. The default is to pad on the left (right justify) but you
+            can specify right padding with the left justification flag. The
+            padding character is space. If the data item is larger than the
+            minimum field width, the field is expanded to accommodate the
+            data. The value is never truncated.
+            </para>
+            <para>
+            This behavior can be changed using the <i>maximum field
+            width</i> modifier which is designated by a period followed by a
+            decimal constant. If the data item is longer than the maximum
+            field, then the extra characters are removed from the
+            <i>beginning</i> of the data item and not from the end. For
+            example, it the maximum field width is eight and the data item is
+            ten characters long, then the first two characters of the data item
+            are dropped. This behavior deviates from the printf function in C
+            where truncation is done from the end.
+            </para>
+            <para>
+            Below are various format modifier examples for the logger
+            conversion specifier.
+            </para>
+            <div class="tablediv">
+            	<table class="dtTABLE" cellspacing="0">
+            		<tr>
+            			<th>Format modifier</th>
+            			<th>left justify</th>
+            			<th>minimum width</th>
+            			<th>maximum width</th>
+            			<th>comment</th>
+            		</tr>
+            		<tr>
+            			<td align="center">%20logger</td>
+            			<td align="center">false</td>
+            			<td align="center">20</td>
+            			<td align="center">none</td>
+            			<td>
+            				<para>
+            				Left pad with spaces if the logger name is less than 20
+            				characters long.
+            				</para>
+            			</td>
+            		</tr>
+            		<tr>
+            			<td align="center">%-20logger</td>
+            			<td align="center">true</td>
+            			<td align="center">20</td>
+            			<td align="center">none</td>
+            			<td>
+            				<para>
+            				Right pad with spaces if the logger 
+            				name is less than 20 characters long.
+            				</para>
+            			</td>
+            		</tr>
+            		<tr>
+            			<td align="center">%.30logger</td>
+            			<td align="center">NA</td>
+            			<td align="center">none</td>
+            			<td align="center">30</td>
+            			<td>
+            				<para>
+            				Truncate from the beginning if the logger 
+            				name is longer than 30 characters.
+            				</para>
+            			</td>
+            		</tr>
+            		<tr>
+            			<td align="center"><nobr>%20.30logger</nobr></td>
+            			<td align="center">false</td>
+            			<td align="center">20</td>
+            			<td align="center">30</td>
+            			<td>
+            				<para>
+            				Left pad with spaces if the logger name is shorter than 20
+            				characters. However, if logger name is longer than 30 characters,
+            				then truncate from the beginning.
+            				</para>
+            			</td>
+            		</tr>
+            		<tr>
+            			<td align="center">%-20.30logger</td>
+            			<td align="center">true</td>
+            			<td align="center">20</td>
+            			<td align="center">30</td>
+            			<td>
+            				<para>
+            				Right pad with spaces if the logger name is shorter than 20
+            				characters. However, if logger name is longer than 30 characters,
+            				then truncate from the beginning.
+            				</para>
+            			</td>
+            		</tr>
+            	</table>
+            </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> 
+            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 
+            .NET Compact Framework 1.0 therefore caller location information is not
+            available on that framework.
+            </para>
+            </note>
+            <note type="caution">
+            <para>
+            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 
+            that occur during optimization."
+            </para>
+            <para>
+            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>
+            <para>
+            Additional pattern converters may be registered with a specific <see cref="T:log4net.Layout.PatternLayout"/>
+            instance using the <see cref="M:log4net.Layout.PatternLayout.AddConverter(System.String,System.Type)"/> method.
+            </para>
+            </remarks>
+            <example>
+            This is a more detailed pattern.
+            <code><b>%timestamp [%thread] %level %logger %ndc - %message%newline</b></code>
+            </example>
+            <example>
+            A similar pattern except that the relative time is
+            right padded if less than 6 digits, thread name is right padded if
+            less than 15 characters and truncated if longer and the logger
+            name is left padded if shorter than 30 characters and truncated if
+            longer.
+            <code><b>%-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline</b></code>
+            </example>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+            <author>Douglas de la Torre</author>
+            <author>Daniel Cazzulino</author>
+        </member>
+        <member name="F:log4net.Layout.PatternLayout.DefaultConversionPattern">
+            <summary>
+            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. 
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Layout.PatternLayout.DetailConversionPattern">
+            <summary>
+            A detailed conversion pattern
+            </summary>
+            <remarks>
+            <para>
+            A conversion pattern which includes Time, Thread, Logger, and Nested Context.
+            Current value is <b>%timestamp [%thread] %level %logger %ndc - %message%newline</b>.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Layout.PatternLayout.s_globalRulesRegistry">
+            <summary>
+            Internal map of converter identifiers to converter types.
+            </summary>
+            <remarks>
+            <para>
+            This static map is overridden by the m_converterRegistry instance map
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Layout.PatternLayout.m_pattern">
+            <summary>
+            the pattern
+            </summary>
+        </member>
+        <member name="F:log4net.Layout.PatternLayout.m_head">
+            <summary>
+            the head of the pattern converter chain
+            </summary>
+        </member>
+        <member name="F:log4net.Layout.PatternLayout.m_instanceRulesRegistry">
+            <summary>
+            patterns defined on this PatternLayout only
+            </summary>
+        </member>
+        <member name="M:log4net.Layout.PatternLayout.#cctor">
+            <summary>
+            Initialize the global registry
+            </summary>
+            <remarks>
+            <para>
+            Defines the builtin global rules.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.PatternLayout.#ctor">
+            <summary>
+            Constructs a PatternLayout using the DefaultConversionPattern
+            </summary>
+            <remarks>
+            <para>
+            The default pattern just produces the application supplied message.
+            </para>
+            <para>
+            Note to Inheritors: This constructor calls the virtual method
+            <see cref="M:log4net.Layout.PatternLayout.CreatePatternParser(System.String)"/>. If you override this method be
+            aware that it will be called before your is called constructor.
+            </para>
+            <para>
+            As per the <see cref="T:log4net.Core.IOptionHandler"/> contract the <see cref="M:log4net.Layout.PatternLayout.ActivateOptions"/>
+            method must be called after the properties on this object have been
+            configured.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.PatternLayout.#ctor(System.String)">
+            <summary>
+            Constructs a PatternLayout using the supplied conversion pattern
+            </summary>
+            <param name="pattern">the pattern to use</param>
+            <remarks>
+            <para>
+            Note to Inheritors: This constructor calls the virtual method
+            <see cref="M:log4net.Layout.PatternLayout.CreatePatternParser(System.String)"/>. If you override this method be
+            aware that it will be called before your is called constructor.
+            </para>
+            <para>
+            When using this constructor the <see cref="M:log4net.Layout.PatternLayout.ActivateOptions"/> method 
+            need not be called. This may not be the case when using a subclass.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.PatternLayout.CreatePatternParser(System.String)">
+            <summary>
+            Create the pattern parser instance
+            </summary>
+            <param name="pattern">the pattern to parse</param>
+            <returns>The <see cref="T:log4net.Util.PatternParser"/> that will format the event</returns>
+            <remarks>
+            <para>
+            Creates the <see cref="T:log4net.Util.PatternParser"/> used to parse the conversion string. Sets the
+            global and instance rules on the <see cref="T:log4net.Util.PatternParser"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.PatternLayout.ActivateOptions">
+            <summary>
+            Initialize layout options
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Layout.PatternLayout.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Layout.PatternLayout.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Layout.PatternLayout.ActivateOptions"/> must be called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.PatternLayout.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Produces a formatted string as specified by the conversion pattern.
+            </summary>
+            <param name="loggingEvent">the event being logged</param>
+            <param name="writer">The TextWriter to write the formatted event to</param>
+            <remarks>
+            <para>
+            Parse the <see cref="T:log4net.Core.LoggingEvent"/> using the patter format
+            specified in the <see cref="P:log4net.Layout.PatternLayout.ConversionPattern"/> property.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.PatternLayout.AddConverter(log4net.Layout.PatternLayout.ConverterInfo)">
+            <summary>
+            Add a converter to this PatternLayout
+            </summary>
+            <param name="converterInfo">the converter info</param>
+            <remarks>
+            <para>
+            This version of the method is used by the configurator.
+            Programmatic users should use the alternative <see cref="M:log4net.Layout.PatternLayout.AddConverter(System.String,System.Type)"/> method.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.PatternLayout.AddConverter(System.String,System.Type)">
+            <summary>
+            Add a converter to this PatternLayout
+            </summary>
+            <param name="name">the name of the conversion pattern for this converter</param>
+            <param name="type">the type of the converter</param>
+            <remarks>
+            <para>
+            Add a named pattern converter to this instance. This
+            converter will be used in the formatting of the event.
+            This method must be called before <see cref="M:log4net.Layout.PatternLayout.ActivateOptions"/>.
+            </para>
+            <para>
+            The <paramref name="type"/> specified must extend the 
+            <see cref="T:log4net.Util.PatternConverter"/> type.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Layout.PatternLayout.ConversionPattern">
+            <summary>
+            The pattern formatting string
+            </summary>
+            <remarks>
+            <para>
+            The <b>ConversionPattern</b> option. This is the string which
+            controls formatting and consists of a mix of literal content and
+            conversion specifiers.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.PatternLayout.ConverterInfo">
+            <summary>
+            Wrapper class used to map converter names to converter types
+            </summary>
+            <remarks>
+            <para>
+            Pattern converter info class used during configuration to
+            pass to the <see cref="M:log4net.Layout.PatternLayout.AddConverter(log4net.Layout.PatternLayout.ConverterInfo)"/>
+            method.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.PatternLayout.ConverterInfo.#ctor">
+            <summary>
+            default constructor
+            </summary>
+        </member>
+        <member name="P:log4net.Layout.PatternLayout.ConverterInfo.Name">
+            <summary>
+            Gets or sets the name of the conversion pattern
+            </summary>
+            <remarks>
+            <para>
+            The name of the pattern in the format string
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Layout.PatternLayout.ConverterInfo.Type">
+            <summary>
+            Gets or sets the type of the converter
+            </summary>
+            <remarks>
+            <para>
+            The value specified must extend the 
+            <see cref="T:log4net.Util.PatternConverter"/> type.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.RawLayoutConverter">
+            <summary>
+            Type converter for the <see cref="T:log4net.Layout.IRawLayout"/> interface
+            </summary>
+            <remarks>
+            <para>
+            Used to convert objects to the <see cref="T:log4net.Layout.IRawLayout"/> interface.
+            Supports converting from the <see cref="T:log4net.Layout.ILayout"/> interface to
+            the <see cref="T:log4net.Layout.IRawLayout"/> interface using the <see cref="T:log4net.Layout.Layout2RawLayoutAdapter"/>.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Util.TypeConverters.IConvertFrom">
+            <summary>
+            Interface supported by type converters
+            </summary>
+            <remarks>
+            <para>
+            This interface supports conversion from arbitrary types
+            to a single target type. See <see cref="T:log4net.Util.TypeConverters.TypeConverterAttribute"/>.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.IConvertFrom.CanConvertFrom(System.Type)">
+            <summary>
+            Can the source type be converted to the type supported by this object
+            </summary>
+            <param name="sourceType">the type to convert</param>
+            <returns>true if the conversion is possible</returns>
+            <remarks>
+            <para>
+            Test if the <paramref name="sourceType"/> can be converted to the
+            type supported by this converter.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.IConvertFrom.ConvertFrom(System.Object)">
+            <summary>
+            Convert the source object to the type supported by this object
+            </summary>
+            <param name="source">the object to convert</param>
+            <returns>the converted object</returns>
+            <remarks>
+            <para>
+            Converts the <paramref name="source"/> to the type supported
+            by this converter.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.RawLayoutConverter.CanConvertFrom(System.Type)">
+            <summary>
+            Can the sourceType be converted to an <see cref="T:log4net.Layout.IRawLayout"/>
+            </summary>
+            <param name="sourceType">the source to be to be converted</param>
+            <returns><c>true</c> if the source type can be converted to <see cref="T:log4net.Layout.IRawLayout"/></returns>
+            <remarks>
+            <para>
+            Test if the <paramref name="sourceType"/> can be converted to a
+            <see cref="T:log4net.Layout.IRawLayout"/>. Only <see cref="T:log4net.Layout.ILayout"/> is supported
+            as the <paramref name="sourceType"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.RawLayoutConverter.ConvertFrom(System.Object)">
+            <summary>
+            Convert the value to a <see cref="T:log4net.Layout.IRawLayout"/> object
+            </summary>
+            <param name="source">the value to convert</param>
+            <returns>the <see cref="T:log4net.Layout.IRawLayout"/> object</returns>
+            <remarks>
+            <para>
+            Convert the <paramref name="source"/> object to a 
+            <see cref="T:log4net.Layout.IRawLayout"/> object. If the <paramref name="source"/> object
+            is a <see cref="T:log4net.Layout.ILayout"/> then the <see cref="T:log4net.Layout.Layout2RawLayoutAdapter"/>
+            is used to adapt between the two interfaces, otherwise an
+            exception is thrown.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.RawPropertyLayout">
+            <summary>
+            Extract the value of a property from the <see cref="T:log4net.Core.LoggingEvent"/>
+            </summary>
+            <remarks>
+            <para>
+            Extract the value of a property from the <see cref="T:log4net.Core.LoggingEvent"/>
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Layout.RawPropertyLayout.#ctor">
+            <summary>
+            Constructs a RawPropertyLayout
+            </summary>
+        </member>
+        <member name="M:log4net.Layout.RawPropertyLayout.Format(log4net.Core.LoggingEvent)">
+            <summary>
+            Lookup the property for <see cref="P:log4net.Layout.RawPropertyLayout.Key"/>
+            </summary>
+            <param name="loggingEvent">The event to format</param>
+            <returns>returns property value</returns>
+            <remarks>
+            <para>
+            Looks up and returns the object value of the property
+            named <see cref="P:log4net.Layout.RawPropertyLayout.Key"/>. If there is no property defined
+            with than name then <c>null</c> will be returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Layout.RawPropertyLayout.Key">
+            <summary>
+            The name of the value to lookup in the LoggingEvent Properties collection.
+            </summary>
+            <value>
+            Value to lookup in the LoggingEvent Properties collection
+            </value>
+            <remarks>
+            <para>
+            String name of the property to lookup in the <see cref="T:log4net.Core.LoggingEvent"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.RawTimeStampLayout">
+            <summary>
+            Extract the date from the <see cref="T:log4net.Core.LoggingEvent"/>
+            </summary>
+            <remarks>
+            <para>
+            Extract the date from the <see cref="T:log4net.Core.LoggingEvent"/>
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Layout.RawTimeStampLayout.#ctor">
+            <summary>
+            Constructs a RawTimeStampLayout
+            </summary>
+        </member>
+        <member name="M:log4net.Layout.RawTimeStampLayout.Format(log4net.Core.LoggingEvent)">
+            <summary>
+            Gets the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> as a <see cref="T:System.DateTime"/>.
+            </summary>
+            <param name="loggingEvent">The event to format</param>
+            <returns>returns the time stamp</returns>
+            <remarks>
+            <para>
+            Gets the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> as a <see cref="T:System.DateTime"/>.
+            </para>
+            <para>
+            The time stamp is in local time. To format the time stamp
+            in universal time use <see cref="T:log4net.Layout.RawUtcTimeStampLayout"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.RawUtcTimeStampLayout">
+            <summary>
+            Extract the date from the <see cref="T:log4net.Core.LoggingEvent"/>
+            </summary>
+            <remarks>
+            <para>
+            Extract the date from the <see cref="T:log4net.Core.LoggingEvent"/>
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Layout.RawUtcTimeStampLayout.#ctor">
+            <summary>
+            Constructs a RawUtcTimeStampLayout
+            </summary>
+        </member>
+        <member name="M:log4net.Layout.RawUtcTimeStampLayout.Format(log4net.Core.LoggingEvent)">
+            <summary>
+            Gets the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> as a <see cref="T:System.DateTime"/>.
+            </summary>
+            <param name="loggingEvent">The event to format</param>
+            <returns>returns the time stamp</returns>
+            <remarks>
+            <para>
+            Gets the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> as a <see cref="T:System.DateTime"/>.
+            </para>
+            <para>
+            The time stamp is in universal time. To format the time stamp
+            in local time use <see cref="T:log4net.Layout.RawTimeStampLayout"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.SimpleLayout">
+            <summary>
+            A very simple layout
+            </summary>
+            <remarks>
+            <para>
+            SimpleLayout consists of the level of the log statement,
+            followed by " - " and then the log message itself. For example,
+            <code>
+            DEBUG - Hello world
+            </code>
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Layout.SimpleLayout.#ctor">
+            <summary>
+            Constructs a SimpleLayout
+            </summary>
+        </member>
+        <member name="M:log4net.Layout.SimpleLayout.ActivateOptions">
+            <summary>
+            Initialize layout options
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Layout.SimpleLayout.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Layout.SimpleLayout.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Layout.SimpleLayout.ActivateOptions"/> must be called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.SimpleLayout.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Produces a simple formatted output.
+            </summary>
+            <param name="loggingEvent">the event being logged</param>
+            <param name="writer">The TextWriter to write the formatted event to</param>
+            <remarks>
+            <para>
+            Formats the event as the level of the even,
+            followed by " - " and then the log message itself. The
+            output is terminated by a newline.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.XmlLayout">
+            <summary>
+            Layout that formats the log events as XML elements.
+            </summary>
+            <remarks>
+            <para>
+            The output of the <see cref="T:log4net.Layout.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="T:log4net.Layout.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;
+                &amp;data;
+            &lt;/log4net:events&gt;
+            </code>
+            <para>
+            This approach enforces the independence of the <see cref="T:log4net.Layout.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="T:log4net.Layout.XmlLayout"/>. The value of 
+            this attribute should be "1.2" for release 1.2 and later.
+            </para>
+            <para>
+            Alternatively the <c>Header</c> and <c>Footer</c> properties can be
+            configured to output the correct XML header, open tag and close tag.
+            When setting the <c>Header</c> and <c>Footer</c> properties it is essential
+            that the underlying data store not be appendable otherwise the data
+            will become invalid XML.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Layout.XmlLayoutBase">
+            <summary>
+            Layout that formats the log events as XML elements.
+            </summary>
+            <remarks>
+            <para>
+            This is an abstract class that must be subclassed by an implementation 
+            to conform to a specific schema.
+            </para>
+            <para>
+            Deriving classes must implement the <see cref="M:log4net.Layout.XmlLayoutBase.FormatXml(System.Xml.XmlWriter,log4net.Core.LoggingEvent)"/> method.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Layout.XmlLayoutBase.#ctor">
+            <summary>
+            Protected constructor to support subclasses
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Layout.XmlLayoutBase"/> class
+            with no location info.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.XmlLayoutBase.#ctor(System.Boolean)">
+            <summary>
+            Protected constructor to support subclasses
+            </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. 
+            </para>
+            <para>
+            If you are embedding this layout within an SMTPAppender
+            then make sure to set the <b>LocationInfo</b> option of that 
+            appender as well.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.XmlLayoutBase.ActivateOptions">
+            <summary>
+            Initialize layout options
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Layout.XmlLayoutBase.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Layout.XmlLayoutBase.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Layout.XmlLayoutBase.ActivateOptions"/> must be called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.XmlLayoutBase.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Produces a formatted string.
+            </summary>
+            <param name="loggingEvent">The event being logged.</param>
+            <param name="writer">The TextWriter to write the formatted event to</param>
+            <remarks>
+            <para>
+            Format the <see cref="T:log4net.Core.LoggingEvent"/> and write it to the <see cref="T:System.IO.TextWriter"/>.
+            </para>
+            <para>
+            This method creates an <see cref="T:System.Xml.XmlTextWriter"/> that writes to the
+            <paramref name="writer"/>. The <see cref="T:System.Xml.XmlTextWriter"/> is passed 
+            to the <see cref="M:log4net.Layout.XmlLayoutBase.FormatXml(System.Xml.XmlWriter,log4net.Core.LoggingEvent)"/> method. Subclasses should override the
+            <see cref="M:log4net.Layout.XmlLayoutBase.FormatXml(System.Xml.XmlWriter,log4net.Core.LoggingEvent)"/> method rather than this method.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.XmlLayoutBase.FormatXml(System.Xml.XmlWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Does the actual writing of the XML.
+            </summary>
+            <param name="writer">The writer to use to output the event to.</param>
+            <param name="loggingEvent">The event to write.</param>
+            <remarks>
+            <para>
+            Subclasses should override this method to format
+            the <see cref="T:log4net.Core.LoggingEvent"/> as XML.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Layout.XmlLayoutBase.m_locationInfo">
+            <summary>
+            Flag to indicate if location information should be included in
+            the XML events.
+            </summary>
+        </member>
+        <member name="F:log4net.Layout.XmlLayoutBase.m_protectCloseTextWriter">
+            <summary>
+            Writer adapter that ignores Close
+            </summary>
+        </member>
+        <member name="F:log4net.Layout.XmlLayoutBase.m_invalidCharReplacement">
+            <summary>
+            The string to replace invalid chars with
+            </summary>
+        </member>
+        <member name="P:log4net.Layout.XmlLayoutBase.LocationInfo">
+            <summary>
+            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 
+            events; otherwise, <c>false</c>.
+            </value>
+            <remarks>
+            <para>
+            If <see cref="P:log4net.Layout.XmlLayoutBase.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 
+            appender as well.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Layout.XmlLayoutBase.InvalidCharReplacement">
+            <summary>
+            The string to replace characters that can not be expressed in XML with.
+            <remarks>
+            <para>
+            Not all characters may be expressed in XML. This property contains the
+            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 
+            and the property values.
+            </para>
+            </remarks>
+            </summary>
+        </member>
+        <member name="P:log4net.Layout.XmlLayoutBase.ContentType">
+            <summary>
+            Gets the content type output by this layout. 
+            </summary>
+            <value>
+            As this is the XML layout, the value is always <c>"text/xml"</c>.
+            </value>
+            <remarks>
+            <para>
+            As this is the XML layout, the value is always <c>"text/xml"</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.XmlLayout.#ctor">
+            <summary>
+            Constructs an XmlLayout
+            </summary>
+        </member>
+        <member name="M:log4net.Layout.XmlLayout.#ctor(System.Boolean)">
+            <summary>
+            Constructs an XmlLayout.
+            </summary>
+            <remarks>
+            <para>
+            The <b>LocationInfo</b> option takes a boolean value. By
+            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. 
+            </para>
+            <para>
+            If you are embedding this layout within an SmtpAppender
+            then make sure to set the <b>LocationInfo</b> option of that 
+            appender as well.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.XmlLayout.ActivateOptions">
+            <summary>
+            Initialize layout options
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Layout.XmlLayout.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Layout.XmlLayout.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Layout.XmlLayout.ActivateOptions"/> must be called again.
+            </para>
+            <para>
+            Builds a cache of the element names
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.XmlLayout.FormatXml(System.Xml.XmlWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Does the actual writing of the XML.
+            </summary>
+            <param name="writer">The writer to use to output the event to.</param>
+            <param name="loggingEvent">The event to write.</param>
+            <remarks>
+            <para>
+            Override the base class <see cref="M:log4net.Layout.XmlLayoutBase.FormatXml(System.Xml.XmlWriter,log4net.Core.LoggingEvent)"/> method
+            to write the <see cref="T:log4net.Core.LoggingEvent"/> to the <see cref="T:System.Xml.XmlWriter"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Layout.XmlLayout.m_prefix">
+            <summary>
+            The prefix to use for all generated element names
+            </summary>
+        </member>
+        <member name="P:log4net.Layout.XmlLayout.Prefix">
+            <summary>
+            The prefix to use for all element names
+            </summary>
+            <remarks>
+            <para>
+            The default prefix is <b>log4net</b>. Set this property
+            to change the prefix. If the prefix is set to an empty string
+            then no prefix will be written.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Layout.XmlLayout.Base64EncodeMessage">
+            <summary>
+            Set whether or not to base64 encode the message.
+            </summary>
+            <remarks>
+            <para>
+            By default the log message will be written as text to the xml
+            output. This can cause problems when the message contains binary
+            data. By setting this to true the contents of the message will be
+            base64 encoded. If this is set then invalid character replacement
+            (see <see cref="P:log4net.Layout.XmlLayoutBase.InvalidCharReplacement"/>) will not be performed
+            on the log message.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Layout.XmlLayout.Base64EncodeProperties">
+            <summary>
+            Set whether or not to base64 encode the property values.
+            </summary>
+            <remarks>
+            <para>
+            By default the properties will be written as text to the xml
+            output. This can cause problems when one or more properties contain
+            binary data. By setting this to true the values of the properties
+            will be base64 encoded. If this is set then invalid character replacement
+            (see <see cref="P:log4net.Layout.XmlLayoutBase.InvalidCharReplacement"/>) will not be performed
+            on the property values.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Layout.XmlLayoutSchemaLog4j">
+            <summary>
+            Layout that formats the log events as XML elements compatible with the log4j schema
+            </summary>
+            <remarks>
+            <para>
+            Formats the log events according to the http://logging.apache.org/log4j schema.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="F:log4net.Layout.XmlLayoutSchemaLog4j.s_date1970">
+            <summary>
+            The 1st of January 1970 in UTC
+            </summary>
+        </member>
+        <member name="M:log4net.Layout.XmlLayoutSchemaLog4j.#ctor">
+            <summary>
+            Constructs an XMLLayoutSchemaLog4j
+            </summary>
+        </member>
+        <member name="M:log4net.Layout.XmlLayoutSchemaLog4j.#ctor(System.Boolean)">
+            <summary>
+            Constructs an XMLLayoutSchemaLog4j.
+            </summary>
+            <remarks>
+            <para>
+            The <b>LocationInfo</b> option takes a boolean value. By
+            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. 
+            </para>
+            <para>
+            If you are embedding this layout within an SMTPAppender
+            then make sure to set the <b>LocationInfo</b> option of that 
+            appender as well.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Layout.XmlLayoutSchemaLog4j.FormatXml(System.Xml.XmlWriter,log4net.Core.LoggingEvent)">
+            <summary>
+            Actually do the writing of the xml
+            </summary>
+            <param name="writer">the writer to use</param>
+            <param name="loggingEvent">the event to write</param>
+            <remarks>
+            <para>
+            Generate XML that is compatible with the log4j schema.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Layout.XmlLayoutSchemaLog4j.Version">
+            <summary>
+            The version of the log4j schema to use.
+            </summary>
+            <remarks>
+            <para>
+            Only version 1.2 of the log4j schema is supported.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.ObjectRenderer.DefaultRenderer">
+            <summary>
+            The default object Renderer.
+            </summary>
+            <remarks>
+            <para>
+            The default renderer supports rendering objects and collections to strings.
+            </para>
+            <para>
+            See the <see cref="M:log4net.ObjectRenderer.DefaultRenderer.RenderObject(log4net.ObjectRenderer.RendererMap,System.Object,System.IO.TextWriter)"/> method for details of the output.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.ObjectRenderer.IObjectRenderer">
+            <summary>
+            Implement this interface in order to render objects as strings
+            </summary>
+            <remarks>
+            <para>
+            Certain types require special case conversion to
+            string form. This conversion is done by an object renderer.
+            Object renderers implement the <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>
+            interface.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.ObjectRenderer.IObjectRenderer.RenderObject(log4net.ObjectRenderer.RendererMap,System.Object,System.IO.TextWriter)">
+            <summary>
+            Render the object <paramref name="obj"/> to a string
+            </summary>
+            <param name="rendererMap">The map used to lookup renderers</param>
+            <param name="obj">The object to render</param>
+            <param name="writer">The writer to render to</param>
+            <remarks>
+            <para>
+            Render the object <paramref name="obj"/> to a 
+            string.
+            </para>
+            <para>
+            The <paramref name="rendererMap"/> parameter is
+            provided to lookup and render other objects. This is
+            very useful where <paramref name="obj"/> contains
+            nested objects of unknown type. The <see cref="M:log4net.ObjectRenderer.RendererMap.FindAndRender(System.Object,System.IO.TextWriter)"/>
+            method can be used to render these objects.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.ObjectRenderer.DefaultRenderer.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+            <remarks>
+            <para>
+            Default constructor
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.ObjectRenderer.DefaultRenderer.RenderObject(log4net.ObjectRenderer.RendererMap,System.Object,System.IO.TextWriter)">
+            <summary>
+            Render the object <paramref name="obj"/> to a string
+            </summary>
+            <param name="rendererMap">The map used to lookup renderers</param>
+            <param name="obj">The object to render</param>
+            <param name="writer">The writer to render to</param>
+            <remarks>
+            <para>
+            Render the object <paramref name="obj"/> to a string.
+            </para>
+            <para>
+            The <paramref name="rendererMap"/> parameter is
+            provided to lookup and render other objects. This is
+            very useful where <paramref name="obj"/> contains
+            nested objects of unknown type. The <see cref="M:log4net.ObjectRenderer.RendererMap.FindAndRender(System.Object)"/>
+            method can be used to render these objects.
+            </para>
+            <para>
+            The default renderer supports rendering objects to strings as follows:
+            </para>
+            <list type="table">
+            	<listheader>
+            		<term>Value</term>
+            		<description>Rendered String</description>
+            	</listheader>
+            	<item>
+            		<term><c>null</c></term>
+            		<description>
+            		<para>"(null)"</para>
+            		</description>
+            	</item>
+            	<item>
+            		<term><see cref="T:System.Array"/></term>
+            		<description>
+            		<para>
+            		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. 
+            		</para>
+            		<para>
+            		For example: <c>int[] {1, 2, 3}</c>.
+            		</para>
+            		<para>
+            		If the array is not one dimensional the 
+            		<c>Array.ToString()</c> is returned.
+            		</para>
+            		</description>
+            	</item>
+            	<item>
+            		<term><see cref="T:System.Collections.IEnumerable"/>, <see cref="T:System.Collections.ICollection"/> &amp; <see cref="T:System.Collections.IEnumerator"/></term>
+            		<description>
+            		<para>
+            		Rendered as an open brace, followed by a comma
+            		separated list of the elements (using the appropriate
+            		renderer), followed by a close brace.
+            		</para>
+            		<para>
+            		For example: <c>{a, b, c}</c>.
+            		</para>
+            		<para>
+            		All collection classes that implement <see cref="T:System.Collections.ICollection"/> its subclasses, 
+            		or generic equivalents all implement the <see cref="T:System.Collections.IEnumerable"/> interface.
+            		</para>
+            		</description>
+            	</item>		
+            	<item>
+            		<term><see cref="T:System.Collections.DictionaryEntry"/></term>
+            		<description>
+            		<para>
+            		Rendered as the key, an equals sign ('='), and the value (using the appropriate
+            		renderer). 
+            		</para>
+            		<para>
+            		For example: <c>key=value</c>.
+            		</para>
+            		</description>
+            	</item>		
+            	<item>
+            		<term>other</term>
+            		<description>
+            		<para><c>Object.ToString()</c></para>
+            		</description>
+            	</item>
+            </list>
+            </remarks>
+        </member>
+        <member name="M:log4net.ObjectRenderer.DefaultRenderer.RenderArray(log4net.ObjectRenderer.RendererMap,System.Array,System.IO.TextWriter)">
+            <summary>
+            Render the array argument into a string
+            </summary>
+            <param name="rendererMap">The map used to lookup renderers</param>
+            <param name="array">the array to render</param>
+            <param name="writer">The writer to render to</param>
+            <remarks>
+            <para>
+            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. For example:
+            <c>int[] {1, 2, 3}</c>.
+            </para>
+            <para>
+            If the array is not one dimensional the 
+            <c>Array.ToString()</c> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.ObjectRenderer.DefaultRenderer.RenderEnumerator(log4net.ObjectRenderer.RendererMap,System.Collections.IEnumerator,System.IO.TextWriter)">
+            <summary>
+            Render the enumerator argument into a string
+            </summary>
+            <param name="rendererMap">The map used to lookup renderers</param>
+            <param name="enumerator">the enumerator to render</param>
+            <param name="writer">The writer to render to</param>
+            <remarks>
+            <para>
+            Rendered as an open brace, followed by a comma
+            separated list of the elements (using the appropriate
+            renderer), followed by a close brace. For example:
+            <c>{a, b, c}</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.ObjectRenderer.DefaultRenderer.RenderDictionaryEntry(log4net.ObjectRenderer.RendererMap,System.Collections.DictionaryEntry,System.IO.TextWriter)">
+            <summary>
+            Render the DictionaryEntry argument into a string
+            </summary>
+            <param name="rendererMap">The map used to lookup renderers</param>
+            <param name="entry">the DictionaryEntry to render</param>
+            <param name="writer">The writer to render to</param>
+            <remarks>
+            <para>
+            Render the key, an equals sign ('='), and the value (using the appropriate
+            renderer). For example: <c>key=value</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.ObjectRenderer.RendererMap">
+            <summary>
+            Map class objects to an <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>.
+            </summary>
+            <remarks>
+            <para>
+            Maintains a mapping between types that require special
+            rendering and the <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/> that
+            is used to render them.
+            </para>
+            <para>
+            The <see cref="M:log4net.ObjectRenderer.RendererMap.FindAndRender(System.Object)"/> method is used to render an
+            <c>object</c> using the appropriate renderers defined in this map.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.ObjectRenderer.RendererMap.#ctor">
+            <summary>
+            Default Constructor
+            </summary>
+            <remarks>
+            <para>
+            Default constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.ObjectRenderer.RendererMap.FindAndRender(System.Object)">
+            <summary>
+            Render <paramref name="obj"/> using the appropriate renderer.
+            </summary>
+            <param name="obj">the object to render to a string</param>
+            <returns>the object rendered as a string</returns>
+            <remarks>
+            <para>
+            This is a convenience method used to render an object to a string.
+            The alternative method <see cref="M:log4net.ObjectRenderer.RendererMap.FindAndRender(System.Object,System.IO.TextWriter)"/>
+            should be used when streaming output to a <see cref="T:System.IO.TextWriter"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.ObjectRenderer.RendererMap.FindAndRender(System.Object,System.IO.TextWriter)">
+            <summary>
+            Render <paramref name="obj"/> using the appropriate renderer.
+            </summary>
+            <param name="obj">the object to render to a string</param>
+            <param name="writer">The writer to render to</param>
+            <remarks>
+            <para>
+            Find the appropriate renderer for the type of the
+            <paramref name="obj"/> parameter. This is accomplished by calling the
+            <see cref="M:log4net.ObjectRenderer.RendererMap.Get(System.Type)"/> method. Once a renderer is found, it is
+            applied on the object <paramref name="obj"/> and the result is returned
+            as a <see cref="T:System.String"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.ObjectRenderer.RendererMap.Get(System.Object)">
+            <summary>
+            Gets the renderer for the specified object type
+            </summary>
+            <param name="obj">the object to lookup the renderer for</param>
+            <returns>the renderer for <paramref name="obj"/></returns>
+            <remarks>
+            <param>
+            Gets the renderer for the specified object type.
+            </param>
+            <param>
+            Syntactic sugar method that calls <see cref="M:log4net.ObjectRenderer.RendererMap.Get(System.Type)"/> 
+            with the type of the object parameter.
+            </param>
+            </remarks>
+        </member>
+        <member name="M:log4net.ObjectRenderer.RendererMap.Get(System.Type)">
+            <summary>
+            Gets the renderer for the specified type
+            </summary>
+            <param name="type">the type to lookup the renderer for</param>
+            <returns>the renderer for the specified type</returns>
+            <remarks>
+            <para>
+            Returns the renderer for the specified type.
+            If no specific renderer has been defined the
+            <see cref="P:log4net.ObjectRenderer.RendererMap.DefaultRenderer"/> will be returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.ObjectRenderer.RendererMap.SearchTypeAndInterfaces(System.Type)">
+            <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>
+        </member>
+        <member name="M:log4net.ObjectRenderer.RendererMap.Clear">
+            <summary>
+            Clear the map of renderers
+            </summary>
+            <remarks>
+            <para>
+            Clear the custom renderers defined by using
+            <see cref="M:log4net.ObjectRenderer.RendererMap.Put(System.Type,log4net.ObjectRenderer.IObjectRenderer)"/>. The <see cref="P:log4net.ObjectRenderer.RendererMap.DefaultRenderer"/>
+            cannot be removed.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.ObjectRenderer.RendererMap.Put(System.Type,log4net.ObjectRenderer.IObjectRenderer)">
+            <summary>
+            Register an <see cref="T:log4net.ObjectRenderer.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>
+            <remarks>
+            <para>
+            Register an object renderer for a specific source type.
+            This renderer will be returned from a call to <see cref="M:log4net.ObjectRenderer.RendererMap.Get(System.Type)"/>
+            specifying the same <paramref name="typeToRender"/> as an argument.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.ObjectRenderer.RendererMap.DefaultRenderer">
+            <summary>
+            Get the default renderer instance
+            </summary>
+            <value>the default renderer</value>
+            <remarks>
+            <para>
+            Get the default renderer
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Plugin.IPlugin">
+            <summary>
+            Interface implemented by logger repository plugins.
+            </summary>
+            <remarks>
+            <para>
+            Plugins define additional behavior that can be associated
+            with a <see cref="T:log4net.Repository.ILoggerRepository"/>.
+            The <see cref="T:log4net.Plugin.PluginMap"/> held by the <see cref="P:log4net.Repository.ILoggerRepository.PluginMap"/>
+            property is used to store the plugins for a repository.
+            </para>
+            <para>
+            The <c>log4net.Config.PluginAttribute</c> can be used to
+            attach plugins to repositories created using configuration
+            attributes.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Plugin.IPlugin.Attach(log4net.Repository.ILoggerRepository)">
+            <summary>
+            Attaches the plugin to the specified <see cref="T:log4net.Repository.ILoggerRepository"/>.
+            </summary>
+            <param name="repository">The <see cref="T:log4net.Repository.ILoggerRepository"/> that this plugin should be attached to.</param>
+            <remarks>
+            <para>
+            A plugin may only be attached to a single repository.
+            </para>
+            <para>
+            This method is called when the plugin is attached to the repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Plugin.IPlugin.Shutdown">
+            <summary>
+            Is called when the plugin is to shutdown.
+            </summary>
+            <remarks>
+            <para>
+            This method is called to notify the plugin that 
+            it should stop operating and should detach from
+            the repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Plugin.IPlugin.Name">
+            <summary>
+            Gets the name of the plugin.
+            </summary>
+            <value>
+            The name of the plugin.
+            </value>
+            <remarks>
+            <para>
+            Plugins are stored in the <see cref="T:log4net.Plugin.PluginMap"/>
+            keyed by name. Each plugin instance attached to a
+            repository must be a unique name.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Plugin.PluginCollection">
+            <summary>
+            A strongly-typed collection of <see cref="T:log4net.Plugin.IPlugin"/> objects.
+            </summary>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.ReadOnly(log4net.Plugin.PluginCollection)">
+            <summary>
+            Creates a read-only wrapper for a <c>PluginCollection</c> instance.
+            </summary>
+            <param name="list">list to create a readonly wrapper arround</param>
+            <returns>
+            A <c>PluginCollection</c> wrapper that is read-only.
+            </returns>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.#ctor">
+            <summary>
+            Initializes a new instance of the <c>PluginCollection</c> class
+            that is empty and has the default initial capacity.
+            </summary>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.#ctor(System.Int32)">
+            <summary>
+            Initializes a new instance of the <c>PluginCollection</c> class
+            that has the specified initial capacity.
+            </summary>
+            <param name="capacity">
+            The number of elements that the new <c>PluginCollection</c> is initially capable of storing.
+            </param>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.#ctor(log4net.Plugin.PluginCollection)">
+            <summary>
+            Initializes a new instance of the <c>PluginCollection</c> class
+            that contains elements copied from the specified <c>PluginCollection</c>.
+            </summary>
+            <param name="c">The <c>PluginCollection</c> whose elements are copied to the new collection.</param>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.#ctor(log4net.Plugin.IPlugin[])">
+            <summary>
+            Initializes a new instance of the <c>PluginCollection</c> class
+            that contains elements copied from the specified <see cref="T:log4net.Plugin.IPlugin"/> array.
+            </summary>
+            <param name="a">The <see cref="T:log4net.Plugin.IPlugin"/> array whose elements are copied to the new list.</param>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.#ctor(System.Collections.ICollection)">
+            <summary>
+            Initializes a new instance of the <c>PluginCollection</c> class
+            that contains elements copied from the specified <see cref="T:log4net.Plugin.IPlugin"/> collection.
+            </summary>
+            <param name="col">The <see cref="T:log4net.Plugin.IPlugin"/> collection whose elements are copied to the new list.</param>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.#ctor(log4net.Plugin.PluginCollection.Tag)">
+            <summary>
+            Allow subclasses to avoid our default constructors
+            </summary>
+            <param name="tag"></param>
+            <exclude/>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.CopyTo(log4net.Plugin.IPlugin[])">
+            <summary>
+            Copies the entire <c>PluginCollection</c> to a one-dimensional
+            <see cref="T:log4net.Plugin.IPlugin"/> array.
+            </summary>
+            <param name="array">The one-dimensional <see cref="T:log4net.Plugin.IPlugin"/> array to copy to.</param>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.CopyTo(log4net.Plugin.IPlugin[],System.Int32)">
+            <summary>
+            Copies the entire <c>PluginCollection</c> to a one-dimensional
+            <see cref="T:log4net.Plugin.IPlugin"/> array, starting at the specified index of the target array.
+            </summary>
+            <param name="array">The one-dimensional <see cref="T:log4net.Plugin.IPlugin"/> array to copy to.</param>
+            <param name="start">The zero-based index in <paramref name="array"/> at which copying begins.</param>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.Add(log4net.Plugin.IPlugin)">
+            <summary>
+            Adds a <see cref="T:log4net.Plugin.IPlugin"/> to the end of the <c>PluginCollection</c>.
+            </summary>
+            <param name="item">The <see cref="T:log4net.Plugin.IPlugin"/> to be added to the end of the <c>PluginCollection</c>.</param>
+            <returns>The index at which the value has been added.</returns>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.Clear">
+            <summary>
+            Removes all elements from the <c>PluginCollection</c>.
+            </summary>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.Clone">
+            <summary>
+            Creates a shallow copy of the <see cref="T:log4net.Plugin.PluginCollection"/>.
+            </summary>
+            <returns>A new <see cref="T:log4net.Plugin.PluginCollection"/> with a shallow copy of the collection data.</returns>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.Contains(log4net.Plugin.IPlugin)">
+            <summary>
+            Determines whether a given <see cref="T:log4net.Plugin.IPlugin"/> is in the <c>PluginCollection</c>.
+            </summary>
+            <param name="item">The <see cref="T:log4net.Plugin.IPlugin"/> to check for.</param>
+            <returns><c>true</c> if <paramref name="item"/> is found in the <c>PluginCollection</c>; otherwise, <c>false</c>.</returns>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.IndexOf(log4net.Plugin.IPlugin)">
+            <summary>
+            Returns the zero-based index of the first occurrence of a <see cref="T:log4net.Plugin.IPlugin"/>
+            in the <c>PluginCollection</c>.
+            </summary>
+            <param name="item">The <see cref="T:log4net.Plugin.IPlugin"/> to locate in the <c>PluginCollection</c>.</param>
+            <returns>
+            The zero-based index of the first occurrence of <paramref name="item"/> 
+            in the entire <c>PluginCollection</c>, if found; otherwise, -1.
+            </returns>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.Insert(System.Int32,log4net.Plugin.IPlugin)">
+            <summary>
+            Inserts an element into the <c>PluginCollection</c> at the specified index.
+            </summary>
+            <param name="index">The zero-based index at which <paramref name="item"/> should be inserted.</param>
+            <param name="item">The <see cref="T:log4net.Plugin.IPlugin"/> to insert.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">
+            <para><paramref name="index"/> is less than zero</para>
+            <para>-or-</para>
+            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Plugin.PluginCollection.Count"/>.</para>
+            </exception>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.Remove(log4net.Plugin.IPlugin)">
+            <summary>
+            Removes the first occurrence of a specific <see cref="T:log4net.Plugin.IPlugin"/> from the <c>PluginCollection</c>.
+            </summary>
+            <param name="item">The <see cref="T:log4net.Plugin.IPlugin"/> to remove from the <c>PluginCollection</c>.</param>
+            <exception cref="T:System.ArgumentException">
+            The specified <see cref="T:log4net.Plugin.IPlugin"/> was not found in the <c>PluginCollection</c>.
+            </exception>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.RemoveAt(System.Int32)">
+            <summary>
+            Removes the element at the specified index of the <c>PluginCollection</c>.
+            </summary>
+            <param name="index">The zero-based index of the element to remove.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">
+            <para><paramref name="index"/> is less than zero.</para>
+            <para>-or-</para>
+            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Plugin.PluginCollection.Count"/>.</para>
+            </exception>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.GetEnumerator">
+            <summary>
+            Returns an enumerator that can iterate through the <c>PluginCollection</c>.
+            </summary>
+            <returns>An <see cref="T:log4net.Plugin.PluginCollection.Enumerator"/> for the entire <c>PluginCollection</c>.</returns>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.AddRange(log4net.Plugin.PluginCollection)">
+            <summary>
+            Adds the elements of another <c>PluginCollection</c> to the current <c>PluginCollection</c>.
+            </summary>
+            <param name="x">The <c>PluginCollection</c> whose elements should be added to the end of the current <c>PluginCollection</c>.</param>
+            <returns>The new <see cref="P:log4net.Plugin.PluginCollection.Count"/> of the <c>PluginCollection</c>.</returns>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.AddRange(log4net.Plugin.IPlugin[])">
+            <summary>
+            Adds the elements of a <see cref="T:log4net.Plugin.IPlugin"/> array to the current <c>PluginCollection</c>.
+            </summary>
+            <param name="x">The <see cref="T:log4net.Plugin.IPlugin"/> array whose elements should be added to the end of the <c>PluginCollection</c>.</param>
+            <returns>The new <see cref="P:log4net.Plugin.PluginCollection.Count"/> of the <c>PluginCollection</c>.</returns>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.AddRange(System.Collections.ICollection)">
+            <summary>
+            Adds the elements of a <see cref="T:log4net.Plugin.IPlugin"/> collection to the current <c>PluginCollection</c>.
+            </summary>
+            <param name="col">The <see cref="T:log4net.Plugin.IPlugin"/> collection whose elements should be added to the end of the <c>PluginCollection</c>.</param>
+            <returns>The new <see cref="P:log4net.Plugin.PluginCollection.Count"/> of the <c>PluginCollection</c>.</returns>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.TrimToSize">
+            <summary>
+            Sets the capacity to the actual number of elements.
+            </summary>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.ValidateIndex(System.Int32)">
+            <exception cref="T:System.ArgumentOutOfRangeException">
+            <para><paramref name="index"/> is less than zero.</para>
+            <para>-or-</para>
+            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Plugin.PluginCollection.Count"/>.</para>
+            </exception>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.ValidateIndex(System.Int32,System.Boolean)">
+            <exception cref="T:System.ArgumentOutOfRangeException">
+            <para><paramref name="index"/> is less than zero.</para>
+            <para>-or-</para>
+            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Plugin.PluginCollection.Count"/>.</para>
+            </exception>
+        </member>
+        <member name="P:log4net.Plugin.PluginCollection.Count">
+            <summary>
+            Gets the number of elements actually contained in the <c>PluginCollection</c>.
+            </summary>
+        </member>
+        <member name="P:log4net.Plugin.PluginCollection.IsSynchronized">
+            <summary>
+            Gets a value indicating whether access to the collection is synchronized (thread-safe).
+            </summary>
+            <returns>true if access to the ICollection is synchronized (thread-safe); otherwise, false.</returns>
+        </member>
+        <member name="P:log4net.Plugin.PluginCollection.SyncRoot">
+            <summary>
+            Gets an object that can be used to synchronize access to the collection.
+            </summary>
+            <value>
+            An object that can be used to synchronize access to the collection.
+            </value>
+        </member>
+        <member name="P:log4net.Plugin.PluginCollection.Item(System.Int32)">
+            <summary>
+            Gets or sets the <see cref="T:log4net.Plugin.IPlugin"/> at the specified index.
+            </summary>
+            <value>
+            The <see cref="T:log4net.Plugin.IPlugin"/> at the specified index.
+            </value>
+            <param name="index">The zero-based index of the element to get or set.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">
+            <para><paramref name="index"/> is less than zero.</para>
+            <para>-or-</para>
+            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Plugin.PluginCollection.Count"/>.</para>
+            </exception>
+        </member>
+        <member name="P:log4net.Plugin.PluginCollection.IsFixedSize">
+            <summary>
+            Gets a value indicating whether the collection has a fixed size.
+            </summary>
+            <value><c>true</c> if the collection has a fixed size; otherwise, <c>false</c>. The default is <c>false</c>.</value>
+        </member>
+        <member name="P:log4net.Plugin.PluginCollection.IsReadOnly">
+            <summary>
+            Gets a value indicating whether the IList is read-only.
+            </summary>
+            <value><c>true</c> if the collection is read-only; otherwise, <c>false</c>. The default is <c>false</c>.</value>
+        </member>
+        <member name="P:log4net.Plugin.PluginCollection.Capacity">
+            <summary>
+            Gets or sets the number of elements the <c>PluginCollection</c> can contain.
+            </summary>
+            <value>
+            The number of elements the <c>PluginCollection</c> can contain.
+            </value>
+        </member>
+        <member name="T:log4net.Plugin.PluginCollection.IPluginCollectionEnumerator">
+            <summary>
+            Supports type-safe iteration over a <see cref="T:log4net.Plugin.PluginCollection"/>.
+            </summary>
+            <exclude/>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.IPluginCollectionEnumerator.MoveNext">
+            <summary>
+            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>false</c> if the enumerator has passed the end of the collection.
+            </returns>
+            <exception cref="T:System.InvalidOperationException">
+            The collection was modified after the enumerator was created.
+            </exception>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.IPluginCollectionEnumerator.Reset">
+            <summary>
+            Sets the enumerator to its initial position, before the first element in the collection.
+            </summary>
+        </member>
+        <member name="P:log4net.Plugin.PluginCollection.IPluginCollectionEnumerator.Current">
+            <summary>
+            Gets the current element in the collection.
+            </summary>
+        </member>
+        <member name="T:log4net.Plugin.PluginCollection.Tag">
+            <summary>
+            Type visible only to our subclasses
+            Used to access protected constructor
+            </summary>
+            <exclude/>
+        </member>
+        <member name="F:log4net.Plugin.PluginCollection.Tag.Default">
+            <summary>
+            A value
+            </summary>
+        </member>
+        <member name="T:log4net.Plugin.PluginCollection.Enumerator">
+            <summary>
+            Supports simple iteration over a <see cref="T:log4net.Plugin.PluginCollection"/>.
+            </summary>
+            <exclude/>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.Enumerator.#ctor(log4net.Plugin.PluginCollection)">
+            <summary>
+            Initializes a new instance of the <c>Enumerator</c> class.
+            </summary>
+            <param name="tc"></param>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.Enumerator.MoveNext">
+            <summary>
+            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>false</c> if the enumerator has passed the end of the collection.
+            </returns>
+            <exception cref="T:System.InvalidOperationException">
+            The collection was modified after the enumerator was created.
+            </exception>
+        </member>
+        <member name="M:log4net.Plugin.PluginCollection.Enumerator.Reset">
+            <summary>
+            Sets the enumerator to its initial position, before the first element in the collection.
+            </summary>
+        </member>
+        <member name="P:log4net.Plugin.PluginCollection.Enumerator.Current">
+            <summary>
+            Gets the current element in the collection.
+            </summary>
+            <value>
+            The current element in the collection.
+            </value>
+        </member>
+        <member name="T:log4net.Plugin.PluginCollection.ReadOnlyPluginCollection">
+            <exclude/>
+        </member>
+        <member name="T:log4net.Plugin.PluginMap">
+            <summary>
+            Map of repository plugins.
+            </summary>
+            <remarks>
+            <para>
+            This class is a name keyed map of the plugins that are
+            attached to a repository.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Plugin.PluginMap.#ctor(log4net.Repository.ILoggerRepository)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="repository">The repository that the plugins should be attached to.</param>
+            <remarks>
+            <para>
+            Initialize a new instance of the <see cref="T:log4net.Plugin.PluginMap"/> class with a 
+            repository that the plugins should be attached to.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Plugin.PluginMap.Add(log4net.Plugin.IPlugin)">
+            <summary>
+            Adds a <see cref="T:log4net.Plugin.IPlugin"/> to the map.
+            </summary>
+            <param name="plugin">The <see cref="T:log4net.Plugin.IPlugin"/> to add to the map.</param>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.Plugin.IPlugin"/> will be attached to the repository when added.
+            </para>
+            <para>
+            If there already exists a plugin with the same name 
+            attached to the repository then the old plugin will
+            be <see cref="M:log4net.Plugin.IPlugin.Shutdown"/> and replaced with
+            the new plugin.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Plugin.PluginMap.Remove(log4net.Plugin.IPlugin)">
+            <summary>
+            Removes a <see cref="T:log4net.Plugin.IPlugin"/> from the map.
+            </summary>
+            <param name="plugin">The <see cref="T:log4net.Plugin.IPlugin"/> to remove from the map.</param>
+            <remarks>
+            <para>
+            Remove a specific plugin from this map.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Plugin.PluginMap.Item(System.String)">
+            <summary>
+            Gets a <see cref="T:log4net.Plugin.IPlugin"/> by name.
+            </summary>
+            <param name="name">The name of the <see cref="T:log4net.Plugin.IPlugin"/> to lookup.</param>
+            <returns>
+            The <see cref="T:log4net.Plugin.IPlugin"/> from the map with the name specified, or 
+            <c>null</c> if no plugin is found.
+            </returns>
+            <remarks>
+            <para>
+            Lookup a plugin by name. If the plugin is not found <c>null</c>
+            will be returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Plugin.PluginMap.AllPlugins">
+            <summary>
+            Gets all possible plugins as a list of <see cref="T:log4net.Plugin.IPlugin"/> objects.
+            </summary>
+            <value>All possible plugins as a list of <see cref="T:log4net.Plugin.IPlugin"/> objects.</value>
+            <remarks>
+            <para>
+            Get a collection of all the plugins defined in this map.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Plugin.PluginSkeleton">
+            <summary>
+            Base implementation of <see cref="T:log4net.Plugin.IPlugin"/>
+            </summary>
+            <remarks>
+            <para>
+            Default abstract implementation of the <see cref="T:log4net.Plugin.IPlugin"/>
+            interface. This base class can be used by implementors
+            of the <see cref="T:log4net.Plugin.IPlugin"/> interface.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Plugin.PluginSkeleton.#ctor(System.String)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="name">the name of the plugin</param>
+            <remarks>
+            Initializes a new Plugin with the specified name.
+            </remarks>
+        </member>
+        <member name="M:log4net.Plugin.PluginSkeleton.Attach(log4net.Repository.ILoggerRepository)">
+            <summary>
+            Attaches this plugin to a <see cref="T:log4net.Repository.ILoggerRepository"/>.
+            </summary>
+            <param name="repository">The <see cref="T:log4net.Repository.ILoggerRepository"/> that this plugin should be attached to.</param>
+            <remarks>
+            <para>
+            A plugin may only be attached to a single repository.
+            </para>
+            <para>
+            This method is called when the plugin is attached to the repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Plugin.PluginSkeleton.Shutdown">
+            <summary>
+            Is called when the plugin is to shutdown.
+            </summary>
+            <remarks>
+            <para>
+            This method is called to notify the plugin that 
+            it should stop operating and should detach from
+            the repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Plugin.PluginSkeleton.m_name">
+            <summary>
+            The name of this plugin.
+            </summary>
+        </member>
+        <member name="F:log4net.Plugin.PluginSkeleton.m_repository">
+            <summary>
+            The repository this plugin is attached to.
+            </summary>
+        </member>
+        <member name="P:log4net.Plugin.PluginSkeleton.Name">
+            <summary>
+            Gets or sets the name of the plugin.
+            </summary>
+            <value>
+            The name of the plugin.
+            </value>
+            <remarks>
+            <para>
+            Plugins are stored in the <see cref="T:log4net.Plugin.PluginMap"/>
+            keyed by name. Each plugin instance attached to a
+            repository must be a unique name.
+            </para>
+            <para>
+            The name of the plugin must not change one the 
+            plugin has been attached to a repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Plugin.PluginSkeleton.LoggerRepository">
+            <summary>
+            The repository for this plugin
+            </summary>
+            <value>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> that this plugin is attached to.
+            </value>
+            <remarks>
+            <para>
+            Gets or sets the <see cref="T:log4net.Repository.ILoggerRepository"/> that this plugin is 
+            attached to.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Plugin.RemoteLoggingServerPlugin">
+            <summary>
+            Plugin that listens for events from the <see cref="T:log4net.Appender.RemotingAppender"/>
+            </summary>
+            <remarks>
+            <para>
+            This plugin publishes an instance of <see cref="T:log4net.Appender.RemotingAppender.IRemoteLoggingSink"/> 
+            on a specified <see cref="P:log4net.Plugin.RemoteLoggingServerPlugin.SinkUri"/>. This listens for logging events delivered from
+            a remote <see cref="T:log4net.Appender.RemotingAppender"/>.
+            </para>
+            <para>
+            When an event is received it is relogged within the attached repository
+            as if it had been raised locally.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Plugin.RemoteLoggingServerPlugin.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Plugin.RemoteLoggingServerPlugin"/> class.
+            </para>
+            <para>
+            The <see cref="P:log4net.Plugin.RemoteLoggingServerPlugin.SinkUri"/> property must be set.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Plugin.RemoteLoggingServerPlugin.#ctor(System.String)">
+            <summary>
+            Construct with sink Uri.
+            </summary>
+            <param name="sinkUri">The name to publish the sink under in the remoting infrastructure. 
+            See <see cref="P:log4net.Plugin.RemoteLoggingServerPlugin.SinkUri"/> for more details.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Plugin.RemoteLoggingServerPlugin"/> class
+            with specified name.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Plugin.RemoteLoggingServerPlugin.Attach(log4net.Repository.ILoggerRepository)">
+            <summary>
+            Attaches this plugin to a <see cref="T:log4net.Repository.ILoggerRepository"/>.
+            </summary>
+            <param name="repository">The <see cref="T:log4net.Repository.ILoggerRepository"/> that this plugin should be attached to.</param>
+            <remarks>
+            <para>
+            A plugin may only be attached to a single repository.
+            </para>
+            <para>
+            This method is called when the plugin is attached to the repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Plugin.RemoteLoggingServerPlugin.Shutdown">
+            <summary>
+            Is called when the plugin is to shutdown.
+            </summary>
+            <remarks>
+            <para>
+            When the plugin is shutdown the remote logging
+            sink is disconnected.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Plugin.RemoteLoggingServerPlugin.SinkUri">
+            <summary>
+            Gets or sets the URI of this sink.
+            </summary>
+            <value>
+            The URI of this sink.
+            </value>
+            <remarks>
+            <para>
+            This is the name under which the object is marshaled.
+            <see cref="M:System.Runtime.Remoting.RemotingServices.Marshal(System.MarshalByRefObject,System.String,System.Type)"/>
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Plugin.RemoteLoggingServerPlugin.RemoteLoggingSinkImpl">
+            <summary>
+            Delivers <see cref="T:log4net.Core.LoggingEvent"/> objects to a remote sink.
+            </summary>
+            <remarks>
+            <para>
+            Internal class used to listen for logging events
+            and deliver them to the local repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Plugin.RemoteLoggingServerPlugin.RemoteLoggingSinkImpl.#ctor(log4net.Repository.ILoggerRepository)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="repository">The repository to log to.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Plugin.RemoteLoggingServerPlugin.RemoteLoggingSinkImpl"/> for the
+            specified <see cref="T:log4net.Repository.ILoggerRepository"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Plugin.RemoteLoggingServerPlugin.RemoteLoggingSinkImpl.LogEvents(log4net.Core.LoggingEvent[])">
+            <summary>
+            Logs the events to the repository.
+            </summary>
+            <param name="events">The events to log.</param>
+            <remarks>
+            <para>
+            The events passed are logged to the <see cref="T:log4net.Repository.ILoggerRepository"/>
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Plugin.RemoteLoggingServerPlugin.RemoteLoggingSinkImpl.InitializeLifetimeService">
+            <summary>
+            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 
+            policy for this instance. This object should live forever
+            therefore this implementation returns <c>null</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Plugin.RemoteLoggingServerPlugin.RemoteLoggingSinkImpl.m_repository">
+            <summary>
+            The underlying <see cref="T:log4net.Repository.ILoggerRepository"/> that events should
+            be logged to.
+            </summary>
+        </member>
+        <member name="T:log4net.Repository.Hierarchy.DefaultLoggerFactory">
+            <summary>
+            Default implementation of <see cref="T:log4net.Repository.Hierarchy.ILoggerFactory"/>
+            </summary>
+            <remarks>
+            <para>
+            This default implementation of the <see cref="T:log4net.Repository.Hierarchy.ILoggerFactory"/>
+            interface is used to create the default subclass
+            of the <see cref="T:log4net.Repository.Hierarchy.Logger"/> object.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Repository.Hierarchy.ILoggerFactory">
+            <summary>
+            Interface abstracts creation of <see cref="T:log4net.Repository.Hierarchy.Logger"/> instances
+            </summary>
+            <remarks>
+            <para>
+            This interface is used by the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> to 
+            create new <see cref="T:log4net.Repository.Hierarchy.Logger"/> objects.
+            </para>
+            <para>
+            The <see cref="M:log4net.Repository.Hierarchy.ILoggerFactory.CreateLogger(System.String)"/> method is called
+            to create a named <see cref="T:log4net.Repository.Hierarchy.Logger"/>.
+            </para>
+            <para>
+            Implement this interface to create new subclasses of <see cref="T:log4net.Repository.Hierarchy.Logger"/>.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.ILoggerFactory.CreateLogger(System.String)">
+            <summary>
+            Create a new <see cref="T:log4net.Repository.Hierarchy.Logger"/> instance
+            </summary>
+            <param name="name">The name of the <see cref="T:log4net.Repository.Hierarchy.Logger"/>.</param>
+            <returns>The <see cref="T:log4net.Repository.Hierarchy.Logger"/> instance for the specified name.</returns>
+            <remarks>
+            <para>
+            Create a new <see cref="T:log4net.Repository.Hierarchy.Logger"/> instance with the 
+            specified name.
+            </para>
+            <para>
+            Called by the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> to create
+            new named <see cref="T:log4net.Repository.Hierarchy.Logger"/> instances.
+            </para>
+            <para>
+            If the <paramref name="name"/> is <c>null</c> then the root logger
+            must be returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.DefaultLoggerFactory.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.DefaultLoggerFactory"/> class. 
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.DefaultLoggerFactory.CreateLogger(System.String)">
+            <summary>
+            Create a new <see cref="T:log4net.Repository.Hierarchy.Logger"/> instance
+            </summary>
+            <param name="name">The name of the <see cref="T:log4net.Repository.Hierarchy.Logger"/>.</param>
+            <returns>The <see cref="T:log4net.Repository.Hierarchy.Logger"/> instance for the specified name.</returns>
+            <remarks>
+            <para>
+            Create a new <see cref="T:log4net.Repository.Hierarchy.Logger"/> instance with the 
+            specified name.
+            </para>
+            <para>
+            Called by the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> to create
+            new named <see cref="T:log4net.Repository.Hierarchy.Logger"/> instances.
+            </para>
+            <para>
+            If the <paramref name="name"/> is <c>null</c> then the root logger
+            must be returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Repository.Hierarchy.DefaultLoggerFactory.LoggerImpl">
+            <summary>
+            Default internal subclass of <see cref="T:log4net.Repository.Hierarchy.Logger"/>
+            </summary>
+            <remarks>
+            <para>
+            This subclass has no additional behavior over the
+            <see cref="T:log4net.Repository.Hierarchy.Logger"/> class but does allow instances
+            to be created.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Repository.Hierarchy.Logger">
+            <summary>
+            Implementation of <see cref="T:log4net.Core.ILogger"/> used by <see cref="P:log4net.Repository.Hierarchy.Logger.Hierarchy"/>
+            </summary>
+            <remarks>
+            <para>
+            Internal class used to provide implementation of <see cref="T:log4net.Core.ILogger"/>
+            interface. Applications should use <see cref="T:log4net.LogManager"/> to get
+            logger instances.
+            </para>
+            <para>
+            This is one of the central classes in the log4net implementation. One of the
+            distinctive features of log4net are hierarchical loggers and their
+            evaluation. The <see cref="P:log4net.Repository.Hierarchy.Logger.Hierarchy"/> organizes the <see cref="T:log4net.Repository.Hierarchy.Logger"/>
+            instances into a rooted tree hierarchy.
+            </para>
+            <para>
+            The <see cref="T:log4net.Repository.Hierarchy.Logger"/> class is abstract. Only concrete subclasses of
+            <see cref="T:log4net.Repository.Hierarchy.Logger"/> can be created. The <see cref="T:log4net.Repository.Hierarchy.ILoggerFactory"/>
+            is used to create instances of this type for the <see cref="P:log4net.Repository.Hierarchy.Logger.Hierarchy"/>.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+            <author>Aspi Havewala</author>
+            <author>Douglas de la Torre</author>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Logger.#ctor(System.String)">
+            <summary>
+            This constructor created a new <see cref="T:log4net.Repository.Hierarchy.Logger"/> instance and
+            sets its name.
+            </summary>
+            <param name="name">The name of the <see cref="T:log4net.Repository.Hierarchy.Logger"/>.</param>
+            <remarks>
+            <para>
+            This constructor is protected and designed to be used by
+            a subclass that is not abstract.
+            </para>
+            <para>
+            Loggers are constructed by <see cref="T:log4net.Repository.Hierarchy.ILoggerFactory"/> 
+            objects. See <see cref="T:log4net.Repository.Hierarchy.DefaultLoggerFactory"/> for the default
+            logger creator.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Logger.AddAppender(log4net.Appender.IAppender)">
+            <summary>
+            Add <paramref name="newAppender"/> to the list of appenders of this
+            Logger instance.
+            </summary>
+            <param name="newAppender">An appender to add to this logger</param>
+            <remarks>
+            <para>
+            Add <paramref name="newAppender"/> to the list of appenders of this
+            Logger instance.
+            </para>
+            <para>
+            If <paramref name="newAppender"/> is already in the list of
+            appenders, then it won't be added again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Logger.GetAppender(System.String)">
+            <summary>
+            Look for the appender named as <c>name</c>
+            </summary>
+            <param name="name">The name of the appender to lookup</param>
+            <returns>The appender with the name specified, or <c>null</c>.</returns>
+            <remarks>
+            <para>
+            Returns the named appender, or null if the appender is not found.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Logger.RemoveAllAppenders">
+            <summary>
+            Remove all previously added appenders from this Logger instance.
+            </summary>
+            <remarks>
+            <para>
+            Remove all previously added appenders from this Logger instance.
+            </para>
+            <para>
+            This is useful when re-reading configuration information.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Logger.RemoveAppender(log4net.Appender.IAppender)">
+            <summary>
+            Remove the appender passed as parameter form the list of appenders.
+            </summary>
+            <param name="appender">The appender to remove</param>
+            <returns>The appender removed from the list</returns>
+            <remarks>
+            <para>
+            Remove the appender passed as parameter form the list of appenders.
+            The appender removed is not closed.
+            If you are discarding the appender you must call
+            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Logger.RemoveAppender(System.String)">
+            <summary>
+            Remove the appender passed as parameter form the list of appenders.
+            </summary>
+            <param name="name">The name of the appender to remove</param>
+            <returns>The appender removed from the list</returns>
+            <remarks>
+            <para>
+            Remove the named appender passed as parameter form the list of appenders.
+            The appender removed is not closed.
+            If you are discarding the appender you must call
+            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Logger.Log(System.Type,log4net.Core.Level,System.Object,System.Exception)">
+            <summary>
+            This generic form is intended to be used by wrappers.
+            </summary>
+            <param name="callerStackBoundaryDeclaringType">The declaring type of the method that is
+            the stack boundary into the logging system for this call.</param>
+            <param name="level">The level of the message to be logged.</param>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+            <remarks>
+            <para>
+            Generate a logging event for the specified <paramref name="level"/> using
+            the <paramref name="message"/> and <paramref name="exception"/>.
+            </para>
+            <para>
+            This method must not throw any exception to the caller.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Logger.Log(log4net.Core.LoggingEvent)">
+            <summary>
+            This is the most generic printing method that is intended to be used 
+            by wrappers.
+            </summary>
+            <param name="logEvent">The event being logged.</param>
+            <remarks>
+            <para>
+            Logs the specified logging event through this logger.
+            </para>
+            <para>
+            This method must not throw any exception to the caller.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Logger.IsEnabledFor(log4net.Core.Level)">
+            <summary>
+            Checks if this logger is enabled for a given <see cref="P:log4net.Repository.Hierarchy.Logger.Level"/> passed as parameter.
+            </summary>
+            <param name="level">The level to check.</param>
+            <returns>
+            <c>true</c> if this logger is enabled for <c>level</c>, otherwise <c>false</c>.
+            </returns>
+            <remarks>
+            <para>
+            Test if this logger is going to log events of the specified <paramref name="level"/>.
+            </para>
+            <para>
+            This method must not throw any exception to the caller.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Logger.CallAppenders(log4net.Core.LoggingEvent)">
+            <summary>
+            Deliver the <see cref="T:log4net.Core.LoggingEvent"/> to the attached appenders.
+            </summary>
+            <param name="loggingEvent">The event to log.</param>
+            <remarks>
+            <para>
+            Call the appenders in the hierarchy starting at
+            <c>this</c>. If no appenders could be found, emit a
+            warning.
+            </para>
+            <para>
+            This method calls all the appenders inherited from the
+            hierarchy circumventing any evaluation of whether to log or not
+            to log the particular log request.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Logger.CloseNestedAppenders">
+            <summary>
+            Closes all attached appenders implementing the <see cref="T:log4net.Core.IAppenderAttachable"/> interface.
+            </summary>
+            <remarks>
+            <para>
+            Used to ensure that the appenders are correctly shutdown.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Logger.Log(log4net.Core.Level,System.Object,System.Exception)">
+            <summary>
+            This is the most generic printing method. This generic form is intended to be used by wrappers
+            </summary>
+            <param name="level">The level of the message to be logged.</param>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+            <remarks>
+            <para>
+            Generate a logging event for the specified <paramref name="level"/> using
+            the <paramref name="message"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Logger.ForcedLog(System.Type,log4net.Core.Level,System.Object,System.Exception)">
+            <summary>
+            Creates a new logging event and logs the event without further checks.
+            </summary>
+            <param name="callerStackBoundaryDeclaringType">The declaring type of the method that is
+            the stack boundary into the logging system for this call.</param>
+            <param name="level">The level of the message to be logged.</param>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+            <remarks>
+            <para>
+            Generates a logging event and delivers it to the attached
+            appenders.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Logger.ForcedLog(log4net.Core.LoggingEvent)">
+            <summary>
+            Creates a new logging event and logs the event without further checks.
+            </summary>
+            <param name="logEvent">The event being logged.</param>
+            <remarks>
+            <para>
+            Delivers the logging event to the attached appenders.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Repository.Hierarchy.Logger.ThisDeclaringType">
+            <summary>
+            The fully qualified type of the Logger class.
+            </summary>
+        </member>
+        <member name="F:log4net.Repository.Hierarchy.Logger.m_name">
+            <summary>
+            The name of this logger.
+            </summary>
+        </member>
+        <member name="F:log4net.Repository.Hierarchy.Logger.m_level">
+            <summary>
+            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 
+            form the hierarchy.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Repository.Hierarchy.Logger.m_parent">
+            <summary>
+            The parent of this logger.
+            </summary>
+            <remarks>
+            <para>
+            The parent of this logger. 
+            All loggers have at least one ancestor which is the root logger.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Repository.Hierarchy.Logger.m_hierarchy">
+            <summary>
+            Loggers need to know what Hierarchy they are in.
+            </summary>
+            <remarks>
+            <para>
+            Loggers need to know what Hierarchy they are in.
+            The hierarchy that this logger is a member of is stored
+            here.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Repository.Hierarchy.Logger.m_appenderAttachedImpl">
+            <summary>
+            Helper implementation of the <see cref="T:log4net.Core.IAppenderAttachable"/> interface
+            </summary>
+        </member>
+        <member name="F:log4net.Repository.Hierarchy.Logger.m_additive">
+            <summary>
+            Flag indicating if child loggers inherit their parents appenders
+            </summary>
+            <remarks>
+            <para>
+            Additivity is set to true by default, that is children inherit
+            the appenders of their ancestors by default. If this variable is
+            set to <c>false</c> then the appenders found in the
+            ancestors of this logger are not used. However, the children
+            of this logger will inherit its appenders, unless the children
+            have their additivity flag set to <c>false</c> too. See
+            the user manual for more details.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Repository.Hierarchy.Logger.m_appenderLock">
+            <summary>
+            Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl
+            </summary>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.Logger.Parent">
+            <summary>
+            Gets or sets the parent logger in the hierarchy.
+            </summary>
+            <value>
+            The parent logger in the hierarchy.
+            </value>
+            <remarks>
+            <para>
+            Part of the Composite pattern that makes the hierarchy.
+            The hierarchy is parent linked rather than child linked.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.Logger.Additivity">
+            <summary>
+            Gets or sets a value indicating if child loggers inherit their parent's appenders.
+            </summary>
+            <value>
+            <c>true</c> if child loggers inherit their parent's appenders.
+            </value>
+            <remarks>
+            <para>
+            Additivity is set to <c>true</c> by default, that is children inherit
+            the appenders of their ancestors by default. If this variable is
+            set to <c>false</c> then the appenders found in the
+            ancestors of this logger are not used. However, the children
+            of this logger will inherit its appenders, unless the children
+            have their additivity flag set to <c>false</c> too. See
+            the user manual for more details.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.Logger.EffectiveLevel">
+            <summary>
+            Gets the effective level for this logger.
+            </summary>
+            <returns>The nearest level in the logger hierarchy.</returns>
+            <remarks>
+            <para>
+            Starting from this logger, searches the logger hierarchy for a
+            non-null level and returns it. Otherwise, returns the level of the
+            root logger.
+            </para>
+            <para>The Logger class is designed so that this method executes as
+            quickly as possible.</para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.Logger.Hierarchy">
+            <summary>
+            Gets or sets the <see cref="P:log4net.Repository.Hierarchy.Logger.Hierarchy"/> where this 
+            <c>Logger</c> instance is attached to.
+            </summary>
+            <value>The hierarchy that this logger belongs to.</value>
+            <remarks>
+            <para>
+            This logger must be attached to a single <see cref="P:log4net.Repository.Hierarchy.Logger.Hierarchy"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.Logger.Level">
+            <summary>
+            Gets or sets the assigned <see cref="P:log4net.Repository.Hierarchy.Logger.Level"/>, if any, for this Logger.  
+            </summary>
+            <value>
+            The <see cref="P:log4net.Repository.Hierarchy.Logger.Level"/> of this logger.
+            </value>
+            <remarks>
+            <para>
+            The assigned <see cref="P:log4net.Repository.Hierarchy.Logger.Level"/> can be <c>null</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.Logger.Appenders">
+            <summary>
+            Get the appenders contained in this logger as an 
+            <see cref="T: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="T:System.Collections.ICollection"/>. If no appenders 
+            can be found, then a <see cref="T:log4net.Util.EmptyCollection"/> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.Logger.Name">
+            <summary>
+            Gets the logger name.
+            </summary>
+            <value>
+            The name of the logger.
+            </value>
+            <remarks>
+            <para>
+            The name of this logger
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.Logger.Repository">
+            <summary>
+            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> where this 
+            <c>Logger</c> instance is attached to.
+            </summary>
+            <value>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> that this logger belongs to.
+            </value>
+            <remarks>
+            <para>
+            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> where this 
+            <c>Logger</c> instance is attached to.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.DefaultLoggerFactory.LoggerImpl.#ctor(System.String)">
+            <summary>
+            Construct a new Logger
+            </summary>
+            <param name="name">the name of the logger</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.DefaultLoggerFactory.LoggerImpl"/> class
+            with the specified name. 
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Repository.Hierarchy.LoggerCreationEventHandler">
+            <summary>
+            Delegate used to handle logger creation event notifications.
+            </summary>
+            <param name="sender">The <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> in which the <see cref="T:log4net.Repository.Hierarchy.Logger"/> has been created.</param>
+            <param name="e">The <see cref="T:log4net.Repository.Hierarchy.LoggerCreationEventArgs"/> event args that hold the <see cref="T:log4net.Repository.Hierarchy.Logger"/> instance that has been created.</param>
+            <remarks>
+            <para>
+            Delegate used to handle logger creation event notifications.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Repository.Hierarchy.LoggerCreationEventArgs">
+            <summary>
+            Provides data for the <see cref="E:log4net.Repository.Hierarchy.Hierarchy.LoggerCreatedEvent"/> event.
+            </summary>
+            <remarks>
+            <para>
+            A <see cref="E:log4net.Repository.Hierarchy.Hierarchy.LoggerCreatedEvent"/> event is raised every time a
+            <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Logger"/> is created.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Repository.Hierarchy.LoggerCreationEventArgs.m_log">
+            <summary>
+            The <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Logger"/> created
+            </summary>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.LoggerCreationEventArgs.#ctor(log4net.Repository.Hierarchy.Logger)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="log">The <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Logger"/> that has been created.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.LoggerCreationEventArgs"/> event argument 
+            class,with the specified <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Logger"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Logger">
+            <summary>
+            Gets the <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Logger"/> that has been created.
+            </summary>
+            <value>
+            The <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Logger"/> that has been created.
+            </value>
+            <remarks>
+            <para>
+            The <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Logger"/> that has been created.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Repository.Hierarchy.Hierarchy">
+            <summary>
+            Hierarchical organization of loggers
+            </summary>
+            <remarks>
+            <para>
+            <i>The casual user should not have to deal with this class
+            directly.</i>
+            </para>
+            <para>
+            This class is specialized in retrieving loggers by name and
+            also maintaining the logger hierarchy. Implements the 
+            <see cref="T:log4net.Repository.ILoggerRepository"/> interface.
+            </para>
+            <para>
+            The structure of the logger hierarchy is maintained by the
+            <see cref="M:log4net.Repository.Hierarchy.Hierarchy.GetLogger(System.String)"/> method. The hierarchy is such that children
+            link to their parent but parents do not have any references to their
+            children. Moreover, loggers can be instantiated in any order, in
+            particular descendant before ancestor.
+            </para>
+            <para>
+            In case a descendant is created before a particular ancestor,
+            then it creates a provision node for the ancestor and adds itself
+            to the provision node. Other descendants of the same ancestor add
+            themselves to the previously created provision node.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Repository.LoggerRepositorySkeleton">
+            <summary>
+            Base implementation of <see cref="T:log4net.Repository.ILoggerRepository"/>
+            </summary>
+            <remarks>
+            <para>
+            Default abstract implementation of the <see cref="T:log4net.Repository.ILoggerRepository"/> interface.
+            </para>
+            <para>
+            Skeleton implementation of the <see cref="T:log4net.Repository.ILoggerRepository"/> interface.
+            All <see cref="T:log4net.Repository.ILoggerRepository"/> types can extend this type.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Repository.ILoggerRepository">
+            <summary>
+            Interface implemented by logger repositories.
+            </summary>
+            <remarks>
+            <para>
+            This interface is implemented by logger repositories. e.g. 
+            <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/>.
+            </para>
+            <para>
+            This interface is used by the <see cref="T:log4net.LogManager"/>
+            to obtain <see cref="T:log4net.ILog"/> interfaces.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Repository.ILoggerRepository.Exists(System.String)">
+            <summary>
+            Check if the named logger exists in the repository. If so return
+            its reference, otherwise returns <c>null</c>.
+            </summary>
+            <param name="name">The name of the logger to lookup</param>
+            <returns>The Logger object with the name specified</returns>
+            <remarks>
+            <para>
+            If the names logger exists it is returned, otherwise
+            <c>null</c> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.ILoggerRepository.GetCurrentLoggers">
+            <summary>
+            Returns all the currently defined loggers as an Array.
+            </summary>
+            <returns>All the defined loggers</returns>
+            <remarks>
+            <para>
+            Returns all the currently defined loggers as an Array.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.ILoggerRepository.GetLogger(System.String)">
+            <summary>
+            Returns a named logger instance
+            </summary>
+            <param name="name">The name of the logger to retrieve</param>
+            <returns>The logger object with the name specified</returns>
+            <remarks>
+            <para>
+            Returns a named logger instance.
+            </para>
+            <para>
+            If a logger of that name already exists, then it will be
+            returned.  Otherwise, a new logger will be instantiated and
+            then linked with its existing ancestors as well as children.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.ILoggerRepository.Shutdown">
+            <summary>Shutdown the repository</summary>
+            <remarks>
+            <para>
+            Shutting down a repository will <i>safely</i> close and remove
+            all appenders in all loggers including the root logger.
+            </para>
+            <para>
+            Some appenders need to be closed before the
+            application exists. Otherwise, pending logging events might be
+            lost.
+            </para>
+            <para>
+            The <see cref="M:log4net.Repository.ILoggerRepository.Shutdown"/> method is careful to close nested
+            appenders before closing regular appenders. This is allows
+            configurations where a regular appender is attached to a logger
+            and again to a nested appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.ILoggerRepository.ResetConfiguration">
+            <summary>
+            Reset the repositories configuration to a default state
+            </summary>
+            <remarks>
+            <para>
+            Reset all values contained in this instance to their
+            default state.
+            </para>
+            <para>
+            Existing loggers are not removed. They are just reset.
+            </para>
+            <para>
+            This method should be used sparingly and with care as it will
+            block all logging until it is completed.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.ILoggerRepository.Log(log4net.Core.LoggingEvent)">
+            <summary>
+            Log the <see cref="T:log4net.Core.LoggingEvent"/> through this repository.
+            </summary>
+            <param name="logEvent">the event to log</param>
+            <remarks>
+            <para>
+            This method should not normally be used to log.
+            The <see cref="T:log4net.ILog"/> interface should be used 
+            for routine logging. This interface can be obtained
+            using the <see cref="M:log4net.LogManager.GetLogger(System.String)"/> method.
+            </para>
+            <para>
+            The <c>logEvent</c> is delivered to the appropriate logger and
+            that logger is then responsible for logging the event.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.ILoggerRepository.GetAppenders">
+            <summary>
+            Returns all the Appenders that are configured as an Array.
+            </summary>
+            <returns>All the Appenders</returns>
+            <remarks>
+            <para>
+            Returns all the Appenders that are configured as an Array.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.ILoggerRepository.Name">
+            <summary>
+            The name of the repository
+            </summary>
+            <value>
+            The name of the repository
+            </value>
+            <remarks>
+            <para>
+            The name of the repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.ILoggerRepository.RendererMap">
+            <summary>
+            RendererMap accesses the object renderer map for this repository.
+            </summary>
+            <value>
+            RendererMap accesses the object renderer map for this repository.
+            </value>
+            <remarks>
+            <para>
+            RendererMap accesses the object renderer map for this repository.
+            </para>
+            <para>
+            The RendererMap holds a mapping between types and
+            <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/> objects.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.ILoggerRepository.PluginMap">
+            <summary>
+            The plugin map for this repository.
+            </summary>
+            <value>
+            The plugin map for this repository.
+            </value>
+            <remarks>
+            <para>
+            The plugin map holds the <see cref="T:log4net.Plugin.IPlugin"/> instances
+            that have been attached to this repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.ILoggerRepository.LevelMap">
+            <summary>
+            Get the level map for the Repository.
+            </summary>
+            <remarks>
+            <para>
+            Get the level map for the Repository.
+            </para>
+            <para>
+            The level map defines the mappings between
+            level names and <see cref="T:log4net.Core.Level"/> objects in
+            this repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.ILoggerRepository.Threshold">
+            <summary>
+            The threshold for all events in this repository
+            </summary>
+            <value>
+            The threshold for all events in this repository
+            </value>
+            <remarks>
+            <para>
+            The threshold for all events in this repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.ILoggerRepository.Configured">
+            <summary>
+            Flag indicates if this repository has been configured.
+            </summary>
+            <value>
+            Flag indicates if this repository has been configured.
+            </value>
+            <remarks>
+            <para>
+            Flag indicates if this repository has been configured.
+            </para>
+            </remarks>
+        </member>
+        <member name="E:log4net.Repository.ILoggerRepository.ShutdownEvent">
+            <summary>
+            Event to notify that the repository has been shutdown.
+            </summary>
+            <value>
+            Event to notify that the repository has been shutdown.
+            </value>
+            <remarks>
+            <para>
+            Event raised when the repository has been shutdown.
+            </para>
+            </remarks>
+        </member>
+        <member name="E:log4net.Repository.ILoggerRepository.ConfigurationReset">
+            <summary>
+            Event to notify that the repository has had its configuration reset.
+            </summary>
+            <value>
+            Event to notify that the repository has had its configuration reset.
+            </value>
+            <remarks>
+            <para>
+            Event raised when the repository's configuration has been
+            reset to default.
+            </para>
+            </remarks>
+        </member>
+        <member name="E:log4net.Repository.ILoggerRepository.ConfigurationChanged">
+            <summary>
+            Event to notify that the repository has had its configuration changed.
+            </summary>
+            <value>
+            Event to notify that the repository has had its configuration changed.
+            </value>
+            <remarks>
+            <para>
+            Event raised when the repository's configuration has been changed.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.ILoggerRepository.Properties">
+            <summary>
+            Repository specific properties
+            </summary>
+            <value>
+            Repository specific properties
+            </value>
+            <remarks>
+            <para>
+            These properties can be specified on a repository specific basis.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.LoggerRepositorySkeleton.#ctor">
+            <summary>
+            Default Constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes the repository with default (empty) properties.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.LoggerRepositorySkeleton.#ctor(log4net.Util.PropertiesDictionary)">
+            <summary>
+            Construct the repository using specific properties
+            </summary>
+            <param name="properties">the properties to set for this repository</param>
+            <remarks>
+            <para>
+            Initializes the repository with specified properties.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.LoggerRepositorySkeleton.Exists(System.String)">
+            <summary>
+            Test if logger exists
+            </summary>
+            <param name="name">The name of the logger to lookup</param>
+            <returns>The Logger object with the name specified</returns>
+            <remarks>
+            <para>
+            Check if the named logger exists in the repository. If so return
+            its reference, otherwise returns <c>null</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.LoggerRepositorySkeleton.GetCurrentLoggers">
+            <summary>
+            Returns all the currently defined loggers in the repository
+            </summary>
+            <returns>All the defined loggers</returns>
+            <remarks>
+            <para>
+            Returns all the currently defined loggers in the repository as an Array.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.LoggerRepositorySkeleton.GetLogger(System.String)">
+            <summary>
+            Return a new logger instance
+            </summary>
+            <param name="name">The name of the logger to retrieve</param>
+            <returns>The logger object with the name specified</returns>
+            <remarks>
+            <para>
+            Return a new logger instance.
+            </para>
+            <para>
+            If a logger of that name already exists, then it will be
+            returned. Otherwise, a new logger will be instantiated and
+            then linked with its existing ancestors as well as children.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.LoggerRepositorySkeleton.Shutdown">
+            <summary>
+            Shutdown the repository
+            </summary>
+            <remarks>
+            <para>
+            Shutdown the repository. Can be overridden in a subclass.
+            This base class implementation notifies the <see cref="E:log4net.Repository.LoggerRepositorySkeleton.ShutdownEvent"/>
+            listeners and all attached plugins of the shutdown event.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.LoggerRepositorySkeleton.ResetConfiguration">
+            <summary>
+            Reset the repositories configuration to a default state
+            </summary>
+            <remarks>
+            <para>
+            Reset all values contained in this instance to their
+            default state.
+            </para>
+            <para>
+            Existing loggers are not removed. They are just reset.
+            </para>
+            <para>
+            This method should be used sparingly and with care as it will
+            block all logging until it is completed.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.LoggerRepositorySkeleton.Log(log4net.Core.LoggingEvent)">
+            <summary>
+            Log the logEvent through this repository.
+            </summary>
+            <param name="logEvent">the event to log</param>
+            <remarks>
+            <para>
+            This method should not normally be used to log.
+            The <see cref="T:log4net.ILog"/> interface should be used 
+            for routine logging. This interface can be obtained
+            using the <see cref="M:log4net.LogManager.GetLogger(System.String)"/> method.
+            </para>
+            <para>
+            The <c>logEvent</c> is delivered to the appropriate logger and
+            that logger is then responsible for logging the event.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.LoggerRepositorySkeleton.GetAppenders">
+            <summary>
+            Returns all the Appenders that are configured as an Array.
+            </summary>
+            <returns>All the Appenders</returns>
+            <remarks>
+            <para>
+            Returns all the Appenders that are configured as an Array.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.LoggerRepositorySkeleton.AddRenderer(System.Type,log4net.ObjectRenderer.IObjectRenderer)">
+            <summary>
+            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. 
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.LoggerRepositorySkeleton.OnShutdown(System.EventArgs)">
+            <summary>
+            Notify the registered listeners that the repository is shutting down
+            </summary>
+            <param name="e">Empty EventArgs</param>
+            <remarks>
+            <para>
+            Notify any listeners that this repository is shutting down.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.LoggerRepositorySkeleton.OnConfigurationReset(System.EventArgs)">
+            <summary>
+            Notify the registered listeners that the repository has had its configuration reset
+            </summary>
+            <param name="e">Empty EventArgs</param>
+            <remarks>
+            <para>
+            Notify any listeners that this repository's configuration has been reset.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.LoggerRepositorySkeleton.OnConfigurationChanged(System.EventArgs)">
+            <summary>
+            Notify the registered listeners that the repository has had its configuration changed
+            </summary>
+            <param name="e">Empty EventArgs</param>
+            <remarks>
+            <para>
+            Notify any listeners that this repository's configuration has changed.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.LoggerRepositorySkeleton.RaiseConfigurationChanged(System.EventArgs)">
+            <summary>
+            Raise a configuration changed event on this repository
+            </summary>
+            <param name="e">EventArgs.Empty</param>
+            <remarks>
+            <para>
+            Applications that programmatically change the configuration of the repository should
+            raise this event notification to notify listeners.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.LoggerRepositorySkeleton.Name">
+            <summary>
+            The name of the repository
+            </summary>
+            <value>
+            The string name of the repository
+            </value>
+            <remarks>
+            <para>
+            The name of this repository. The name is
+            used to store and lookup the repositories 
+            stored by the <see cref="T:log4net.Core.IRepositorySelector"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.LoggerRepositorySkeleton.Threshold">
+            <summary>
+            The threshold for all events in this repository
+            </summary>
+            <value>
+            The threshold for all events in this repository
+            </value>
+            <remarks>
+            <para>
+            The threshold for all events in this repository
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.LoggerRepositorySkeleton.RendererMap">
+            <summary>
+            RendererMap accesses the object renderer map for this repository.
+            </summary>
+            <value>
+            RendererMap accesses the object renderer map for this repository.
+            </value>
+            <remarks>
+            <para>
+            RendererMap accesses the object renderer map for this repository.
+            </para>
+            <para>
+            The RendererMap holds a mapping between types and
+            <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/> objects.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.LoggerRepositorySkeleton.PluginMap">
+            <summary>
+            The plugin map for this repository.
+            </summary>
+            <value>
+            The plugin map for this repository.
+            </value>
+            <remarks>
+            <para>
+            The plugin map holds the <see cref="T:log4net.Plugin.IPlugin"/> instances
+            that have been attached to this repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.LoggerRepositorySkeleton.LevelMap">
+            <summary>
+            Get the level map for the Repository.
+            </summary>
+            <remarks>
+            <para>
+            Get the level map for the Repository.
+            </para>
+            <para>
+            The level map defines the mappings between
+            level names and <see cref="T:log4net.Core.Level"/> objects in
+            this repository.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.LoggerRepositorySkeleton.Configured">
+            <summary>
+            Flag indicates if this repository has been configured.
+            </summary>
+            <value>
+            Flag indicates if this repository has been configured.
+            </value>
+            <remarks>
+            <para>
+            Flag indicates if this repository has been configured.
+            </para>
+            </remarks>
+        </member>
+        <member name="E:log4net.Repository.LoggerRepositorySkeleton.ShutdownEvent">
+            <summary>
+            Event to notify that the repository has been shutdown.
+            </summary>
+            <value>
+            Event to notify that the repository has been shutdown.
+            </value>
+            <remarks>
+            <para>
+            Event raised when the repository has been shutdown.
+            </para>
+            </remarks>
+        </member>
+        <member name="E:log4net.Repository.LoggerRepositorySkeleton.ConfigurationReset">
+            <summary>
+            Event to notify that the repository has had its configuration reset.
+            </summary>
+            <value>
+            Event to notify that the repository has had its configuration reset.
+            </value>
+            <remarks>
+            <para>
+            Event raised when the repository's configuration has been
+            reset to default.
+            </para>
+            </remarks>
+        </member>
+        <member name="E:log4net.Repository.LoggerRepositorySkeleton.ConfigurationChanged">
+            <summary>
+            Event to notify that the repository has had its configuration changed.
+            </summary>
+            <value>
+            Event to notify that the repository has had its configuration changed.
+            </value>
+            <remarks>
+            <para>
+            Event raised when the repository's configuration has been changed.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.LoggerRepositorySkeleton.Properties">
+            <summary>
+            Repository specific properties
+            </summary>
+            <value>
+            Repository specific properties
+            </value>
+            <remarks>
+            These properties can be specified on a repository specific basis
+            </remarks>
+        </member>
+        <member name="T:log4net.Repository.IBasicRepositoryConfigurator">
+            <summary>
+            Basic Configurator interface for repositories
+            </summary>
+            <remarks>
+            <para>
+            Interface used by basic configurator to configure a <see cref="T:log4net.Repository.ILoggerRepository"/>
+            with a default <see cref="T:log4net.Appender.IAppender"/>.
+            </para>
+            <para>
+            A <see cref="T:log4net.Repository.ILoggerRepository"/> should implement this interface to support
+            configuration by the <see cref="T:log4net.Config.BasicConfigurator"/>.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Repository.IBasicRepositoryConfigurator.Configure(log4net.Appender.IAppender)">
+            <summary>
+            Initialize the repository using the specified appender
+            </summary>
+            <param name="appender">the appender to use to log all logging events</param>
+            <remarks>
+            <para>
+            Configure the repository to route all logging events to the
+            specified appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Repository.IXmlRepositoryConfigurator">
+            <summary>
+            Configure repository using XML
+            </summary>
+            <remarks>
+            <para>
+            Interface used by Xml configurator to configure a <see cref="T:log4net.Repository.ILoggerRepository"/>.
+            </para>
+            <para>
+            A <see cref="T:log4net.Repository.ILoggerRepository"/> should implement this interface to support
+            configuration by the <see cref="T:log4net.Config.XmlConfigurator"/>.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Repository.IXmlRepositoryConfigurator.Configure(System.Xml.XmlElement)">
+            <summary>
+            Initialize the repository using the specified config
+            </summary>
+            <param name="element">the element containing the root of the config</param>
+            <remarks>
+            <para>
+            The schema for the XML configuration data is defined by
+            the implementation.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.#ctor(log4net.Util.PropertiesDictionary)">
+            <summary>
+            Construct with properties
+            </summary>
+            <param name="properties">The properties to pass to this repository.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.#ctor(log4net.Repository.Hierarchy.ILoggerFactory)">
+            <summary>
+            Construct with a logger factory
+            </summary>
+            <param name="loggerFactory">The factory to use to create new logger instances.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> class with 
+            the specified <see cref="T:log4net.Repository.Hierarchy.ILoggerFactory"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.#ctor(log4net.Util.PropertiesDictionary,log4net.Repository.Hierarchy.ILoggerFactory)">
+            <summary>
+            Construct with properties and a logger factory
+            </summary>
+            <param name="properties">The properties to pass to this repository.</param>
+            <param name="loggerFactory">The factory to use to create new logger instances.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> class with 
+            the specified <see cref="T:log4net.Repository.Hierarchy.ILoggerFactory"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.Exists(System.String)">
+            <summary>
+            Test if a logger exists
+            </summary>
+            <param name="name">The name of the logger to lookup</param>
+            <returns>The Logger object with the name specified</returns>
+            <remarks>
+            <para>
+            Check if the named logger exists in the hierarchy. If so return
+            its reference, otherwise returns <c>null</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.GetCurrentLoggers">
+            <summary>
+            Returns all the currently defined loggers in the hierarchy as an Array
+            </summary>
+            <returns>All the defined loggers</returns>
+            <remarks>
+            <para>
+            Returns all the currently defined loggers in the hierarchy as an Array.
+            The root logger is <b>not</b> included in the returned
+            enumeration.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.GetLogger(System.String)">
+            <summary>
+            Return a new logger instance named as the first parameter using
+            the default factory.
+            </summary>
+            <remarks>
+            <para>
+            Return a new logger instance named as the first parameter using
+            the default factory.
+            </para>
+            <para>
+            If a logger of that name already exists, then it will be
+            returned.  Otherwise, a new logger will be instantiated and
+            then linked with its existing ancestors as well as children.
+            </para>
+            </remarks>
+            <param name="name">The name of the logger to retrieve</param>
+            <returns>The logger object with the name specified</returns>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.Shutdown">
+            <summary>
+            Shutting down a hierarchy will <i>safely</i> close and remove
+            all appenders in all loggers including the root logger.
+            </summary>
+            <remarks>
+            <para>
+            Shutting down a hierarchy will <i>safely</i> close and remove
+            all appenders in all loggers including the root logger.
+            </para>
+            <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
+            appenders before closing regular appenders. This is allows
+            configurations where a regular appender is attached to a logger
+            and again to a nested appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.ResetConfiguration">
+            <summary>
+            Reset all values contained in this hierarchy instance to their default.
+            </summary>
+            <remarks>
+            <para>
+            Reset all values contained in this hierarchy instance to their
+            default.  This removes all appenders from all loggers, sets
+            the level of all non-root loggers to <c>null</c>,
+            sets their additivity flag to <c>true</c> and sets the level
+            of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. Moreover,
+            message disabling is set its default "off" value.
+            </para>
+            <para>
+            Existing loggers are not removed. They are just reset.
+            </para>
+            <para>
+            This method should be used sparingly and with care as it will
+            block all logging until it is completed.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.Log(log4net.Core.LoggingEvent)">
+            <summary>
+            Log the logEvent through this hierarchy.
+            </summary>
+            <param name="logEvent">the event to log</param>
+            <remarks>
+            <para>
+            This method should not normally be used to log.
+            The <see cref="T:log4net.ILog"/> interface should be used 
+            for routine logging. This interface can be obtained
+            using the <see cref="M:log4net.LogManager.GetLogger(System.String)"/> method.
+            </para>
+            <para>
+            The <c>logEvent</c> is delivered to the appropriate logger and
+            that logger is then responsible for logging the event.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.GetAppenders">
+            <summary>
+            Returns all the Appenders that are currently configured
+            </summary>
+            <returns>An array containing all the currently configured appenders</returns>
+            <remarks>
+            <para>
+            Returns all the <see cref="T:log4net.Appender.IAppender"/> instances that are currently configured.
+            All the loggers are searched for appenders. The appenders may also be containers
+            for appenders and these are also searched for additional loggers.
+            </para>
+            <para>
+            The list returned is unordered but does not contain duplicates.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.CollectAppender(System.Collections.ArrayList,log4net.Appender.IAppender)">
+            <summary>
+            Collect the appenders from an <see cref="T:log4net.Core.IAppenderAttachable"/>.
+            The appender may also be a container.
+            </summary>
+            <param name="appenderList"></param>
+            <param name="appender"></param>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.CollectAppenders(System.Collections.ArrayList,log4net.Core.IAppenderAttachable)">
+            <summary>
+            Collect the appenders from an <see cref="T:log4net.Core.IAppenderAttachable"/> container
+            </summary>
+            <param name="appenderList"></param>
+            <param name="container"></param>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.log4net#Repository#IBasicRepositoryConfigurator#Configure(log4net.Appender.IAppender)">
+            <summary>
+            Initialize the log4net system using the specified appender
+            </summary>
+            <param name="appender">the appender to use to log all logging events</param>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.BasicRepositoryConfigure(log4net.Appender.IAppender)">
+            <summary>
+            Initialize the log4net system using the specified appender
+            </summary>
+            <param name="appender">the appender to use to log all logging events</param>
+            <remarks>
+            <para>
+            This method provides the same functionality as the 
+            <see cref="M:log4net.Repository.IBasicRepositoryConfigurator.Configure(log4net.Appender.IAppender)"/> method implemented
+            on this object, but it is protected and therefore can be called by subclasses.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.log4net#Repository#IXmlRepositoryConfigurator#Configure(System.Xml.XmlElement)">
+            <summary>
+            Initialize the log4net system using the specified config
+            </summary>
+            <param name="element">the element containing the root of the config</param>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.XmlRepositoryConfigure(System.Xml.XmlElement)">
+            <summary>
+            Initialize the log4net system using the specified config
+            </summary>
+            <param name="element">the element containing the root of the config</param>
+            <remarks>
+            <para>
+            This method provides the same functionality as the 
+            <see cref="M:log4net.Repository.IBasicRepositoryConfigurator.Configure(log4net.Appender.IAppender)"/> method implemented
+            on this object, but it is protected and therefore can be called by subclasses.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.IsDisabled(log4net.Core.Level)">
+            <summary>
+            Test if this hierarchy is disabled for the specified <see cref="T:log4net.Core.Level"/>.
+            </summary>
+            <param name="level">The level to check against.</param>
+            <returns>
+            <c>true</c> if the repository is disabled for the level argument, <c>false</c> otherwise.
+            </returns>
+            <remarks>
+            <para>
+            If this hierarchy has not been configured then this method will
+            always return <c>true</c>.
+            </para>
+            <para>
+            This method will return <c>true</c> if this repository is
+            disabled for <c>level</c> object passed as parameter and
+            <c>false</c> otherwise.
+            </para>
+            <para>
+            See also the <see cref="P:log4net.Repository.ILoggerRepository.Threshold"/> property.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.Clear">
+            <summary>
+            Clear all logger definitions from the internal hashtable
+            </summary>
+            <remarks>
+            <para>
+            This call will clear all logger definitions from the internal
+            hashtable. Invoking this method will irrevocably mess up the
+            logger hierarchy.
+            </para>
+            <para>
+            You should <b>really</b> know what you are doing before
+            invoking this method.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.GetLogger(System.String,log4net.Repository.Hierarchy.ILoggerFactory)">
+            <summary>
+            Return a new logger instance named as the first parameter using
+            <paramref name="factory"/>.
+            </summary>
+            <param name="name">The name of the logger to retrieve</param>
+            <param name="factory">The factory that will make the new logger instance</param>
+            <returns>The logger object with the name specified</returns>
+            <remarks>
+            <para>
+            If a logger of that name already exists, then it will be
+            returned. Otherwise, a new logger will be instantiated by the
+            <paramref name="factory"/> parameter and linked with its existing
+            ancestors as well as children.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.OnLoggerCreationEvent(log4net.Repository.Hierarchy.Logger)">
+            <summary>
+            Sends a logger creation event to all registered listeners
+            </summary>
+            <param name="logger">The newly created logger</param>
+            <remarks>
+            Raises the logger creation event.
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.UpdateParents(log4net.Repository.Hierarchy.Logger)">
+            <summary>
+            Updates all the parents of the specified logger
+            </summary>
+            <param name="log">The logger to update the parents for</param>
+            <remarks>
+            <para>
+            This method loops through all the <i>potential</i> parents of
+            <paramref name="log"/>. There 3 possible cases:
+            </para>
+            <list type="number">
+            	<item>
+            		<term>No entry for the potential parent of <paramref name="log"/> exists</term>
+            		<description>
+            		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 
+            		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 
+            		potential parent.
+            		</description>
+            	</item>
+            </list>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.UpdateChildren(log4net.Repository.Hierarchy.ProvisionNode,log4net.Repository.Hierarchy.Logger)">
+            <summary>
+            Replace a <see cref="T:log4net.Repository.Hierarchy.ProvisionNode"/> with a <see cref="T:log4net.Repository.Hierarchy.Logger"/> in the hierarchy.
+            </summary>
+            <param name="pn"></param>
+            <param name="log"></param>
+            <remarks>
+            <para>
+            We update the links for all the children that placed themselves
+            in the provision node 'pn'. The second argument 'log' is a
+            reference for the newly created Logger, parent of all the
+            children in 'pn'.
+            </para>
+            <para>
+            We loop on all the children 'c' in 'pn'.
+            </para>
+            <para>
+            If the child 'c' has been already linked to a child of
+            'log' then there is no need to update 'c'.
+            </para>
+            <para>
+            Otherwise, we set log's parent field to c's parent and set
+            c's parent field to log.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.AddLevel(log4net.Repository.Hierarchy.Hierarchy.LevelEntry)">
+            <summary>
+            Define or redefine a Level using the values in the <see cref="T:log4net.Repository.Hierarchy.Hierarchy.LevelEntry"/> argument
+            </summary>
+            <param name="levelEntry">the level values</param>
+            <remarks>
+            <para>
+            Define or redefine a Level using the values in the <see cref="T:log4net.Repository.Hierarchy.Hierarchy.LevelEntry"/> argument
+            </para>
+            <para>
+            Supports setting levels via the configuration file.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.AddProperty(log4net.Repository.Hierarchy.Hierarchy.PropertyEntry)">
+            <summary>
+            Set a Property using the values in the <see cref="T:log4net.Repository.Hierarchy.Hierarchy.LevelEntry"/> argument
+            </summary>
+            <param name="propertyEntry">the property value</param>
+            <remarks>
+            <para>
+            Set a Property using the values in the <see cref="T:log4net.Repository.Hierarchy.Hierarchy.LevelEntry"/> argument.
+            </para>
+            <para>
+            Supports setting property values via the configuration file.
+            </para>
+            </remarks>
+        </member>
+        <member name="E:log4net.Repository.Hierarchy.Hierarchy.LoggerCreatedEvent">
+            <summary>
+            Event used to notify that a logger has been created.
+            </summary>
+            <remarks>
+            <para>
+            Event raised when a logger is created.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.Hierarchy.EmittedNoAppenderWarning">
+            <summary>
+            Has no appender warning been emitted
+            </summary>
+            <remarks>
+            <para>
+            Flag to indicate if we have already issued a warning
+            about not having an appender warning.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.Hierarchy.Root">
+            <summary>
+            Get the root of this hierarchy
+            </summary>
+            <remarks>
+            <para>
+            Get the root of this hierarchy.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.Hierarchy.LoggerFactory">
+            <summary>
+            Gets or sets the default <see cref="T:log4net.Repository.Hierarchy.ILoggerFactory"/> instance.
+            </summary>
+            <value>The default <see cref="T:log4net.Repository.Hierarchy.ILoggerFactory"/></value>
+            <remarks>
+            <para>
+            The logger factory is used to create logger instances.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Repository.Hierarchy.Hierarchy.LevelEntry">
+            <summary>
+            A class to hold the value, name and display name for a level
+            </summary>
+            <remarks>
+            <para>
+            A class to hold the value, name and display name for a level
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.LevelEntry.ToString">
+            <summary>
+            Override <c>Object.ToString</c> to return sensible debug info
+            </summary>
+            <returns>string info about this object</returns>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.Hierarchy.LevelEntry.Value">
+            <summary>
+            Value of the level
+            </summary>
+            <remarks>
+            <para>
+            If the value is not set (defaults to -1) the value will be looked
+            up for the current level with the same name.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.Hierarchy.LevelEntry.Name">
+            <summary>
+            Name of the level
+            </summary>
+            <value>
+            The name of the level
+            </value>
+            <remarks>
+            <para>
+            The name of the level.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.Hierarchy.LevelEntry.DisplayName">
+            <summary>
+            Display name for the level
+            </summary>
+            <value>
+            The display name of the level
+            </value>
+            <remarks>
+            <para>
+            The display name of the level.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Repository.Hierarchy.Hierarchy.PropertyEntry">
+            <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>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.Hierarchy.PropertyEntry.ToString">
+            <summary>
+            Override <c>Object.ToString</c> to return sensible debug info
+            </summary>
+            <returns>string info about this object</returns>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.Hierarchy.PropertyEntry.Key">
+            <summary>
+            Property Key
+            </summary>
+            <value>
+            Property Key
+            </value>
+            <remarks>
+            <para>
+            Property Key.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.Hierarchy.PropertyEntry.Value">
+            <summary>
+            Property Value
+            </summary>
+            <value>
+            Property Value
+            </value>
+            <remarks>
+            <para>
+            Property Value.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Repository.Hierarchy.LoggerKey">
+            <summary>
+            Used internally to accelerate hash table searches.
+            </summary>
+            <remarks>
+            <para>
+            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="T:log4net.Repository.Hierarchy.LoggerKey"/> objects for equality 
+            the reference equality of the interned strings is compared.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.LoggerKey.#ctor(System.String)">
+            <summary>
+            Construct key with string name
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.LoggerKey"/> class 
+            with the specified name.
+            </para>
+            <para>
+            Stores the hashcode of the string and interns
+            the string key to optimize comparisons.
+            </para>
+            <note>
+            The Compact Framework 1.0 the <see cref="M:System.String.Intern(System.String)"/>
+            method does not work. On the Compact Framework
+            the string keys are not interned nor are they
+            compared by reference.
+            </note>
+            </remarks>
+            <param name="name">The name of the logger.</param>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.LoggerKey.GetHashCode">
+            <summary>
+            Returns a hash code for the current instance.
+            </summary>
+            <returns>A hash code for the current instance.</returns>
+            <remarks>
+            <para>
+            Returns the cached hashcode.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.LoggerKey.Equals(System.Object)">
+            <summary>
+            Determines whether two <see cref="T:log4net.Repository.Hierarchy.LoggerKey"/> instances 
+            are equal.
+            </summary>
+            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:log4net.Repository.Hierarchy.LoggerKey"/>.</param>
+            <returns>
+            <c>true</c> if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:log4net.Repository.Hierarchy.LoggerKey"/>; otherwise, <c>false</c>.
+            </returns>
+            <remarks>
+            <para>
+            Compares the references of the interned strings.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Repository.Hierarchy.ProvisionNode">
+            <summary>
+            Provision nodes are used where no logger instance has been specified
+            </summary>
+            <remarks>
+            <para>
+            <see cref="T:log4net.Repository.Hierarchy.ProvisionNode"/> instances are used in the 
+            <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> when there is no specified 
+            <see cref="T:log4net.Repository.Hierarchy.Logger"/> for that node.
+            </para>
+            <para>
+            A provision node holds a list of child loggers on behalf of
+            a logger that does not exist.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.ProvisionNode.#ctor(log4net.Repository.Hierarchy.Logger)">
+            <summary>
+            Create a new provision node with child node
+            </summary>
+            <param name="log">A child logger to add to this node.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.ProvisionNode"/> class 
+            with the specified child logger.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Repository.Hierarchy.RootLogger">
+            <summary>
+            The <see cref="T:log4net.Repository.Hierarchy.RootLogger"/> sits at the root of the logger hierarchy tree. 
+            </summary>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.Repository.Hierarchy.RootLogger"/> is a regular <see cref="T:log4net.Repository.Hierarchy.Logger"/> except 
+            that it provides several guarantees.
+            </para>
+            <para>
+            First, it cannot be assigned a <c>null</c>
+            level. Second, since the root logger cannot have a parent, the
+            <see cref="P:log4net.Repository.Hierarchy.RootLogger.EffectiveLevel"/> property always returns the value of the
+            level field without walking the hierarchy.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.RootLogger.#ctor(log4net.Core.Level)">
+            <summary>
+            Construct a <see cref="T:log4net.Repository.Hierarchy.RootLogger"/>
+            </summary>
+            <param name="level">The level to assign to the root logger.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.RootLogger"/> class with
+            the specified logging level.
+            </para>
+            <para>
+            The root logger names itself as "root". However, the root
+            logger cannot be retrieved by name.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.RootLogger.EffectiveLevel">
+            <summary>
+            Gets the assigned level value without walking the logger hierarchy.
+            </summary>
+            <value>The assigned level value without walking the logger hierarchy.</value>
+            <remarks>
+            <para>
+            Because the root logger cannot have a parent and its level
+            must not be <c>null</c> this property just returns the
+            value of <see cref="P:log4net.Repository.Hierarchy.Logger.Level"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Repository.Hierarchy.RootLogger.Level">
+            <summary>
+            Gets or sets the assigned <see cref="P:log4net.Repository.Hierarchy.RootLogger.Level"/> for the root logger.  
+            </summary>
+            <value>
+            The <see cref="P:log4net.Repository.Hierarchy.RootLogger.Level"/> of the root logger.
+            </value>
+            <remarks>
+            <para>
+            Setting the level of the root logger to a <c>null</c> reference
+            may have catastrophic results. We prevent this here.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Repository.Hierarchy.XmlHierarchyConfigurator">
+            <summary>
+            Initializes the log4net environment using an XML DOM.
+            </summary>
+            <remarks>
+            <para>
+            Configures a <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> using an XML DOM.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.#ctor(log4net.Repository.Hierarchy.Hierarchy)">
+            <summary>
+            Construct the configurator for a hierarchy
+            </summary>
+            <param name="hierarchy">The hierarchy to build.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.XmlHierarchyConfigurator"/> class
+            with the specified <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.Configure(System.Xml.XmlElement)">
+            <summary>
+            Configure the hierarchy by parsing a DOM tree of XML elements.
+            </summary>
+            <param name="element">The root element to parse.</param>
+            <remarks>
+            <para>
+            Configure the hierarchy by parsing a DOM tree of XML elements.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.FindAppenderByReference(System.Xml.XmlElement)">
+            <summary>
+            Parse appenders by IDREF.
+            </summary>
+            <param name="appenderRef">The appender ref element.</param>
+            <returns>The instance of the appender that the ref refers to.</returns>
+            <remarks>
+            <para>
+            Parse an XML element that represents an appender and return 
+            the appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(System.Xml.XmlElement)">
+            <summary>
+            Parses an appender element.
+            </summary>
+            <param name="appenderElement">The appender element.</param>
+            <returns>The appender instance or <c>null</c> when parsing failed.</returns>
+            <remarks>
+            <para>
+            Parse an XML element that represents an appender and return
+            the appender instance.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseLogger(System.Xml.XmlElement)">
+            <summary>
+            Parses a logger element.
+            </summary>
+            <param name="loggerElement">The logger element.</param>
+            <remarks>
+            <para>
+            Parse an XML element that represents a logger.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseRoot(System.Xml.XmlElement)">
+            <summary>
+            Parses the root logger element.
+            </summary>
+            <param name="rootElement">The root element.</param>
+            <remarks>
+            <para>
+            Parse an XML element that represents the root logger.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseChildrenOfLoggerElement(System.Xml.XmlElement,log4net.Repository.Hierarchy.Logger,System.Boolean)">
+            <summary>
+            Parses the children of a logger element.
+            </summary>
+            <param name="catElement">The category element.</param>
+            <param name="log">The logger instance.</param>
+            <param name="isRoot">Flag to indicate if the logger is the root logger.</param>
+            <remarks>
+            <para>
+            Parse the child elements of a &lt;logger&gt; element.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseRenderer(System.Xml.XmlElement)">
+            <summary>
+            Parses an object renderer.
+            </summary>
+            <param name="element">The renderer element.</param>
+            <remarks>
+            <para>
+            Parse an XML element that represents a renderer.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseLevel(System.Xml.XmlElement,log4net.Repository.Hierarchy.Logger,System.Boolean)">
+            <summary>
+            Parses a level element.
+            </summary>
+            <param name="element">The level element.</param>
+            <param name="log">The logger object to set the level on.</param>
+            <param name="isRoot">Flag to indicate if the logger is the root logger.</param>
+            <remarks>
+            <para>
+            Parse an XML element that represents a level.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.SetParameter(System.Xml.XmlElement,System.Object)">
+            <summary>
+            Sets a parameter on an object.
+            </summary>
+            <param name="element">The parameter element.</param>
+            <param name="target">The object to set the parameter on.</param>
+            <remarks>
+            The parameter name must correspond to a writable property
+            on the object. The value of the parameter is a string,
+            therefore this function will attempt to set a string
+            property first. If unable to set a string property it
+            will inspect the property and its argument type. It will
+            attempt to call a static method called <c>Parse</c> on the
+            type of the property. This method will take a single
+            string argument and return a value that can be used to
+            set the property.
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.HasAttributesOrElements(System.Xml.XmlElement)">
+            <summary>
+            Test if an element has no attributes or child elements
+            </summary>
+            <param name="element">the element to inspect</param>
+            <returns><c>true</c> if the element has any attributes or child elements, <c>false</c> otherwise</returns>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.IsTypeConstructible(System.Type)">
+            <summary>
+            Test if a <see cref="T:System.Type"/> is constructible with <c>Activator.CreateInstance</c>.
+            </summary>
+            <param name="type">the type to inspect</param>
+            <returns><c>true</c> if the type is creatable using a default constructor, <c>false</c> otherwise</returns>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.FindMethodInfo(System.Type,System.String)">
+            <summary>
+            Look for a method on the <paramref name="targetType"/> that matches the <paramref name="name"/> supplied
+            </summary>
+            <param name="targetType">the type that has the method</param>
+            <param name="name">the name of the method</param>
+            <returns>the method info found</returns>
+            <remarks>
+            <para>
+            The method must be a public instance method on the <paramref name="targetType"/>.
+            The method must be named <paramref name="name"/> or "Add" followed by <paramref name="name"/>.
+            The method must take a single parameter.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ConvertStringTo(System.Type,System.String)">
+            <summary>
+            Converts a string value to a target type.
+            </summary>
+            <param name="type">The type of object to convert the string to.</param>
+            <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 
+            <c>null</c> when the conversion could not be performed.
+            </para>
+            </returns>
+        </member>
+        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.CreateObjectFromXml(System.Xml.XmlElement,System.Type,System.Type)">
+            <summary>
+            Creates an object as specified in XML.
+            </summary>
+            <param name="element">The XML element that contains the definition of the object.</param>
+            <param name="defaultTargetType">The object type to use if not explicitly specified.</param>
+            <param name="typeConstraint">The type that the returned object must be or must inherit from.</param>
+            <returns>The object or <c>null</c></returns>
+            <remarks>
+            <para>
+            Parse an XML element and create an object instance based on the configuration
+            data.
+            </para>
+            <para>
+            The type of the instance may be specified in the XML. If not
+            specified then the <paramref name="defaultTargetType"/> is used
+            as the type. However the type is specified it must support the
+            <paramref name="typeConstraint"/> type.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.m_appenderBag">
+            <summary>
+            key: appenderName, value: appender.
+            </summary>
+        </member>
+        <member name="F:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.m_hierarchy">
+            <summary>
+            The Hierarchy being configured.
+            </summary>
+        </member>
+        <member name="T:log4net.Repository.LoggerRepositoryShutdownEventHandler">
+            <summary>
+            Delegate used to handle logger repository shutdown event notifications
+            </summary>
+            <param name="sender">The <see cref="T:log4net.Repository.ILoggerRepository"/> that is shutting down.</param>
+            <param name="e">Empty event args</param>
+            <remarks>
+            <para>
+            Delegate used to handle logger repository shutdown event notifications.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Repository.LoggerRepositoryConfigurationResetEventHandler">
+            <summary>
+            Delegate used to handle logger repository configuration reset event notifications
+            </summary>
+            <param name="sender">The <see cref="T:log4net.Repository.ILoggerRepository"/> that has had its configuration reset.</param>
+            <param name="e">Empty event args</param>
+            <remarks>
+            <para>
+            Delegate used to handle logger repository configuration reset event notifications.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Repository.LoggerRepositoryConfigurationChangedEventHandler">
+            <summary>
+            Delegate used to handle event notifications for logger repository configuration changes.
+            </summary>
+            <param name="sender">The <see cref="T:log4net.Repository.ILoggerRepository"/> that has had its configuration changed.</param>
+            <param name="e">Empty event arguments.</param>
+            <remarks>
+            <para>
+            Delegate used to handle event notifications for logger repository configuration changes.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.PatternStringConverters.AppDomainPatternConverter">
+            <summary>
+            Write the name of the current AppDomain to the output
+            </summary>
+            <remarks>
+            <para>
+            Write the name of the current AppDomain to the output writer
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.PatternStringConverters.AppDomainPatternConverter.Convert(System.IO.TextWriter,System.Object)">
+            <summary>
+            Write the name of the current AppDomain 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 name of the current AppDomain to the output <paramref name="writer"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.PatternStringConverters.DatePatternConverter">
+            <summary>
+            Write the current date to the output
+            </summary>
+            <remarks>
+            <para>
+            Date pattern converter, uses a <see cref="T:log4net.DateFormatter.IDateFormatter"/> to format 
+            the current date and time to the writer as a string.
+            </para>
+            <para>
+            The value of the <see cref="P:log4net.Util.PatternConverter.Option"/> determines 
+            the formatting of the date. The following values are allowed:
+            <list type="definition">
+            	<listheader>
+            		<term>Option value</term>
+            		<description>Output</description>
+            	</listheader>
+            	<item>
+            		<term>ISO8601</term>
+            		<description>
+            		Uses the <see cref="T:log4net.DateFormatter.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="T:log4net.DateFormatter.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="T:log4net.DateFormatter.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="T:log4net.DateFormatter.SimpleDateFormatter"/> formatter. 
+            		This formatter passes the pattern string to the <see cref="T:System.DateTime"/> 
+            		<see cref="M:System.DateTime.ToString(System.String)"/> method.
+            		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>
+            </list>
+            </para>
+            <para>
+            The date and time is in the local time zone and is rendered in that zone.
+            To output the time in Universal time see <see cref="T:log4net.Util.PatternStringConverters.UtcDatePatternConverter"/>.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="F:log4net.Util.PatternStringConverters.DatePatternConverter.m_dateFormatter">
+            <summary>
+            The <see cref="T:log4net.DateFormatter.IDateFormatter"/> used to render the date to a string
+            </summary>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.DateFormatter.IDateFormatter"/> used to render the date to a string
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternStringConverters.DatePatternConverter.ActivateOptions">
+            <summary>
+            Initialize the converter options
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Util.PatternStringConverters.DatePatternConverter.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Util.PatternStringConverters.DatePatternConverter.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Util.PatternStringConverters.DatePatternConverter.ActivateOptions"/> must be called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternStringConverters.DatePatternConverter.Convert(System.IO.TextWriter,System.Object)">
+            <summary>
+            Write the current date to the output
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="state">null, state is not set</param>
+            <remarks>
+            <para>
+            Pass the current date and time to the <see cref="T:log4net.DateFormatter.IDateFormatter"/>
+            for it to render it to the writer.
+            </para>
+            <para>
+            The date and time passed is in the local time zone.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.PatternStringConverters.EnvironmentPatternConverter">
+            <summary>
+            Write an environment variable to the output
+            </summary>
+            <remarks>
+            <para>
+            Write an environment variable to the output writer.
+            The value of the <see cref="P:log4net.Util.PatternConverter.Option"/> determines 
+            the name of the variable to output.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.PatternStringConverters.EnvironmentPatternConverter.Convert(System.IO.TextWriter,System.Object)">
+            <summary>
+            Write an environment variable 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 environment variable to the output <paramref name="writer"/>.
+            The name of the environment variable to output must be set
+            using the <see cref="P:log4net.Util.PatternConverter.Option"/>
+            property.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.PatternStringConverters.IdentityPatternConverter">
+            <summary>
+            Write the current thread identity to the output
+            </summary>
+            <remarks>
+            <para>
+            Write the current thread identity to the output writer
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.PatternStringConverters.IdentityPatternConverter.Convert(System.IO.TextWriter,System.Object)">
+            <summary>
+            Write the current thread identity 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 current thread identity to the output <paramref name="writer"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.PatternStringConverters.LiteralPatternConverter">
+            <summary>
+            Pattern converter for literal string instances in the pattern
+            </summary>
+            <remarks>
+            <para>
+            Writes the literal string value specified in the 
+            <see cref="P:log4net.Util.PatternConverter.Option"/> property to 
+            the output.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.PatternStringConverters.LiteralPatternConverter.SetNext(log4net.Util.PatternConverter)">
+            <summary>
+            Set the next converter in the chain
+            </summary>
+            <param name="pc">The next pattern converter in the chain</param>
+            <returns>The next pattern converter</returns>
+            <remarks>
+            <para>
+            Special case the building of the pattern converter chain
+            for <see cref="T:log4net.Util.PatternStringConverters.LiteralPatternConverter"/> instances. Two adjacent
+            literals in the pattern can be represented by a single combined
+            pattern converter. This implementation detects when a 
+            <see cref="T:log4net.Util.PatternStringConverters.LiteralPatternConverter"/> is added to the chain
+            after this converter and combines its value with this converter's
+            literal value.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternStringConverters.LiteralPatternConverter.Format(System.IO.TextWriter,System.Object)">
+            <summary>
+            Write the literal to the output
+            </summary>
+            <param name="writer">the writer to write to</param>
+            <param name="state">null, not set</param>
+            <remarks>
+            <para>
+            Override the formatting behavior to ignore the FormattingInfo
+            because we have a literal instead.
+            </para>
+            <para>
+            Writes the value of <see cref="P:log4net.Util.PatternConverter.Option"/>
+            to the output <paramref name="writer"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternStringConverters.LiteralPatternConverter.Convert(System.IO.TextWriter,System.Object)">
+            <summary>
+            Convert this pattern into the rendered message
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="state">null, not set</param>
+            <remarks>
+            <para>
+            This method is not used.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.PatternStringConverters.NewLinePatternConverter">
+            <summary>
+            Writes a newline to the output
+            </summary>
+            <remarks>
+            <para>
+            Writes the system dependent line terminator to the output.
+            This behavior can be overridden by setting the <see cref="P:log4net.Util.PatternConverter.Option"/>:
+            </para>
+            <list type="definition">
+              <listheader>
+                <term>Option Value</term>
+                <description>Output</description>
+              </listheader>
+              <item>
+                <term>DOS</term>
+                <description>DOS or Windows line terminator <c>"\r\n"</c></description>
+              </item>
+              <item>
+                <term>UNIX</term>
+                <description>UNIX line terminator <c>"\n"</c></description>
+              </item>
+            </list>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.PatternStringConverters.NewLinePatternConverter.ActivateOptions">
+            <summary>
+            Initialize the converter
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Util.PatternStringConverters.NewLinePatternConverter.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Util.PatternStringConverters.NewLinePatternConverter.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Util.PatternStringConverters.NewLinePatternConverter.ActivateOptions"/> must be called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.PatternStringConverters.ProcessIdPatternConverter">
+            <summary>
+            Write the current process ID to the output
+            </summary>
+            <remarks>
+            <para>
+            Write the current process ID to the output writer
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.PatternStringConverters.ProcessIdPatternConverter.Convert(System.IO.TextWriter,System.Object)">
+            <summary>
+            Write the current process ID to the output
+            </summary>
+            <param name="writer">the writer to write to</param>
+            <param name="state">null, state is not set</param>
+            <remarks>
+            <para>
+            Write the current process ID to the output <paramref name="writer"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.PatternStringConverters.PropertyPatternConverter">
+            <summary>
+            Property pattern converter
+            </summary>
+            <remarks>
+            <para>
+            This pattern converter reads the thread and global properties.
+            The thread properties take priority over global properties.
+            See <see cref="P:log4net.ThreadContext.Properties"/> for details of the 
+            thread properties. See <see cref="P:log4net.GlobalContext.Properties"/> for
+            details of the global properties.
+            </para>
+            <para>
+            If the <see cref="P:log4net.Util.PatternConverter.Option"/> is specified then that will be used to
+            lookup a single property. If no <see cref="P:log4net.Util.PatternConverter.Option"/> is specified
+            then all properties will be dumped as a list of key value pairs.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.PatternStringConverters.PropertyPatternConverter.Convert(System.IO.TextWriter,System.Object)">
+            <summary>
+            Write the property value to the output
+            </summary>
+            <param name="writer"><see cref="T:System.IO.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="P:log4net.Util.PatternConverter.Option"/>
+            property.
+            </para>
+            <para>
+            If the <see cref="P:log4net.Util.PatternConverter.Option"/> is set to <c>null</c>
+            then all the properties are written as key value pairs.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.PatternStringConverters.RandomStringPatternConverter">
+            <summary>
+            A Pattern converter that generates a string of random characters
+            </summary>
+            <remarks>
+            <para>
+            The converter generates a string of random characters. By default
+            the string is length 4. This can be changed by setting the <see cref="P:log4net.Util.PatternConverter.Option"/>
+            to the string value of the length required.
+            </para>
+            <para>
+            The random characters in the string are limited to uppercase letters
+            and numbers only.
+            </para>
+            <para>
+            The random number generator used by this class is not cryptographically secure.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="F:log4net.Util.PatternStringConverters.RandomStringPatternConverter.s_random">
+            <summary>
+            Shared random number generator
+            </summary>
+        </member>
+        <member name="F:log4net.Util.PatternStringConverters.RandomStringPatternConverter.m_length">
+            <summary>
+            Length of random string to generate. Default length 4.
+            </summary>
+        </member>
+        <member name="M:log4net.Util.PatternStringConverters.RandomStringPatternConverter.ActivateOptions">
+            <summary>
+            Initialize the converter options
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Util.PatternStringConverters.RandomStringPatternConverter.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Util.PatternStringConverters.RandomStringPatternConverter.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Util.PatternStringConverters.RandomStringPatternConverter.ActivateOptions"/> must be called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternStringConverters.RandomStringPatternConverter.Convert(System.IO.TextWriter,System.Object)">
+            <summary>
+            Write a randoim string to the output
+            </summary>
+            <param name="writer">the writer to write to</param>
+            <param name="state">null, state is not set</param>
+            <remarks>
+            <para>
+            Write a randoim string to the output <paramref name="writer"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.PatternStringConverters.UserNamePatternConverter">
+            <summary>
+            Write the current threads username to the output
+            </summary>
+            <remarks>
+            <para>
+            Write the current threads username to the output writer
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.PatternStringConverters.UserNamePatternConverter.Convert(System.IO.TextWriter,System.Object)">
+            <summary>
+            Write the current threads username to the output
+            </summary>
+            <param name="writer">the writer to write to</param>
+            <param name="state">null, state is not set</param>
+            <remarks>
+            <para>
+            Write the current threads username to the output <paramref name="writer"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.PatternStringConverters.UtcDatePatternConverter">
+            <summary>
+            Write the UTC date time to the output
+            </summary>
+            <remarks>
+            <para>
+            Date pattern converter, uses a <see cref="T:log4net.DateFormatter.IDateFormatter"/> to format 
+            the current date and time in Universal time.
+            </para>
+            <para>
+            See the <see cref="T:log4net.Util.PatternStringConverters.DatePatternConverter"/> for details on the date pattern syntax.
+            </para>
+            </remarks>
+            <seealso cref="T:log4net.Util.PatternStringConverters.DatePatternConverter"/>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.PatternStringConverters.UtcDatePatternConverter.Convert(System.IO.TextWriter,System.Object)">
+            <summary>
+            Write the current date and time to the output
+            </summary>
+            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
+            <param name="state">null, state is not set</param>
+            <remarks>
+            <para>
+            Pass the current date and time to the <see cref="T:log4net.DateFormatter.IDateFormatter"/>
+            for it to render it to the writer.
+            </para>
+            <para>
+            The date is in Universal time when it is rendered.
+            </para>
+            </remarks>
+            <seealso cref="T:log4net.Util.PatternStringConverters.DatePatternConverter"/>
+        </member>
+        <member name="T:log4net.Util.TypeConverters.BooleanConverter">
+            <summary>
+            Type converter for Boolean.
+            </summary>
+            <remarks>
+            <para>
+            Supports conversion from string to <c>bool</c> type.
+            </para>
+            </remarks>
+            <seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
+            <seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
+            <seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.BooleanConverter.CanConvertFrom(System.Type)">
+            <summary>
+            Can the source type be converted to the type supported by this object
+            </summary>
+            <param name="sourceType">the type to convert</param>
+            <returns>true if the conversion is possible</returns>
+            <remarks>
+            <para>
+            Returns <c>true</c> if the <paramref name="sourceType"/> is
+            the <see cref="T:System.String"/> type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.BooleanConverter.ConvertFrom(System.Object)">
+            <summary>
+            Convert the source object to the type supported by this object
+            </summary>
+            <param name="source">the object to convert</param>
+            <returns>the converted object</returns>
+            <remarks>
+            <para>
+            Uses the <see cref="M:System.Boolean.Parse(System.String)"/> method to convert the
+            <see cref="T:System.String"/> argument to a <see cref="T:System.Boolean"/>.
+            </para>
+            </remarks>
+            <exception cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException">
+            The <paramref name="source"/> object cannot be converted to the
+            target type. To check for this condition use the <see cref="M:log4net.Util.TypeConverters.BooleanConverter.CanConvertFrom(System.Type)"/>
+            method.
+            </exception>
+        </member>
+        <member name="T:log4net.Util.TypeConverters.ConversionNotSupportedException">
+            <summary>
+            Exception base type for conversion errors.
+            </summary>
+            <remarks>
+            <para>
+            This type extends <see cref="T:System.ApplicationException"/>. It
+            does not add any new functionality but does differentiate the
+            type of exception being thrown.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.ConversionNotSupportedException.#ctor">
+            <summary>
+            Constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.ConversionNotSupportedException.#ctor(System.String)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="message">A message to include with the exception.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/> class
+            with the specified message.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.ConversionNotSupportedException.#ctor(System.String,System.Exception)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="message">A message to include with the exception.</param>
+            <param name="innerException">A nested exception to include.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/> class
+            with the specified message and inner exception.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.ConversionNotSupportedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Serialization constructor
+            </summary>
+            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/> class 
+            with serialized data.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.ConversionNotSupportedException.Create(System.Type,System.Object)">
+            <summary>
+            Creates a new instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/> class.
+            </summary>
+            <param name="destinationType">The conversion destination type.</param>
+            <param name="sourceValue">The value to convert.</param>
+            <returns>An instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/>.</returns>
+            <remarks>
+            <para>
+            Creates a new instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.ConversionNotSupportedException.Create(System.Type,System.Object,System.Exception)">
+            <summary>
+            Creates a new instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/> class.
+            </summary>
+            <param name="destinationType">The conversion destination type.</param>
+            <param name="sourceValue">The value to convert.</param>
+            <param name="innerException">A nested exception to include.</param>
+            <returns>An instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/>.</returns>
+            <remarks>
+            <para>
+            Creates a new instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.TypeConverters.ConverterRegistry">
+            <summary>
+            Register of type converters for specific types.
+            </summary>
+            <remarks>
+            <para>
+            Maintains a registry of type converters used to convert between
+            types.
+            </para>
+            <para>
+            Use the <see cref="M:log4net.Util.TypeConverters.ConverterRegistry.AddConverter(System.Type,System.Object)"/> and 
+            <see cref="M:log4net.Util.TypeConverters.ConverterRegistry.AddConverter(System.Type,System.Type)"/> methods to register new converters.
+            The <see cref="M:log4net.Util.TypeConverters.ConverterRegistry.GetConvertTo(System.Type,System.Type)"/> and <see cref="M:log4net.Util.TypeConverters.ConverterRegistry.GetConvertFrom(System.Type)"/> methods
+            lookup appropriate converters to use.
+            </para>
+            </remarks>
+            <seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
+            <seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.ConverterRegistry.#ctor">
+            <summary>
+            Private constructor
+            </summary>
+            <remarks>
+            Initializes a new instance of the <see cref="T:log4net.Util.TypeConverters.ConverterRegistry"/> class.
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.ConverterRegistry.#cctor">
+            <summary>
+            Static constructor.
+            </summary>
+            <remarks>
+            <para>
+            This constructor defines the intrinsic type converters.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.ConverterRegistry.AddConverter(System.Type,System.Object)">
+            <summary>
+            Adds a converter for a specific type.
+            </summary>
+            <param name="destinationType">The type being converted to.</param>
+            <param name="converter">The type converter to use to convert to the destination type.</param>
+            <remarks>
+            <para>
+            Adds a converter instance for a specific type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.ConverterRegistry.AddConverter(System.Type,System.Type)">
+            <summary>
+            Adds a converter for a specific type.
+            </summary>
+            <param name="destinationType">The type being converted to.</param>
+            <param name="converterType">The type of the type converter to use to convert to the destination type.</param>
+            <remarks>
+            <para>
+            Adds a converter <see cref="T:System.Type"/> for a specific type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.ConverterRegistry.GetConvertTo(System.Type,System.Type)">
+            <summary>
+            Gets the type converter to use to convert values to the destination type.
+            </summary>
+            <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> 
+            if no type converter is found.
+            </returns>
+            <remarks>
+            <para>
+            Gets the type converter to use to convert values to the destination type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.ConverterRegistry.GetConvertFrom(System.Type)">
+            <summary>
+            Gets the type converter to use to convert values to 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> 
+            if no type converter is found.
+            </returns>
+            <remarks>
+            <para>
+            Gets the type converter to use to convert values to the destination type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.ConverterRegistry.GetConverterFromAttribute(System.Type)">
+            <summary>
+            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> 
+            if no type converter is found.
+            </returns>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.ConverterRegistry.CreateConverterInstance(System.Type)">
+            <summary>
+            Creates the instance of the type converter.
+            </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> 
+            if no type converter is found.
+            </returns>
+            <remarks>
+            <para>
+            The type specified for the type converter must implement 
+            the <see cref="T:log4net.Util.TypeConverters.IConvertFrom"/> or <see cref="T:log4net.Util.TypeConverters.IConvertTo"/> interfaces 
+            and must have a public default (no argument) constructor.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Util.TypeConverters.ConverterRegistry.s_type2converter">
+            <summary>
+            Mapping from <see cref="T:System.Type"/> to type converter.
+            </summary>
+        </member>
+        <member name="T:log4net.Util.TypeConverters.EncodingConverter">
+            <summary>
+            Supports conversion from string to <see cref="T:System.Text.Encoding"/> type.
+            </summary>
+            <remarks>
+            <para>
+            Supports conversion from string to <see cref="T:System.Text.Encoding"/> type.
+            </para>
+            </remarks>
+            <seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
+            <seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
+            <seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.EncodingConverter.CanConvertFrom(System.Type)">
+            <summary>
+            Can the source type be converted to the type supported by this object
+            </summary>
+            <param name="sourceType">the type to convert</param>
+            <returns>true if the conversion is possible</returns>
+            <remarks>
+            <para>
+            Returns <c>true</c> if the <paramref name="sourceType"/> is
+            the <see cref="T:System.String"/> type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.EncodingConverter.ConvertFrom(System.Object)">
+            <summary>
+            Overrides the ConvertFrom method of IConvertFrom.
+            </summary>
+            <param name="source">the object to convert to an encoding</param>
+            <returns>the encoding</returns>
+            <remarks>
+            <para>
+            Uses the <see cref="M:System.Text.Encoding.GetEncoding(System.String)"/> method to 
+            convert the <see cref="T:System.String"/> argument to an <see cref="T:System.Text.Encoding"/>.
+            </para>
+            </remarks>
+            <exception cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException">
+            The <paramref name="source"/> object cannot be converted to the
+            target type. To check for this condition use the <see cref="M:log4net.Util.TypeConverters.EncodingConverter.CanConvertFrom(System.Type)"/>
+            method.
+            </exception>
+        </member>
+        <member name="T:log4net.Util.TypeConverters.IConvertTo">
+            <summary>
+            Interface supported by type converters
+            </summary>
+            <remarks>
+            <para>
+            This interface supports conversion from a single type to arbitrary types.
+            See <see cref="T:log4net.Util.TypeConverters.TypeConverterAttribute"/>.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.IConvertTo.CanConvertTo(System.Type)">
+            <summary>
+            Returns whether this converter can convert the object to the specified type
+            </summary>
+            <param name="targetType">A Type that represents the type you want to convert to</param>
+            <returns>true if the conversion is possible</returns>
+            <remarks>
+            <para>
+            Test if the type supported by this converter can be converted to the
+            <paramref name="targetType"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.IConvertTo.ConvertTo(System.Object,System.Type)">
+            <summary>
+            Converts the given value object to the specified type, using the arguments
+            </summary>
+            <param name="source">the object to convert</param>
+            <param name="targetType">The Type to convert the value parameter to</param>
+            <returns>the converted object</returns>
+            <remarks>
+            <para>
+            Converts the <paramref name="source"/> (which must be of the type supported
+            by this converter) to the <paramref name="targetType"/> specified..
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.TypeConverters.IPAddressConverter">
+            <summary>
+            Supports conversion from string to <see cref="T:System.Net.IPAddress"/> type.
+            </summary>
+            <remarks>
+            <para>
+            Supports conversion from string to <see cref="T:System.Net.IPAddress"/> type.
+            </para>
+            </remarks>
+            <seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
+            <seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.IPAddressConverter.CanConvertFrom(System.Type)">
+            <summary>
+            Can the source type be converted to the type supported by this object
+            </summary>
+            <param name="sourceType">the type to convert</param>
+            <returns>true if the conversion is possible</returns>
+            <remarks>
+            <para>
+            Returns <c>true</c> if the <paramref name="sourceType"/> is
+            the <see cref="T:System.String"/> type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.IPAddressConverter.ConvertFrom(System.Object)">
+            <summary>
+            Overrides the ConvertFrom method of IConvertFrom.
+            </summary>
+            <param name="source">the object to convert to an IPAddress</param>
+            <returns>the IPAddress</returns>
+            <remarks>
+            <para>
+            Uses the <see cref="M:System.Net.IPAddress.Parse(System.String)"/> method to convert the
+            <see cref="T:System.String"/> argument to an <see cref="T:System.Net.IPAddress"/>.
+            If that fails then the string is resolved as a DNS hostname.
+            </para>
+            </remarks>
+            <exception cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException">
+            The <paramref name="source"/> object cannot be converted to the
+            target type. To check for this condition use the <see cref="M:log4net.Util.TypeConverters.IPAddressConverter.CanConvertFrom(System.Type)"/>
+            method.
+            </exception>
+        </member>
+        <member name="F:log4net.Util.TypeConverters.IPAddressConverter.validIpAddressChars">
+            <summary>
+            Valid characters in an IPv4 or IPv6 address string. (Does not support subnets)
+            </summary>
+        </member>
+        <member name="T:log4net.Util.TypeConverters.PatternLayoutConverter">
+            <summary>
+            Supports conversion from string to <see cref="T:log4net.Layout.PatternLayout"/> type.
+            </summary>
+            <remarks>
+            <para>
+            Supports conversion from string to <see cref="T:log4net.Layout.PatternLayout"/> type.
+            </para>
+            <para>
+            The string is used as the <see cref="P:log4net.Layout.PatternLayout.ConversionPattern"/> 
+            of the <see cref="T:log4net.Layout.PatternLayout"/>.
+            </para>
+            </remarks>
+            <seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
+            <seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
+            <seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.PatternLayoutConverter.CanConvertFrom(System.Type)">
+            <summary>
+            Can the source type be converted to the type supported by this object
+            </summary>
+            <param name="sourceType">the type to convert</param>
+            <returns>true if the conversion is possible</returns>
+            <remarks>
+            <para>
+            Returns <c>true</c> if the <paramref name="sourceType"/> is
+            the <see cref="T:System.String"/> type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.PatternLayoutConverter.ConvertFrom(System.Object)">
+            <summary>
+            Overrides the ConvertFrom method of IConvertFrom.
+            </summary>
+            <param name="source">the object to convert to a PatternLayout</param>
+            <returns>the PatternLayout</returns>
+            <remarks>
+            <para>
+            Creates and returns a new <see cref="T:log4net.Layout.PatternLayout"/> using
+            the <paramref name="source"/> <see cref="T:System.String"/> as the
+            <see cref="P:log4net.Layout.PatternLayout.ConversionPattern"/>.
+            </para>
+            </remarks>
+            <exception cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException">
+            The <paramref name="source"/> object cannot be converted to the
+            target type. To check for this condition use the <see cref="M:log4net.Util.TypeConverters.PatternLayoutConverter.CanConvertFrom(System.Type)"/>
+            method.
+            </exception>
+        </member>
+        <member name="T:log4net.Util.TypeConverters.PatternStringConverter">
+            <summary>
+            Convert between string and <see cref="T:log4net.Util.PatternString"/>
+            </summary>
+            <remarks>
+            <para>
+            Supports conversion from string to <see cref="T:log4net.Util.PatternString"/> type, 
+            and from a <see cref="T:log4net.Util.PatternString"/> type to a string.
+            </para>
+            <para>
+            The string is used as the <see cref="P:log4net.Util.PatternString.ConversionPattern"/> 
+            of the <see cref="T:log4net.Util.PatternString"/>.
+            </para>
+            </remarks>
+            <seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
+            <seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
+            <seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.PatternStringConverter.CanConvertTo(System.Type)">
+            <summary>
+            Can the target type be converted to the type supported by this object
+            </summary>
+            <param name="targetType">A <see cref="T:System.Type"/> that represents the type you want to convert to</param>
+            <returns>true if the conversion is possible</returns>
+            <remarks>
+            <para>
+            Returns <c>true</c> if the <paramref name="targetType"/> is
+            assignable from a <see cref="T:System.String"/> type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.PatternStringConverter.ConvertTo(System.Object,System.Type)">
+            <summary>
+            Converts the given value object to the specified type, using the arguments
+            </summary>
+            <param name="source">the object to convert</param>
+            <param name="targetType">The Type to convert the value parameter to</param>
+            <returns>the converted object</returns>
+            <remarks>
+            <para>
+            Uses the <see cref="M:log4net.Util.PatternString.Format"/> method to convert the
+            <see cref="T:log4net.Util.PatternString"/> argument to a <see cref="T:System.String"/>.
+            </para>
+            </remarks>
+            <exception cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException">
+            The <paramref name="source"/> object cannot be converted to the
+            <paramref name="targetType"/>. To check for this condition use the 
+            <see cref="M:log4net.Util.TypeConverters.PatternStringConverter.CanConvertTo(System.Type)"/> method.
+            </exception>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.PatternStringConverter.CanConvertFrom(System.Type)">
+            <summary>
+            Can the source type be converted to the type supported by this object
+            </summary>
+            <param name="sourceType">the type to convert</param>
+            <returns>true if the conversion is possible</returns>
+            <remarks>
+            <para>
+            Returns <c>true</c> if the <paramref name="sourceType"/> is
+            the <see cref="T:System.String"/> type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.PatternStringConverter.ConvertFrom(System.Object)">
+            <summary>
+            Overrides the ConvertFrom method of IConvertFrom.
+            </summary>
+            <param name="source">the object to convert to a PatternString</param>
+            <returns>the PatternString</returns>
+            <remarks>
+            <para>
+            Creates and returns a new <see cref="T:log4net.Util.PatternString"/> using
+            the <paramref name="source"/> <see cref="T:System.String"/> as the
+            <see cref="P:log4net.Util.PatternString.ConversionPattern"/>.
+            </para>
+            </remarks>
+            <exception cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException">
+            The <paramref name="source"/> object cannot be converted to the
+            target type. To check for this condition use the <see cref="M:log4net.Util.TypeConverters.PatternStringConverter.CanConvertFrom(System.Type)"/>
+            method.
+            </exception>
+        </member>
+        <member name="T:log4net.Util.TypeConverters.TypeConverter">
+            <summary>
+            Supports conversion from string to <see cref="T:System.Type"/> type.
+            </summary>
+            <remarks>
+            <para>
+            Supports conversion from string to <see cref="T:System.Type"/> type.
+            </para>
+            </remarks>
+            <seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
+            <seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
+            <seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.TypeConverter.CanConvertFrom(System.Type)">
+            <summary>
+            Can the source type be converted to the type supported by this object
+            </summary>
+            <param name="sourceType">the type to convert</param>
+            <returns>true if the conversion is possible</returns>
+            <remarks>
+            <para>
+            Returns <c>true</c> if the <paramref name="sourceType"/> is
+            the <see cref="T:System.String"/> type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.TypeConverter.ConvertFrom(System.Object)">
+            <summary>
+            Overrides the ConvertFrom method of IConvertFrom.
+            </summary>
+            <param name="source">the object to convert to a Type</param>
+            <returns>the Type</returns>
+            <remarks>
+            <para>
+            Uses the <see cref="M:System.Type.GetType(System.String,System.Boolean)"/> method to convert the
+            <see cref="T:System.String"/> argument to a <see cref="T:System.Type"/>.
+            Additional effort is made to locate partially specified types
+            by searching the loaded assemblies.
+            </para>
+            </remarks>
+            <exception cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException">
+            The <paramref name="source"/> object cannot be converted to the
+            target type. To check for this condition use the <see cref="M:log4net.Util.TypeConverters.TypeConverter.CanConvertFrom(System.Type)"/>
+            method.
+            </exception>
+        </member>
+        <member name="T:log4net.Util.TypeConverters.TypeConverterAttribute">
+            <summary>
+            Attribute used to associate a type converter
+            </summary>
+            <remarks>
+            <para>
+            Class and Interface level attribute that specifies a type converter
+            to use with the associated type.
+            </para>
+            <para>
+            To associate a type converter with a target type apply a
+            <c>TypeConverterAttribute</c> to the target type. Specify the
+            type of the type converter on the attribute.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="F:log4net.Util.TypeConverters.TypeConverterAttribute.m_typeName">
+            <summary>
+            The string type name of the type converter
+            </summary>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.TypeConverterAttribute.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+            <remarks>
+            <para>
+            Default constructor
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.TypeConverterAttribute.#ctor(System.String)">
+            <summary>
+            Create a new type converter attribute for the specified type name
+            </summary>
+            <param name="typeName">The string type name of the type converter</param>
+            <remarks>
+            <para>
+            The type specified must implement the <see cref="T:log4net.Util.TypeConverters.IConvertFrom"/> 
+            or the <see cref="T:log4net.Util.TypeConverters.IConvertTo"/> interfaces.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TypeConverters.TypeConverterAttribute.#ctor(System.Type)">
+            <summary>
+            Create a new type converter attribute for the specified type
+            </summary>
+            <param name="converterType">The type of the type converter</param>
+            <remarks>
+            <para>
+            The type specified must implement the <see cref="T:log4net.Util.TypeConverters.IConvertFrom"/> 
+            or the <see cref="T:log4net.Util.TypeConverters.IConvertTo"/> interfaces.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.TypeConverters.TypeConverterAttribute.ConverterTypeName">
+            <summary>
+            The string type name of the type converter 
+            </summary>
+            <value>
+            The string type name of the type converter 
+            </value>
+            <remarks>
+            <para>
+            The type specified must implement the <see cref="T:log4net.Util.TypeConverters.IConvertFrom"/> 
+            or the <see cref="T:log4net.Util.TypeConverters.IConvertTo"/> interfaces.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.AppenderAttachedImpl">
+            <summary>
+            A straightforward implementation of the <see cref="T:log4net.Core.IAppenderAttachable"/> interface.
+            </summary>
+            <remarks>
+            <para>
+            This is the default implementation of the <see cref="T:log4net.Core.IAppenderAttachable"/>
+            interface. Implementors of the <see cref="T:log4net.Core.IAppenderAttachable"/> interface
+            should aggregate an instance of this type.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Util.AppenderAttachedImpl.#ctor">
+            <summary>
+            Constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.AppenderAttachedImpl"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.AppenderAttachedImpl.AppendLoopOnAppenders(log4net.Core.LoggingEvent)">
+            <summary>
+            Append on on all attached appenders.
+            </summary>
+            <param name="loggingEvent">The event being logged.</param>
+            <returns>The number of appenders called.</returns>
+            <remarks>
+            <para>
+            Calls the <see cref="M:log4net.Appender.IAppender.DoAppend(log4net.Core.LoggingEvent)"/> method on all 
+            attached appenders.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.AppenderAttachedImpl.AppendLoopOnAppenders(log4net.Core.LoggingEvent[])">
+            <summary>
+            Append on on all attached appenders.
+            </summary>
+            <param name="loggingEvents">The array of events being logged.</param>
+            <returns>The number of appenders called.</returns>
+            <remarks>
+            <para>
+            Calls the <see cref="M:log4net.Appender.IAppender.DoAppend(log4net.Core.LoggingEvent)"/> method on all 
+            attached appenders.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.AppenderAttachedImpl.CallAppend(log4net.Appender.IAppender,log4net.Core.LoggingEvent[])">
+            <summary>
+            Calls the DoAppende method on the <see cref="T:log4net.Appender.IAppender"/> with 
+            the <see cref="T:log4net.Core.LoggingEvent"/> objects supplied.
+            </summary>
+            <param name="appender">The appender</param>
+            <param name="loggingEvents">The events</param>
+            <remarks>
+            <para>
+            If the <paramref name="appender"/> supports the <see cref="T:log4net.Appender.IBulkAppender"/>
+            interface then the <paramref name="loggingEvents"/> will be passed 
+            through using that interface. Otherwise the <see cref="T:log4net.Core.LoggingEvent"/>
+            objects in the array will be passed one at a time.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.AppenderAttachedImpl.AddAppender(log4net.Appender.IAppender)">
+            <summary>
+            Attaches an appender.
+            </summary>
+            <param name="newAppender">The appender to add.</param>
+            <remarks>
+            <para>
+            If the appender is already in the list it won't be added again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.AppenderAttachedImpl.GetAppender(System.String)">
+            <summary>
+            Gets an attached appender with the specified name.
+            </summary>
+            <param name="name">The name of the appender to get.</param>
+            <returns>
+            The appender with the name specified, or <c>null</c> if no appender with the
+            specified name is found.
+            </returns>
+            <remarks>
+            <para>
+            Lookup an attached appender by name.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.AppenderAttachedImpl.RemoveAllAppenders">
+            <summary>
+            Removes all attached appenders.
+            </summary>
+            <remarks>
+            <para>
+            Removes and closes all attached appenders
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.AppenderAttachedImpl.RemoveAppender(log4net.Appender.IAppender)">
+            <summary>
+            Removes the specified appender from the list of attached appenders.
+            </summary>
+            <param name="appender">The appender to remove.</param>
+            <returns>The appender removed from the list</returns>
+            <remarks>
+            <para>
+            The appender removed is not closed.
+            If you are discarding the appender you must call
+            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.AppenderAttachedImpl.RemoveAppender(System.String)">
+            <summary>
+            Removes the appender with the specified name from the list of appenders.
+            </summary>
+            <param name="name">The name of the appender to remove.</param>
+            <returns>The appender removed from the list</returns>
+            <remarks>
+            <para>
+            The appender removed is not closed.
+            If you are discarding the appender you must call
+            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Util.AppenderAttachedImpl.m_appenderList">
+            <summary>
+            List of appenders
+            </summary>
+        </member>
+        <member name="F:log4net.Util.AppenderAttachedImpl.m_appenderArray">
+            <summary>
+            Array of appenders, used to cache the m_appenderList
+            </summary>
+        </member>
+        <member name="P:log4net.Util.AppenderAttachedImpl.Appenders">
+            <summary>
+            Gets all attached appenders.
+            </summary>
+            <returns>
+            A collection of attached appenders, or <c>null</c> if there
+            are no attached appenders.
+            </returns>
+            <remarks>
+            <para>
+            The read only collection of all currently attached appenders.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.CompositeProperties">
+            <summary>
+            This class aggregates several PropertiesDictionary collections together.
+            </summary>
+            <remarks>
+            <para>
+            Provides a dictionary style lookup over an ordered list of
+            <see cref="T:log4net.Util.PropertiesDictionary"/> collections.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.CompositeProperties.#ctor">
+            <summary>
+            Constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.CompositeProperties"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.CompositeProperties.Add(log4net.Util.ReadOnlyPropertiesDictionary)">
+            <summary>
+            Add a Properties Dictionary to this composite collection
+            </summary>
+            <param name="properties">the properties to add</param>
+            <remarks>
+            <para>
+            Properties dictionaries added first take precedence over dictionaries added
+            later.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.CompositeProperties.Flatten">
+            <summary>
+            Flatten this composite collection into a single properties dictionary
+            </summary>
+            <returns>the flattened dictionary</returns>
+            <remarks>
+            <para>
+            Reduces the collection of ordered dictionaries to a single dictionary
+            containing the resultant values for the keys.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.CompositeProperties.Item(System.String)">
+            <summary>
+            Gets the value of a property
+            </summary>
+            <value>
+            The value for the property with the specified key
+            </value>
+            <remarks>
+            <para>
+            Looks up the value for the <paramref name="key"/> specified.
+            The <see cref="T:log4net.Util.PropertiesDictionary"/> collections are searched
+            in the order in which they were added to this collection. The value
+            returned is the value held by the first collection that contains
+            the specified key.
+            </para>
+            <para>
+            If none of the collections contain the specified key then
+            <c>null</c> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.ContextPropertiesBase">
+            <summary>
+            Base class for Context Properties implementations
+            </summary>
+            <remarks>
+            <para>
+            This class defines a basic property get set accessor
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="P:log4net.Util.ContextPropertiesBase.Item(System.String)">
+            <summary>
+            Gets or sets the value of a property
+            </summary>
+            <value>
+            The value for the property with the specified key
+            </value>
+            <remarks>
+            <para>
+            Gets or sets the value of a property
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.CountingQuietTextWriter">
+            <summary>
+            Subclass of <see cref="T:log4net.Util.QuietTextWriter"/> that maintains a count of 
+            the number of bytes written.
+            </summary>
+            <remarks>
+            <para>
+            This writer counts the number of bytes written.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Util.QuietTextWriter">
+            <summary>
+            <see cref="T:System.IO.TextWriter"/> that does not leak exceptions
+            </summary>
+            <remarks>
+            <para>
+            <see cref="T:log4net.Util.QuietTextWriter"/> does not throw exceptions when things go wrong. 
+            Instead, it delegates error handling to its <see cref="T:log4net.Core.IErrorHandler"/>.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Util.TextWriterAdapter">
+            <summary>
+            Adapter that extends <see cref="T:System.IO.TextWriter"/> and forwards all
+            messages to an instance of <see cref="T:System.IO.TextWriter"/>.
+            </summary>
+            <remarks>
+            <para>
+            Adapter that extends <see cref="T:System.IO.TextWriter"/> and forwards all
+            messages to an instance of <see cref="T:System.IO.TextWriter"/>.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="F:log4net.Util.TextWriterAdapter.m_writer">
+            <summary>
+            The writer to forward messages to
+            </summary>
+        </member>
+        <member name="M:log4net.Util.TextWriterAdapter.#ctor(System.IO.TextWriter)">
+            <summary>
+            Create an instance of <see cref="T:log4net.Util.TextWriterAdapter"/> that forwards all
+            messages to a <see cref="T:System.IO.TextWriter"/>.
+            </summary>
+            <param name="writer">The <see cref="T:System.IO.TextWriter"/> to forward to</param>
+            <remarks>
+            <para>
+            Create an instance of <see cref="T:log4net.Util.TextWriterAdapter"/> that forwards all
+            messages to a <see cref="T:System.IO.TextWriter"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TextWriterAdapter.Close">
+            <summary>
+            Closes the writer and releases any system resources associated with the writer
+            </summary>
+            <remarks>
+            <para>
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TextWriterAdapter.Dispose(System.Boolean)">
+            <summary>
+            Dispose this writer
+            </summary>
+            <param name="disposing">flag indicating if we are being disposed</param>
+            <remarks>
+            <para>
+            Dispose this writer
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TextWriterAdapter.Flush">
+            <summary>
+            Flushes any buffered output
+            </summary>
+            <remarks>
+            <para>
+            Clears all buffers for the writer and causes any buffered data to be written 
+            to the underlying device
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TextWriterAdapter.Write(System.Char)">
+            <summary>
+            Writes a character to the wrapped TextWriter
+            </summary>
+            <param name="value">the value to write to the TextWriter</param>
+            <remarks>
+            <para>
+            Writes a character to the wrapped TextWriter
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TextWriterAdapter.Write(System.Char[],System.Int32,System.Int32)">
+            <summary>
+            Writes a character buffer to the wrapped TextWriter
+            </summary>
+            <param name="buffer">the data buffer</param>
+            <param name="index">the start index</param>
+            <param name="count">the number of characters to write</param>
+            <remarks>
+            <para>
+            Writes a character buffer to the wrapped TextWriter
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.TextWriterAdapter.Write(System.String)">
+            <summary>
+            Writes a string to the wrapped TextWriter
+            </summary>
+            <param name="value">the value to write to the TextWriter</param>
+            <remarks>
+            <para>
+            Writes a string to the wrapped TextWriter
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.TextWriterAdapter.Writer">
+            <summary>
+            Gets or sets the underlying <see cref="T:System.IO.TextWriter"/>.
+            </summary>
+            <value>
+            The underlying <see cref="T:System.IO.TextWriter"/>.
+            </value>
+            <remarks>
+            <para>
+            Gets or sets the underlying <see cref="T:System.IO.TextWriter"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.TextWriterAdapter.Encoding">
+            <summary>
+            The Encoding in which the output is written
+            </summary>
+            <value>
+            The <see cref="P:log4net.Util.TextWriterAdapter.Encoding"/>
+            </value>
+            <remarks>
+            <para>
+            The Encoding in which the output is written
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.TextWriterAdapter.FormatProvider">
+            <summary>
+            Gets an object that controls formatting
+            </summary>
+            <value>
+            The format provider
+            </value>
+            <remarks>
+            <para>
+            Gets an object that controls formatting
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.TextWriterAdapter.NewLine">
+            <summary>
+            Gets or sets the line terminator string used by the TextWriter
+            </summary>
+            <value>
+            The line terminator to use
+            </value>
+            <remarks>
+            <para>
+            Gets or sets the line terminator string used by the TextWriter
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.QuietTextWriter.#ctor(System.IO.TextWriter,log4net.Core.IErrorHandler)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="writer">the writer to actually write to</param>
+            <param name="errorHandler">the error handler to report error to</param>
+            <remarks>
+            <para>
+            Create a new QuietTextWriter using a writer and error handler
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.QuietTextWriter.Write(System.Char)">
+            <summary>
+            Writes a character to the underlying writer
+            </summary>
+            <param name="value">the char to write</param>
+            <remarks>
+            <para>
+            Writes a character to the underlying writer
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.QuietTextWriter.Write(System.Char[],System.Int32,System.Int32)">
+            <summary>
+            Writes a buffer to the underlying writer
+            </summary>
+            <param name="buffer">the buffer to write</param>
+            <param name="index">the start index to write from</param>
+            <param name="count">the number of characters to write</param>
+            <remarks>
+            <para>
+            Writes a buffer to the underlying writer
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.QuietTextWriter.Write(System.String)">
+            <summary>
+            Writes a string to the output.
+            </summary>
+            <param name="value">The string data to write to the output.</param>
+            <remarks>
+            <para>
+            Writes a string to the output.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.QuietTextWriter.Close">
+            <summary>
+            Closes the underlying output writer.
+            </summary>
+            <remarks>
+            <para>
+            Closes the underlying output writer.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Util.QuietTextWriter.m_errorHandler">
+            <summary>
+            The error handler instance to pass all errors to
+            </summary>
+        </member>
+        <member name="F:log4net.Util.QuietTextWriter.m_closed">
+            <summary>
+            Flag to indicate if this writer is closed
+            </summary>
+        </member>
+        <member name="P:log4net.Util.QuietTextWriter.ErrorHandler">
+            <summary>
+            Gets or sets the error handler that all errors are passed to.
+            </summary>
+            <value>
+            The error handler that all errors are passed to.
+            </value>
+            <remarks>
+            <para>
+            Gets or sets the error handler that all errors are passed to.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.QuietTextWriter.Closed">
+            <summary>
+            Gets a value indicating whether this writer is closed.
+            </summary>
+            <value>
+            <c>true</c> if this writer is closed, otherwise <c>false</c>.
+            </value>
+            <remarks>
+            <para>
+            Gets a value indicating whether this writer is closed.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.CountingQuietTextWriter.#ctor(System.IO.TextWriter,log4net.Core.IErrorHandler)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="writer">The <see cref="T:System.IO.TextWriter"/> to actually write to.</param>
+            <param name="errorHandler">The <see cref="T:log4net.Core.IErrorHandler"/> to report errors to.</param>
+            <remarks>
+            <para>
+            Creates a new instance of the <see cref="T:log4net.Util.CountingQuietTextWriter"/> class 
+            with the specified <see cref="T:System.IO.TextWriter"/> and <see cref="T:log4net.Core.IErrorHandler"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.CountingQuietTextWriter.Write(System.Char)">
+            <summary>
+            Writes a character to the underlying writer and counts the number of bytes written.
+            </summary>
+            <param name="value">the char to write</param>
+            <remarks>
+            <para>
+            Overrides implementation of <see cref="T:log4net.Util.QuietTextWriter"/>. Counts
+            the number of bytes written.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.CountingQuietTextWriter.Write(System.Char[],System.Int32,System.Int32)">
+            <summary>
+            Writes a buffer to the underlying writer and counts the number of bytes written.
+            </summary>
+            <param name="buffer">the buffer to write</param>
+            <param name="index">the start index to write from</param>
+            <param name="count">the number of characters to write</param>
+            <remarks>
+            <para>
+            Overrides implementation of <see cref="T:log4net.Util.QuietTextWriter"/>. Counts
+            the number of bytes written.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.CountingQuietTextWriter.Write(System.String)">
+            <summary>
+            Writes a string to the output and counts the number of bytes written.
+            </summary>
+            <param name="str">The string data to write to the output.</param>
+            <remarks>
+            <para>
+            Overrides implementation of <see cref="T:log4net.Util.QuietTextWriter"/>. Counts
+            the number of bytes written.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Util.CountingQuietTextWriter.m_countBytes">
+            <summary>
+            Total number of bytes written.
+            </summary>
+        </member>
+        <member name="P:log4net.Util.CountingQuietTextWriter.Count">
+            <summary>
+            Gets or sets the total number of bytes written.
+            </summary>
+            <value>
+            The total number of bytes written.
+            </value>
+            <remarks>
+            <para>
+            Gets or sets the total number of bytes written.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.CyclicBuffer">
+            <summary>
+            A fixed size rolling buffer of logging events.
+            </summary>
+            <remarks>
+            <para>
+            An array backed fixed size leaky bucket.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Util.CyclicBuffer.#ctor(System.Int32)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="maxSize">The maximum number of logging events in the buffer.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.CyclicBuffer"/> class with 
+            the specified maximum number of buffered logging events.
+            </para>
+            </remarks>
+            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="maxSize"/> argument is not a positive integer.</exception>
+        </member>
+        <member name="M:log4net.Util.CyclicBuffer.Append(log4net.Core.LoggingEvent)">
+            <summary>
+            Appends a <paramref name="loggingEvent"/> to the buffer.
+            </summary>
+            <param name="loggingEvent">The event to append to the buffer.</param>
+            <returns>The event discarded from the buffer, if the buffer is full, otherwise <c>null</c>.</returns>
+            <remarks>
+            <para>
+            Append an event to the buffer. If the buffer still contains free space then
+            <c>null</c> is returned. If the buffer is full then an event will be dropped
+            to make space for the new event, the event dropped is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.CyclicBuffer.PopOldest">
+            <summary>
+            Get and remove the oldest event in the buffer.
+            </summary>
+            <returns>The oldest logging event in the buffer</returns>
+            <remarks>
+            <para>
+            Gets the oldest (first) logging event in the buffer and removes it 
+            from the buffer.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.CyclicBuffer.PopAll">
+            <summary>
+            Pops all the logging events from the buffer into an array.
+            </summary>
+            <returns>An array of all the logging events in the buffer.</returns>
+            <remarks>
+            <para>
+            Get all the events in the buffer and clear the buffer.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.CyclicBuffer.Clear">
+            <summary>
+            Clear the buffer
+            </summary>
+            <remarks>
+            <para>
+            Clear the buffer of all events. The events in the buffer are lost.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.CyclicBuffer.Item(System.Int32)">
+            <summary>
+            Gets the <paramref name="i"/>th oldest event currently in the buffer.
+            </summary>
+            <value>The <paramref name="i"/>th oldest event currently in the buffer.</value>
+            <remarks>
+            <para>
+            If <paramref name="i"/> is outside the range 0 to the number of events
+            currently in the buffer, then <c>null</c> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.CyclicBuffer.MaxSize">
+            <summary>
+            Gets the maximum size of the buffer.
+            </summary>
+            <value>The maximum size of the buffer.</value>
+            <remarks>
+            <para>
+            Gets the maximum size of the buffer
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.CyclicBuffer.Length">
+            <summary>
+            Gets the number of logging events in the buffer.
+            </summary>
+            <value>The number of logging events in the buffer.</value>
+            <remarks>
+            <para>
+            This number is guaranteed to be in the range 0 to <see cref="P:log4net.Util.CyclicBuffer.MaxSize"/>
+            (inclusive).
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.EmptyCollection">
+            <summary>
+            An always empty <see cref="T:System.Collections.ICollection"/>.
+            </summary>
+            <remarks>
+            <para>
+            A singleton implementation of the <see cref="T:System.Collections.ICollection"/>
+            interface that always represents an empty collection.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Util.EmptyCollection.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Util.EmptyCollection"/> class. 
+            </summary>
+            <remarks>
+            <para>
+            Uses a private access modifier to enforce the singleton pattern.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.EmptyCollection.CopyTo(System.Array,System.Int32)">
+            <summary>
+            Copies the elements of the <see cref="T:System.Collections.ICollection"/> to an 
+            <see cref="T:System.Array"/>, starting at a particular Array index.
+            </summary>
+            <param name="array">The one-dimensional <see cref="T:System.Array"/> 
+            that is the destination of the elements copied from 
+            <see cref="T:System.Collections.ICollection"/>. The Array must have zero-based 
+            indexing.</param>
+            <param name="index">The zero-based index in array at which 
+            copying begins.</param>
+            <remarks>
+            <para>
+            As the collection is empty no values are copied into the array.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.EmptyCollection.GetEnumerator">
+            <summary>
+            Returns an enumerator that can iterate through a collection.
+            </summary>
+            <returns>
+            An <see cref="T:System.Collections.IEnumerator"/> that can be used to 
+            iterate through the collection.
+            </returns>
+            <remarks>
+            <para>
+            As the collection is empty a <see cref="T:log4net.Util.NullEnumerator"/> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Util.EmptyCollection.s_instance">
+            <summary>
+            The singleton instance of the empty collection.
+            </summary>
+        </member>
+        <member name="P:log4net.Util.EmptyCollection.Instance">
+            <summary>
+            Gets the singleton instance of the empty collection.
+            </summary>
+            <returns>The singleton instance of the empty collection.</returns>
+            <remarks>
+            <para>
+            Gets the singleton instance of the empty collection.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.EmptyCollection.IsSynchronized">
+            <summary>
+            Gets a value indicating if access to the <see cref="T:System.Collections.ICollection"/> is synchronized (thread-safe).
+            </summary>
+            <value>
+            <b>true</b> if access to the <see cref="T:System.Collections.ICollection"/> is synchronized (thread-safe); otherwise, <b>false</b>.
+            </value>
+            <remarks>
+            <para>
+            For the <see cref="T:log4net.Util.EmptyCollection"/> this property is always <c>true</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.EmptyCollection.Count">
+            <summary>
+            Gets the number of elements contained in the <see cref="T:System.Collections.ICollection"/>.
+            </summary>
+            <value>
+            The number of elements contained in the <see cref="T:System.Collections.ICollection"/>.
+            </value>
+            <remarks>
+            <para>
+            As the collection is empty the <see cref="P:log4net.Util.EmptyCollection.Count"/> is always <c>0</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.EmptyCollection.SyncRoot">
+            <summary>
+            Gets an object that can be used to synchronize access to the <see cref="T:System.Collections.ICollection"/>.
+            </summary>
+            <value>
+            An object that can be used to synchronize access to the <see cref="T:System.Collections.ICollection"/>.
+            </value>
+            <remarks>
+            <para>
+            As the collection is empty and thread safe and synchronized this instance is also
+            the <see cref="P:log4net.Util.EmptyCollection.SyncRoot"/> object.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.EmptyDictionary">
+            <summary>
+            An always empty <see cref="T:System.Collections.IDictionary"/>.
+            </summary>
+            <remarks>
+            <para>
+            A singleton implementation of the <see cref="T:System.Collections.IDictionary"/>
+            interface that always represents an empty collection.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Util.EmptyDictionary.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Util.EmptyDictionary"/> class. 
+            </summary>
+            <remarks>
+            <para>
+            Uses a private access modifier to enforce the singleton pattern.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.EmptyDictionary.CopyTo(System.Array,System.Int32)">
+            <summary>
+            Copies the elements of the <see cref="T:System.Collections.ICollection"/> to an 
+            <see cref="T:System.Array"/>, starting at a particular Array index.
+            </summary>
+            <param name="array">The one-dimensional <see cref="T:System.Array"/> 
+            that is the destination of the elements copied from 
+            <see cref="T:System.Collections.ICollection"/>. The Array must have zero-based 
+            indexing.</param>
+            <param name="index">The zero-based index in array at which 
+            copying begins.</param>
+            <remarks>
+            <para>
+            As the collection is empty no values are copied into the array.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.EmptyDictionary.System#Collections#IEnumerable#GetEnumerator">
+            <summary>
+            Returns an enumerator that can iterate through a collection.
+            </summary>
+            <returns>
+            An <see cref="T:System.Collections.IEnumerator"/> that can be used to 
+            iterate through the collection.
+            </returns>
+            <remarks>
+            <para>
+            As the collection is empty a <see cref="T:log4net.Util.NullEnumerator"/> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.EmptyDictionary.Add(System.Object,System.Object)">
+            <summary>
+            Adds an element with the provided key and value to the 
+            <see cref="T:log4net.Util.EmptyDictionary"/>.
+            </summary>
+            <param name="key">The <see cref="T:System.Object"/> to use as the key of the element to add.</param>
+            <param name="value">The <see cref="T:System.Object"/> to use as the value of the element to add.</param>
+            <remarks>
+            <para>
+            As the collection is empty no new values can be added. A <see cref="T:System.InvalidOperationException"/>
+            is thrown if this method is called.
+            </para>
+            </remarks>
+            <exception cref="T:System.InvalidOperationException">This dictionary is always empty and cannot be modified.</exception>
+        </member>
+        <member name="M:log4net.Util.EmptyDictionary.Clear">
+            <summary>
+            Removes all elements from the <see cref="T:log4net.Util.EmptyDictionary"/>.
+            </summary>
+            <remarks>
+            <para>
+            As the collection is empty no values can be removed. A <see cref="T:System.InvalidOperationException"/>
+            is thrown if this method is called.
+            </para>
+            </remarks>
+            <exception cref="T:System.InvalidOperationException">This dictionary is always empty and cannot be modified.</exception>
+        </member>
+        <member name="M:log4net.Util.EmptyDictionary.Contains(System.Object)">
+            <summary>
+            Determines whether the <see cref="T:log4net.Util.EmptyDictionary"/> contains an element 
+            with the specified key.
+            </summary>
+            <param name="key">The key to locate in the <see cref="T:log4net.Util.EmptyDictionary"/>.</param>
+            <returns><c>false</c></returns>
+            <remarks>
+            <para>
+            As the collection is empty the <see cref="M:log4net.Util.EmptyDictionary.Contains(System.Object)"/> method always returns <c>false</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.EmptyDictionary.GetEnumerator">
+            <summary>
+            Returns an enumerator that can iterate through a collection.
+            </summary>
+            <returns>
+            An <see cref="T:System.Collections.IEnumerator"/> that can be used to 
+            iterate through the collection.
+            </returns>
+            <remarks>
+            <para>
+            As the collection is empty a <see cref="T:log4net.Util.NullEnumerator"/> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.EmptyDictionary.Remove(System.Object)">
+            <summary>
+            Removes the element with the specified key from the <see cref="T:log4net.Util.EmptyDictionary"/>.
+            </summary>
+            <param name="key">The key of the element to remove.</param>
+            <remarks>
+            <para>
+            As the collection is empty no values can be removed. A <see cref="T:System.InvalidOperationException"/>
+            is thrown if this method is called.
+            </para>
+            </remarks>
+            <exception cref="T:System.InvalidOperationException">This dictionary is always empty and cannot be modified.</exception>
+        </member>
+        <member name="F:log4net.Util.EmptyDictionary.s_instance">
+            <summary>
+            The singleton instance of the empty dictionary.
+            </summary>
+        </member>
+        <member name="P:log4net.Util.EmptyDictionary.Instance">
+            <summary>
+            Gets the singleton instance of the <see cref="T:log4net.Util.EmptyDictionary"/>.
+            </summary>
+            <returns>The singleton instance of the <see cref="T:log4net.Util.EmptyDictionary"/>.</returns>
+            <remarks>
+            <para>
+            Gets the singleton instance of the <see cref="T:log4net.Util.EmptyDictionary"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.EmptyDictionary.IsSynchronized">
+            <summary>
+            Gets a value indicating if access to the <see cref="T:System.Collections.ICollection"/> is synchronized (thread-safe).
+            </summary>
+            <value>
+            <b>true</b> if access to the <see cref="T:System.Collections.ICollection"/> is synchronized (thread-safe); otherwise, <b>false</b>.
+            </value>
+            <remarks>
+            <para>
+            For the <see cref="T:log4net.Util.EmptyCollection"/> this property is always <b>true</b>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.EmptyDictionary.Count">
+            <summary>
+            Gets the number of elements contained in the <see cref="T:System.Collections.ICollection"/>
+            </summary>
+            <value>
+            The number of elements contained in the <see cref="T:System.Collections.ICollection"/>.
+            </value>
+            <remarks>
+            <para>
+            As the collection is empty the <see cref="P:log4net.Util.EmptyDictionary.Count"/> is always <c>0</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.EmptyDictionary.SyncRoot">
+            <summary>
+            Gets an object that can be used to synchronize access to the <see cref="T:System.Collections.ICollection"/>.
+            </summary>
+            <value>
+            An object that can be used to synchronize access to the <see cref="T:System.Collections.ICollection"/>.
+            </value>
+            <remarks>
+            <para>
+            As the collection is empty and thread safe and synchronized this instance is also
+            the <see cref="P:log4net.Util.EmptyDictionary.SyncRoot"/> object.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.EmptyDictionary.IsFixedSize">
+            <summary>
+            Gets a value indicating whether the <see cref="T:log4net.Util.EmptyDictionary"/> has a fixed size.
+            </summary>
+            <value><c>true</c></value>
+            <remarks>
+            <para>
+            As the collection is empty <see cref="P:log4net.Util.EmptyDictionary.IsFixedSize"/> always returns <c>true</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.EmptyDictionary.IsReadOnly">
+            <summary>
+            Gets a value indicating whether the <see cref="T:log4net.Util.EmptyDictionary"/> is read-only.
+            </summary>
+            <value><c>true</c></value>
+            <remarks>
+            <para>
+            As the collection is empty <see cref="P:log4net.Util.EmptyDictionary.IsReadOnly"/> always returns <c>true</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.EmptyDictionary.Keys">
+            <summary>
+            Gets an <see cref="T:System.Collections.ICollection"/> containing the keys of the <see cref="T:log4net.Util.EmptyDictionary"/>.
+            </summary>
+            <value>An <see cref="T:System.Collections.ICollection"/> containing the keys of the <see cref="T:log4net.Util.EmptyDictionary"/>.</value>
+            <remarks>
+            <para>
+            As the collection is empty a <see cref="T:log4net.Util.EmptyCollection"/> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.EmptyDictionary.Values">
+            <summary>
+            Gets an <see cref="T:System.Collections.ICollection"/> containing the values of the <see cref="T:log4net.Util.EmptyDictionary"/>.
+            </summary>
+            <value>An <see cref="T:System.Collections.ICollection"/> containing the values of the <see cref="T:log4net.Util.EmptyDictionary"/>.</value>
+            <remarks>
+            <para>
+            As the collection is empty a <see cref="T:log4net.Util.EmptyCollection"/> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.EmptyDictionary.Item(System.Object)">
+            <summary>
+            Gets or sets the element with the specified key.
+            </summary>
+            <param name="key">The key of the element to get or set.</param>
+            <value><c>null</c></value>
+            <remarks>
+            <para>
+            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="T:System.InvalidOperationException"/> is thrown if the setter is called.
+            </para>
+            </remarks>
+            <exception cref="T:System.InvalidOperationException">This dictionary is always empty and cannot be modified.</exception>
+        </member>
+        <member name="T:log4net.Util.FormattingInfo">
+            <summary>
+            Contain the information obtained when parsing formatting modifiers 
+            in conversion modifiers.
+            </summary>
+            <remarks>
+            <para>
+            Holds the formatting information extracted from the format string by
+            the <see cref="T:log4net.Util.PatternParser"/>. This is used by the <see cref="T:log4net.Util.PatternConverter"/>
+            objects when rendering the output.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Util.FormattingInfo.#ctor">
+            <summary>
+            Defaut Constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.FormattingInfo"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.FormattingInfo.#ctor(System.Int32,System.Int32,System.Boolean)">
+            <summary>
+            Constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.FormattingInfo"/> class
+            with the specified parameters.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.FormattingInfo.Min">
+            <summary>
+            Gets or sets the minimum value.
+            </summary>
+            <value>
+            The minimum value.
+            </value>
+            <remarks>
+            <para>
+            Gets or sets the minimum value.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.FormattingInfo.Max">
+            <summary>
+            Gets or sets the maximum value.
+            </summary>
+            <value>
+            The maximum value.
+            </value>
+            <remarks>
+            <para>
+            Gets or sets the maximum value.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.FormattingInfo.LeftAlign">
+            <summary>
+            Gets or sets a flag indicating whether left align is enabled
+            or not.
+            </summary>
+            <value>
+            A flag indicating whether left align is enabled or not.
+            </value>
+            <remarks>
+            <para>
+            Gets or sets a flag indicating whether left align is enabled or not.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.GlobalContextProperties">
+            <summary>
+            Implementation of Properties collection for the <see cref="T:log4net.GlobalContext"/>
+            </summary>
+            <remarks>
+            <para>
+            This class implements a properties collection that is thread safe and supports both
+            storing properties and capturing a read only copy of the current propertied.
+            </para>
+            <para>
+            This class is optimized to the scenario where the properties are read frequently
+            and are modified infrequently.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="F:log4net.Util.GlobalContextProperties.m_readOnlyProperties">
+            <summary>
+            The read only copy of the properties.
+            </summary>
+            <remarks>
+            <para>
+            This variable is declared <c>volatile</c> to prevent the compiler and JIT from
+            reordering reads and writes of this thread performed on different threads.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Util.GlobalContextProperties.m_syncRoot">
+            <summary>
+            Lock object used to synchronize updates within this instance
+            </summary>
+        </member>
+        <member name="M:log4net.Util.GlobalContextProperties.#ctor">
+            <summary>
+            Constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.GlobalContextProperties"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.GlobalContextProperties.Remove(System.String)">
+            <summary>
+            Remove a property from the global context
+            </summary>
+            <param name="key">the key for the entry to remove</param>
+            <remarks>
+            <para>
+            Removing an entry from the global context properties is relatively expensive compared
+            with reading a value. 
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.GlobalContextProperties.Clear">
+            <summary>
+            Clear the global context properties
+            </summary>
+        </member>
+        <member name="M:log4net.Util.GlobalContextProperties.GetReadOnlyProperties">
+            <summary>
+            Get a readonly immutable copy of the properties
+            </summary>
+            <returns>the current global context properties</returns>
+            <remarks>
+            <para>
+            This implementation is fast because the GlobalContextProperties class
+            stores a readonly copy of the properties.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.GlobalContextProperties.Item(System.String)">
+            <summary>
+            Gets or sets the value of a property
+            </summary>
+            <value>
+            The value for the property with the specified key
+            </value>
+            <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 
+            the properties is created.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.LevelMapping">
+            <summary>
+            Manages a mapping from levels to <see cref="T:log4net.Util.LevelMappingEntry"/>
+            </summary>
+            <remarks>
+            <para>
+            Manages an ordered mapping from <see cref="T:log4net.Core.Level"/> instances 
+            to <see cref="T:log4net.Util.LevelMappingEntry"/> subclasses.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.LevelMapping.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+            <remarks>
+            <para>
+            Initialise a new instance of <see cref="T:log4net.Util.LevelMapping"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.LevelMapping.Add(log4net.Util.LevelMappingEntry)">
+            <summary>
+            Add a <see cref="T:log4net.Util.LevelMappingEntry"/> to this mapping
+            </summary>
+            <param name="entry">the entry to add</param>
+            <remarks>
+            <para>
+            If a <see cref="T:log4net.Util.LevelMappingEntry"/> has previously been added
+            for the same <see cref="T:log4net.Core.Level"/> then that entry will be 
+            overwritten.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.LevelMapping.Lookup(log4net.Core.Level)">
+            <summary>
+            Lookup the mapping for the specified level
+            </summary>
+            <param name="level">the level to lookup</param>
+            <returns>the <see cref="T:log4net.Util.LevelMappingEntry"/> for the level or <c>null</c> if no mapping found</returns>
+            <remarks>
+            <para>
+            Lookup the value for the specified level. Finds the nearest
+            mapping value for the level that is equal to or less than the
+            <paramref name="level"/> specified.
+            </para>
+            <para>
+            If no mapping could be found then <c>null</c> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.LevelMapping.ActivateOptions">
+            <summary>
+            Initialize options
+            </summary>
+            <remarks>
+            <para>
+            Caches the sorted list of <see cref="T:log4net.Util.LevelMappingEntry"/> in an array
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.LogicalThreadContextProperties">
+            <summary>
+            Implementation of Properties collection for the <see cref="T:log4net.LogicalThreadContext"/>
+            </summary>
+            <remarks>
+            <para>
+            Class implements a collection of properties that is specific to each thread.
+            The class is not synchronized as each thread has its own <see cref="T:log4net.Util.PropertiesDictionary"/>.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.LogicalThreadContextProperties.#ctor">
+            <summary>
+            Constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.LogicalThreadContextProperties"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.LogicalThreadContextProperties.Remove(System.String)">
+            <summary>
+            Remove a property
+            </summary>
+            <param name="key">the key for the entry to remove</param>
+            <remarks>
+            <para>
+            Remove the value for the specified <paramref name="key"/> from the context.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.LogicalThreadContextProperties.Clear">
+            <summary>
+            Clear all the context properties
+            </summary>
+            <remarks>
+            <para>
+            Clear all the context properties
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.LogicalThreadContextProperties.GetProperties(System.Boolean)">
+            <summary>
+            Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread.
+            </summary>
+            <param name="create">create the dictionary if it does not exist, otherwise return null if is does not exist</param>
+            <returns>the properties for this thread</returns>
+            <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 must clone the collection before doings so.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.LogicalThreadContextProperties.Item(System.String)">
+            <summary>
+            Gets or sets the value of a property
+            </summary>
+            <value>
+            The value for the property with the specified key
+            </value>
+            <remarks>
+            <para>
+            Get or set the property value for the <paramref name="key"/> specified.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.LogLog">
+            <summary>
+            Outputs log statements from within the log4net assembly.
+            </summary>
+            <remarks>
+            <para>
+            Log4net components cannot make log4net logging calls. However, it is
+            sometimes useful for the user to learn about what log4net is
+            doing.
+            </para>
+            <para>
+            All log4net internal debug calls go to the standard output stream
+            whereas internal error messages are sent to the standard error output 
+            stream.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Util.LogLog.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Util.LogLog"/> class. 
+            </summary>
+            <remarks>
+            <para>
+            Uses a private access modifier to prevent instantiation of this class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.LogLog.#cctor">
+            <summary>
+            Static constructor that initializes logging by reading 
+            settings from the application configuration file.
+            </summary>
+            <remarks>
+            <para>
+            The <c>log4net.Internal.Debug</c> application setting
+            controls internal debugging. This setting should be set
+            to <c>true</c> to enable debugging.
+            </para>
+            <para>
+            The <c>log4net.Internal.Quiet</c> application setting
+            suppresses all internal logging including error messages. 
+            This setting should be set to <c>true</c> to enable message
+            suppression.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.LogLog.Debug(System.String)">
+            <summary>
+            Writes log4net internal debug messages to the 
+            standard output stream.
+            </summary>
+            <param name="message">The message to log.</param>
+            <remarks>
+            <para>
+            All internal debug messages are prepended with 
+            the string "log4net: ".
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.LogLog.Debug(System.String,System.Exception)">
+            <summary>
+            Writes log4net internal debug messages to the 
+            standard output stream.
+            </summary>
+            <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 
+            the string "log4net: ".
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.LogLog.Warn(System.String)">
+            <summary>
+            Writes log4net internal warning messages to the 
+            standard error stream.
+            </summary>
+            <param name="message">The message to log.</param>
+            <remarks>
+            <para>
+            All internal warning messages are prepended with 
+            the string "log4net:WARN ".
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.LogLog.Warn(System.String,System.Exception)">
+            <summary>
+            Writes log4net internal warning messages to the 
+            standard error stream.
+            </summary>
+            <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 
+            the string "log4net:WARN ".
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.LogLog.Error(System.String)">
+            <summary>
+            Writes log4net internal error messages to the 
+            standard error stream.
+            </summary>
+            <param name="message">The message to log.</param>
+            <remarks>
+            <para>
+            All internal error messages are prepended with 
+            the string "log4net:ERROR ".
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.LogLog.Error(System.String,System.Exception)">
+            <summary>
+            Writes log4net internal error messages to the 
+            standard error stream.
+            </summary>
+            <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 
+            the string "log4net:ERROR ".
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.LogLog.EmitOutLine(System.String)">
+            <summary>
+            Writes output to the standard output stream.  
+            </summary>
+            <param name="message">The message to log.</param>
+            <remarks>
+            <para>
+            Writes to both Console.Out and System.Diagnostics.Trace.
+            Note that the System.Diagnostics.Trace is not supported
+            on the Compact Framework.
+            </para>
+            <para>
+            If the AppDomain is not configured with a config file then
+            the call to System.Diagnostics.Trace may fail. This is only
+            an issue if you are programmatically creating your own AppDomains.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.LogLog.EmitErrorLine(System.String)">
+            <summary>
+            Writes output to the standard error stream.  
+            </summary>
+            <param name="message">The message to log.</param>
+            <remarks>
+            <para>
+            Writes to both Console.Error and System.Diagnostics.Trace.
+            Note that the System.Diagnostics.Trace is not supported
+            on the Compact Framework.
+            </para>
+            <para>
+            If the AppDomain is not configured with a config file then
+            the call to System.Diagnostics.Trace may fail. This is only
+            an issue if you are programmatically creating your own AppDomains.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Util.LogLog.s_debugEnabled">
+            <summary>
+             Default debug level
+            </summary>
+        </member>
+        <member name="F:log4net.Util.LogLog.s_quietMode">
+            <summary>
+            In quietMode not even errors generate any output.
+            </summary>
+        </member>
+        <member name="P:log4net.Util.LogLog.InternalDebugging">
+            <summary>
+            Gets or sets a value indicating whether log4net internal logging
+            is enabled or disabled.
+            </summary>
+            <value>
+            <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 
+            displayed.
+            </para>
+            <para>
+            This value can be set by setting the application setting 
+            <c>log4net.Internal.Debug</c> in the application configuration
+            file.
+            </para>
+            <para>
+            The default value is <c>false</c>, i.e. debugging is
+            disabled.
+            </para>
+            </remarks>
+            <example>
+            <para>
+            The following example enables internal debugging using the 
+            application configuration file :
+            </para>
+            <code lang="XML" escaped="true">
+            <configuration>
+            	<appSettings>
+            		<add key="log4net.Internal.Debug" value="true" />
+            	</appSettings>
+            </configuration>
+            </code>
+            </example>
+        </member>
+        <member name="P:log4net.Util.LogLog.QuietMode">
+            <summary>
+            Gets or sets a value indicating whether log4net should generate no output
+            from internal logging, not even for errors. 
+            </summary>
+            <value>
+            <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="P:log4net.Util.LogLog.InternalDebugging"/> setting and 
+            disables all debug also.
+            </para>
+            <para>This value can be set by setting the application setting
+            <c>log4net.Internal.Quiet</c> in the application configuration file.
+            </para>
+            <para>
+            The default value is <c>false</c>, i.e. internal logging is not
+            disabled.
+            </para>
+            </remarks>
+            <example>
+            The following example disables internal logging using the 
+            application configuration file :
+            <code lang="XML" escaped="true">
+            <configuration>
+            	<appSettings>
+            		<add key="log4net.Internal.Quiet" value="true"/>
+            	</appSettings>
+            </configuration>
+            </code>
+            </example>
+        </member>
+        <member name="P:log4net.Util.LogLog.IsDebugEnabled">
+            <summary>
+            Test if LogLog.Debug is enabled for output.
+            </summary>
+            <value>
+            <c>true</c> if Debug is enabled
+            </value>
+            <remarks>
+            <para>
+            Test if LogLog.Debug is enabled for output.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.LogLog.IsWarnEnabled">
+            <summary>
+            Test if LogLog.Warn is enabled for output.
+            </summary>
+            <value>
+            <c>true</c> if Warn is enabled
+            </value>
+            <remarks>
+            <para>
+            Test if LogLog.Warn is enabled for output.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.LogLog.IsErrorEnabled">
+            <summary>
+            Test if LogLog.Error is enabled for output.
+            </summary>
+            <value>
+            <c>true</c> if Error is enabled
+            </value>
+            <remarks>
+            <para>
+            Test if LogLog.Error is enabled for output.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.NullDictionaryEnumerator">
+            <summary>
+            An always empty <see cref="T:System.Collections.IDictionaryEnumerator"/>.
+            </summary>
+            <remarks>
+            <para>
+            A singleton implementation of the <see cref="T:System.Collections.IDictionaryEnumerator"/> over a collection
+            that is empty and not modifiable.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Util.NullDictionaryEnumerator.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Util.NullDictionaryEnumerator"/> class. 
+            </summary>
+            <remarks>
+            <para>
+            Uses a private access modifier to enforce the singleton pattern.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.NullDictionaryEnumerator.MoveNext">
+            <summary>
+            Test if the enumerator can advance, if so advance.
+            </summary>
+            <returns><c>false</c> as the <see cref="T:log4net.Util.NullDictionaryEnumerator"/> cannot advance.</returns>
+            <remarks>
+            <para>
+            As the enumerator is over an empty collection its <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/>
+            value cannot be moved over a valid position, therefore <see cref="M:log4net.Util.NullDictionaryEnumerator.MoveNext"/>
+            will always return <c>false</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.NullDictionaryEnumerator.Reset">
+            <summary>
+            Resets the enumerator back to the start.
+            </summary>
+            <remarks>
+            <para>
+            As the enumerator is over an empty collection <see cref="M:log4net.Util.NullDictionaryEnumerator.Reset"/> does nothing.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Util.NullDictionaryEnumerator.s_instance">
+            <summary>
+            The singleton instance of the <see cref="T:log4net.Util.NullDictionaryEnumerator"/>.
+            </summary>
+        </member>
+        <member name="P:log4net.Util.NullDictionaryEnumerator.Instance">
+            <summary>
+            Gets the singleton instance of the <see cref="T:log4net.Util.NullDictionaryEnumerator"/>.
+            </summary>
+            <returns>The singleton instance of the <see cref="T:log4net.Util.NullDictionaryEnumerator"/>.</returns>
+            <remarks>
+            <para>
+            Gets the singleton instance of the <see cref="T:log4net.Util.NullDictionaryEnumerator"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.NullDictionaryEnumerator.Current">
+            <summary>
+            Gets the current object from the enumerator.
+            </summary>
+            <remarks>
+            Throws an <see cref="T:System.InvalidOperationException"/> because the 
+            <see cref="T:log4net.Util.NullDictionaryEnumerator"/> never has a current value.
+            </remarks>
+            <remarks>
+            <para>
+            As the enumerator is over an empty collection its <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/>
+            value cannot be moved over a valid position, therefore <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/>
+            will throw an <see cref="T:System.InvalidOperationException"/>.
+            </para>
+            </remarks>
+            <exception cref="T:System.InvalidOperationException">The collection is empty and <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/> 
+            cannot be positioned over a valid location.</exception>
+        </member>
+        <member name="P:log4net.Util.NullDictionaryEnumerator.Key">
+            <summary>
+            Gets the current key from the enumerator.
+            </summary>
+            <remarks>
+            Throws an exception because the <see cref="T:log4net.Util.NullDictionaryEnumerator"/>
+            never has a current value.
+            </remarks>
+            <remarks>
+            <para>
+            As the enumerator is over an empty collection its <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/>
+            value cannot be moved over a valid position, therefore <see cref="P:log4net.Util.NullDictionaryEnumerator.Key"/>
+            will throw an <see cref="T:System.InvalidOperationException"/>.
+            </para>
+            </remarks>
+            <exception cref="T:System.InvalidOperationException">The collection is empty and <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/> 
+            cannot be positioned over a valid location.</exception>
+        </member>
+        <member name="P:log4net.Util.NullDictionaryEnumerator.Value">
+            <summary>
+            Gets the current value from the enumerator.
+            </summary>
+            <value>The current value from the enumerator.</value>
+            <remarks>
+            Throws an <see cref="T:System.InvalidOperationException"/> because the 
+            <see cref="T:log4net.Util.NullDictionaryEnumerator"/> never has a current value.
+            </remarks>
+            <remarks>
+            <para>
+            As the enumerator is over an empty collection its <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/>
+            value cannot be moved over a valid position, therefore <see cref="P:log4net.Util.NullDictionaryEnumerator.Value"/>
+            will throw an <see cref="T:System.InvalidOperationException"/>.
+            </para>
+            </remarks>
+            <exception cref="T:System.InvalidOperationException">The collection is empty and <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/> 
+            cannot be positioned over a valid location.</exception>
+        </member>
+        <member name="P:log4net.Util.NullDictionaryEnumerator.Entry">
+            <summary>
+            Gets the current entry from the enumerator.
+            </summary>
+            <remarks>
+            Throws an <see cref="T:System.InvalidOperationException"/> because the 
+            <see cref="T:log4net.Util.NullDictionaryEnumerator"/> never has a current entry.
+            </remarks>
+            <remarks>
+            <para>
+            As the enumerator is over an empty collection its <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/>
+            value cannot be moved over a valid position, therefore <see cref="P:log4net.Util.NullDictionaryEnumerator.Entry"/>
+            will throw an <see cref="T:System.InvalidOperationException"/>.
+            </para>
+            </remarks>
+            <exception cref="T:System.InvalidOperationException">The collection is empty and <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/> 
+            cannot be positioned over a valid location.</exception>
+        </member>
+        <member name="T:log4net.Util.NullEnumerator">
+            <summary>
+            An always empty <see cref="T:System.Collections.IEnumerator"/>.
+            </summary>
+            <remarks>
+            <para>
+            A singleton implementation of the <see cref="T:System.Collections.IEnumerator"/> over a collection
+            that is empty and not modifiable.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Util.NullEnumerator.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Util.NullEnumerator"/> class. 
+            </summary>
+            <remarks>
+            <para>
+            Uses a private access modifier to enforce the singleton pattern.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.NullEnumerator.MoveNext">
+            <summary>
+            Test if the enumerator can advance, if so advance
+            </summary>
+            <returns><c>false</c> as the <see cref="T:log4net.Util.NullEnumerator"/> cannot advance.</returns>
+            <remarks>
+            <para>
+            As the enumerator is over an empty collection its <see cref="P:log4net.Util.NullEnumerator.Current"/>
+            value cannot be moved over a valid position, therefore <see cref="M:log4net.Util.NullEnumerator.MoveNext"/>
+            will always return <c>false</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.NullEnumerator.Reset">
+            <summary>
+            Resets the enumerator back to the start.
+            </summary>
+            <remarks>
+            <para>
+            As the enumerator is over an empty collection <see cref="M:log4net.Util.NullEnumerator.Reset"/> does nothing.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Util.NullEnumerator.s_instance">
+            <summary>
+            The singleton instance of the <see cref="T:log4net.Util.NullEnumerator"/>.
+            </summary>
+        </member>
+        <member name="P:log4net.Util.NullEnumerator.Instance">
+            <summary>
+            Get the singleton instance of the <see cref="T:log4net.Util.NullEnumerator"/>.
+            </summary>
+            <returns>The singleton instance of the <see cref="T:log4net.Util.NullEnumerator"/>.</returns>
+            <remarks>
+            <para>
+            Gets the singleton instance of the <see cref="T:log4net.Util.NullEnumerator"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.NullEnumerator.Current">
+            <summary>
+            Gets the current object from the enumerator.
+            </summary>
+            <remarks>
+            Throws an <see cref="T:System.InvalidOperationException"/> because the 
+            <see cref="T:log4net.Util.NullDictionaryEnumerator"/> never has a current value.
+            </remarks>
+            <remarks>
+            <para>
+            As the enumerator is over an empty collection its <see cref="P:log4net.Util.NullEnumerator.Current"/>
+            value cannot be moved over a valid position, therefore <see cref="P:log4net.Util.NullEnumerator.Current"/>
+            will throw an <see cref="T:System.InvalidOperationException"/>.
+            </para>
+            </remarks>
+            <exception cref="T:System.InvalidOperationException">The collection is empty and <see cref="P:log4net.Util.NullEnumerator.Current"/> 
+            cannot be positioned over a valid location.</exception>
+        </member>
+        <member name="T:log4net.Util.NullSecurityContext">
+            <summary>
+            A SecurityContext used when a SecurityContext is not required
+            </summary>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.Util.NullSecurityContext"/> is a no-op implementation of the
+            <see cref="T:log4net.Core.SecurityContext"/> base class. It is used where a <see cref="T:log4net.Core.SecurityContext"/>
+            is required but one has not been provided.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="F:log4net.Util.NullSecurityContext.Instance">
+            <summary>
+            Singleton instance of <see cref="T:log4net.Util.NullSecurityContext"/>
+            </summary>
+            <remarks>
+            <para>
+            Singleton instance of <see cref="T:log4net.Util.NullSecurityContext"/>
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.NullSecurityContext.#ctor">
+            <summary>
+            Private constructor
+            </summary>
+            <remarks>
+            <para>
+            Private constructor for singleton pattern.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.NullSecurityContext.Impersonate(System.Object)">
+            <summary>
+            Impersonate this SecurityContext
+            </summary>
+            <param name="state">State supplied by the caller</param>
+            <returns><c>null</c></returns>
+            <remarks>
+            <para>
+            No impersonation is done and <c>null</c> is always returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.OnlyOnceErrorHandler">
+            <summary>
+            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>
+            <para>
+            The error message is printed on the standard error output stream.
+            </para>
+            <para>
+            This policy aims at protecting an otherwise working application
+            from being flooded with error messages when logging fails.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Util.OnlyOnceErrorHandler.#ctor">
+            <summary>
+            Default Constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.OnlyOnceErrorHandler"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.OnlyOnceErrorHandler.#ctor(System.String)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="prefix">The prefix to use for each message.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.OnlyOnceErrorHandler"/> class
+            with the specified prefix.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.OnlyOnceErrorHandler.Error(System.String,System.Exception,log4net.Core.ErrorCode)">
+            <summary>
+            Log an 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>
+            Prints the message and the stack trace of the exception on the standard
+            error output stream.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.OnlyOnceErrorHandler.Error(System.String,System.Exception)">
+            <summary>
+            Log an Error
+            </summary>
+            <param name="message">The error message.</param>
+            <param name="e">The exception.</param>
+            <remarks>
+            <para>
+            Prints the message and the stack trace of the exception on the standard
+            error output stream.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.OnlyOnceErrorHandler.Error(System.String)">
+            <summary>
+            Log an error
+            </summary>
+            <param name="message">The error message.</param>
+            <remarks>
+            <para>
+            Print a the error message passed as parameter on the standard
+            error output stream.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Util.OnlyOnceErrorHandler.m_firstTime">
+            <summary>
+            Flag to indicate if it is the first error
+            </summary>
+        </member>
+        <member name="F:log4net.Util.OnlyOnceErrorHandler.m_prefix">
+            <summary>
+            String to prefix each message with
+            </summary>
+        </member>
+        <member name="P:log4net.Util.OnlyOnceErrorHandler.IsEnabled">
+            <summary>
+            Is error logging enabled
+            </summary>
+            <remarks>
+            <para>
+            Is error logging enabled. Logging is only enabled for the
+            first error delivered to the <see cref="T:log4net.Util.OnlyOnceErrorHandler"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.OptionConverter">
+            <summary>
+            A convenience class to convert property values to specific types.
+            </summary>
+            <remarks>
+            <para>
+            Utility functions for converting types and parsing values.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Util.OptionConverter.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Util.OptionConverter"/> class. 
+            </summary>
+            <remarks>
+            <para>
+            Uses a private access modifier to prevent instantiation of this class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.OptionConverter.ToBoolean(System.String,System.Boolean)">
+            <summary>
+            Converts a string to a <see cref="T:System.Boolean"/> value.
+            </summary>
+            <param name="argValue">String to convert.</param>
+            <param name="defaultValue">The default value.</param>
+            <returns>The <see cref="T:System.Boolean"/> 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. 
+            Otherwise, <paramref name="defaultValue"/> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.OptionConverter.ToFileSize(System.String,System.Int64)">
+            <summary>
+            Parses a file size into a number.
+            </summary>
+            <param name="argValue">String to parse.</param>
+            <param name="defaultValue">The default value.</param>
+            <returns>The <see cref="T:System.Int64"/> value of <paramref name="argValue"/>.</returns>
+            <remarks>
+            <para>
+            Parses a file size of the form: number[KB|MB|GB] into a
+            long value. It is scaled with the appropriate multiplier.
+            </para>
+            <para>
+            <paramref name="defaultValue"/> is returned when <paramref name="argValue"/>
+            cannot be converted to a <see cref="T:System.Int64"/> value.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.OptionConverter.ConvertStringTo(System.Type,System.String)">
+            <summary>
+            Converts a string to an object.
+            </summary>
+            <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 
+            conversion failed.
+            </returns>
+            <remarks>
+            <para>
+            Converts a string to an object. Uses the converter registry to try
+            to convert the string value into the specified target type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.OptionConverter.CanConvertTypeTo(System.Type,System.Type)">
+            <summary>
+            Checks if there is an appropriate type conversion from the source type to the target type.
+            </summary>
+            <param name="sourceType">The type to convert from.</param>
+            <param name="targetType">The type to convert to.</param>
+            <returns><c>true</c> if there is a conversion from the source type to the target type.</returns>
+            <remarks>
+            Checks if there is an appropriate type conversion from the source type to the target type.
+            <para>
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.OptionConverter.ConvertTypeTo(System.Object,System.Type)">
+            <summary>
+            Converts an object to the target type.
+            </summary>
+            <param name="sourceInstance">The object to convert to the target type.</param>
+            <param name="targetType">The type to convert to.</param>
+            <returns>The converted object.</returns>
+            <remarks>
+            <para>
+            Converts an object to the target type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.OptionConverter.InstantiateByClassName(System.String,System.Type,System.Object)">
+            <summary>
+            Instantiates an object given a class name.
+            </summary>
+            <param name="className">The fully qualified class name of the object to instantiate.</param>
+            <param name="superClass">The class to which the new object should belong.</param>
+            <param name="defaultValue">The object to return in case of non-fulfillment.</param>
+            <returns>
+            An instance of the <paramref name="className"/> or <paramref name="defaultValue"/>
+            if the object could not be instantiated.
+            </returns>
+            <remarks>
+            <para>
+            Checks that the <paramref name="className"/> is a subclass of
+            <paramref name="superClass"/>. If that test fails or the object could
+            not be instantiated, then <paramref name="defaultValue"/> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.OptionConverter.SubstituteVariables(System.String,System.Collections.IDictionary)">
+            <summary>
+            Performs variable substitution in string <paramref name="val"/> from the 
+            values of keys found in <paramref name="props"/>.
+            </summary>
+            <param name="value">The string on which variable substitution is performed.</param>
+            <param name="props">The dictionary to use to lookup variables.</param>
+            <returns>The result of the substitutions.</returns>
+            <remarks>
+            <para>
+            The variable substitution delimiters are <b>${</b> and <b>}</b>.
+            </para>
+            <para>
+            For example, if props contains <c>key=value</c>, then the call
+            </para>
+            <para>
+            <code lang="C#">
+            string s = OptionConverter.SubstituteVariables("Value of key is ${key}.");
+            </code>
+            </para>
+            <para>
+            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 
+            defaults to an empty string.
+            </para>
+            <para>
+            For example, if system properties contains no value for the key
+            "nonExistentKey", then the call
+            </para>
+            <para>
+            <code lang="C#">
+            string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]");
+            </code>
+            </para>
+            <para>
+            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 "}". 
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.OptionConverter.ParseEnum(System.Type,System.String,System.Boolean)">
+            <summary>
+            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>
+        </member>
+        <member name="T:log4net.Util.PatternParser">
+            <summary>
+            Most of the work of the <see cref="T:log4net.Layout.PatternLayout"/> class
+            is delegated to the PatternParser class.
+            </summary>
+            <remarks>
+            <para>
+            The <c>PatternParser</c> processes a pattern string and
+            returns a chain of <see cref="T:log4net.Util.PatternConverter"/> objects.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Util.PatternParser.#ctor(System.String)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="pattern">The pattern to parse.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.PatternParser"/> class 
+            with the specified pattern string.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternParser.Parse">
+            <summary>
+            Parses the pattern into a chain of pattern converters.
+            </summary>
+            <returns>The head of a chain of pattern converters.</returns>
+            <remarks>
+            <para>
+            Parses the pattern into a chain of pattern converters.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternParser.BuildCache">
+            <summary>
+            Build the unified cache of converters from the static and instance maps
+            </summary>
+            <returns>the list of all the converter names</returns>
+            <remarks>
+            <para>
+            Build the unified cache of converters from the static and instance maps
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternParser.ParseInternal(System.String,System.String[])">
+            <summary>
+            Internal method to parse the specified pattern to find specified matches
+            </summary>
+            <param name="pattern">the pattern to parse</param>
+            <param name="matches">the converter names to match in the pattern</param>
+            <remarks>
+            <para>
+            The matches param must be sorted such that longer strings come before shorter ones.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternParser.ProcessLiteral(System.String)">
+            <summary>
+            Process a parsed literal
+            </summary>
+            <param name="text">the literal text</param>
+        </member>
+        <member name="M:log4net.Util.PatternParser.ProcessConverter(System.String,System.String,log4net.Util.FormattingInfo)">
+            <summary>
+            Process a parsed converter pattern
+            </summary>
+            <param name="converterName">the name of the converter</param>
+            <param name="option">the optional option for the converter</param>
+            <param name="formattingInfo">the formatting info for the converter</param>
+        </member>
+        <member name="M:log4net.Util.PatternParser.AddConverter(log4net.Util.PatternConverter)">
+            <summary>
+            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>
+        </member>
+        <member name="F:log4net.Util.PatternParser.m_head">
+            <summary>
+            The first pattern converter in the chain
+            </summary>
+        </member>
+        <member name="F:log4net.Util.PatternParser.m_tail">
+            <summary>
+             the last pattern converter in the chain
+            </summary>
+        </member>
+        <member name="F:log4net.Util.PatternParser.m_pattern">
+            <summary>
+            The pattern
+            </summary>
+        </member>
+        <member name="F:log4net.Util.PatternParser.m_patternConverters">
+            <summary>
+            Internal map of converter identifiers to converter types
+            </summary>
+            <remarks>
+            <para>
+            This map overrides the static s_globalRulesRegistry map.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.PatternParser.PatternConverters">
+            <summary>
+            Get the converter registry used by this parser
+            </summary>
+            <value>
+            The converter registry used by this parser
+            </value>
+            <remarks>
+            <para>
+            Get the converter registry used by this parser
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.PatternParser.StringLengthComparer">
+            <summary>
+            Sort strings by length
+            </summary>
+            <remarks>
+            <para>
+            <see cref="T:System.Collections.IComparer"/> that orders strings by string length.
+            The longest strings are placed first
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.PatternString">
+            <summary>
+            This class implements a patterned string.
+            </summary>
+            <remarks>
+            <para>
+            This string has embedded patterns that are resolved and expanded
+            when the string is formatted.
+            </para>
+            <para>
+            This class functions similarly to the <see cref="T:log4net.Layout.PatternLayout"/>
+            in that it accepts a pattern and renders it to a string. Unlike the 
+            <see cref="T:log4net.Layout.PatternLayout"/> however the <c>PatternString</c>
+            does not render the properties of a specific <see cref="T:log4net.Core.LoggingEvent"/> but
+            of the process in general.
+            </para>
+            <para>
+            The recognized conversion pattern names are:
+            </para>
+            <list type="table">
+                <listheader>
+                    <term>Conversion Pattern Name</term>
+                    <description>Effect</description>
+                </listheader>
+                <item>
+                    <term>appdomain</term>
+                    <description>
+                        <para>
+                        Used to output the friendly name of the current AppDomain.
+                        </para>
+                    </description>
+                </item>
+                <item>
+                    <term>date</term>
+                    <description>
+            			<para>
+            			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 
+            			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 
+            			given then ISO8601 format is
+            			assumed (<see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/>).
+            			</para>
+            			<para>
+            			The date format specifier admits the same syntax as the
+            			time pattern string of the <see cref="M:System.DateTime.ToString(System.String)"/>.
+            			</para>
+            			<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="T:log4net.DateFormatter.AbsoluteTimeDateFormatter"/>, 
+            			<see cref="T:log4net.DateFormatter.DateTimeDateFormatter"/> and respectively 
+            			<see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/>. For example, 
+            			<b>%date{ISO8601}</b> or <b>%date{ABSOLUTE}</b>.
+            			</para>
+            			<para>
+            			These dedicated date formatters perform significantly
+            			better than <see cref="M:System.DateTime.ToString(System.String)"/>.
+            			</para>
+                    </description>
+                </item>
+                <item>
+                    <term>env</term>
+                    <description>
+                        <para>
+            			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.
+                        </para>
+                        <para>
+                        The <c>env</c> pattern is not supported on the .NET Compact Framework.
+                        </para>
+                    </description>
+                </item>
+                <item>
+                    <term>identity</term>
+                    <description>
+            			<para>
+            			Used to output the user name for the currently active user
+            			(Principal.Identity.Name).
+            			</para>
+                    </description>
+                </item>
+                <item>
+                    <term>newline</term>
+                    <description>
+            			<para>
+            			Outputs the platform dependent line separator character or
+            			characters.
+            			</para>
+            			<para>
+            			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> 
+                    </description>
+                </item>
+                <item>
+                    <term>processid</term>
+                    <description>
+                        <para>
+            			Used to output the system process ID for the current process.
+                        </para>
+                    </description>
+                </item>
+                <item>
+                    <term>property</term>
+                    <description>
+            			<para>
+            			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 
+            			which the event was originally logged.
+            			</para>
+            			<para>
+            			If no key is specified, e.g. <b>%property</b> then all the keys and their
+            			values are printed in a comma separated list.
+            			</para>
+            			<para>
+            			The properties of an event are combined from a number of different
+            			contexts. These are listed below in the order in which they are searched.
+            			</para>
+            			<list type="definition">
+            				<item>
+            					<term>the thread properties</term>
+            					<description>
+            					The <see cref="P:log4net.ThreadContext.Properties"/> that are set on the current
+            					thread. These properties are shared by all events logged on this thread.
+            					</description>
+            				</item>
+            				<item>
+            					<term>the global properties</term>
+            					<description>
+            					The <see cref="P:log4net.GlobalContext.Properties"/> that are set globally. These 
+            					properties are shared by all the threads in the AppDomain.
+            					</description>
+            				</item>
+            			</list>
+                    </description>
+                </item>
+                <item>
+                    <term>random</term>
+                    <description>
+                        <para>
+                        Used to output a random string of characters. The string is made up of
+                        uppercase letters and numbers. By default the string is 4 characters long.
+                        The length of the string can be specified within braces directly following the
+            			pattern specifier, e.g. <b>%random{8}</b> would output an 8 character string.
+                        </para>
+                    </description>
+                </item>
+                <item>
+                    <term>username</term>
+                    <description>
+            			<para>
+            			Used to output the WindowsIdentity for the currently
+            			active user.
+            			</para>
+                    </description>
+                </item>
+                <item>
+                    <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 
+            			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 
+            			given then ISO8601 format is
+            			assumed (<see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/>).
+            			</para>
+            			<para>
+            			The date format specifier admits the same syntax as the
+            			time pattern string of the <see cref="M:System.DateTime.ToString(System.String)"/>.
+            			</para>
+            			<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="T:log4net.DateFormatter.AbsoluteTimeDateFormatter"/>, 
+            			<see cref="T:log4net.DateFormatter.DateTimeDateFormatter"/> and respectively 
+            			<see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/>. For example, 
+            			<b>%utcdate{ISO8601}</b> or <b>%utcdate{ABSOLUTE}</b>.
+            			</para>
+            			<para>
+            			These dedicated date formatters perform significantly
+            			better than <see cref="M:System.DateTime.ToString(System.String)"/>.
+            			</para>
+                    </description>
+                </item>
+            	<item>
+            		<term>%</term>
+            		<description>
+            			<para>
+            			The sequence %% outputs a single percent sign.
+            			</para>
+            		</description>
+            	</item>
+            </list>
+            <para>
+            Additional pattern converters may be registered with a specific <see cref="T:log4net.Util.PatternString"/>
+            instance using <see cref="M:log4net.Util.PatternString.AddConverter(log4net.Util.PatternString.ConverterInfo)"/> or
+            <see cref="M:log4net.Util.PatternString.AddConverter(System.String,System.Type)"/>.
+            </para>
+            <para>
+            See the <see cref="T:log4net.Layout.PatternLayout"/> for details on the 
+            <i>format modifiers</i> supported by the patterns.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="F:log4net.Util.PatternString.s_globalRulesRegistry">
+            <summary>
+            Internal map of converter identifiers to converter types.
+            </summary>
+        </member>
+        <member name="F:log4net.Util.PatternString.m_pattern">
+            <summary>
+            the pattern
+            </summary>
+        </member>
+        <member name="F:log4net.Util.PatternString.m_head">
+            <summary>
+            the head of the pattern converter chain
+            </summary>
+        </member>
+        <member name="F:log4net.Util.PatternString.m_instanceRulesRegistry">
+            <summary>
+            patterns defined on this PatternString only
+            </summary>
+        </member>
+        <member name="M:log4net.Util.PatternString.#cctor">
+            <summary>
+            Initialize the global registry
+            </summary>
+        </member>
+        <member name="M:log4net.Util.PatternString.#ctor">
+            <summary>
+            Default constructor
+            </summary>
+            <remarks>
+            <para>
+            Initialize a new instance of <see cref="T:log4net.Util.PatternString"/>
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternString.#ctor(System.String)">
+            <summary>
+            Constructs a PatternString
+            </summary>
+            <param name="pattern">The pattern to use with this PatternString</param>
+            <remarks>
+            <para>
+            Initialize a new instance of <see cref="T:log4net.Util.PatternString"/> with the pattern specified.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternString.ActivateOptions">
+            <summary>
+            Initialize object options
+            </summary>
+            <remarks>
+            <para>
+            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
+            activation scheme. The <see cref="M:log4net.Util.PatternString.ActivateOptions"/> method must 
+            be called on this object after the configuration properties have
+            been set. Until <see cref="M:log4net.Util.PatternString.ActivateOptions"/> is called this
+            object is in an undefined state and must not be used. 
+            </para>
+            <para>
+            If any of the configuration properties are modified then 
+            <see cref="M:log4net.Util.PatternString.ActivateOptions"/> must be called again.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternString.CreatePatternParser(System.String)">
+            <summary>
+            Create the <see cref="T:log4net.Util.PatternParser"/> used to parse the pattern
+            </summary>
+            <param name="pattern">the pattern to parse</param>
+            <returns>The <see cref="T:log4net.Util.PatternParser"/></returns>
+            <remarks>
+            <para>
+            Returns PatternParser used to parse the conversion string. Subclasses
+            may override this to return a subclass of PatternParser which recognize
+            custom conversion pattern name.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternString.Format(System.IO.TextWriter)">
+            <summary>
+            Produces a formatted string as specified by the conversion pattern.
+            </summary>
+            <param name="writer">The TextWriter to write the formatted event to</param>
+            <remarks>
+            <para>
+            Format the pattern to the <paramref name="writer"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternString.Format">
+            <summary>
+            Format the pattern as a string
+            </summary>
+            <returns>the pattern formatted as a string</returns>
+            <remarks>
+            <para>
+            Format the pattern to a string.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternString.AddConverter(log4net.Util.PatternString.ConverterInfo)">
+            <summary>
+            Add a converter to this PatternString
+            </summary>
+            <param name="converterInfo">the converter info</param>
+            <remarks>
+            <para>
+            This version of the method is used by the configurator.
+            Programmatic users should use the alternative <see cref="M:log4net.Util.PatternString.AddConverter(System.String,System.Type)"/> method.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternString.AddConverter(System.String,System.Type)">
+            <summary>
+            Add a converter to this PatternString
+            </summary>
+            <param name="name">the name of the conversion pattern for this converter</param>
+            <param name="type">the type of the converter</param>
+            <remarks>
+            <para>
+            Add a converter to this PatternString
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.PatternString.ConversionPattern">
+            <summary>
+            Gets or sets the pattern formatting string
+            </summary>
+            <value>
+            The pattern formatting string
+            </value>
+            <remarks>
+            <para>
+            The <b>ConversionPattern</b> option. This is the string which
+            controls formatting and consists of a mix of literal content and
+            conversion specifiers.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.PatternString.ConverterInfo">
+            <summary>
+            Wrapper class used to map converter names to converter types
+            </summary>
+            <remarks>
+            <para>
+            Wrapper class used to map converter names to converter types
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PatternString.ConverterInfo.#ctor">
+            <summary>
+            default constructor
+            </summary>
+        </member>
+        <member name="P:log4net.Util.PatternString.ConverterInfo.Name">
+            <summary>
+            Gets or sets the name of the conversion pattern
+            </summary>
+            <value>
+            The name of the conversion pattern
+            </value>
+            <remarks>
+            <para>
+            Gets or sets the name of the conversion pattern
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.PatternString.ConverterInfo.Type">
+            <summary>
+            Gets or sets the type of the converter
+            </summary>
+            <value>
+            The type of the converter
+            </value>
+            <remarks>
+            <para>
+            Gets or sets the type of the converter
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.PropertiesDictionary">
+            <summary>
+            String keyed object map.
+            </summary>
+            <remarks>
+            <para>
+            While this collection is serializable only member 
+            objects that are serializable will
+            be serialized along with this collection.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="T:log4net.Util.ReadOnlyPropertiesDictionary">
+            <summary>
+            String keyed object map that is read only.
+            </summary>
+            <remarks>
+            <para>
+            This collection is readonly and cannot be modified.
+            </para>
+            <para>
+            While this collection is serializable only member 
+            objects that are serializable will
+            be serialized along with this collection.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="F:log4net.Util.ReadOnlyPropertiesDictionary.m_hashtable">
+            <summary>
+            The Hashtable used to store the properties data
+            </summary>
+        </member>
+        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.#ctor">
+            <summary>
+            Constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.ReadOnlyPropertiesDictionary"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.#ctor(log4net.Util.ReadOnlyPropertiesDictionary)">
+            <summary>
+            Copy Constructor
+            </summary>
+            <param name="propertiesDictionary">properties to copy</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.ReadOnlyPropertiesDictionary"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Deserialization constructor
+            </summary>
+            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data.</param>
+            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.ReadOnlyPropertiesDictionary"/> class 
+            with serialized data.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.GetKeys">
+            <summary>
+            Gets the key names.
+            </summary>
+            <returns>An array of all the keys.</returns>
+            <remarks>
+            <para>
+            Gets the key names.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.Contains(System.String)">
+            <summary>
+            Test if the dictionary contains a specified key
+            </summary>
+            <param name="key">the key to look for</param>
+            <returns>true if the dictionary contains the specified key</returns>
+            <remarks>
+            <para>
+            Test if the dictionary contains a specified key
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Serializes this object into the <see cref="T:System.Runtime.Serialization.SerializationInfo"/> provided.
+            </summary>
+            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> to populate with data.</param>
+            <param name="context">The destination for this serialization.</param>
+            <remarks>
+            <para>
+            Serializes this object into the <see cref="T:System.Runtime.Serialization.SerializationInfo"/> provided.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#GetEnumerator">
+            <summary>
+            See <see cref="M:System.Collections.IDictionary.GetEnumerator"/>
+            </summary>
+        </member>
+        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#Remove(System.Object)">
+            <summary>
+            See <see cref="M:System.Collections.IDictionary.Remove(System.Object)"/>
+            </summary>
+            <param name="key"></param>
+        </member>
+        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#Contains(System.Object)">
+            <summary>
+            See <see cref="M:System.Collections.IDictionary.Contains(System.Object)"/>
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.Clear">
+            <summary>
+            Remove all properties from the properties collection
+            </summary>
+        </member>
+        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#Add(System.Object,System.Object)">
+            <summary>
+            See <see cref="M:System.Collections.IDictionary.Add(System.Object,System.Object)"/>
+            </summary>
+            <param name="key"></param>
+            <param name="value"></param>
+        </member>
+        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
+            <summary>
+            See <see cref="M:System.Collections.ICollection.CopyTo(System.Array,System.Int32)"/>
+            </summary>
+            <param name="array"></param>
+            <param name="index"></param>
+        </member>
+        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IEnumerable#GetEnumerator">
+            <summary>
+            See <see cref="M:System.Collections.IEnumerable.GetEnumerator"/>
+            </summary>
+        </member>
+        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.Item(System.String)">
+            <summary>
+            Gets or sets the value of the  property with the specified key.
+            </summary>
+            <value>
+            The value of the property with the specified key.
+            </value>
+            <param name="key">The key of the property to get or set.</param>
+            <remarks>
+            <para>
+            The property value will only be serialized if it is serializable.
+            If it cannot be serialized it will be silently ignored if
+            a serialization operation is performed.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.InnerHashtable">
+            <summary>
+            The hashtable used to store the properties
+            </summary>
+            <value>
+            The internal collection used to store the properties
+            </value>
+            <remarks>
+            <para>
+            The hashtable used to store the properties
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#IsReadOnly">
+            <summary>
+            See <see cref="P:System.Collections.IDictionary.IsReadOnly"/>
+            </summary>
+        </member>
+        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#$Item$(System.Object)">
+            <summary>
+            See <see cref="P:System.Collections.IDictionary.Item(System.Object)"/>
+            </summary>
+        </member>
+        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#Values">
+            <summary>
+            See <see cref="P:System.Collections.IDictionary.Values"/>
+            </summary>
+        </member>
+        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#Keys">
+            <summary>
+            See <see cref="P:System.Collections.IDictionary.Keys"/>
+            </summary>
+        </member>
+        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#IsFixedSize">
+            <summary>
+            See <see cref="P:System.Collections.IDictionary.IsFixedSize"/>
+            </summary>
+        </member>
+        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#ICollection#IsSynchronized">
+            <summary>
+            See <see cref="P:System.Collections.ICollection.IsSynchronized"/>
+            </summary>
+        </member>
+        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.Count">
+            <summary>
+            The number of properties in this collection
+            </summary>
+        </member>
+        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#ICollection#SyncRoot">
+            <summary>
+            See <see cref="P:System.Collections.ICollection.SyncRoot"/>
+            </summary>
+        </member>
+        <member name="M:log4net.Util.PropertiesDictionary.#ctor">
+            <summary>
+            Constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.PropertiesDictionary"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PropertiesDictionary.#ctor(log4net.Util.ReadOnlyPropertiesDictionary)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="propertiesDictionary">properties to copy</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.PropertiesDictionary"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PropertiesDictionary.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Util.PropertiesDictionary"/> class 
+            with serialized data.
+            </summary>
+            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data.</param>
+            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
+            <remarks>
+            <para>
+            Because this class is sealed the serialization constructor is private.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PropertiesDictionary.Remove(System.String)">
+            <summary>
+            Remove the entry with the specified key from this dictionary
+            </summary>
+            <param name="key">the key for the entry to remove</param>
+            <remarks>
+            <para>
+            Remove the entry with the specified key from this dictionary
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#GetEnumerator">
+            <summary>
+            See <see cref="M:System.Collections.IDictionary.GetEnumerator"/>
+            </summary>
+            <returns>an enumerator</returns>
+            <remarks>
+            <para>
+            Returns a <see cref="T:System.Collections.IDictionaryEnumerator"/> over the contest of this collection.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#Remove(System.Object)">
+            <summary>
+            See <see cref="M:System.Collections.IDictionary.Remove(System.Object)"/>
+            </summary>
+            <param name="key">the key to remove</param>
+            <remarks>
+            <para>
+            Remove the entry with the specified key from this dictionary
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#Contains(System.Object)">
+            <summary>
+            See <see cref="M:System.Collections.IDictionary.Contains(System.Object)"/>
+            </summary>
+            <param name="key">the key to lookup in the collection</param>
+            <returns><c>true</c> if the collection contains the specified key</returns>
+            <remarks>
+            <para>
+            Test if this collection contains a specified key.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PropertiesDictionary.Clear">
+            <summary>
+            Remove all properties from the properties collection
+            </summary>
+            <remarks>
+            <para>
+            Remove all properties from the properties collection
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#Add(System.Object,System.Object)">
+            <summary>
+            See <see cref="M:System.Collections.IDictionary.Add(System.Object,System.Object)"/>
+            </summary>
+            <param name="key">the key</param>
+            <param name="value">the value to store for the key</param>
+            <remarks>
+            <para>
+            Store a value for the specified <see cref="T:System.String"/> <paramref name="key"/>.
+            </para>
+            </remarks>
+            <exception cref="T:System.ArgumentException">Thrown if the <paramref name="key"/> is not a string</exception>
+        </member>
+        <member name="M:log4net.Util.PropertiesDictionary.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
+            <summary>
+            See <see cref="M:System.Collections.ICollection.CopyTo(System.Array,System.Int32)"/>
+            </summary>
+            <param name="array"></param>
+            <param name="index"></param>
+        </member>
+        <member name="M:log4net.Util.PropertiesDictionary.System#Collections#IEnumerable#GetEnumerator">
+            <summary>
+            See <see cref="M:System.Collections.IEnumerable.GetEnumerator"/>
+            </summary>
+        </member>
+        <member name="P:log4net.Util.PropertiesDictionary.Item(System.String)">
+            <summary>
+            Gets or sets the value of the  property with the specified key.
+            </summary>
+            <value>
+            The value of the property with the specified key.
+            </value>
+            <param name="key">The key of the property to get or set.</param>
+            <remarks>
+            <para>
+            The property value will only be serialized if it is serializable.
+            If it cannot be serialized it will be silently ignored if
+            a serialization operation is performed.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#IsReadOnly">
+            <summary>
+            See <see cref="P:System.Collections.IDictionary.IsReadOnly"/>
+            </summary>
+            <value>
+            <c>false</c>
+            </value>
+            <remarks>
+            <para>
+            This collection is modifiable. This property always
+            returns <c>false</c>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#$Item$(System.Object)">
+            <summary>
+            See <see cref="P:System.Collections.IDictionary.Item(System.Object)"/>
+            </summary>
+            <value>
+            The value for the key specified.
+            </value>
+            <remarks>
+            <para>
+            Get or set a value for the specified <see cref="T:System.String"/> <paramref name="key"/>.
+            </para>
+            </remarks>
+            <exception cref="T:System.ArgumentException">Thrown if the <paramref name="key"/> is not a string</exception>
+        </member>
+        <member name="P:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#Values">
+            <summary>
+            See <see cref="P:System.Collections.IDictionary.Values"/>
+            </summary>
+        </member>
+        <member name="P:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#Keys">
+            <summary>
+            See <see cref="P:System.Collections.IDictionary.Keys"/>
+            </summary>
+        </member>
+        <member name="P:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#IsFixedSize">
+            <summary>
+            See <see cref="P:System.Collections.IDictionary.IsFixedSize"/>
+            </summary>
+        </member>
+        <member name="P:log4net.Util.PropertiesDictionary.System#Collections#ICollection#IsSynchronized">
+            <summary>
+            See <see cref="P:System.Collections.ICollection.IsSynchronized"/>
+            </summary>
+        </member>
+        <member name="P:log4net.Util.PropertiesDictionary.System#Collections#ICollection#SyncRoot">
+            <summary>
+            See <see cref="P:System.Collections.ICollection.SyncRoot"/>
+            </summary>
+        </member>
+        <member name="T:log4net.Util.ProtectCloseTextWriter">
+            <summary>
+            A <see cref="T:System.IO.TextWriter"/> that ignores the <see cref="M:log4net.Util.ProtectCloseTextWriter.Close"/> message
+            </summary>
+            <remarks>
+            <para>
+            This writer is used in special cases where it is necessary 
+            to protect a writer from being closed by a client.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.ProtectCloseTextWriter.#ctor(System.IO.TextWriter)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="writer">the writer to actually write to</param>
+            <remarks>
+            <para>
+            Create a new ProtectCloseTextWriter using a writer
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ProtectCloseTextWriter.Attach(System.IO.TextWriter)">
+            <summary>
+            Attach this instance to a different underlying <see cref="T:System.IO.TextWriter"/>
+            </summary>
+            <param name="writer">the writer to attach to</param>
+            <remarks>
+            <para>
+            Attach this instance to a different underlying <see cref="T:System.IO.TextWriter"/>
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ProtectCloseTextWriter.Close">
+            <summary>
+            Does not close the underlying output writer.
+            </summary>
+            <remarks>
+            <para>
+            Does not close the underlying output writer.
+            This method does nothing.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.ReaderWriterLock">
+            <summary>
+            Defines a lock that supports single writers and multiple readers
+            </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 
+            one-at-a-time lock, such as <see cref="T: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 
+            the caller must not rely on multiple simultaneous readers.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.ReaderWriterLock.#ctor">
+            <summary>
+            Constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.ReaderWriterLock"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ReaderWriterLock.AcquireReaderLock">
+            <summary>
+            Acquires a reader lock
+            </summary>
+            <remarks>
+            <para>
+            <see cref="M:log4net.Util.ReaderWriterLock.AcquireReaderLock"/> blocks if a different thread has the writer 
+            lock, or if at least one thread is waiting for the writer lock.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ReaderWriterLock.ReleaseReaderLock">
+            <summary>
+            Decrements the lock count
+            </summary>
+            <remarks>
+            <para>
+            <see cref="M:log4net.Util.ReaderWriterLock.ReleaseReaderLock"/> decrements the lock count. When the count 
+            reaches zero, the lock is released.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ReaderWriterLock.AcquireWriterLock">
+            <summary>
+            Acquires the writer lock
+            </summary>
+            <remarks>
+            <para>
+            This method blocks if another thread has a reader lock or writer lock.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ReaderWriterLock.ReleaseWriterLock">
+            <summary>
+            Decrements the lock count on the writer lock
+            </summary>
+            <remarks>
+            <para>
+            ReleaseWriterLock decrements the writer lock count. 
+            When the count reaches zero, the writer lock is released.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.ReusableStringWriter">
+            <summary>
+            A <see cref="T:System.IO.StringWriter"/> that can be <see cref="M:log4net.Util.ReusableStringWriter.Reset(System.Int32,System.Int32)"/> and reused
+            </summary>
+            <remarks>
+            <para>
+            A <see cref="T:System.IO.StringWriter"/> that can be <see cref="M:log4net.Util.ReusableStringWriter.Reset(System.Int32,System.Int32)"/> and reused.
+            This uses a single buffer for string operations.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.ReusableStringWriter.#ctor(System.IFormatProvider)">
+            <summary>
+            Create an instance of <see cref="T:log4net.Util.ReusableStringWriter"/>
+            </summary>
+            <param name="formatProvider">the format provider to use</param>
+            <remarks>
+            <para>
+            Create an instance of <see cref="T:log4net.Util.ReusableStringWriter"/>
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ReusableStringWriter.Dispose(System.Boolean)">
+            <summary>
+            Override Dispose to prevent closing of writer
+            </summary>
+            <param name="disposing">flag</param>
+            <remarks>
+            <para>
+            Override Dispose to prevent closing of writer
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ReusableStringWriter.Reset(System.Int32,System.Int32)">
+            <summary>
+            Reset this string writer so that it can be reused.
+            </summary>
+            <param name="maxCapacity">the maximum buffer capacity before it is trimmed</param>
+            <param name="defaultSize">the default size to make the buffer</param>
+            <remarks>
+            <para>
+            Reset this string writer so that it can be reused.
+            The internal buffers are cleared and reset.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.SystemInfo">
+            <summary>
+            Utility class for system specific information.
+            </summary>
+            <remarks>
+            <para>
+            Utility class of static methods for system specific information.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+            <author>Alexey Solofnenko</author>
+        </member>
+        <member name="M:log4net.Util.SystemInfo.#ctor">
+            <summary>
+            Private constructor to prevent instances.
+            </summary>
+            <remarks>
+            <para>
+            Only static methods are exposed from this type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.SystemInfo.#cctor">
+            <summary>
+            Initialize default values for private static fields.
+            </summary>
+            <remarks>
+            <para>
+            Only static methods are exposed from this type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.SystemInfo.AssemblyLocationInfo(System.Reflection.Assembly)">
+            <summary>
+            Gets the assembly location path for the specified assembly.
+            </summary>
+            <param name="myAssembly">The assembly to get the location for.</param>
+            <returns>The location of the assembly.</returns>
+            <remarks>
+            <para>
+            This method does not guarantee to return the correct path
+            to the assembly. If only tries to give an indication as to
+            where the assembly was loaded from.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.SystemInfo.AssemblyQualifiedName(System.Type)">
+            <summary>
+            Gets the fully qualified name of the <see cref="T:System.Type"/>, including 
+            the name of the assembly from which the <see cref="T:System.Type"/> was 
+            loaded.
+            </summary>
+            <param name="type">The <see cref="T:System.Type"/> to get the fully qualified name for.</param>
+            <returns>The fully qualified name for the <see cref="T:System.Type"/>.</returns>
+            <remarks>
+            <para>
+            This is equivalent to the <c>Type.AssemblyQualifiedName</c> property,
+            but this method works on the .NET Compact Framework 1.0 as well as
+            the full .NET runtime.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.SystemInfo.AssemblyShortName(System.Reflection.Assembly)">
+            <summary>
+            Gets the short name of the <see cref="T:System.Reflection.Assembly"/>.
+            </summary>
+            <param name="myAssembly">The <see cref="T:System.Reflection.Assembly"/> to get the name for.</param>
+            <returns>The short name of the <see cref="T:System.Reflection.Assembly"/>.</returns>
+            <remarks>
+            <para>
+            The short name of the assembly is the <see cref="P:System.Reflection.Assembly.FullName"/> 
+            without the version, culture, or public key. i.e. it is just the 
+            assembly's file name without the extension.
+            </para>
+            <para>
+            Use this rather than <c>Assembly.GetName().Name</c> because that
+            is not available on the Compact Framework.
+            </para>
+            <para>
+            Because of a FileIOPermission security demand we cannot do
+            the obvious Assembly.GetName().Name. We are allowed to get
+            the <see cref="P:System.Reflection.Assembly.FullName"/> of the assembly so we 
+            start from there and strip out just the assembly name.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.SystemInfo.AssemblyFileName(System.Reflection.Assembly)">
+            <summary>
+            Gets the file name portion of the <see cref="T:System.Reflection.Assembly"/>, including the extension.
+            </summary>
+            <param name="myAssembly">The <see cref="T:System.Reflection.Assembly"/> to get the file name for.</param>
+            <returns>The file name of the assembly.</returns>
+            <remarks>
+            <para>
+            Gets the file name portion of the <see cref="T:System.Reflection.Assembly"/>, including the extension.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.SystemInfo.GetTypeFromString(System.Type,System.String,System.Boolean,System.Boolean)">
+            <summary>
+            Loads the type specified in the type string.
+            </summary>
+            <param name="relativeType">A sibling type to use to load the type.</param>
+            <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>
+            <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 
+            <see cref="M:System.Type.GetType(System.String,System.Boolean)"/>.
+            </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 
+            then all the loaded assemblies will be searched for the type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.SystemInfo.GetTypeFromString(System.String,System.Boolean,System.Boolean)">
+            <summary>
+            Loads the type specified in the type string.
+            </summary>
+            <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>		
+            <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 
+            <see cref="M:System.Type.GetType(System.String,System.Boolean)"/>.
+            </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 
+            in the assembly then all the loaded assemblies will be searched for the type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.SystemInfo.GetTypeFromString(System.Reflection.Assembly,System.String,System.Boolean,System.Boolean)">
+            <summary>
+            Loads the type specified in the type string.
+            </summary>
+            <param name="relativeAssembly">An assembly to load the type from.</param>
+            <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>
+            <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 
+            <see cref="M:System.Type.GetType(System.String,System.Boolean)"/>.
+            </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 
+            will be searched for the type.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.SystemInfo.NewGuid">
+            <summary>
+            Generate a new guid
+            </summary>
+            <returns>A new Guid</returns>
+            <remarks>
+            <para>
+            Generate a new guid
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.SystemInfo.CreateArgumentOutOfRangeException(System.String,System.Object,System.String)">
+            <summary>
+            Create an <see cref="T:System.ArgumentOutOfRangeException"/>
+            </summary>
+            <param name="parameterName">The name of the parameter that caused the exception</param>
+            <param name="actualValue">The value of the argument that causes this exception</param>
+            <param name="message">The message that describes the error</param>
+            <returns>the ArgumentOutOfRangeException object</returns>
+            <remarks>
+            <para>
+            Create a new instance of the <see cref="T:System.ArgumentOutOfRangeException"/> class 
+            with a specified error message, the parameter name, and the value 
+            of the argument.
+            </para>
+            <para>
+            The Compact Framework does not support the 3 parameter constructor for the
+            <see cref="T:System.ArgumentOutOfRangeException"/> type. This method provides an
+            implementation that works for all platforms.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.SystemInfo.TryParse(System.String,System.Int32@)">
+            <summary>
+            Parse a string into an <see cref="T:System.Int32"/> 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>
+        </member>
+        <member name="M:log4net.Util.SystemInfo.TryParse(System.String,System.Int64@)">
+            <summary>
+            Parse a string into an <see cref="T:System.Int64"/> 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>
+        </member>
+        <member name="M:log4net.Util.SystemInfo.GetAppSetting(System.String)">
+            <summary>
+            Lookup an application setting
+            </summary>
+            <param name="key">the application settings key to lookup</param>
+            <returns>the value for the key, or <c>null</c></returns>
+            <remarks>
+            <para>
+            Configuration APIs are not supported under the Compact Framework
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.SystemInfo.ConvertToFullPath(System.String)">
+            <summary>
+            Convert a path into a fully qualified local file path.
+            </summary>
+            <param name="path">The path to convert.</param>
+            <returns>The fully qualified path.</returns>
+            <remarks>
+            <para>
+            Converts the path specified to a fully
+            qualified path. If the path is relative it is
+            taken as relative from the application base 
+            directory.
+            </para>
+            <para>
+            The path specified must be a local file path, a URI is not supported.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.SystemInfo.CreateCaseInsensitiveHashtable">
+            <summary>
+            Creates a new case-insensitive instance of the <see cref="T:System.Collections.Hashtable"/> class with the default initial capacity. 
+            </summary>
+            <returns>A new case-insensitive instance of the <see cref="T:System.Collections.Hashtable"/> class with the default initial capacity</returns>
+            <remarks>
+            <para>
+            The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Util.SystemInfo.EmptyTypes">
+            <summary>
+            Gets an empty array of types.
+            </summary>
+            <remarks>
+            <para>
+            The <c>Type.EmptyTypes</c> field is not available on
+            the .NET Compact Framework 1.0.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Util.SystemInfo.s_hostName">
+            <summary>
+            Cache the host name for the current machine
+            </summary>
+        </member>
+        <member name="F:log4net.Util.SystemInfo.s_appFriendlyName">
+            <summary>
+            Cache the application friendly name
+            </summary>
+        </member>
+        <member name="F:log4net.Util.SystemInfo.s_nullText">
+            <summary>
+            Text to output when a <c>null</c> is encountered.
+            </summary>
+        </member>
+        <member name="F:log4net.Util.SystemInfo.s_notAvailableText">
+            <summary>
+            Text to output when an unsupported feature is requested.
+            </summary>
+        </member>
+        <member name="F:log4net.Util.SystemInfo.s_processStartTime">
+            <summary>
+            Start time for the current process.
+            </summary>
+        </member>
+        <member name="P:log4net.Util.SystemInfo.NewLine">
+            <summary>
+            Gets the system dependent line terminator.
+            </summary>
+            <value>
+            The system dependent line terminator.
+            </value>
+            <remarks>
+            <para>
+            Gets the system dependent line terminator.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.SystemInfo.ApplicationBaseDirectory">
+            <summary>
+            Gets the base directory for this <see cref="T:System.AppDomain"/>.
+            </summary>
+            <value>The base directory path for the current <see cref="T:System.AppDomain"/>.</value>
+            <remarks>
+            <para>
+            Gets the base directory for this <see cref="T:System.AppDomain"/>.
+            </para>
+            <para>
+            The value returned may be either a local file path or a URI.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.SystemInfo.ConfigurationFileLocation">
+            <summary>
+            Gets the path to the configuration file for the current <see cref="T:System.AppDomain"/>.
+            </summary>
+            <value>The path to the configuration file for the current <see cref="T:System.AppDomain"/>.</value>
+            <remarks>
+            <para>
+            The .NET Compact Framework 1.0 does not have a concept of a configuration
+            file. For this runtime, we use the entry assembly location as the root for
+            the configuration file name.
+            </para>
+            <para>
+            The value returned may be either a local file path or a URI.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.SystemInfo.EntryAssemblyLocation">
+            <summary>
+            Gets the path to the file that first executed in the current <see cref="T:System.AppDomain"/>.
+            </summary>
+            <value>The path to the entry assembly.</value>
+            <remarks>
+            <para>
+            Gets the path to the file that first executed in the current <see cref="T:System.AppDomain"/>.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.SystemInfo.CurrentThreadId">
+            <summary>
+            Gets the ID of the current thread.
+            </summary>
+            <value>The ID of the current thread.</value>
+            <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 
+            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 
+            <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 
+            change if the runtime is using fibers.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.SystemInfo.HostName">
+            <summary>
+            Get the host name or machine name for the current machine
+            </summary>
+            <value>
+            The hostname or machine name
+            </value>
+            <remarks>
+            <para>
+            Get the host name or machine name for the current machine
+            </para>
+            <para>
+            The host name (<see cref="M:System.Net.Dns.GetHostName"/>) or
+            the machine name (<c>Environment.MachineName</c>) for
+            the current machine, or if neither of these are available
+            then <c>NOT AVAILABLE</c> is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.SystemInfo.ApplicationFriendlyName">
+            <summary>
+            Get this application's friendly name
+            </summary>
+            <value>
+            The friendly name of this application as a string
+            </value>
+            <remarks>
+            <para>
+            If available the name of the application is retrieved from
+            the <c>AppDomain</c> using <c>AppDomain.CurrentDomain.FriendlyName</c>.
+            </para>
+            <para>
+            Otherwise the file name of the entry assembly is used.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.SystemInfo.ProcessStartTime">
+            <summary>
+            Get the start time for the current process.
+            </summary>
+            <remarks>
+            <para>
+            This is the 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>
+        </member>
+        <member name="P:log4net.Util.SystemInfo.NullText">
+            <summary>
+            Text to output when a <c>null</c> is encountered.
+            </summary>
+            <remarks>
+            <para>
+            Use this value to indicate a <c>null</c> has been encountered while
+            outputting a string representation of an item.
+            </para>
+            <para>
+            The default value is <c>(null)</c>. This value can be overridden by specifying
+            a value for the <c>log4net.NullText</c> appSetting in the application's
+            .config file.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.SystemInfo.NotAvailableText">
+            <summary>
+            Text to output when an unsupported feature is requested.
+            </summary>
+            <remarks>
+            <para>
+            Use this value when an unsupported feature is requested.
+            </para>
+            <para>
+            The default value is <c>NOT AVAILABLE</c>. This value can be overridden by specifying
+            a value for the <c>log4net.NotAvailableText</c> appSetting in the application's
+            .config file.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.SystemStringFormat">
+            <summary>
+            Utility class that represents a format string.
+            </summary>
+            <remarks>
+            <para>
+            Utility class that represents a format string.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.SystemStringFormat.#ctor(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Initialise the <see cref="T:log4net.Util.SystemStringFormat"/>
+            </summary>
+            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">A <see cref="T:System.String"/> containing zero or more format items.</param>
+            <param name="args">An <see cref="T:System.Object"/> array containing zero or more objects to format.</param>
+        </member>
+        <member name="M:log4net.Util.SystemStringFormat.ToString">
+            <summary>
+            Format the string and arguments
+            </summary>
+            <returns>the formatted string</returns>
+        </member>
+        <member name="M:log4net.Util.SystemStringFormat.StringFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Replaces the format item in a specified <see cref="T:System.String"/> with the text equivalent 
+            of the value of a corresponding <see cref="T:System.Object"/> instance in a specified array.
+            A specified parameter supplies culture-specific formatting information.
+            </summary>
+            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">A <see cref="T:System.String"/> containing zero or more format items.</param>
+            <param name="args">An <see cref="T: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="T:System.String"/> 
+            equivalent of the corresponding instances of <see cref="T:System.Object"/> in args.
+            </returns>
+            <remarks>
+            <para>
+            This method does not throw exceptions. If an exception thrown while formatting the result the
+            exception and arguments are returned in the result string.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.SystemStringFormat.StringFormatError(System.Exception,System.String,System.Object[])">
+            <summary>
+            Process an error during StringFormat
+            </summary>
+        </member>
+        <member name="M:log4net.Util.SystemStringFormat.RenderArray(System.Array,System.Text.StringBuilder)">
+            <summary>
+            Dump the contents of an array into a string builder
+            </summary>
+        </member>
+        <member name="M:log4net.Util.SystemStringFormat.RenderObject(System.Object,System.Text.StringBuilder)">
+            <summary>
+            Dump an object to a string
+            </summary>
+        </member>
+        <member name="T:log4net.Util.ThreadContextProperties">
+            <summary>
+            Implementation of Properties collection for the <see cref="T:log4net.ThreadContext"/>
+            </summary>
+            <remarks>
+            <para>
+            Class implements a collection of properties that is specific to each thread.
+            The class is not synchronized as each thread has its own <see cref="T:log4net.Util.PropertiesDictionary"/>.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="F:log4net.Util.ThreadContextProperties.s_threadLocalSlot">
+            <summary>
+            The thread local data slot to use to store a PropertiesDictionary.
+            </summary>
+        </member>
+        <member name="M:log4net.Util.ThreadContextProperties.#ctor">
+            <summary>
+            Internal constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.ThreadContextProperties"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ThreadContextProperties.Remove(System.String)">
+            <summary>
+            Remove a property
+            </summary>
+            <param name="key">the key for the entry to remove</param>
+            <remarks>
+            <para>
+            Remove a property
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ThreadContextProperties.Clear">
+            <summary>
+            Clear all properties
+            </summary>
+            <remarks>
+            <para>
+            Clear all properties
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ThreadContextProperties.GetProperties(System.Boolean)">
+            <summary>
+            Get the <c>PropertiesDictionary</c> for this thread.
+            </summary>
+            <param name="create">create the dictionary if it does not exist, otherwise return null if is does not exist</param>
+            <returns>the properties for this thread</returns>
+            <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 must clone the collection before doing so.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.ThreadContextProperties.Item(System.String)">
+            <summary>
+            Gets or sets the value of a property
+            </summary>
+            <value>
+            The value for the property with the specified key
+            </value>
+            <remarks>
+            <para>
+            Gets or sets the value of a property
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.ThreadContextStack">
+            <summary>
+            Implementation of Stack for the <see cref="T:log4net.ThreadContext"/>
+            </summary>
+            <remarks>
+            <para>
+            Implementation of Stack for the <see cref="T:log4net.ThreadContext"/>
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="F:log4net.Util.ThreadContextStack.m_stack">
+            <summary>
+            The stack store.
+            </summary>
+        </member>
+        <member name="M:log4net.Util.ThreadContextStack.#ctor">
+            <summary>
+            Internal constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.ThreadContextStack"/> class. 
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ThreadContextStack.Clear">
+            <summary>
+            Clears all the contextual information held in this stack.
+            </summary>
+            <remarks>
+            <para>
+            Clears all the contextual information held in this stack.
+            Only call this if you think that this tread is being reused after
+            a previous call execution which may not have completed correctly.
+            You do not need to use this method if you always guarantee to call
+            the <see cref="M:System.IDisposable.Dispose"/> method of the <see cref="T:System.IDisposable"/>
+            returned from <see cref="M:log4net.Util.ThreadContextStack.Push(System.String)"/> even in exceptional circumstances,
+            for example by using the <c>using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message"))</c> 
+            syntax.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ThreadContextStack.Pop">
+            <summary>
+            Removes the top context from this stack.
+            </summary>
+            <returns>The message in the context that was removed from the top of this stack.</returns>
+            <remarks>
+            <para>
+            Remove the top context from this stack, and return
+            it to the caller. If this stack is empty then an
+            empty string (not <see langword="null"/>) is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ThreadContextStack.Push(System.String)">
+            <summary>
+            Pushes a new context message into this stack.
+            </summary>
+            <param name="message">The new context message.</param>
+            <returns>
+            An <see cref="T:System.IDisposable"/> that can be used to clean up the context stack.
+            </returns>
+            <remarks>
+            <para>
+            Pushes a new context onto this stack. An <see cref="T:System.IDisposable"/>
+            is returned that can be used to clean up this stack. This
+            can be easily combined with the <c>using</c> keyword to scope the
+            context.
+            </para>
+            </remarks>
+            <example>Simple example of using the <c>Push</c> method with the <c>using</c> keyword.
+            <code lang="C#">
+            using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message"))
+            {
+            	log.Warn("This should have an ThreadContext Stack message");
+            }
+            </code>
+            </example>
+        </member>
+        <member name="M:log4net.Util.ThreadContextStack.GetFullMessage">
+            <summary>
+            Gets the current context information for this stack.
+            </summary>
+            <returns>The current context information.</returns>
+        </member>
+        <member name="M:log4net.Util.ThreadContextStack.ToString">
+            <summary>
+            Gets the current context information for this stack.
+            </summary>
+            <returns>Gets the current context information</returns>
+            <remarks>
+            <para>
+            Gets the current context information for this stack.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ThreadContextStack.log4net#Core#IFixingRequired#GetFixedObject">
+            <summary>
+            Get a portable version of this object
+            </summary>
+            <returns>the portable instance of this object</returns>
+            <remarks>
+            <para>
+            Get a cross thread portable version of this object
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.ThreadContextStack.Count">
+            <summary>
+            The number of messages in the stack
+            </summary>
+            <value>
+            The current number of messages in the stack
+            </value>
+            <remarks>
+            <para>
+            The current number of messages in the stack. That is
+            the number of times <see cref="M:log4net.Util.ThreadContextStack.Push(System.String)"/> has been called
+            minus the number of times <see cref="M:log4net.Util.ThreadContextStack.Pop"/> has been called.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.ThreadContextStack.InternalStack">
+            <summary>
+            Gets and sets the internal stack used by this <see cref="T:log4net.Util.ThreadContextStack"/>
+            </summary>
+            <value>The internal storage stack</value>
+            <remarks>
+            <para>
+            This property is provided only to support backward compatability 
+            of the <see cref="T:log4net.NDC"/>. Tytpically the internal stack should not
+            be modified.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.ThreadContextStack.StackFrame">
+            <summary>
+            Inner class used to represent a single context frame in the stack.
+            </summary>
+            <remarks>
+            <para>
+            Inner class used to represent a single context frame in the stack.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ThreadContextStack.StackFrame.#ctor(System.String,log4net.Util.ThreadContextStack.StackFrame)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="message">The message for this context.</param>
+            <param name="parent">The parent context in the chain.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.ThreadContextStack.StackFrame"/> class
+            with the specified message and parent context.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.ThreadContextStack.StackFrame.Message">
+            <summary>
+            Get the message.
+            </summary>
+            <value>The message.</value>
+            <remarks>
+            <para>
+            Get the message.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.ThreadContextStack.StackFrame.FullMessage">
+            <summary>
+            Gets the full text of the context down to the root level.
+            </summary>
+            <value>
+            The full text of the context down to the root level.
+            </value>
+            <remarks>
+            <para>
+            Gets the full text of the context down to the root level.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.ThreadContextStack.AutoPopStackFrame">
+            <summary>
+            Struct returned from the <see cref="M:log4net.Util.ThreadContextStack.Push(System.String)"/> method.
+            </summary>
+            <remarks>
+            <para>
+            This struct implements the <see cref="T:System.IDisposable"/> and is designed to be used
+            with the <see langword="using"/> pattern to remove the stack frame at the end of the scope.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.Util.ThreadContextStack.AutoPopStackFrame.m_frameStack">
+            <summary>
+            The ThreadContextStack internal stack
+            </summary>
+        </member>
+        <member name="F:log4net.Util.ThreadContextStack.AutoPopStackFrame.m_frameDepth">
+            <summary>
+            The depth to trim the stack to when this instance is disposed
+            </summary>
+        </member>
+        <member name="M:log4net.Util.ThreadContextStack.AutoPopStackFrame.#ctor(System.Collections.Stack,System.Int32)">
+            <summary>
+            Constructor
+            </summary>
+            <param name="frameStack">The internal stack used by the ThreadContextStack.</param>
+            <param name="frameDepth">The depth to return the stack to when this object is disposed.</param>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.ThreadContextStack.AutoPopStackFrame"/> class with
+            the specified stack and return depth.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.ThreadContextStack.AutoPopStackFrame.Dispose">
+            <summary>
+            Returns the stack to the correct depth.
+            </summary>
+            <remarks>
+            <para>
+            Returns the stack to the correct depth.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.ThreadContextStacks">
+            <summary>
+            Implementation of Stacks collection for the <see cref="T:log4net.ThreadContext"/>
+            </summary>
+            <remarks>
+            <para>
+            Implementation of Stacks collection for the <see cref="T:log4net.ThreadContext"/>
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.Util.ThreadContextStacks.#ctor(log4net.Util.ContextPropertiesBase)">
+            <summary>
+            Internal constructor
+            </summary>
+            <remarks>
+            <para>
+            Initializes a new instance of the <see cref="T:log4net.Util.ThreadContextStacks"/> class.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.Util.ThreadContextStacks.Item(System.String)">
+            <summary>
+            Gets the named thread context stack
+            </summary>
+            <value>
+            The named stack
+            </value>
+            <remarks>
+            <para>
+            Gets the named thread context stack
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.Util.Transform">
+            <summary>
+            Utility class for transforming strings.
+            </summary>
+            <remarks>
+            <para>
+            Utility class for transforming strings.
+            </para>
+            </remarks>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.Util.Transform.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.Util.Transform"/> class. 
+            </summary>
+            <remarks>
+            <para>
+            Uses a private access modifier to prevent instantiation of this class.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.Transform.WriteEscapedXmlString(System.Xml.XmlWriter,System.String,System.String)">
+            <summary>
+            Write a string to an <see cref="T:System.Xml.XmlWriter"/>
+            </summary>
+            <param name="writer">the writer to write to</param>
+            <param name="textData">the string to write</param>
+            <param name="invalidCharReplacement">The string to replace non XML compliant chars with</param>
+            <remarks>
+            <para>
+            The test is escaped either using XML escape entities
+            or using CDATA sections.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.Transform.MaskXmlInvalidCharacters(System.String,System.String)">
+            <summary>
+            Replace invalid XML characters in text string
+            </summary>
+            <param name="textData">the XML text input string</param>
+            <param name="mask">the string to use in place of invalid characters</param>
+            <returns>A string that does not contain invalid XML characters.</returns>
+            <remarks>
+            <para>
+            Certain Unicode code points are not allowed in the XML InfoSet, for
+            details see: <a href="http://www.w3.org/TR/REC-xml/#charsets">http://www.w3.org/TR/REC-xml/#charsets</a>.
+            </para>
+            <para>
+            This method replaces any illegal characters in the input string
+            with the mask string specified.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.Util.Transform.CountSubstrings(System.String,System.String)">
+            <summary>
+            Count the number of times that the substring occurs in the text
+            </summary>
+            <param name="text">the text to search</param>
+            <param name="substring">the substring to find</param>
+            <returns>the number of times the substring occurs in the text</returns>
+            <remarks>
+            <para>
+            The substring is assumed to be non repeating within itself.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.GlobalContext">
+            <summary>
+            The log4net Global Context.
+            </summary>
+            <remarks>
+            <para>
+            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 
+            be included in the output of log messages. The <see cref="T: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 
+            the current machine.
+            </para>
+            </remarks>
+            <example>
+            <code lang="C#">
+            GlobalContext.Properties["hostname"] = Environment.MachineName;
+            </code>
+            </example>
+            <threadsafety static="true" instance="true"/>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.GlobalContext.#ctor">
+            <summary>
+            Private Constructor. 
+            </summary>
+            <remarks>
+            Uses a private access modifier to prevent instantiation of this class.
+            </remarks>
+        </member>
+        <member name="F:log4net.GlobalContext.s_properties">
+            <summary>
+            The global context properties instance
+            </summary>
+        </member>
+        <member name="P:log4net.GlobalContext.Properties">
+            <summary>
+            The global properties map.
+            </summary>
+            <value>
+            The global properties map.
+            </value>
+            <remarks>
+            <para>
+            The global properties map.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.LogicalThreadContext">
+            <summary>
+            The log4net Logical Thread Context.
+            </summary>
+            <remarks>
+            <para>
+            The <c>LogicalThreadContext</c> provides a location for <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/> specific debugging 
+            information to be stored.
+            The <c>LogicalThreadContext</c> properties override any <see cref="T:log4net.ThreadContext"/> or <see cref="T:log4net.GlobalContext"/>
+            properties with the same name.
+            </para>
+            <para>
+            The Logical Thread Context has a properties map and a stack.
+            The properties and stack can 
+            be included in the output of log messages. The <see cref="T:log4net.Layout.PatternLayout"/>
+            supports selecting and outputting these properties.
+            </para>
+            <para>
+            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.
+            </para>
+            <para>
+            The Logical Thread Context is managed on a per <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/> basis.
+            </para>
+            </remarks>
+            <example>Example of using the thread context properties to store a username.
+            <code lang="C#">
+            LogicalThreadContext.Properties["user"] = userName;
+            log.Info("This log message has a LogicalThreadContext Property called 'user'");
+            </code>
+            </example>
+            <example>Example of how to push a message into the context stack
+            <code lang="C#">
+            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 
+            </code>
+            </example>
+            <threadsafety static="true" instance="true"/>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.LogicalThreadContext.#ctor">
+            <summary>
+            Private Constructor. 
+            </summary>
+            <remarks>
+            <para>
+            Uses a private access modifier to prevent instantiation of this class.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.LogicalThreadContext.s_properties">
+            <summary>
+            The thread context properties instance
+            </summary>
+        </member>
+        <member name="F:log4net.LogicalThreadContext.s_stacks">
+            <summary>
+            The thread context stacks instance
+            </summary>
+        </member>
+        <member name="P:log4net.LogicalThreadContext.Properties">
+            <summary>
+            The thread properties map
+            </summary>
+            <value>
+            The thread properties map
+            </value>
+            <remarks>
+            <para>
+            The <c>LogicalThreadContext</c> properties override any <see cref="T:log4net.ThreadContext"/> 
+            or <see cref="T:log4net.GlobalContext"/> properties with the same name.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.LogicalThreadContext.Stacks">
+            <summary>
+            The thread stacks
+            </summary>
+            <value>
+            stack map
+            </value>
+            <remarks>
+            <para>
+            The logical thread stacks.
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.LogManager">
+            <summary>
+            This class is used by client applications to request logger instances.
+            </summary>
+            <remarks>
+            <para>
+            This class has static methods that are used by a client to request
+            a logger instance. The <see cref="M:log4net.LogManager.GetLogger(System.String)"/> method is 
+            used to retrieve a logger.
+            </para>
+            <para>
+            See the <see cref="T:log4net.ILog"/> interface for more details.
+            </para>
+            </remarks>
+            <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");
+            }
+            </code>
+            </example>
+            <threadsafety static="true" instance="true"/>
+            <seealso cref="T:log4net.ILog"/>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.LogManager.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.LogManager"/> class. 
+            </summary>
+            <remarks>
+            Uses a private access modifier to prevent instantiation of this class.
+            </remarks>
+        </member>
+        <member name="M:log4net.LogManager.Exists(System.String)">
+            <overloads>Returns the named logger if it exists.</overloads>
+            <summary>
+            Returns the named logger if it exists.
+            </summary>
+            <remarks>
+            <para>
+            If the named logger exists (in the default repository) then it
+            returns a reference to the logger, otherwise it returns <c>null</c>.
+            </para>
+            </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>
+        </member>
+        <member name="M:log4net.LogManager.Exists(System.String,System.String)">
+            <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>
+        </member>
+        <member name="M:log4net.LogManager.Exists(System.Reflection.Assembly,System.String)">
+            <summary>
+            Returns the named logger if it exists.
+            </summary>
+            <remarks>
+            <para>
+            If the named logger exists (in the repository for the specified assembly) then it
+            returns a reference to the logger, otherwise it returns
+            <c>null</c>.
+            </para>
+            </remarks>
+            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
+            <param name="name">The fully qualified logger name to look for.</param>
+            <returns>
+            The logger, or <c>null</c> if the logger doesn't exist in the specified
+            assembly's repository.
+            </returns>
+        </member>
+        <member name="M:log4net.LogManager.GetCurrentLoggers">
+            <overloads>Get the currently defined loggers.</overloads>
+            <summary>
+            Returns all the currently defined loggers in the default repository.
+            </summary>
+            <remarks>
+            <para>The root logger is <b>not</b> included in the returned array.</para>
+            </remarks>
+            <returns>All the defined loggers.</returns>
+        </member>
+        <member name="M:log4net.LogManager.GetCurrentLoggers(System.String)">
+            <summary>
+            Returns all the currently defined loggers in the specified repository.
+            </summary>
+            <param name="repository">The repository to lookup in.</param>
+            <remarks>
+            The root logger is <b>not</b> included in the returned array.
+            </remarks>
+            <returns>All the defined loggers.</returns>
+        </member>
+        <member name="M:log4net.LogManager.GetCurrentLoggers(System.Reflection.Assembly)">
+            <summary>
+            Returns all the currently defined loggers in the specified assembly's repository.
+            </summary>
+            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
+            <remarks>
+            The root logger is <b>not</b> included in the returned array.
+            </remarks>
+            <returns>All the defined loggers.</returns>
+        </member>
+        <member name="M:log4net.LogManager.GetLogger(System.String)">
+            <overloads>Get or create a logger.</overloads>
+            <summary>
+            Retrieves or creates a named logger.
+            </summary>
+            <remarks>
+            <para>
+            Retrieves a logger named as the <paramref name="name"/>
+            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>
+            </remarks>
+            <param name="name">The name of the logger to retrieve.</param>
+            <returns>The logger with the name specified.</returns>
+        </member>
+        <member name="M:log4net.LogManager.GetLogger(System.String,System.String)">
+            <summary>
+            Retrieves or creates a named logger.
+            </summary>
+            <remarks>
+            <para>
+            Retrieve a logger named as the <paramref name="name"/>
+            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>
+            </remarks>
+            <param name="repository">The repository to lookup in.</param>
+            <param name="name">The name of the logger to retrieve.</param>
+            <returns>The logger with the name specified.</returns>
+        </member>
+        <member name="M:log4net.LogManager.GetLogger(System.Reflection.Assembly,System.String)">
+            <summary>
+            Retrieves or creates a named logger.
+            </summary>
+            <remarks>
+            <para>
+            Retrieve a logger named as the <paramref name="name"/>
+            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>
+            </remarks>
+            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
+            <param name="name">The name of the logger to retrieve.</param>
+            <returns>The logger with the name specified.</returns>
+        </member>
+        <member name="M:log4net.LogManager.GetLogger(System.Type)">
+            <summary>
+            Shorthand for <see cref="M:log4net.LogManager.GetLogger(System.String)"/>.
+            </summary>
+            <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 be used as the name of the logger to retrieve.</param>
+            <returns>The logger with the name specified.</returns>
+        </member>
+        <member name="M:log4net.LogManager.GetLogger(System.String,System.Type)">
+            <summary>
+            Shorthand for <see cref="M:log4net.LogManager.GetLogger(System.String)"/>.
+            </summary>
+            <remarks>
+            Gets the logger for the fully qualified name of the type specified.
+            </remarks>
+            <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>
+        </member>
+        <member name="M:log4net.LogManager.GetLogger(System.Reflection.Assembly,System.Type)">
+            <summary>
+            Shorthand for <see cref="M:log4net.LogManager.GetLogger(System.String)"/>.
+            </summary>
+            <remarks>
+            Gets the logger for the fully qualified name of the type specified.
+            </remarks>
+            <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>
+        </member>
+        <member name="M:log4net.LogManager.Shutdown">
+            <summary>
+            Shuts down the log4net system.
+            </summary>
+            <remarks>
+            <para>
+            Calling this method will <b>safely</b> close and remove all
+            appenders in all the loggers including root contained in all the
+            default repositories.
+            </para>
+            <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
+            appenders before closing regular appenders. This is allows
+            configurations where a regular appender is attached to a logger
+            and again to a nested appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.LogManager.ShutdownRepository">
+            <overloads>Shutdown a logger repository.</overloads>
+            <summary>
+            Shuts down the default repository.
+            </summary>
+            <remarks>
+            <para>
+            Calling this method will <b>safely</b> close and remove all
+            appenders in all the loggers including root contained in the
+            default repository.
+            </para>
+            <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
+            appenders before closing regular appenders. This is allows
+            configurations where a regular appender is attached to a logger
+            and again to a nested appender.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.LogManager.ShutdownRepository(System.String)">
+            <summary>
+            Shuts down the repository for the repository specified.
+            </summary>
+            <remarks>
+            <para>
+            Calling this method will <b>safely</b> close and remove all
+            appenders in all the loggers including root contained in the
+            <paramref name="repository"/> specified.
+            </para>
+            <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
+            appenders before closing regular appenders. This is allows
+            configurations where a regular appender is attached to a logger
+            and again to a nested appender.
+            </para>
+            </remarks>
+            <param name="repository">The repository to shutdown.</param>
+        </member>
+        <member name="M:log4net.LogManager.ShutdownRepository(System.Reflection.Assembly)">
+            <summary>
+            Shuts down the repository specified.
+            </summary>
+            <remarks>
+            <para>
+            Calling this method will <b>safely</b> close and remove all
+            appenders in all the loggers including root contained in the
+            repository. The repository is looked up using
+            the <paramref name="repositoryAssembly"/> specified.
+            </para>
+            <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
+            appenders before closing regular appenders. This is allows
+            configurations where a regular appender is attached to a logger
+            and again to a nested appender.
+            </para>
+            </remarks>
+            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
+        </member>
+        <member name="M:log4net.LogManager.ResetConfiguration">
+            <overloads>Reset the configuration of a repository</overloads>
+            <summary>
+            Resets all values contained in this repository instance to their defaults.
+            </summary>
+            <remarks>
+            <para>
+            Resets all values contained in the repository instance to their
+            defaults.  This removes all appenders from all loggers, sets
+            the level of all non-root loggers to <c>null</c>,
+            sets their additivity flag to <c>true</c> and sets the level
+            of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. Moreover,
+            message disabling is set to its default "off" value.
+            </para>		
+            </remarks>
+        </member>
+        <member name="M:log4net.LogManager.ResetConfiguration(System.String)">
+            <summary>
+            Resets all values contained in this repository instance to their defaults.
+            </summary>
+            <remarks>
+            <para>
+            Reset all values contained in the repository instance to their
+            defaults.  This removes all appenders from all loggers, sets
+            the level of all non-root loggers to <c>null</c>,
+            sets their additivity flag to <c>true</c> and sets the level
+            of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. Moreover,
+            message disabling is set to its default "off" value.
+            </para>		
+            </remarks>
+            <param name="repository">The repository to reset.</param>
+        </member>
+        <member name="M:log4net.LogManager.ResetConfiguration(System.Reflection.Assembly)">
+            <summary>
+            Resets all values contained in this repository instance to their defaults.
+            </summary>
+            <remarks>
+            <para>
+            Reset all values contained in the repository instance to their
+            defaults.  This removes all appenders from all loggers, sets
+            the level of all non-root loggers to <c>null</c>,
+            sets their additivity flag to <c>true</c> and sets the level
+            of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. Moreover,
+            message disabling is set to its default "off" value.
+            </para>		
+            </remarks>
+            <param name="repositoryAssembly">The assembly to use to lookup the repository to reset.</param>
+        </member>
+        <member name="M:log4net.LogManager.GetLoggerRepository">
+            <overloads>Get the logger repository.</overloads>
+            <summary>
+            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
+            </summary>
+            <remarks>
+            <para>
+            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified
+            by the callers assembly (<see cref="M:System.Reflection.Assembly.GetCallingAssembly"/>).
+            </para>
+            </remarks>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> instance for the default repository.</returns>
+        </member>
+        <member name="M:log4net.LogManager.GetLoggerRepository(System.String)">
+            <summary>
+            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
+            </summary>
+            <returns>The default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.</returns>
+            <remarks>
+            <para>
+            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified
+            by the <paramref name="repository"/> argument.
+            </para>
+            </remarks>
+            <param name="repository">The repository to lookup in.</param>
+        </member>
+        <member name="M:log4net.LogManager.GetLoggerRepository(System.Reflection.Assembly)">
+            <summary>
+            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
+            </summary>
+            <returns>The default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.</returns>
+            <remarks>
+            <para>
+            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified
+            by the <paramref name="repositoryAssembly"/> argument.
+            </para>
+            </remarks>
+            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
+        </member>
+        <member name="M:log4net.LogManager.GetRepository">
+            <overloads>Get a logger repository.</overloads>
+            <summary>
+            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
+            </summary>
+            <remarks>
+            <para>
+            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified
+            by the callers assembly (<see cref="M:System.Reflection.Assembly.GetCallingAssembly"/>).
+            </para>
+            </remarks>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> instance for the default repository.</returns>
+        </member>
+        <member name="M:log4net.LogManager.GetRepository(System.String)">
+            <summary>
+            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
+            </summary>
+            <returns>The default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.</returns>
+            <remarks>
+            <para>
+            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified
+            by the <paramref name="repository"/> argument.
+            </para>
+            </remarks>
+            <param name="repository">The repository to lookup in.</param>
+        </member>
+        <member name="M:log4net.LogManager.GetRepository(System.Reflection.Assembly)">
+            <summary>
+            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
+            </summary>
+            <returns>The default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.</returns>
+            <remarks>
+            <para>
+            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified
+            by the <paramref name="repositoryAssembly"/> argument.
+            </para>
+            </remarks>
+            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
+        </member>
+        <member name="M:log4net.LogManager.CreateDomain(System.Type)">
+            <overloads>Create a domain</overloads>
+            <summary>
+            Creates a repository with the specified repository type.
+            </summary>
+            <remarks>
+            <para>
+            <b>CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.</b>
+            </para>
+            <para>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
+            specified such that a call to <see cref="M:log4net.LogManager.GetRepository"/> will return 
+            the same repository instance.
+            </para>
+            </remarks>
+            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
+            and has a no arg constructor. An instance of this type will be created to act
+            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
+        </member>
+        <member name="M:log4net.LogManager.CreateRepository(System.Type)">
+            <overloads>Create a logger repository.</overloads>
+            <summary>
+            Creates a repository with the specified repository type.
+            </summary>
+            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
+            and has a no arg constructor. An instance of this type will be created to act
+            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
+            specified such that a call to <see cref="M:log4net.LogManager.GetRepository"/> will return 
+            the same repository instance.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.LogManager.CreateDomain(System.String)">
+            <summary>
+            Creates a repository with the specified name.
+            </summary>
+            <remarks>
+            <para>
+            <b>CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.</b>
+            </para>
+            <para>
+            Creates the default type of <see cref="T:log4net.Repository.ILoggerRepository"/> which is a
+            <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> object.
+            </para>
+            <para>
+            The <paramref name="repository"/> name must be unique. Repositories cannot be redefined.
+            An <see cref="T:System.Exception"/> will be thrown if the repository already exists.
+            </para>
+            </remarks>
+            <param name="repository">The name of the repository, this must be unique amongst repositories.</param>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
+            <exception cref="T:log4net.Core.LogException">The specified repository already exists.</exception>
+        </member>
+        <member name="M:log4net.LogManager.CreateRepository(System.String)">
+            <summary>
+            Creates a repository with the specified name.
+            </summary>
+            <remarks>
+            <para>
+            Creates the default type of <see cref="T:log4net.Repository.ILoggerRepository"/> which is a
+            <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> object.
+            </para>
+            <para>
+            The <paramref name="repository"/> name must be unique. Repositories cannot be redefined.
+            An <see cref="T:System.Exception"/> will be thrown if the repository already exists.
+            </para>
+            </remarks>
+            <param name="repository">The name of the repository, this must be unique amongst repositories.</param>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
+            <exception cref="T:log4net.Core.LogException">The specified repository already exists.</exception>
+        </member>
+        <member name="M:log4net.LogManager.CreateDomain(System.String,System.Type)">
+            <summary>
+            Creates a repository with the specified name and repository type.
+            </summary>
+            <remarks>
+            <para>
+            <b>CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.</b>
+            </para>
+            <para>
+            The <paramref name="repository"/> name must be unique. Repositories cannot be redefined.
+            An <see cref="T:System.Exception"/> will be thrown if the repository already exists.
+            </para>
+            </remarks>
+            <param name="repository">The name of the repository, this must be unique to the repository.</param>
+            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
+            and has a no arg constructor. An instance of this type will be created to act
+            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
+            <exception cref="T:log4net.Core.LogException">The specified repository already exists.</exception>
+        </member>
+        <member name="M:log4net.LogManager.CreateRepository(System.String,System.Type)">
+            <summary>
+            Creates a repository with the specified name and repository type.
+            </summary>
+            <remarks>
+            <para>
+            The <paramref name="repository"/> name must be unique. Repositories cannot be redefined.
+            An <see cref="T:System.Exception"/> will be thrown if the repository already exists.
+            </para>
+            </remarks>
+            <param name="repository">The name of the repository, this must be unique to the repository.</param>
+            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
+            and has a no arg constructor. An instance of this type will be created to act
+            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
+            <exception cref="T:log4net.Core.LogException">The specified repository already exists.</exception>
+        </member>
+        <member name="M:log4net.LogManager.CreateDomain(System.Reflection.Assembly,System.Type)">
+            <summary>
+            Creates a repository for the specified assembly and repository type.
+            </summary>
+            <remarks>
+            <para>
+            <b>CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.</b>
+            </para>
+            <para>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
+            specified such that a call to <see cref="M:log4net.LogManager.GetRepository(System.Reflection.Assembly)"/> with the
+            same assembly specified will return the same repository instance.
+            </para>
+            </remarks>
+            <param name="repositoryAssembly">The assembly to use to get the name of the repository.</param>
+            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
+            and has a no arg constructor. An instance of this type will be created to act
+            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
+        </member>
+        <member name="M:log4net.LogManager.CreateRepository(System.Reflection.Assembly,System.Type)">
+            <summary>
+            Creates a repository for the specified assembly and repository type.
+            </summary>
+            <remarks>
+            <para>
+            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
+            specified such that a call to <see cref="M:log4net.LogManager.GetRepository(System.Reflection.Assembly)"/> with the
+            same assembly specified will return the same repository instance.
+            </para>
+            </remarks>
+            <param name="repositoryAssembly">The assembly to use to get the name of the repository.</param>
+            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
+            and has a no arg constructor. An instance of this type will be created to act
+            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
+            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
+        </member>
+        <member name="M:log4net.LogManager.GetAllRepositories">
+            <summary>
+            Gets the list of currently defined repositories.
+            </summary>
+            <remarks>
+            <para>
+            Get an array of all the <see cref="T:log4net.Repository.ILoggerRepository"/> objects that have been created.
+            </para>
+            </remarks>
+            <returns>An array of all the known <see cref="T:log4net.Repository.ILoggerRepository"/> objects.</returns>
+        </member>
+        <member name="M:log4net.LogManager.WrapLogger(log4net.Core.ILogger)">
+            <summary>
+            Looks up the wrapper object for the logger specified.
+            </summary>
+            <param name="logger">The logger to get the wrapper for.</param>
+            <returns>The wrapper for the logger specified.</returns>
+        </member>
+        <member name="M:log4net.LogManager.WrapLoggers(log4net.Core.ILogger[])">
+            <summary>
+            Looks up the wrapper objects for the loggers specified.
+            </summary>
+            <param name="loggers">The loggers to get the wrappers for.</param>
+            <returns>The wrapper objects for the loggers specified.</returns>
+        </member>
+        <member name="M:log4net.LogManager.WrapperCreationHandler(log4net.Core.ILogger)">
+            <summary>
+            Create the <see cref="T:log4net.Core.ILoggerWrapper"/> objects used by
+            this manager.
+            </summary>
+            <param name="logger">The logger to wrap.</param>
+            <returns>The wrapper for the logger specified.</returns>
+        </member>
+        <member name="F:log4net.LogManager.s_wrapperMap">
+            <summary>
+            The wrapper map to use to hold the <see cref="T:log4net.Core.LogImpl"/> objects.
+            </summary>
+        </member>
+        <member name="T:log4net.MDC">
+            <summary>
+            Implementation of Mapped Diagnostic Contexts.
+            </summary>
+            <remarks>
+            <note>
+            <para>
+            The MDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Properties"/>.
+            The current MDC implementation forwards to the <c>ThreadContext.Properties</c>.
+            </para>
+            </note>
+            <para>
+            The MDC class is similar to the <see cref="T:log4net.NDC"/> class except that it is
+            based on a map instead of a stack. It provides <i>mapped
+            diagnostic contexts</i>. A <i>Mapped Diagnostic Context</i>, or
+            MDC in short, is an instrument for distinguishing interleaved log
+            output from different sources. Log output is typically interleaved
+            when a server handles multiple clients near-simultaneously.
+            </para>
+            <para>
+            The MDC is managed on a per thread basis.
+            </para>
+            </remarks>
+            <threadsafety static="true" instance="true"/>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.MDC.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.MDC"/> class. 
+            </summary>
+            <remarks>
+            Uses a private access modifier to prevent instantiation of this class.
+            </remarks>
+        </member>
+        <member name="M:log4net.MDC.Get(System.String)">
+            <summary>
+            Gets the context value identified by the <paramref name="key"/> parameter.
+            </summary>
+            <param name="key">The key to lookup in the MDC.</param>
+            <returns>The string value held for the key, or a <c>null</c> reference if no corresponding value is found.</returns>
+            <remarks>
+            <note>
+            <para>
+            The MDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Properties"/>.
+            The current MDC implementation forwards to the <c>ThreadContext.Properties</c>.
+            </para>
+            </note>
+            <para>
+            If the <paramref name="key"/> parameter does not look up to a
+            previously defined context then <c>null</c> will be returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.MDC.Set(System.String,System.String)">
+            <summary>
+            Add an entry to the MDC
+            </summary>
+            <param name="key">The key to store the value under.</param>
+            <param name="value">The value to store.</param>
+            <remarks>
+            <note>
+            <para>
+            The MDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Properties"/>.
+            The current MDC implementation forwards to the <c>ThreadContext.Properties</c>.
+            </para>
+            </note>
+            <para>
+            Puts a context value (the <paramref name="val"/> parameter) as identified
+            with the <paramref name="key"/> parameter into the current thread's
+            context map.
+            </para>
+            <para>
+            If a value is already defined for the <paramref name="key"/>
+            specified then the value will be replaced. If the <paramref name="val"/> 
+            is specified as <c>null</c> then the key value mapping will be removed.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.MDC.Remove(System.String)">
+            <summary>
+            Removes the key value mapping for the key specified.
+            </summary>
+            <param name="key">The key to remove.</param>
+            <remarks>
+            <note>
+            <para>
+            The MDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Properties"/>.
+            The current MDC implementation forwards to the <c>ThreadContext.Properties</c>.
+            </para>
+            </note>
+            <para>
+            Remove the specified entry from this thread's MDC
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.MDC.Clear">
+            <summary>
+            Clear all entries in the MDC
+            </summary>
+            <remarks>
+            <note>
+            <para>
+            The MDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Properties"/>.
+            The current MDC implementation forwards to the <c>ThreadContext.Properties</c>.
+            </para>
+            </note>
+            <para>
+            Remove all the entries from this thread's MDC
+            </para>
+            </remarks>
+        </member>
+        <member name="T:log4net.NDC">
+            <summary>
+            Implementation of Nested Diagnostic Contexts.
+            </summary>
+            <remarks>
+            <note>
+            <para>
+            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
+            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
+            </para>
+            </note>
+            <para>
+            A Nested Diagnostic Context, or NDC in short, is an instrument
+            to distinguish interleaved log output from different sources. Log
+            output is typically interleaved when a server handles multiple
+            clients near-simultaneously.
+            </para>
+            <para>
+            Interleaved log output can still be meaningful if each log entry
+            from different contexts had a distinctive stamp. This is where NDCs
+            come into play.
+            </para>
+            <para>
+            Note that NDCs are managed on a per thread basis. The NDC class
+            is made up of static methods that operate on the context of the
+            calling thread.
+            </para>
+            </remarks>
+            <example>How to push a message into the context
+            <code lang="C#">
+            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 
+            </code>
+            </example>
+            <threadsafety static="true" instance="true"/>
+            <author>Nicko Cadell</author>
+            <author>Gert Driesen</author>
+        </member>
+        <member name="M:log4net.NDC.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:log4net.NDC"/> class. 
+            </summary>
+            <remarks>
+            Uses a private access modifier to prevent instantiation of this class.
+            </remarks>
+        </member>
+        <member name="M:log4net.NDC.Clear">
+            <summary>
+            Clears all the contextual information held on the current thread.
+            </summary>
+            <remarks>
+            <note>
+            <para>
+            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
+            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
+            </para>
+            </note>
+            <para>
+            Clears the stack of NDC data held on the current thread.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.NDC.CloneStack">
+            <summary>
+            Creates a clone of the stack of context information.
+            </summary>
+            <returns>A clone of the context info for this thread.</returns>
+            <remarks>
+            <note>
+            <para>
+            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
+            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
+            </para>
+            </note>
+            <para>
+            The results of this method can be passed to the <see cref="M:log4net.NDC.Inherit(System.Collections.Stack)"/> 
+            method to allow child threads to inherit the context of their 
+            parent thread.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.NDC.Inherit(System.Collections.Stack)">
+            <summary>
+            Inherits the contextual information from another thread.
+            </summary>
+            <param name="stack">The context stack to inherit.</param>
+            <remarks>
+            <note>
+            <para>
+            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
+            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
+            </para>
+            </note>
+            <para>
+            This thread will use the context information from the stack
+            supplied. This can be used to initialize child threads with
+            the same contextual information as their parent threads. These
+            contexts will <b>NOT</b> be shared. Any further contexts that
+            are pushed onto the stack will not be visible to the other.
+            Call <see cref="M:log4net.NDC.CloneStack"/> to obtain a stack to pass to
+            this method.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.NDC.Pop">
+            <summary>
+            Removes the top context from the stack.
+            </summary>
+            <returns>
+            The message in the context that was removed from the top 
+            of the stack.
+            </returns>
+            <remarks>
+            <note>
+            <para>
+            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
+            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
+            </para>
+            </note>
+            <para>
+            Remove the top context from the stack, and return
+            it to the caller. If the stack is empty then an
+            empty string (not <c>null</c>) is returned.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.NDC.Push(System.String)">
+            <summary>
+            Pushes a new context message.
+            </summary>
+            <param name="message">The new context message.</param>
+            <returns>
+            An <see cref="T:System.IDisposable"/> that can be used to clean up 
+            the context stack.
+            </returns>
+            <remarks>
+            <note>
+            <para>
+            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
+            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
+            </para>
+            </note>
+            <para>
+            Pushes a new context onto the context stack. An <see cref="T:System.IDisposable"/>
+            is returned that can be used to clean up the context stack. This
+            can be easily combined with the <c>using</c> keyword to scope the
+            context.
+            </para>
+            </remarks>
+            <example>Simple example of using the <c>Push</c> method with the <c>using</c> keyword.
+            <code lang="C#">
+            using(log4net.NDC.Push("NDC_Message"))
+            {
+            	log.Warn("This should have an NDC message");
+            }
+            </code>
+            </example>
+        </member>
+        <member name="M:log4net.NDC.Remove">
+            <summary>
+            Removes the context information for this thread. It is
+            not required to call this method.
+            </summary>
+            <remarks>
+            <note>
+            <para>
+            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
+            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
+            </para>
+            </note>
+            <para>
+            This method is not implemented.
+            </para>
+            </remarks>
+        </member>
+        <member name="M:log4net.NDC.SetMaxDepth(System.Int32)">
+            <summary>
+            Forces the stack depth to be at most <paramref name="maxDepth"/>.
+            </summary>
+            <param name="maxDepth">The maximum depth of the stack</param>
+            <remarks>
+            <note>
+            <para>
+            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
+            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
+            </para>
+            </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 
+            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>
+        </member>
+        <member name="P:log4net.NDC.Depth">
+            <summary>
+            Gets the current context depth.
+            </summary>
+            <value>The current context depth.</value>
+            <remarks>
+            <note>
+            <para>
+            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
+            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
+            </para>
+            </note>
+            <para>
+            The number of context values pushed onto the context stack.
+            </para>
+            <para>
+            Used to record the current depth of the context. This can then 
+            be restored using the <see cref="M:log4net.NDC.SetMaxDepth(System.Int32)"/> method.
+            </para>
+            </remarks>
+            <seealso cref="M:log4net.NDC.SetMaxDepth(System.Int32)"/>
+        </member>
+        <member name="T:log4net.ThreadContext">
+            <summary>
+            The log4net Thread Context.
+            </summary>
+            <remarks>
+            <para>
+            The <c>ThreadContext</c> provides a location for thread specific debugging 
+            information to be stored.
+            The <c>ThreadContext</c> properties override any <see cref="T:log4net.GlobalContext"/>
+            properties with the same name.
+            </para>
+            <para>
+            The thread context has a properties map and a stack.
+            The properties and stack can 
+            be included in the output of log messages. The <see cref="T:log4net.Layout.PatternLayout"/>
+            supports selecting and outputting these properties.
+            </para>
+            <para>
+            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.
+            </para>
+            <para>
+            The Thread Context is managed on a per thread basis.
+            </para>
+            </remarks>
+            <example>Example of using the thread context properties to store a username.
+            <code lang="C#">
+            ThreadContext.Properties["user"] = userName;
+            log.Info("This log message has a ThreadContext Property called 'user'");
+            </code>
+            </example>
+            <example>Example of how to push a message into the context stack
+            <code lang="C#">
+            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 
+            </code>
+            </example>
+            <threadsafety static="true" instance="true"/>
+            <author>Nicko Cadell</author>
+        </member>
+        <member name="M:log4net.ThreadContext.#ctor">
+            <summary>
+            Private Constructor. 
+            </summary>
+            <remarks>
+            <para>
+            Uses a private access modifier to prevent instantiation of this class.
+            </para>
+            </remarks>
+        </member>
+        <member name="F:log4net.ThreadContext.s_properties">
+            <summary>
+            The thread context properties instance
+            </summary>
+        </member>
+        <member name="F:log4net.ThreadContext.s_stacks">
+            <summary>
+            The thread context stacks instance
+            </summary>
+        </member>
+        <member name="P:log4net.ThreadContext.Properties">
+            <summary>
+            The thread properties map
+            </summary>
+            <value>
+            The thread properties map
+            </value>
+            <remarks>
+            <para>
+            The <c>ThreadContext</c> properties override any <see cref="T:log4net.GlobalContext"/>
+            properties with the same name.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:log4net.ThreadContext.Stacks">
+            <summary>
+            The thread stacks
+            </summary>
+            <value>
+            stack map
+            </value>
+            <remarks>
+            <para>
+            The thread local stacks.
+            </para>
+            </remarks>
+        </member>
+    </members>
+</doc>