You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by ni...@apache.org on 2005/01/25 20:31:20 UTC

cvs commit: logging-log4net releasenotes.html

nicko       2005/01/25 11:31:20

  Modified:    xdocs/src/stylesheets project.xml
  Added:       xdocs/src/release release-notes.xml
  Removed:     .        releasenotes.html
  Log:
  Moved releasenotes.html to xdocs xml format
  
  Revision  Changes    Path
  1.4       +1 -0      logging-log4net/xdocs/src/stylesheets/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/logging-log4net/xdocs/src/stylesheets/project.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- project.xml	20 Jan 2005 13:47:17 -0000	1.3
  +++ project.xml	25 Jan 2005 19:31:20 -0000	1.4
  @@ -41,6 +41,7 @@
   		<menu name="log4net 1.2 Documentation">
   			<item name="Features" href="/release/features.html" />
   			<item name="Supported Frameworks" href="/release/framework-support.html" />
  +			<item name="Release Notes" href="/release/release-notes.html" />
   			<item name="Example Apps" href="/release/example-apps.html" />
   			<item name="Config Examples" href="/release/config-examples.html" />
   			<item name="Building" href="/release/building.html" />
  
  
  
  1.1                  logging-log4net/xdocs/src/release/release-notes.xml
  
  Index: release-notes.xml
  ===================================================================
  <?xml version="1.0" ?>
  <!--
  Copyright 2004-2005 The Apache Software Foundation
  
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
  
      http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
  -->
  <document>
  
  	<properties>
  		<author email="nicko at apache dot org">Nicko Cadell</author>
  		<title>log4net Release Notes</title>
  	</properties>
  
  	<meta name="keywords" content="log4net release notes, log4net" />
  
  	<body>
  		<section name="log4net Release Notes">
  		
  			<sectionMenu name="Contents" />
  
  			<section name="1.2.0 Beta 8">
  				<ul>
  					<li>
  						<h3>Changed assembly name to <span class="code">log4net</span></h3>
  						<p>
  							The build output is now <span class="code">log4net.dll</span>
  							for all frameworks. This is a breaking change.
  						</p>
  						<p>
  							To resolve cross platform and cross version issues we have
  							changed the log4net assembly to use a common name for all 
  							frameworks. The assembly friendly name is now <span class="code">log4net</span>.
  							The builds for each framework can now be differentiated
  							by the assembly title. This includes the name of the framework
  							that the assembly was built on. 
  						</p>
  					</li>
  					<li>
  						<h3>Combined Release and ReleaseStrong builds</h3>
  						<p>
  							The Release and ReleaseStrong builds have been consolidated into
  							a single build called Release. This Release build is strongly named.
  						</p>
  					</li>
  					<li>
  						<h3>New Appender: ColoredConsoleAppender</h3>
  						<p>
  							The <span class="code">ColoredConsoleAppender</span> writes events to the
  							application's console. It can be configured to specify the text and background
  							colors for different level events.
  						</p>
  					</li>
  					<li>
  						<h3>New Appender: SmtpPickupDirAppender</h3>
  						<p>
  							The <span class="code">SmtpPickupDirAppender</span> generates SMTP compliant
  							messages and writes them to a local directory. These files can then be read
  							by an SMTP agent (e.g. the IIS SMTP Agent) and delivered.
  						</p>
  					</li>
  					<li>
  						<h3>New Layout: XmlLayoutSchemaLog4j</h3>
  						<p>
  							This new layout formats the logging events as XML which complies with
  							the log4j event dtd. This can be used to transfer log event from log4net
  							to log4j. Currently the only appender that can communicate directly with
  							log4j is the <span class="code">UdpAppender</span>.
  						</p>
  					</li>
  					<li>
  						<h3>New PatternLayout conversion characters</h3>
  						<p>
  							Added support for capturing the current thread principal name and the
  							app domain friendly name for each logging event.
  						</p>
  						<dl>
  							<dt>%a</dt>
  							<dd>
  								Used to output the friendly name of the AppDomain where the
  								logging event was generated. 
  							</dd>
  							<dt>%u</dt>
  							<dd>
  								Used to output the user name for the currently active user
  								(<span class="code">Principal.Identity.Name</span>).
  							</dd>
  						</dl>
  					</li>
  					<li>
  						<h3>Types specified in the config file are now loaded ignoring case</h3>
  						<p>
  							All types specified in the configuration files are now loaded
  							using a case insensitive method.
  						</p>
  					</li>
  					<li>
  						<h3>Fine grained fixing for buffered events</h3>
  						<p>
  							The <span class="code">LoggingEvent</span> now supports fine grained
  							fixing of data that needs to be accessed outside the append context,
  							e.g. when an event is buffered. The new <span class="code">Fix</span>
  							property takes a combination of the <span class="code">FixFlags</span> 
  							enumeration values.
  						</p>
  					</li>
  					<li>
  						<h3>Code updated inline with FxCop 1.21</h3>
  						<p>
  							In line with the FxCop 1.21 guidelines:
  							Sealed utility classes. Added serialization security demand to GetObjectData.
  							Renamed parameters.
  						</p>
  					</li>
  					<li>
  						<h3>EventLogAppender 32K Limit</h3>
  						<p>
  							There is a limit of 32K characters in an EventLog message. Added a 
  							check that only logs the first 32000 characters from the rendered 
  							message.
  						</p>
  					</li>
  				</ul>
  			</section>
  			
  			<section name="1.2.0 Beta 7">
  				<ul>
  					<li>
  						<h3>Updated to support the Microsoft .NET Framework 1.1 Final</h3>
  						<p>
  							Updated to support the Microsoft .Net Framework 1.1 Final Beta (1.1.4322).
  						</p>
  					</li>
  					<li>
  						<h3>Features document</h3>
  						<p>
  							Added a new document that covers the main features of log4net.
  							See the <a href="doc/features.html">features</a>
  							document for more information.
  						</p>
  					</li>
  					<li>
  						<h3>Hierarchy disabled until it is configured</h3>
  						<p>
  							The Hierarchy is now disabled until it has been configured.
  							All messages logged to the Hierarchy before it has been
  							configured will be ignored without an error message being
  							written to the console.
  						</p>
  						<p>
  							If you are configuring log4net programmatically (i.e. not using
  							one of the built-in configurators) you must set the 
  							<span class="code">ILoggerRepository.Configured</span> property
  							to <span class="code">true</span> once you have configured
  							the repository.
  						</p>
  						<p>
  							The no appenders defined for a logger message will no longer be 
  							displayed on the console by default. This message will only be 
  							displayed if internal debugging is enabled.
  						</p>
  					</li>
  					<li>
  						<h3>New examples in VisualBasic.NET, JScript and Managed C++</h3>
  						<p>
  							New examples in VisualBasic.NET, JScript and Managed C++.
  							TODO Link to document about examples.
  						</p>
  					</li>
  					<li>
  						<h3>Code and Documentation Updates</h3>
  						<p>
  							Code fixes. Documentation and manual updates. 
  							See the ChangeLog for more information.
  						</p>
  					</li>
  					<li>
  						<h3>Added document with example appender configurations</h3>
  						<p>
  							See the <a href="doc/manual/example-config-appender.html">Example Appender Configuration</a> 
  							document for more information.
  						</p>
  					</li>
  				</ul>
  			</section>
  
  			<section name="1.2.0 Beta 6">
  				<ul>
  					<li>
  						<h3>Added support for multiple frameworks</h3>
  						<p>
  							log4net 1.2.0 beta 6 adds support for the the following frameworks:
  						</p>
  						<div class="table">
  							<table cellspacing="0">
  								<colgroup>
  									<col style="text-align: left;" />
  								</colgroup>
  								<tr>
  									<th>
  										Framework</th>
  									<th>
  										Website</th>
  								</tr>
  								<tr style="vertical-align: top;">
  									<td>Microsoft .Net Framework 1.1 Final Beta (1.1.4322)</td>
  									<td><a href="http://msdn.microsoft.com/net">http://msdn.microsoft.com/net</a></td>
  								</tr>
  								<tr style="vertical-align: top;">
  									<td>Microsoft .Net Compact Framework 1.0 (1.0.5000)</td>
  									<td><a href="http://msdn.microsoft.com/vstudio/device/compactfx.asp">http://msdn.microsoft.com/vstudio/device/compactfx.asp</a></td>
  								</tr>
  								<tr style="vertical-align: top;">
  									<td>Mono 0.23</td>
  									<td><a href="http://www.go-mono.org">http://www.go-mono.org</a></td>
  								</tr>
  								<tr style="vertical-align: top;">
  									<td>Microsoft Shared Source CLI 1.0</td>
  									<td><a href="http://msdn.microsoft.com/library/en-us/dndotnet/html/mssharsourcecli.asp">http://msdn.microsoft.com/library/en-us/dndotnet/html/mssharsourcecli.asp</a></td>
  								</tr>
  							</table>
  						</div>
  						<br />
  						<p>
  							Not all frameworks are created equal and some features have been excluded from 
  							some of the builds. See the <a href="doc/manual/framework-support.html">Framework Support</a> document for more information.
  						</p>
  					</li>
  					<li>
  						<h3>New build system using NAnt</h3>
  						<p>
  							The new build system allows log4net to be built for all supported frameworks and 
  							in all build configurations in one go.
  						</p>
  					</li>
  					<li>
  						<h3>New source code &amp; distribution layout</h3>
  						<p>
  							The source code &amp; distribution layout has been updated to support the new 
  							build environment and multiple target frameworks.
  						</p>
  					</li>
  					<li>
  						<h3>Removed DomainAttribute.UseDefaultDomain property</h3>
  						<p>
  							Updated default behaviour of <span class="code">DefaultRepositorySelector</span>. Assemblies 
  							are now by default placed into the default domain. To specify another domain, 
  							the <span class="code">DomainAttribute</span> must be used. This is the opposite behaviour 
  							to what was previously available. If you were previously specifying the <span class="code">DomainAttribute.UseDefaultDomain</span>
  							property then you should remove it, and if the default behaviour is now 
  							sufficient, you do not need to specify the <span class="code">DomainAttribute</span> at all.
  						</p>
  					</li>
  					<li>
  						<h3>Updated configuration file parser</h3>
  						<p>
  							Updated config file parser to use the element name as the property to set. Also 
  							removed <span class="code">&lt;object&gt;</span> tag, the type attribute can now be 
  							specified on the property element directly.
  						</p>
  						<p>
  							For example:
  						</p>
  						<div class="syntax"><pre class="code">
  &lt;appender&gt;
    &lt;param name=&quot;Evaluator&quot;&gt;
      &lt;object type=&quot;log4net.spi.LevelEvaluator&quot;&gt;
        &lt;constructor&gt;
          &lt;param type=&quot;log4net.spi.Level&quot; value=&quot;DEBUG&quot;/&gt;
        &lt;/constructor&gt;
      &lt;/object&gt;
    &lt;/param&gt;
  &lt;/appender&gt;</pre></div>
  						<p>
  							becomes:
  						</p>
  						<div class="syntax"><pre class="code">
  &lt;appender&gt;
    &lt;evaluator type=&quot;log4net.spi.LevelEvaluator&quot;&gt;
      &lt;threshold value=&quot;DEBUG&quot;/&gt;
    &lt;/evaluator&gt;
  &lt;/appender&gt;</pre></div>
  					</li>
  					<li>
  						<h3>Support for event ID</h3>
  						<p>
  							The <span class="code">EventLogAppender</span> now supports setting the event ID in the 
  							event log, this is taken from the <span class="code">EventID</span> property from the per 
  							event <span class="code">Properties</span> map on the <span class="code">LoggingEvent</span>.
  						</p>
  					</li>
  					<li>
  						<h3>Updated ADONetAppender</h3>
  						<p />
  						<ul>
  							<li>
  								Added support for prepared statements and stored procedures</li>
  							<li>
  								Added <span class="code">RawTimeStampLayout</span>to correctly convert the timestamps into 
  								database date time format</li>
  							<li>
  								Added <span class="code">ExceptionLayout</span> to render the exception data</li>
  						</ul>
  						<p />
  					</li>
  					<li>
  						<h3>Support for front-end extension</h3>
  						<p>
  							This allows the logging API to be wrapped or adapted for specific purposes. Two 
  							extension samples are included in the distribution:
  						</p>
  						<div class="table">
  							<table cellspacing="0">
  								<colgroup>
  									<col style="width: 50%; text-align: left;" />
  									<col style="width: 50%; text-align: left;" />
  								</colgroup>
  								<tr>
  									<th>
  										Extension</th>
  									<th>
  										Description</th>
  								</tr>
  								<tr style="vertical-align: top;">
  									<td>log4net.Ext.Trace</td>
  									<td>Adds trace logging methods</td>
  								</tr>
  								<tr style="vertical-align: top;">
  									<td>log4net.Ext.EventID</td>
  									<td>Adds additional eventId parameter to all methods</td>
  								</tr>
  							</table>
  						</div>
  						<p />
  					</li>
  					<li>
  						<h3>Added ForwardingAppender</h3>
  						<p>Forwards events to multiple sub appenders after applying filter rules.</p>
  					</li>
  					<li>
  						<h3>Added BufferingForwardingAppender</h3>
  						<p>Forward events to sub appenders after buffering them.</p>
  					</li>
  					<li>
  						<h3>Added ASPNetTraceAppender</h3>
  						<p>Logs events to the ASP.NET trace system.</p>
  					</li>
  					<li>
  						<h3>Added NetSendAppender</h3>
  						<p>Delivers logging events using the Windows Messenger service.</p>
  					</li>
  					<li>
  						<h3>Added UdpAppender</h3>
  						<p>Sends logging events as connectionless UDP datagrams to a remote host or a 
  							multicast group.</p>
  					</li>
  					<li>
  						<h3>Removed obsolete methods</h3>
  					</li>
  					<li>
  						<h3>Lots of updates to improve our compliance with FxCop</h3>
  					</li>
  					<li>
  						<h3>Improved SDK documentation</h3>
  					</li>
  				</ul>
  			</section>
  
  			<section name="1.2.0 Beta 5">
  				<ul>
  					<li>
  						<h3>Fixed Exception thrown when DOM Configurator called with a null XML 
  							Element.</h3>
  						<p>This occurred if the configuration file did not have a log4net section defined.</p>
  					</li>
  					<li>
  						<h3>Made level lookup case insensitive</h3>
  					</li>
  					<li>
  						<h3>Prevented the Hierarchy's Threshold level from being set to a null reference</h3>
  					</li>
  				</ul>
  			</section>
  
  			<section name="1.2.0 Beta 4">
  				<ul>
  					<li>
  						<h3>Added event specific properties to the logging event object</h3>
  						<p>
  							Appenders can add additional information to the events they are logging. The <span class="code">RemotingAppender</span>
  							and the <span class="code">SMTPAppender</span> both add a 'hostname' property to the events. 
  							These properties can be accessed using the <span class="code">PatternLayout</span> with the 
  							%P{name} syntax.
  						</p>
  					</li>
  					<li>
  						<h3>Added a plugin framework</h3>
  						<p>An <span class="code">IPlugin</span> interface can be attached to any repository.</p>
  					</li>
  					<li>
  						<h3>A new RemoteLoggingServerPlugin plugin acts as the server for the 
  							RemotingAppender</h3>
  					</li>
  					<li>
  						<h3>Updated the core log4net framework to work in an environment with no 
  							permissions</h3>
  						<p>Specific appenders still require additional permissions to log correctly</p>
  					</li>
  					<li>
  						<h3>Added support for domain aliasing using the AliasDomainAttribute</h3>
  						<p>This allows a parent assembly to take control of the logging domain for child 
  							assemblies.</p>
  					</li>
  					<li>
  						<h3>Added events for repository creation, configuration change, configuration reset 
  							and repository shutdown</h3>
  					</li>
  					<li>
  						<h3>Added LevelMap to the ILoggerRepository interface</h3>
  						<p>The mapping from level name to level object is now repository specific, 
  							therefore each repository can have independent mappings.</p>
  					</li>
  					<li>
  						<h3>Moved hierarchy specific config file parser to new DOMHierarchyConfigurator class</h3>
  						<p>This is controlled by the <span class="code">Hierarchy</span> object and allows for better 
  							encapsulation.</p>
  					</li>
  					<li>
  						<h3>Added OnlyFixPartialEventData property to the buffered appenders</h3>
  						<p>This setting causes slow settings to be ignored. This significantly improves the 
  							performance of the buffered appenders.</p>
  					</li>
  					<li>
  						<h3>XML entity references are supported in the XML config file.</h3>
  					</li>
  					<li>
  						<h3>Added support for expanding environment variables in &lt;param&gt; values</h3>
  						<p>
  							The environment variables must be specified as <span class="code">${FOO}</span> where <span class="code">FOO</span>
  							is the name of the variable to expand.
  						</p>
  					</li>
  					<li>
  						<h3>Upgraded to use NUnit 2.0</h3>
  					</li>
  					<li>
  						<h3>File appenders can specify the encoding to use for the file</h3>
  					</li>
  					<li>
  						<h3>Added strong named configuration</h3>
  					</li>
  				</ul>
  			</section>
  
  			<section name="1.2.0 Beta 3">
  				<ul>
  					<li>
  						<h3>Added log4net.Ext.Trace extension</h3>
  						<p>This is a separate assembly that adds a trace level to log4net.</p>
  					</li>
  					<li>
  						<h3>The default log file output directory is now the application base directory not 
  							the current directory</h3>
  					</li>
  					<li>
  						<h3>Added MemoryAppender</h3>
  						<p>Stores all the logging events in an in-memory buffer.</p>
  					</li>
  					<li>
  						<h3>Moved the Hierarchy implementation into a separate namespace</h3>
  						<p>
  							The <span class="code">log4net.Repository.Hierarchy</span> namespace now contains all the 
  							code that is specific to the <span class="code">Hierarchy</span> implementation.
  						</p>
  					</li>
  					<li>
  						<h3>Refactored the DOMConfigurator and BasicConfigurator</h3>
  						<p>
  							The <span class="code">Hierarchy</span> specific data schema and implementation could be has 
  							now been moved to the <span class="code">log4net.Repository.Hierarchy</span> namespace. The 
  							bootstrap code for these configurators remains in the <span class="code">log4net.Config</span>
  							namespace.
  						</p>
  					</li>
  					<li>
  						<h3>Replaced the DOMConfiguratorAttribute UseExecutableDomain
  							property with UseDefaultDomain</h3>
  						<p>
  							This change to the implementation of the <span class="code">DOMConfiguratorAttribute</span> should 
  							allow the configuration of multiple assemblies to be accomplished more easily, 
  							especially when developing web applications (ASP.NET).
  						</p>
  					</li>
  					<li>
  						<h3>A few good bug fixes!</h3>
  					</li>
  				</ul>
  			</section>
  
  			<section name="1.2.0 Beta 2">
  				<ul>
  					<li>
  						<h3>Added ADONetAppender</h3>
  						<p>Thanks to TechnologyOneCorp.com.</p>
  					</li>
  					<li>
  						<h3>Added TraceLogAssembly extensibility example</h3>
  					</li>
  					<li>
  						<h3>Lots of bug fixes</h3>
  					</li>
  				</ul>
  			</section>
  
  			<section name="1.2.0 Beta 1">
  				<ul>
  					<li>
  						<h3>Added 6 new examples</h3>
  					</li>
  					<li>
  						<h3>Split Category class into Logger and LogManager classes</h3>
  						<p>
  							The instance methods from <span class="code">Category</span> have moved to the <span class="code">Logger</span>
  							class. The static methods from <span class="code">Category</span> have moved to the <span class="code">LogManager</span>
  							class. The <span class="code">Category</span> class still exists but for backward 
  							compatibility only. Changed interface <span class="code">ICategoryFactory</span> to <span class="code">ILoggerFactory</span>
  							and the implementation class <span class="code">DefaultCategoryFactory</span> to <span class="code">DefaultLoggerFactory</span>.
  						</p>
  					</li>
  					<li>
  						<h3>Replaced Priority class with Level class</h3>
  						<p>
  							The <span class="code">Priority</span> class has been replaced by the <span class="code">Level</span> class. 
  							The <span class="code">Priority</span> class still exists for backward compatibility only. 
  							The <span class="code">Level</span> class implements a static pool of <span class="code">Level</span> objects. 
  							The <span class="code">Level</span> class is sealed and serializable.
  						</p>
  					</li>
  					<li>
  						<h3>Added ILoggerRepository interface implemented by Hierarchy</h3>
  						<p>
  							The <span class="code">Hierarchy</span> class implements the <span class="code">ILoggerRepository</span> interface. 
  							This interface is used by the <span class="code">LogManager</span> class and therefore 
  							allows different implementations of <span class="code">ILoggerRepository</span> to be used.
  						</p>
  					</li>
  					<li>
  						<h3>Enhanced NUnit tests</h3>
  						<p>
  							All the NUnit tests can be run using a single TestSuite: NUnitGUI 
  							log4net.LogManager+AllTests,log4net.dll.
  						</p>
  					</li>
  					<li>
  						<h3>Added support for serializing LoggingEvents</h3>
  						<p>
  							The <span class="code">LoggingEvent</span> class is serializable. All local state is 
  							captured before serialization occurs. This now allows <span class="code">LoggingEvent</span> 
  							objects to be serialised between applications or machines.
  						</p>
  					</li>
  					<li>
  						<h3>Added RemotingAppender</h3>
  						<p>
  							Delivers <span class="code">LoggingEvents</span> to a remote interface. This can be used to 
  							collect distributed logging into a single log file. There is an example 
  							remoting sink that receives the logging events, see <span class="code">examples\net\remoting\RemotingServer</span>
  							for details.
  						</p>
  					</li>
  					<li>
  						<h3>Added support for rendering composite objects</h3>
  						<p>
  							The <span class="code">IObjectRenderer</span> interface method <span class="code">DoRender</span> now 
  							takes a <span class="code">RendererMap</span> argument. This allows the renderer to use the 
  							appropriate renderer from the <span class="code">RendererMap</span> to render any nested 
  							objects.
  						</p>
  					</li>
  					<li>
  						<h3>Added support for rendering exceptions</h3>
  						<p>
  							The <span class="code">DefaultRenderer</span> now has support for rendering exceptions to a 
  							string. This includes nested exceptions. The <span class="code">RendererMap</span> is now 
  							used to render exceptions in the <span class="code">LoggingEvent</span>. This allows the 
  							rendering of specific exceptions to be enhanced by specific renderers.
  						</p>
  					</li>
  					<li>
  						<h3>Added ITriggeringEventEvaluator interface</h3>
  						<p>
  							This interface is used by <span class="code">SMTPAppender</span> and <span class="code">RemotingAppender</span>
  							to determine if a <span class="code">LoggingEvent</span> meets a set of user defined 
  							criteria. These appenders use the interface to determine whether or not to 
  							deliver the current buffer of events to their listener. The interface is 
  							implemented by the <span class="code">LevelEvaluator</span> class, which triggers above a 
  							set level.
  						</p>
  					</li>
  					<li>
  						<h3>Added regex matching to the MDCFilter, NDCFilter and StringMatchFilter</h3>
  						<p>
  							The <span class="code">MDCFilter</span>, <span class="code">NDCFilter</span> and <span class="code">StringMatchFilter</span>
  							can now be configured to use regex matches in addition to substring matches. 
  							Set the <span class="code">RegexToMatch</span> property to use this feature.
  						</p>
  					</li>
  					<li>
  						<h3>Added XMLLayout</h3>
  						<p>
  							emits an XML element for each <span class="code">LoggingEvent</span>. This allows logging 
  							events to be stored and manipulated as XML. The DTD for the XML emitted is in 
  							the <span class="code">log4net-events.dtd</span>
  						</p>
  					</li>
  					<li>
  						<h3>Added support for &lt;logger&gt; and &lt;level&gt; elements in the 
  							DOMConfigurator</h3>
  						<p>
  							As the <span class="code">Category</span> and <span class="code">Priority</span> classes have been 
  							replaced by the <span class="code">Logger</span> and <span class="code">Level</span> classes. The <span class="code">DOMConfigurator</span>
  							has been updated to allow the <span class="code">&lt;logger&gt;</span> and <span class="code">&lt;level&gt;</span>
  							elements to be used in place of the <span class="code">&lt;category&gt;</span> and <span class="code">&lt;priority&gt;</span>
  							elements. The old elements are still accepted for backward compatibility.
  						</p>
  					</li>
  					<li>
  						<h3>Added Threshold property to Hierarchy</h3>
  						<p>
  							Changed <span class="code">DisableXXX()</span> methods on <span class="code">Hierarchy</span> to a <span class="code">Threshold</span>
  							property.
  						</p>
  					</li>
  					<li>
  						<h3>Added support for logging domains</h3>
  						<p>
  							The <span class="code">LogManager</span> supports multiple logging domains. The <span class="code">LogManager</span>
  							uses an instance of the <span class="code">IRepositorySelector</span> class to map from 
  							domains to <span class="code">ILoggerRepository</span> instances. The default implementation 
  							is to have a separate <span class="code">ILoggerRepository</span> for each domain. When a 
  							call is made to the static methods on <span class="code">LogManager</span> the domain can be 
  							specified (as a string) or the domain can be inferred automatically from the 
  							calling assembly. The default behaviour is for each assembly loaded into the 
  							process to have its own domain and <span class="code">ILoggerRepository</span>. These can 
  							each be configured separately. This allows standalone assemblies to use log4net 
  							without conflicting with other modules in the process. The domain for the 
  							assembly is configured using metadata attributes defined on the assembly.
  						</p>
  					</li>
  					<li>
  						<h3>DOMConfigurator can set params to arbitrary objects</h3>
  						<p>
  							Using a new <span class="code">&lt;object&gt;</span> element, params can now be set to any 
  							creatable object.
  						</p>
  					</li>
  				</ul>
  			</section>
  			
  		</section>
  	</body>
  </document>