| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <!-- Generated by Apache Maven Doxia at 2024-04-22 --> |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
| <title>Apache log4net – Apache log4net: Release Notes - Apache log4net</title> |
| <link rel="stylesheet" href="../css/bootstrap.min.css" type="text/css" /> |
| <link rel="stylesheet" href="../css/site.css" type="text/css" /> |
| <script type="text/javascript" src="../js/jquery.min.js"></script> |
| <script type="text/javascript" src="../js/bootstrap.min.js"></script> |
| <script type="text/javascript" src="../js/prettify.min.js"></script> |
| <script type="text/javascript" src="../js/site.js"></script> |
| <meta name="author" content="Nicko Cadell" /> |
| <meta name="Date-Revision-yyyymmdd" content="20240422" /> |
| <meta http-equiv="Content-Language" content="en" /> |
| <meta name="keywords" content="log4net release notes, log4net" /> |
| </head> |
| <body class="composite"> |
| <a href="https://logging.apache.org/"> |
| <img class="logo-left" src="../images/ls-logo.jpg" alt="Apache logging services logo" /> |
| </a> |
| <!--img class="logo-right" src="../images/logo.png" alt="Apache log4net logo" /--> |
| <div class="clear"></div> |
| |
| <div class="navbar"> |
| <div class="navbar-inner"> |
| <div class="container-fluid"> |
| <a class="brand" href="http://logging.apache.org/log4net/">Apache log4net ™</a> |
| <ul class="nav"> |
| <li> |
| |
| |
| <a href="https://www.apache.org/" class="external" target="_blank" title="Apache">Apache</a> |
| </li> |
| <li> |
| |
| |
| <a href="https://logging.apache.org/" class="external" target="_blank" title="Logging Services">Logging Services</a> |
| </li> |
| <li> |
| |
| |
| <a href="https://github.com/apache/logging-log4net/" class="external" target="_blank" title="GitHub">GitHub</a> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| |
| <div class="container-fluid"> |
| <table class="layout-table"> |
| <tr> |
| <td class="sidebar"> |
| <div class="well sidebar-nav"> |
| <ul class="nav nav-list"> |
| <li class="nav-header"><i class="icon-home"></i>Apache log4net</li> |
| <li class="none"> |
| <a href="../index.html" title="About">About</a> |
| </li> |
| <li class="none"> |
| |
| |
| <a href="https://logging.apache.org/download.html" class="external" target="_blank" title="Download">Download</a> |
| </li> |
| <li class="none"> |
| |
| |
| <a href="https://logging.apache.org/support.html" class="external" target="_blank" title="Support">Support</a> |
| </li> |
| <li class="none active"> |
| <a href="../release/release-notes.html" title="Release Notes">Release Notes</a> |
| </li> |
| <li class="none"> |
| <a href="../license.html" title="License">License</a> |
| </li> |
| </ul> |
| <ul class="nav nav-list"> |
| <li class="nav-header"><i class="icon-file"></i>Documentation</li> |
| <li class="none"> |
| <a href="../release/features.html" title="Features">Features</a> |
| </li> |
| <li class="none"> |
| <a href="../release/framework-support.html" title="Supported Frameworks">Supported Frameworks</a> |
| </li> |
| <li class="none"> |
| <a href="../release/example-apps.html" title="Example Apps">Example Apps</a> |
| </li> |
| <li class="none"> |
| <a href="../release/config-examples.html" title="Config Examples">Config Examples</a> |
| </li> |
| <li class="none"> |
| <a href="../release/building.html" title="Building">Building</a> |
| </li> |
| <li class="none"> |
| <a href="../release/faq.html" title="FAQ">FAQ</a> |
| </li> |
| </ul> |
| <ul class="nav nav-list"> |
| <li class="nav-header"><i class="icon-book"></i>Manual</li> |
| <li class="none"> |
| <a href="../release/manual/introduction.html" title="Introduction">Introduction</a> |
| </li> |
| <li class="none"> |
| <a href="../release/manual/configuration.html" title="Configuration">Configuration</a> |
| </li> |
| <li class="none"> |
| <a href="../release/manual/contexts.html" title="Contexts">Contexts</a> |
| </li> |
| <li class="none"> |
| <a href="../release/manual/plugins.html" title="Plugins">Plugins</a> |
| </li> |
| <li class="none"> |
| <a href="../release/manual/repositories.html" title="Repositories">Repositories</a> |
| </li> |
| <li class="none"> |
| <a href="../release/manual/internals.html" title="Internals">Internals</a> |
| </li> |
| </ul> |
| <ul class="nav nav-list"> |
| <li class="nav-header"><i class="icon-pencil"></i>For Contributors</li> |
| <li class="none"> |
| <a href="../source-repository.html" title="Repository">Repository</a> |
| </li> |
| </ul> |
| <ul class="nav nav-list"> |
| <li class="nav-header"><i class="icon-cog"></i>Project Reports</li> |
| <li class="none"> |
| <a href="../rat-report.html" title="RAT Report">RAT Report</a> |
| </li> |
| </ul> |
| <ul class="nav nav-list"> |
| <li class="nav-header"><i class="icon-info-sign"></i>Apache</li> |
| <li class="none"> |
| |
| |
| <a href="http://www.apache.org/" class="external" target="_blank" title="Home">Home</a> |
| </li> |
| <li class="none"> |
| |
| |
| <a href="http://www.apache.org/licenses/" class="external" target="_blank" title="License">License</a> |
| </li> |
| <li class="none"> |
| |
| |
| <a href="http://www.apache.org/foundation/sponsorship.html" class="external" target="_blank" title="Sponsorship">Sponsorship</a> |
| </li> |
| <li class="none"> |
| |
| |
| <a href="http://www.apache.org/foundation/thanks.html" class="external" target="_blank" title="Thanks">Thanks</a> |
| </li> |
| <li class="none"> |
| <a href="../../security.html" title="Security">Security</a> |
| </li> |
| <li class="none"> |
| |
| |
| <a href="http://www.apachecon.com" class="external" target="_blank" title="Conferences">Conferences</a> |
| </li> |
| </ul> |
| </div> |
| <div id="poweredBy"> |
| <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"> |
| <img class="poweredBy" alt="Built by Maven" src="../images/maven-feather.png" /> |
| </a> |
| </div> |
| </td> |
| <td class="content"> |
| <!-- Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to you under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. --> |
| |
| |
| <a name="main"></a> |
| <div class="section" id="main"> |
| <h2><a name="Apache_log4net_Release_Notes"></a>Apache log4net™ Release Notes</h2> |
| <a name="a3.0.0"></a> |
| <div class="section" id="a3.0.0"> |
| <h2><a name="a3.0.0"></a>3.0.0</h2> |
| <a name="a3.0.0-breaking"></a> |
| <div class="section" id="a3.0.0-breaking"> |
| <h2><a name="Breaking_Changes"></a>Breaking Changes</h2> |
| |
| <p> |
| Attention: Starting with 3.0.0 we only support the following target frameworks |
| </p> |
| <ul> |
| |
| <li>net462</li> |
| |
| <li>netstandard2.0</li> |
| </ul> |
| The reasoning for this change can be found in <a class="externalLink" href="https://github.com/apache/logging-log4net/issues/111">Dropping support for older runtimes</a> |
| |
| <br /> |
| <br /> |
| |
| <p> |
| Removed obsolete classes and members - obsolete since 1.2.14 - 2015 |
| </p> |
| <ul> |
| |
| <li> |
| <tt>log4net.Appender.BufferingAppenderSkeleton.OnlyFixPartialEventData</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Appender.ColoredConsoleAppender.ctor(ILayout)</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Appender.ColoredConsoleAppender.ctor(ILayout, bool)</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Appender.ConsoleAppender.ctor(ILayout)</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Appender.ConsoleAppender.ctor(ILayout, bool)</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Appender.DebugAppender.ctor(ILayout)</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Appender.EventLogAppender.ctor(ILayout)</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Appender.FileAppender.ctor(ILayout, string)</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Appender.FileAppender.ctor(ILayout, string, bool)</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Appender.MemoryAppender.OnlyFixPartialEventData</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Appender.SmtpAppender.LocationInfo</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Appender.TextWriterAppender.ctor(ILayout, Stream)</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Appender.TextWriterAppender.ctor(ILayout, TextWriter)</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Appender.TraceAppender.ctor(ILayout)</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Config.DOMConfigurator</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Config.AliasDomainAttribute</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Config.DomainAttribute</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Config.DOMConfiguratorAttribute</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Core.LoggerManager.GetLoggerRepository</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Core.LoggerManager.CreateDomain</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Core.LoggingEventData.TimeStamp</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Core.LoggingEvent.GetExceptionStrRep</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Core.LoggingEvent.FixVolatileData</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.LogManager.GetLoggerRepository</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.LogManager.CreateDomain</tt> |
| </li> |
| </ul> |
| |
| <br /> |
| |
| <p> |
| Removed obsolete classes and members - obsolete since 2.0.6 - 2016 |
| </p> |
| <ul> |
| |
| <li> |
| <tt>log4net.Util.SystemInfo.ProcessStartTime</tt> |
| </li> |
| </ul> |
| |
| <br /> |
| |
| <p> |
| Changed members |
| </p> |
| <ul> |
| |
| <li> |
| <tt>log4net.Util.ReadOnlyPropertiesDictionary.InnerHashtable</tt> is now <tt>Dictionary<string, object?></tt> (instead of <tt>System.Collections.Hashtable</tt> before) |
| The reason is an optimization as part of <a class="externalLink" href="https://github.com/apache/logging-log4net/issues/124">Add support for nullable annotations</a> |
| </li> |
| |
| <li> |
| <tt>log4net.Appender.MemoryAppender.m_eventsList</tt> (protected field) is now <tt>List<LoggingEvent></tt> (instead of <tt>System.Collections.ArrayList </tt> before) |
| The reason is an optimization as part of <a class="externalLink" href="https://github.com/apache/logging-log4net/issues/124">Add support for nullable annotations</a> |
| </li> |
| </ul> |
| |
| <br /> |
| |
| <p> |
| Sealed classes - the following classes are now sealed |
| </p> |
| <ul> |
| |
| <li> |
| <tt>log4net.Config.AliasRepositoryAttribute</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Config.RepositoryAttribute</tt> |
| </li> |
| |
| <li> |
| <tt>log4net.Config.XmlConfiguratorAttribute</tt> |
| </li> |
| </ul> |
| |
| </div> |
| <br /> |
| Apache log4net 3.0.0 addresses reported issues: |
| <a name="a3.0.0-bug"></a> |
| <div class="section" id="a3.0.0-bug"> |
| <h2><a name="Bug_fixes"></a>Bug fixes</h2> |
| |
| <ul> |
| </ul> |
| </div> |
| <a name="a3.0.0-enhancements"></a> |
| <div class="section" id="a3.0.0-enhancements"> |
| <h2><a name="Enhancements"></a>Enhancements</h2> |
| |
| <ul> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/issues/111">Dropping support for older runtimes</a> (by @fluffynuts and @freeandnil) |
| </li> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/issues/124">Add support for nullable annotations</a> (by @erikmav) |
| </li> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/issues/125">Remove deprecated code for 3.0</a> (by @erikmav) |
| </li> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/issues/127">Enable building log4net with docker container</a> (by @freeandnil) |
| </li> |
| </ul> |
| </div> |
| </div> |
| <a name="a2.0.17"></a> |
| <div class="section" id="a2.0.17"> |
| <h2><a name="a2.0.17"></a>2.0.17</h2> |
| Apache log4net 2.0.17 addresses reported issues: |
| <a name="a2.0.17-bug"></a> |
| <div class="section" id="a2.0.17-bug"> |
| <h2><a name="Bug_fixes"></a>Bug fixes</h2> |
| |
| <ul> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/issues/118">NullRefException from shutdown in 2.0.16</a> fixed in <a class="externalLink" href="https://github.com/apache/logging-log4net/pull/120">Fast fix for NullRefException from FileAppender"</a> by (by @erikmav)" |
| </li> |
| </ul> |
| </div> |
| </div> |
| <a name="a2.0.16"></a> |
| <div class="section" id="a2.0.16"> |
| <h2><a name="a2.0.16"></a>2.0.16</h2> |
| Apache log4net 2.0.16 addresses reported issues: |
| <a name="a2.0.16-bug"></a> |
| <div class="section" id="a2.0.16-bug"> |
| <h2><a name="Bug_fixes"></a>Bug fixes</h2> |
| |
| <ul> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/pull/103">Support converting '.NET TP Worker' to the numeric thread ID on .NET 8+</a> (by @erikmav) |
| </li> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/pull/94">Fix typo in RemotingServer App.Config</a> (by @craigdfrench) |
| </li> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/pull/105">Fix CodeQL Password in configuration file Rule False Positives</a> (by @justinmichaels) |
| </li> |
| </ul> |
| </div> |
| <a name="a2.0.16-enhancements"></a> |
| <div class="section" id="a2.0.16-enhancements"> |
| <h2><a name="Enhancements"></a>Enhancements</h2> |
| |
| <ul> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/pull/89">adding extension points for revising logged content</a> (by @freeandnil) |
| </li> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/pull/91">SystemInfo.EntryAssemblyLocation writable to adjust location for config-files in unit test projects</a> (by @freeandnil) |
| </li> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/pull/92">New locking model for single log file in native applications with managed parts</a> (by @freeandnil) |
| </li> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/pull/93">Extension point for handling new lines in RemoteSysLogAppender added</a> (by @freeandnil) |
| </li> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/pull/95">Defer creation of locking model to ActivateOptions()</a> (by @freeandnil) |
| </li> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/pull/101">Add Peek() method to ThreadContextStack and LogicalThreadContextStack</a> (by @andreycha) |
| </li> |
| </ul> |
| </div> |
| </div> |
| <a name="a2.0.15"></a> |
| <div class="section" id="a2.0.15"> |
| <h2><a name="a2.0.15"></a>2.0.15</h2> |
| Attention: .NET 3.5 Client Profile is <i>no longer supported</i>. I'm really sorry, I've tried |
| to keep as many of the legacy targets available as possible, but after spending another 4 or so |
| hours trying to get net35-client to build on any machine, I've given up - as far as I'm aware, |
| this should only affect Windows XP clients. I'm afraid 2.0.14 was the end of the road for you. |
| |
| Apache log4net 2.0.15 addresses reported issues: |
| <a name="a2.0.15-bug"></a> |
| <div class="section" id="a2.0.15-bug"> |
| <h2><a name="Bug_fixes"></a>Bug fixes</h2> |
| |
| <ul> |
| |
| <li> |
| Improper usage of xml namespacing for netfx targets after a netstandard update ( |
| <a class="externalLink" href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-685">LOG4NET-685</a>, |
| related <a class="externalLink" href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-683">LOG4NET-683</a>) |
| </li> |
| |
| <li> |
| Locking hashtables during write in RenderMap calls to make them thread-safe ( |
| <a class="externalLink" href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-646">LOG4NET-646</a>) |
| </li> |
| |
| <li> |
| An issue where RollingFilAppender would sometimes overwrite files instead of rolling them ( |
| <a class="externalLink" href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-672">LOG4NET-672</a>) |
| </li> |
| </ul> |
| </div> |
| <a name="a2.0.15-enhancements"></a> |
| <div class="section" id="a2.0.15-enhancements"> |
| <h2><a name="Enhancements"></a>Enhancements</h2> |
| |
| <ul> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/pull/81">Enforce TLS1.2 in the ps1 scripts provided for dev use</a> |
| </li> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/pull/80">Corrected links in README</a> |
| </li> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/pull/89">Open up the internals of LogEvent a bit for extension purposes</a> |
| </li> |
| |
| <li>Add information about FixFlags and performance to the BufferingAppender (and derivative) documentation</li> |
| </ul> |
| </div> |
| </div> |
| <a name="a2.0.14"></a> |
| <div class="section" id="a2.0.14"> |
| <h2><a name="a2.0.14"></a>2.0.14</h2> |
| Apache log4net 2.0.14 is a minor release to address some reported issues |
| and accept a pull request provided by a community member: |
| <a name="a2.0.14-bug"></a> |
| <div class="section" id="a2.0.14-bug"> |
| <h2><a name="Bug_fixes"></a>Bug fixes</h2> |
| |
| <ul> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/pull/77">Pull request</a> by @NicholasNoise to address issues with logging via ado appender to PostgreSQL |
| </li> |
| |
| <li>Community request to correctly handle null data in ReadOnlyPropertiesDictionary</li> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/pull/78">Pull request</a> by @erikma to use the numeric thread id for .net worker pool threads |
| (<a class="externalLink" href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-680">LOG4NET-680</a>) |
| </li> |
| |
| <li> |
| <a class="externalLink" href="https://github.com/apache/logging-log4net/pull/79">Pull request</a> by @erikma to dispose of WindowsIdentity retrieved in TryGetCurrentUserName() |
| (<a class="externalLink" href="https://issues.apache.org/jira/projects/LOG4NET/issues/LOG4NET-671">LOG4NET-671</a>) |
| </li> |
| </ul> |
| </div> |
| </div> |
| <a name="a2.0.13"></a> |
| <div class="section" id="a2.0.13"> |
| <h2><a name="a2.0.13"></a>2.0.13</h2> |
| Apache log4net 2.0.13 is a minor release to address some reported issues |
| and accept some pull requests provided by community members: |
| <a name="a2.0.13-bug"></a> |
| <div class="section" id="a2.0.13-bug"> |
| <h2><a name="Bug_fixes"></a>Bug fixes</h2> |
| |
| <ul> |
| |
| <li> |
| Addresses issue [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-583">LOG4NET-583</a>] with proposed solution by Emmo Emminghaus, |
| namely to provide an unique mutex identifier for the file rolling logic. |
| </li> |
| |
| <li> |
| Accepts pull request <a class="externalLink" href="https://github.com/apache/logging-log4net/pull/76">76</a> by @dschwartzni |
| to allow the netstandard2.0 library to be used within net472 web services |
| </li> |
| |
| <li> |
| Accepts pull request <a class="externalLink" href=" https://github.com/apache/logging-log4net/pull/18">18</a> by @dmarlow |
| to update the xml layout mimicking log4j |
| </li> |
| </ul> |
| </div> |
| </div> |
| <a name="a2.0.12"></a> |
| <div class="section" id="a2.0.12"> |
| <h2><a name="a2.0.12"></a>2.0.12</h2> |
| |
| <p> |
| Apache log4net 2.0.12 is a minor fix release to address reported issues on |
| non-windows platforms. |
| </p> |
| <a name="a2.0.12-bug"></a> |
| <div class="section" id="a2.0.12-bug"> |
| <h2><a name="Bug_Fixes"></a>Bug Fixes</h2> |
| |
| <ul> |
| |
| <li> |
| Addresses the issues reported in |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-652">LOG4NET-652</a>] |
| and [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-652">LOG4NET-653</a>] whereby |
| logging could throw a PlatformNotSupported exception when the username |
| is required within logs on non-Windows platforms. The implemented |
| behavior is to fall back, where possible, on Environment.UserName |
| or provide text that the facility is not supported. |
| </li> |
| </ul> |
| </div> |
| </div> |
| <a name="a2.0.11"></a> |
| <div class="section" id="a2.0.11"> |
| <h2><a name="a2.0.11"></a>2.0.11</h2> |
| Apache log4net 2.0.11 fixes incorrect version strings within the released |
| binaries and contains some minor fixes to correctly dispose of StreamWriters |
| used during log flushing, thanks to community member @NicholasNoise |
| </div> |
| <a name="a2.0.10"></a> |
| <div class="section" id="a2.0.10"> |
| <h2><a name="a2.0.10"></a>2.0.10</h2> |
| |
| <p> |
| Apache log4net 2.0.10 improves <tt>netstandard2.0</tt> support |
| thanks to community member @NicholasNoise. |
| </p> |
| <a name="a2.0.10-bug"></a> |
| <div class="section" id="a2.0.10-bug"> |
| <h2><a name="Bug_Fixes"></a>Bug Fixes</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-575">LOG4NET-575</a>] |
| Addresses CVE-2018-1285 by cherry-picking the fix from |
| Dominik Psenner, reported by Karthik Balasundaram, as it already |
| existed in the the develop branch |
| </li> |
| </ul> |
| </div> |
| </div> |
| |
| <a name="a2.0.9"></a> |
| <div class="section" id="a2.0.9"> |
| <h2><a name="a2.0.9"></a>2.0.9</h2> |
| |
| <p> |
| Apache log4net 2.0.9 adds <tt>netstandard2.0</tt> support |
| and restructures the project to enable easier build as well as build |
| at AppVeyer. Project files have been updated to the modern Sdk format. |
| </p> |
| <a name="a2.0.9-bug"></a> |
| <div class="section" id="a2.0.9-bug"> |
| <h2><a name="Bug_Fixes"></a>Bug Fixes</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-559">LOG4NET-559</a>] Add null |
| checkes to avoid issues thrown by custom appenders |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-563">LOG4NET-563</a>] Site styling |
| copied from log4j |
| </li> |
| </ul> |
| </div> |
| </div> |
| <a name="a2.0.8"></a> |
| <div class="section" id="a2.0.8"> |
| <h2><a name="a2.0.8"></a>2.0.8</h2> |
| |
| <p> |
| Apache log4net 2.0.8 fixes a |
| <tt>LockRecursionException</tt> |
| that could happen |
| inside the <tt>FileAppender</tt> under certain |
| circumstances. It also adds support for |
| <tt>LogicalThreadContext</tt> |
| to the .NET Standard |
| build based on <tt>AsyncLocal</tt> rather than |
| <tt>CallContext</tt>. |
| </p> |
| |
| <a name="a2.0.8-bug"></a> |
| <div class="section" id="a2.0.8-bug"> |
| <h2><a name="Bug_Fixes"></a>Bug Fixes</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-466">LOG4NET-466</a>] - "LockRecursionException: |
| A read lock may not be acquired with the write lock held in this mode." exception |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-550">LOG4NET-550</a>] - Logging |
| recursively from an Appender not supported for NET_4_0 and MONO_4_0 |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-551">LOG4NET-551</a>] - |
| LockRecursionException when using File Appenders |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-554">LOG4NET-554</a>] - |
| LogicalThreadContext was removed in .NETStandard |
| </li> |
| </ul> |
| </div> |
| |
| <a name="a2.0.8-new"></a> |
| <div class="section" id="a2.0.8-new"> |
| <h2><a name="New_Features"></a>New Features</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-553">LOG4NET-553</a>] - |
| DebugAppender |
| configuration should give the possibility to disable outputting loggerName as category |
| </li> |
| </ul> |
| </div> |
| </div> |
| |
| <a name="a2.0.7"></a> |
| <div class="section" id="a2.0.7"> |
| <h2><a name="a2.0.7"></a>2.0.7</h2> |
| |
| <p> |
| Apache log4net 2.0.7 fixes a glitch in nuget packaging and |
| is otherwise identical to 2.0.6 (apart from the copyright |
| year and assembly version). If you are not using the nuget |
| package there is no reason to upgrade. |
| </p> |
| |
| <a name="a2.0.7-bug"></a> |
| <div class="section" id="a2.0.7-bug"> |
| <h2><a name="Bug_Fixes"></a>Bug Fixes</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-540">LOG4NET-540</a>] - nuget |
| dependencies for .NET Standard leak into net46 |
| </li> |
| </ul> |
| </div> |
| </div> |
| |
| <a name="a2.0.6"></a> |
| <div class="section" id="a2.0.6"> |
| <h2><a name="a2.0.6"></a>2.0.6</h2> |
| |
| |
| <p> |
| The Apache log4net team is now responsible for the nuget |
| package, we've changed the version number of this release |
| to align the version numbers. Release 2.0.6 is supposed to |
| be compatible with 1.2.15. |
| </p> |
| |
| |
| <p> |
| The binary distributions no longer contain assemblies |
| built for the .NET Framework 1.x or Mono 1.x - you can |
| build those yourself using the source distribution. |
| </p> |
| |
| |
| <p> |
| Starting with 2.0.6 .NET Core - or more precisely |
| .NET Standard 1.3 - has become a supported platform. Please |
| note that several features of log4net are not available |
| when using the .NET Core version, see <a href="framework-support.html#netstandard-1.3"> |
| framework |
| support |
| </a> for details. |
| </p> |
| |
| <a name="a2.0.6-bug"></a> |
| <div class="section" id="a2.0.6-bug"> |
| <h2><a name="Bug_Fixes"></a>Bug Fixes</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-508">LOG4NET-508</a>] - NAnt release |
| build is not optimized |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-512">LOG4NET-512</a>] - Thread |
| safety |
| issue in Hierarchy.cs |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-527">LOG4NET-527</a>] - broken link |
| on |
| config-examples.html |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-529">LOG4NET-529</a>] - Possible |
| thread-safety bug in LoggingEvent |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-536">LOG4NET-536</a>] - Can't |
| build |
| for NETCF-2.0 |
| </li> |
| </ul> |
| </div> |
| <a name="a2.0.6-enh"></a> |
| <div class="section" id="a2.0.6-enh"> |
| <h2><a name="Improvements"></a>Improvements</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-530">LOG4NET-530</a>] - Use UTC |
| internally to avoid ambiguous timestamps |
| </li> |
| </ul> |
| </div> |
| |
| <a name="a2.0.6-new"></a> |
| <div class="section" id="a2.0.6-new"> |
| <h2><a name="New_Features"></a>New Features</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-467">LOG4NET-467</a>] - Is .NET |
| Core, |
| will be supported in the near future, or not |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-511">LOG4NET-511</a>] - API to flush |
| appenders |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-526">LOG4NET-526</a>] - Add |
| appSetting |
| conversion pattern to PatternString |
| </li> |
| </ul> |
| </div> |
| </div> |
| |
| <a name="a1.2.15"></a> |
| <div class="section" id="a1.2.15"> |
| <h2><a name="a1.2.15"></a>1.2.15</h2> |
| <a name="a1.2.15-bug"></a> |
| <div class="section" id="a1.2.15-bug"> |
| <h2><a name="Bug_Fixes"></a>Bug Fixes</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-462">LOG4NET-462</a>] - |
| ReadOnlyPropertiesDictionary not thread safe |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-488">LOG4NET-488</a>] - Fix tests |
| build |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-489">LOG4NET-489</a>] - |
| AdoNetAppender |
| fails after upgrade to 2.0.4 |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-490">LOG4NET-490</a>] - |
| InterProcessLock |
| Tests fail |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-493">LOG4NET-493</a>] - Log4net |
| 1.2.14/ADO.NET appender throws exception when starting (1.2.13 with same config works fine) |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-494">LOG4NET-494</a>] - |
| ArgumentOutOfRange with SQLite |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-495">LOG4NET-495</a>] - Error when |
| BufferSize is >1, parameter already defined |
| </li> |
| </ul> |
| </div> |
| </div> |
| |
| <a name="a1.2.14"></a> |
| <div class="section" id="a1.2.14"> |
| <h2><a name="a1.2.14"></a>1.2.14</h2> |
| <a name="a1.2.14-bug"></a> |
| <div class="section" id="a1.2.14-bug"> |
| <h2><a name="Bug_Fixes"></a>Bug Fixes</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-408">LOG4NET-408</a>] - Correction |
| on |
| InterProcessLock |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-443">LOG4NET-443</a>] - |
| Logger.CallAppenders |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-447">LOG4NET-447</a>] - |
| MemoryAppender |
| class is not thread safe |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-455">LOG4NET-455</a>] - |
| LogicalThreadContext does not flow correctly through async/await |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-479">LOG4NET-479</a>] - Cannot |
| compile |
| log4net.vs2008 |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-484">LOG4NET-484</a>] - |
| System.ObjectDisposedException with FileAppender+InterProcessLock |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-485">LOG4NET-485</a>] - |
| RollingFileAppender cannot be used by multiple process |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-486">LOG4NET-486</a>] - Rolling File |
| Appender with 'maxSizeRollBackups' and 'datePattern' does not detect |
| existing |
| logs initially |
| </li> |
| </ul> |
| </div> |
| |
| <a name="a1.2.14-enh"></a> |
| <div class="section" id="a1.2.14-enh"> |
| <h2><a name="Improvements"></a>Improvements</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-456">LOG4NET-456</a>] - Include |
| debug |
| symbol files in release packages |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-457">LOG4NET-457</a>] - SMTP |
| Appender |
| should trim leading and trailing separators from address fields |
| </li> |
| </ul> |
| </div> |
| |
| <a name="a1.2.14-new"></a> |
| <div class="section" id="a1.2.14-new"> |
| <h2><a name="New_Features"></a>New Features</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-473">LOG4NET-473</a>] - Option for |
| file |
| extension in SmtpPickupDirAppender |
| </li> |
| </ul> |
| </div> |
| </div> |
| |
| <a name="a1.2.13"></a> |
| <div class="section" id="a1.2.13"> |
| <h2><a name="a1.2.13"></a>1.2.13</h2> |
| |
| <a name="a1.2.13-bug"></a> |
| <div class="section" id="a1.2.13-bug"> |
| <h2><a name="Bug_Fixes"></a>Bug Fixes</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-132">LOG4NET-132</a>] - Environment |
| variables are mistakenly case sensitive on windows |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-376">LOG4NET-376</a>] - Race |
| condition |
| in AbsoluteTimeDateFormatter |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-393">LOG4NET-393</a>] - Using |
| dynamic |
| methods with log4net causes NullReferenceException in StackFrameItem |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-399">LOG4NET-399</a>] - Does not |
| build |
| for Compact Framework 2.0 |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-404">LOG4NET-404</a>] - assemblies |
| for |
| .NET 3.5 are missing ILogExtensions |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-405">LOG4NET-405</a>] - SmtpAppender |
| encoding changes |
| </li> |
| </ul> |
| |
| </div> |
| |
| <a name="a1.2.13-enh"></a> |
| <div class="section" id="a1.2.13-enh"> |
| <h2><a name="Improvements"></a>Improvements</h2> |
| |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-394">LOG4NET-394</a>] - Lambda-based |
| ILog-Extensions should catch errors |
| </li> |
| </ul> |
| |
| </div> |
| </div> |
| |
| <a name="a1.2.12"></a> |
| <div class="section" id="a1.2.12"> |
| <h2><a name="a1.2.12"></a>1.2.12</h2> |
| |
| |
| <p> |
| The binary distributions no longer contain assemblies |
| built for the Compact Framework 2.0 - you can build |
| those yourself using the source distribution. |
| </p> |
| |
| <a name="a1.2.12-bug"></a> |
| <div class="section" id="a1.2.12-bug"> |
| <h2><a name="Bug_Fixes"></a>Bug Fixes</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-148">LOG4NET-148</a>] - |
| ThreadContext |
| uses LocalDataStore to store ThreadSpecific data instead should be using [ThreadStatic] |
| variables. |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-178">LOG4NET-178</a>] - Log4Net |
| stops |
| logging after appdomain recycle of ASP.NET2.0 application |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-202">LOG4NET-202</a>] - |
| AdoNetAppenderParameter.Size Property is not optional |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-218">LOG4NET-218</a>] - Test |
| StringFormatTest.TestFormatString fails |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-220">LOG4NET-220</a>] - multiple |
| users |
| overwrite existing log file when RollingFileAppender is rolling over date and minimal |
| locking is |
| used |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-228">LOG4NET-228</a>] - |
| log4net.Util.HostName may throw System.Configuration.ConfigurationErrorsException in |
| System.Net.Dns.GetHostName(). The exception should be ignored. |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-266">LOG4NET-266</a>] - |
| AdoNetAppender |
| does not work on a IIS 7 website using Windows authentication |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-277">LOG4NET-277</a>] - Registering |
| a |
| custom Object Renderer in configuration file |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-284">LOG4NET-284</a>] - In a |
| multithreaded application, duplicate messages are output. |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-294">LOG4NET-294</a>] - Exception |
| rendering object type [System.OutOfMemoryException] |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-317">LOG4NET-317</a>] - |
| LogicalThreadContext sometimes doesn't follow CallContext's logical thread |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-322">LOG4NET-322</a>] - Conditional |
| compilation symbols for .net4 Release |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-323">LOG4NET-323</a>] - |
| AbsoluteTimeDateFormatter caches string representation of now too aggressively |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-331">LOG4NET-331</a>] - |
| AdoNetAppender |
| errors when writing Asp.net item when Request object is null |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-335">LOG4NET-335</a>] - Lost the |
| ability |
| to monitor changes to logger config files when you call ConfigureAndWatch multiple times |
| with |
| different Config File Names - worked fine on 1.2.10.0 |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-341">LOG4NET-341</a>] - |
| RemotingAppender |
| Error |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-343">LOG4NET-343</a>] - |
| ArgumentOutOfRangeException in log4net hierarchy on "." logger name |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-347">LOG4NET-347</a>] - Log4net not |
| working in an ASP.Net environment with medium trust |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-348">LOG4NET-348</a>] - |
| System.IndexOutOfRangeException when StackFrameLevel is greater then StackFrames length |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-352">LOG4NET-352</a>] - CS0419 |
| during |
| build with Mono >2.6 |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-360">LOG4NET-360</a>] - |
| EventLogAppender |
| can corrupt the event log on Windows Vista and higher if the string is longer than 31839 |
| bytes |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-361">LOG4NET-361</a>] - |
| RollingLogFileAppender does not correctly initialize the backup index when style is date or |
| composite |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-369">LOG4NET-369</a>] - |
| preserveLogFileNameExtension is not considered when rolling over time after an application |
| restart |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-370">LOG4NET-370</a>] - |
| RemoteSyslogAppender doesn't properly handle newline in log message |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-371">LOG4NET-371</a>] - Log with |
| formatting doesn't call custom renderers (IObjectRenderer) |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-375">LOG4NET-375</a>] - typo / |
| misspelling in log message |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-378">LOG4NET-378</a>] - Rolling log |
| file |
| is overwritten when application is restarted |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-379">LOG4NET-379</a>] - |
| NullReferenceException in FileAppender when file is not filled. |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-382">LOG4NET-382</a>] - |
| TargetInvocationException occurs because MESSAGE_SIZE fields in EventLogAppender are |
| initialized |
| in wrong order |
| </li> |
| </ul> |
| </div> |
| |
| <a name="a1.2.12-enh"></a> |
| <div class="section" id="a1.2.12-enh"> |
| <h2><a name="Improvements"></a>Improvements</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-222">LOG4NET-222</a>] - [PATCH] |
| Improve |
| AnsiColorTerminalAppender to support marking colors as Light |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-223">LOG4NET-223</a>] - [PATCH] |
| Improve |
| AnsiColorTerminalAppender to support marking colors as Light |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-232">LOG4NET-232</a>] - Use |
| ReaderWriterLockSlim instead of ReaderWriterLock. |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-259">LOG4NET-259</a>] - Log4Net does |
| not |
| create a new tab in Chainsaw |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-283">LOG4NET-283</a>] - |
| OnlyOnceErrorHandler is not subclass-friendly |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-292">LOG4NET-292</a>] - Managed |
| ColoredConsoleAppender for .NET2/Mono. |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-315">LOG4NET-315</a>] - SmtpAppender |
| - |
| Add support for ignoring certificate errors |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-316">LOG4NET-316</a>] - Provide a |
| Layout |
| Pattern that is re-evaluated on each use |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-318">LOG4NET-318</a>] - log4net |
| doesn't |
| pass verification |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-334">LOG4NET-334</a>] - Appender |
| Faill |
| over |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-354">LOG4NET-354</a>] - E-mail |
| encoding |
| configuration setting for SmtpAppender |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-362">LOG4NET-362</a>] - [PATCH] |
| SystemInfo.AssemblyLocationInfo throws unhandled ArgumentException "Absolute path |
| required" |
| when exe is started via UNC path |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-386">LOG4NET-386</a>] - Can't |
| access |
| ThreadContext properties |
| </li> |
| </ul> |
| </div> |
| |
| <a name="a1.2.12-new"></a> |
| <div class="section" id="a1.2.12-new"> |
| <h2><a name="New_Features"></a>New Features</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-290">LOG4NET-290</a>] - Add |
| Lambda-based |
| ILog-Extensions (embedded log.IsEnabled) |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-342">LOG4NET-342</a>] - Add a way to |
| prevent silent failure |
| </li> |
| </ul> |
| </div> |
| </div> |
| |
| <a name="a1.2.11"></a> |
| <div class="section" id="a1.2.11"> |
| <h2><a name="a1.2.11"></a>1.2.11</h2> |
| |
| <p> |
| log4net 1.2.11 is not only a bugfix release, it also |
| adds support for Microsoft® .NET 4.0 as well as the client profiles |
| of .NET 3.5 and .NET 4.0. |
| </p> |
| |
| |
| <p> |
| Starting with this release log4net uses a new strong |
| name key but we also provide a binary distribution using |
| the "old" strong name key of log4net 1.2.10 and earlier. |
| See <a href="faq.html#two-snks">the FAQ</a> for details. |
| </p> |
| |
| |
| <p> |
| The binary distributions no longer contain assemblies |
| built for the Compact Framework 1.0 or the Shared Source |
| CLI - you can build those yourself using the source |
| distribution. |
| </p> |
| |
| <a name="a1.2.11-breaking"></a> |
| <div class="section" id="a1.2.11-breaking"> |
| <h2><a name="Breaking_Changes"></a>Breaking Changes</h2> |
| |
| <p> |
| The signature of |
| <tt>ILoggerFactory.CreateLogger</tt> |
| has changed. |
| </p> |
| </div> |
| |
| <a name="a1.2.11-bug"></a> |
| <div class="section" id="a1.2.11-bug"> |
| <h2><a name="Bug_Fixes"></a>Bug Fixes</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-76">LOG4NET-76</a>] - |
| TextWriterAdapter |
| is not thread safe |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-79">LOG4NET-79</a>] - |
| SecurityException |
| thrown in LogicalThreadContextProperties GetProperties |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-81">LOG4NET-81</a>] - |
| LoggerRepositorySkeleton's OnConfigurationChanged method always raises its event with |
| EventArgs.Empty instead of passing through its EventArgs parameter. |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-93">LOG4NET-93</a>] - Typos for node |
| name in tutorial, excess quote, invalid XML |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-94">LOG4NET-94</a>] - Incorrect |
| config |
| file for ..\examples\net\1.0\Tutorials\ConsoleApp |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-95">LOG4NET-95</a>] - |
| Level.CompareTo() |
| may result a wrong Value -> sorting of Levels does not work |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-113">LOG4NET-113</a>] - |
| SystemInfo.GetTypeFromString() raises NotSupportedException |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-123">LOG4NET-123</a>] - |
| EnvironmentPatternConverter does not expand User or System level environment variables under |
| Windows |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-126">LOG4NET-126</a>] - Links on the |
| log4net Examples page do not work, including the overview link explaining why the other |
| links do |
| not work |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-128">LOG4NET-128</a>] - Either |
| documentation is incorrect or a bug in SmtpAppender |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-129">LOG4NET-129</a>] - |
| EventLogAppender |
| EventID parsing does not handle Active Properties properly |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-135">LOG4NET-135</a>] - Bad example |
| code |
| in documentation |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-137">LOG4NET-137</a>] - |
| log4net.Filter.LevelMatchFilter does not work anymore |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-143">LOG4NET-143</a>] - Invalid |
| Repository Config Uri composition from "log4net.Config" application setting |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-146">LOG4NET-146</a>] - |
| System.NullReferenceException on FindAndRender object |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-158">LOG4NET-158</a>] - |
| XMLConfigurator.ConfigureAndWatch() leaks resources if called multiple times |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-167">LOG4NET-167</a>] - |
| ArrayOutOfBounds |
| Exception in MemoryAppender.getEvents() |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-212">LOG4NET-212</a>] - Threading |
| bug in |
| the PatternConverter.cs |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-214">LOG4NET-214</a>] - |
| EventLogAppender |
| should also use config file to set EventId |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-215">LOG4NET-215</a>] - Exception on |
| Convert for return %class{1} name |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-229">LOG4NET-229</a>] - Japanese |
| characters get garbled with log4net.Layout.XmlLayoutSchemaLog4j |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-241">LOG4NET-241</a>] - Issue |
| tracking |
| page does not link to project |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-242">LOG4NET-242</a>] - Download |
| page |
| does not have link to KEYS file |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-243">LOG4NET-243</a>] - broken link |
| on |
| http://logging.apache.org/log4net/release/example-apps.html |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-244">LOG4NET-244</a>] - |
| SmtpAppender.To |
| Property has incorrect delimiter |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-257">LOG4NET-257</a>] - Visual |
| Studio |
| 2010 .NET 4.0 Application does not copy log4net lib to bin directory |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-265">LOG4NET-265</a>] - |
| RemoteFileAppender Tests fail on Windows 7 |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-274">LOG4NET-274</a>] - log4net |
| doesn't |
| log when running a .Net 4.0 Windows application built in Release mode |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-297">LOG4NET-297</a>] - |
| AppenderSkeleton.RequiresLayout docs and implementation don't match |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-300">LOG4NET-300</a>] - FilterTest |
| doesn't |
| compile for .Net 2.0 |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-301">LOG4NET-301</a>] - Unit tests |
| fail |
| on a clean checkout on .NET 2.0 using NAnt |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-310">LOG4NET-310</a>] - |
| EventLogAppender's |
| ActivateOptions throws SecurityException on Vista/Win2k3 and later when not run as |
| administrator |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-311">LOG4NET-311</a>] - MinimalLock |
| and |
| AppendToFile=false don't work together in trunk's FileAppender |
| </li> |
| </ul> |
| </div> |
| |
| <a name="a1.2.11-enh"></a> |
| <div class="section" id="a1.2.11-enh"> |
| <h2><a name="Improvements"></a>Improvements</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-31">LOG4NET-31</a>] - Allow user to |
| pass |
| in additional parameters to <converter> node via some kind of <property> tag |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-38">LOG4NET-38</a>] - |
| EventLogAppender: |
| Add support for setting the Category on Event Log messages. |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-66">LOG4NET-66</a>] - |
| PreserveFileExtension with StaticFileName |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-77">LOG4NET-77</a>] - A small |
| improvement of log4net.Layout.Pattern.ExceptionPatternConverter - added 'Option' |
| propery |
| support |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-88">LOG4NET-88</a>] - support .NET |
| 2.0 |
| connectionStrings configuration section |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-96">LOG4NET-96</a>] - Expose the |
| Message, Exception, and ErrorCode properties of OnlyOnceErrorHandler. |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-97">LOG4NET-97</a>] - Make Hierarchy's |
| ILoggerFactory aware of the repository's LevelMap |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-98">LOG4NET-98</a>] - Update header |
| comment in files to be compliant with new Apache header requirements: |
| http://www.apache.org/legal/src-headers.html for 11/1/2006 deadline |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-100">LOG4NET-100</a>] - |
| IPAddressConverter improvement for .NET 2 or .NET 3 |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-106">LOG4NET-106</a>] - |
| TraceAppender : |
| Add switch to disable using logger name as trace category |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-112">LOG4NET-112</a>] - Add support |
| to |
| the UdpAppender for IP v6 remote addresses |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-131">LOG4NET-131</a>] - Add Cc and |
| Bcc |
| support to SmtpAppender |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-141">LOG4NET-141</a>] - Add |
| CreateConnection method to AdoNetAppender to allow subclasses to have control of |
| IDbConnection. |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-153">LOG4NET-153</a>] - Make it |
| easier |
| to configure multiple appenders in code using BasicConfigurator |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-157">LOG4NET-157</a>] - FAQ for |
| getting |
| the fully-qualified name of a class |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-164">LOG4NET-164</a>] - using a |
| named |
| mutex for file appenders |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-170">LOG4NET-170</a>] - |
| Documentation |
| improvement re: fixing and active properties |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-246">LOG4NET-246</a>] - Make it |
| possible |
| to choose whether or not to watch configuration files specified using the "log4net.Config" |
| appsetting key |
| </li> |
| </ul> |
| |
| </div> |
| <a name="a1.2.11-new"></a> |
| <div class="section" id="a1.2.11-new"> |
| <h2><a name="New_Features"></a>New Features</h2> |
| |
| <ul> |
| |
| <li> |
| The various static <tt>Configure</tt> methods of the <tt>Configurator</tt> classes |
| now |
| return collections of configuration messages rather than <tt>void</tt>. |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-59">LOG4NET-59</a>] - add the |
| ability to |
| roll files based on universal time (UTC). |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-64">LOG4NET-64</a>] - add the |
| ability to |
| preserve the log file name extension when rolling the log file. |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-87">LOG4NET-87</a>] - Support |
| ASP.Net |
| related PatternConverters to allow items from the HttpContext.Current.Session, Cache, |
| Request, |
| etc. to be captured. |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-92">LOG4NET-92</a>] - Build for |
| Compact Framework 2.0 |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-107">LOG4NET-107</a>] - Added |
| ExceptionEvaluator |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-115">LOG4NET-115</a>] - Expand |
| UserAppDataPath in filename |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-116">LOG4NET-116</a>] - allow |
| smtp |
| to ssl authenticate and with certificates. |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-154">LOG4NET-154</a>] - Add a |
| StackTracePatternConverter to display method calls leading up to log message |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-155">LOG4NET-155</a>] - Add |
| TimeEvaluator |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-168">LOG4NET-168</a>] - New |
| property |
| ReplyTo address for the SmtpAppender required |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-176">LOG4NET-176</a>] - |
| Buildable |
| with VS 2008 and .NET FW 3.5 |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-233">LOG4NET-233</a>] - Support |
| .NET |
| 4.0 including Client Profile |
| </li> |
| </li> |
| </ul> |
| </div> |
| |
| </div> |
| |
| <a name="a1.2.10"></a> |
| <div class="section" id="a1.2.10"> |
| <h2><a name="a1.2.10"></a>1.2.10</h2> |
| |
| <a name="a1.2.10-bug"></a> |
| <div class="section" id="a1.2.10-bug"> |
| <h2><a name="Bug_Fixes"></a>Bug Fixes</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-21">LOG4NET-21</a>] - |
| RemotingAppender |
| fails once NDC becomes empty |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-22">LOG4NET-22</a>] - XmlLayout |
| allows |
| output of invalid control characters |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-23">LOG4NET-23</a>] - |
| example-apps.html |
| links are off by one folder level |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-25">LOG4NET-25</a>] - |
| RollingFileAppender |
| can fail if RollOverIfDateBoundaryCrossing required |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-28">LOG4NET-28</a>] - AdoNetAppender |
| does |
| not support inserting NULL into columns |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-29">LOG4NET-29</a>] - |
| LevelMatchFilter |
| should return Neutral when no match is found |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-32">LOG4NET-32</a>] - AdoNetAppender |
| losing first entry |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-35">LOG4NET-35</a>] - Exception |
| rendering |
| ThreadContextStack if null value pushed into stack |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-36">LOG4NET-36</a>] - |
| System.Diagnostics.Trace may throw exception if AppDomain does not have config file |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-40">LOG4NET-40</a>] - |
| RollingFileAppender |
| does not limit files to MaxSizeRollBackups when CountDirection is 1 |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-41">LOG4NET-41</a>] - |
| RollingFileAppender |
| roll over date fail |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-42">LOG4NET-42</a>] - Serialised |
| LoggingEvent does not preserve the Fix flags |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-43">LOG4NET-43</a>] - Specifying an |
| empty |
| string as a property in the config file results in an error |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-44">LOG4NET-44</a>] - XmlLayout emits |
| all |
| properties under a node named global-properties, rather than just properties. |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-49">LOG4NET-49</a>] - |
| CountingQuietTextWriter does not count strings written with WriteLine |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-50">LOG4NET-50</a>] - |
| Process.StartTime |
| hangs on some systems |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-60">LOG4NET-60</a>] - Bug in |
| RollingFileAppender.cs causing failure to timely roll files on monthly interval |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-63">LOG4NET-63</a>] - 1.2.9.0 |
| Documentation typos |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-65">LOG4NET-65</a>] - Unhandled |
| SecurityException exception for FileIOPermission while loading configuration file |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-67">LOG4NET-67</a>] - CVE-2006-0743 |
| Security vulnerability in LocalSyslogAppender |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-69">LOG4NET-69</a>] - Exception |
| thrown |
| when *Format methods are given a malformed format string |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-70">LOG4NET-70</a>] - CoreDll.dll |
| referenced with different capitalisation |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-73">LOG4NET-73</a>] - |
| ADONetAppender.ActivateOptions() leaks database connection when called multiple times |
| </li> |
| </ul> |
| </div> |
| |
| <a name="a1.2.10-new"></a> |
| <div class="section" id="a1.2.10-new"> |
| <h2><a name="New_Features"></a>New Features</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-11">LOG4NET-11</a>] - Add Flush |
| command |
| to API |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-24">LOG4NET-24</a>] - Programmatic |
| flush |
| of BufferingAppenderSkeleton buffer |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-37">LOG4NET-37</a>] - Allow the |
| RepositorySelector type to be specified using the AppSettings config |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-46">LOG4NET-46</a>] - Support |
| appenders |
| that can output multiple events efficiently |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-51">LOG4NET-51</a>] - WmiAppender |
| </li> |
| </ul> |
| </div> |
| |
| <a name="a1.2.10-enh"></a> |
| <div class="section" id="a1.2.10-enh"> |
| <h2><a name="Improvements"></a>Improvements</h2> |
| |
| <ul> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-3">LOG4NET-3</a>] - Support per event |
| patterns in FileAppender File name |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-13">LOG4NET-13</a>] - Allow |
| SMTPAppender |
| to have replaceable parameters in Subject |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-15">LOG4NET-15</a>] - Email high |
| "importance" priority setting with SmtpAppender |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-17">LOG4NET-17</a>] - Line-wrapping |
| Appender Layouts |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-33">LOG4NET-33</a>] - Ability to use |
| global property to point to log4net configuration file |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-34">LOG4NET-34</a>] - Allow xml |
| config |
| values to be set via XmlNodeType.CDATA or XmlNodeType.Text rather than just value="foo" |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-45">LOG4NET-45</a>] - PluginAttribute |
| does not allow plugin type to be specified as a Type, only as a string |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-52">LOG4NET-52</a>] - Allow XML |
| configurator to set properties of type Object |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-53">LOG4NET-53</a>] - Allow |
| repository |
| properties to be set in the config file |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-56">LOG4NET-56</a>] - Support |
| rendering |
| IEnumerator objects as well as ICollections |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-58">LOG4NET-58</a>] - Support clean |
| build |
| on .NET 2.0 |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-72">LOG4NET-72</a>] - Performance of |
| ILog.xxxFormat methods |
| </li> |
| |
| <li> |
| [<a class="externalLink" href="http://issues.apache.org/jira/browse/LOG4NET-74">LOG4NET-74</a>] - Change |
| MemoryAppender member variables to protected |
| </li> |
| </ul> |
| </div> |
| |
| </div> |
| |
| <a name="a1.2.9"></a> |
| <div class="section" id="a1.2.9"> |
| <h2><a name="a1.2.9_Beta"></a>1.2.9 Beta</h2> |
| |
| <a name="a1.2.9-breaking"></a> |
| <div class="section" id="a1.2.9-breaking"> |
| <h2><a name="Breaking_Changes"></a>Breaking Changes</h2> |
| |
| <div class="section"> |
| <h3><a name="Renamed_namespaces"></a>Renamed namespaces</h3> |
| |
| <p> |
| Renamed namespace <span class="code">log4net.spi</span> to <span class="code"> |
| log4net.Core |
| </span>. |
| Renamed namespace <span class="code">log4net.helpers</span> to <span class="code"> |
| log4net.Util |
| </span>. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Renamed_config_classes_and_attributes"></a>Renamed config classes and attributes</h3> |
| |
| <p> |
| In the <span class="code">log4net.Config</span> namespace the <span class="code"> |
| DOMConfigurator |
| </span>, |
| <span class="code">DOMConfiguratorAttribute</span>, <span class="code">DomainAttribute</span>, |
| and <span class="code">AliasDomainAttribute</span> have been marked as obsolete. These types are |
| still available and functional in this release. |
| </p> |
| |
| <p> |
| The <span class="code">XmlConfigurator</span> and |
| <span class="code">XmlConfiguratorAttribute</span> |
| types replace <span class="code">DOMConfigurator</span> and |
| <span class="code">DOMConfiguratorAttribute</span>. The |
| <span class="code">RepositoryAttribute</span> |
| and <span class="code">AliasRepositoryAttribute</span> types replace |
| <span class="code">DomainAttribute</span> |
| and <span class="code">AliasDomainAttribute</span>. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Fixed_pascal_casing_of_type_names"></a>Fixed pascal casing of type names</h3> |
| |
| <p> |
| Renamed <span class="code">AdoNetAppender</span>, <span class="code">AspNetTraceAppender</span>, |
| <span class="code">SmtpAppender</span>, <span class="code">Iso8601DateFormatter</span>, |
| <span class="code">MdcFilter</span>, and <span class="code">NdcFilter</span>. |
| Note that the config file type resolver is case insensitive so this is only a breaking change |
| for code that programmatically creates a type that has been renamed. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Layouts_changed_to_stream_their_output_to_a____________TextWriter"></a> |
| Layouts changed to stream their output to a |
| <span class="code">TextWriter</span> |
| </h3> |
| |
| <p> |
| Layouts have been changed to format their output to a |
| <span class="code">TextWriter</span> |
| rather than return a string. This increases performance and reduces temporary object creation. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="C_style_string_escapes_no_longer_supported_by_config_parser"></a>C style string escapes no longer supported by config parser</h3> |
| |
| <p> |
| The XML config parser no longer supports decoding C style escape sequences in strings. |
| Previously sequences like <span class="code">\n</span> and |
| <span class="code">\\</span> |
| where decoded. Instead use the appropriate XML encodings as required. |
| </p> |
| </div></div> |
| |
| <a name="a1.2.9-new"></a> |
| <div class="section" id="a1.2.9-new"> |
| <h2><a name="New_Features"></a>New Features</h2> |
| |
| <div class="section"> |
| <h3><a name="New_CLI_build"></a>New CLI build</h3> |
| |
| <p> |
| A new log4net assembly is built that targets all CLI 1.0 compatible runtimes. |
| This build is essentially a common subset of the Mono 1.0 and .NET 1.0 builds. |
| It is built using the MS .NET 1.0 compiler and libraries but does not use any |
| platform specific APIs. |
| </p> |
| |
| <p> |
| This build is only available in release configuration and can be found at |
| <span class="code">bin\cli\1.0\release</span>. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Logging_contexts"></a>Logging contexts</h3> |
| |
| <p> |
| Logging contexts can be used to record contextual data that is relevant to the current |
| process. Logging contexts are both an extension of the concepts embodied in the |
| <span class="code">MDC</span> |
| and <span class="code">NDC</span> and a replacement for |
| them. The <span class="code">MDC</span> and <span class="code">NDC</span> have been |
| reimplemented to use the <span class="code">ThreadContext</span> as storage. |
| </p> |
| |
| <p> |
| The logging contexts provide a single unified view that cuts across different |
| scopes within an application. |
| The contexts are layered in the following order of narrowing scope: |
| <span class="code">GlobalContext</span>, <span class="code">ThreadContext</span>, |
| <span class="code">LogicalThreadContext</span>, and <span class="code">LoggingEvent</span>. |
| Context values specified in a narrower scope hide the matching value in a wider scope. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="PatternLayout____________customization_and_long_pattern_names"></a> |
| <span class="code">PatternLayout</span> |
| customization and long pattern names |
| </h3> |
| |
| <p> |
| The <span class="code">PatternLayout</span> now supports long pattern names. |
| These pattern names are significantly more readable than the single character patterns. |
| </p> |
| |
| <p> |
| The <span class="code">PatternLayout</span> now supports custom patterns. New patterns |
| can be defined in the config file: |
| </p> |
| |
| <div class="syntax"> |
| |
| <div> |
| <pre class="code"> |
| <layout type="log4net.Layout.PatternLayout"> |
| |
| <converter> |
| <name value="myConverter" /> |
| <type value="TestApp.MyPatternConverter, TestApp" /> |
| </converter> |
| |
| <conversionPattern value="%-5level %logger - %myConverter - %message%newline" /> |
| </layout> |
| </pre></div> |
| </div> |
| |
| <p> |
| The above config defines a custom pattern called |
| <span class="code">myConverter</span> |
| which is bound to the |
| <span class="code">TestApp.MyPatternConverter, TestApp</span> |
| type. This type must extend the |
| <span class="code">log4net.Util.PatternConverter</span> |
| base class. The custom pattern can then be used in the pattern string. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="PatternString____________for_pattern_based_configuration"></a> |
| <span class="code">PatternString</span> |
| for pattern based configuration |
| </h3> |
| |
| <p> |
| A new pattern based type, <span class="code">PatternString</span>, can be used in |
| the config file to set string properties using a pattern syntax. For example the |
| File property of the FileAppender could be set as follows: |
| </p> |
| |
| <div class="syntax"> |
| |
| <div> |
| <pre class="code"> |
| <file type="log4net.Util.PatternString"> |
| |
| <converter> |
| <name value="folder" /> |
| <type value="TestApp.SpecialFolderPatternConverter,TestApp" /> |
| </converter> |
| |
| <conversionPattern value="%folder{LocalApplicationData}\log-file.txt" /> |
| </file> |
| </pre></div> |
| </div> |
| |
| <p> |
| The code for the |
| <span class="code">SpecialFolderPatternConverter</span> |
| is as follows: |
| </p> |
| |
| <div class="syntax"> |
| |
| <div> |
| <pre class="code"> |
| public class SpecialFolderPatternConverter : log4net.Util.PatternConverter |
| { |
| override protected void Convert(System.IO.TextWriter writer, object state) |
| { |
| Environment.SpecialFolder specialFolder = |
| (Environment.SpecialFolder)Enum.Parse(typeof(Environment.SpecialFolder), base.Option, true); |
| |
| writer.Write(Environment.GetFolderPath(specialFolder)); |
| } |
| } |
| </pre></div> |
| </div> |
| </div> |
| <div class="section"> |
| <h3><a name="Loading_configuration_from_a_URI"></a>Loading configuration from a URI</h3> |
| |
| <p> |
| The <span class="code">XmlConfigurator</span> methods now support loading the |
| configuration data from a URI. Config can be loaded from any URI supported by the |
| <span class="code">System.Net.WebRequest</span> |
| class. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Support_for_No-Touch_deployment"></a>Support for No-Touch deployment</h3> |
| |
| <p> |
| Log4net supports configuring No-Touch deployment applications using the |
| <span class="code">XmlConfiguratorAttribute</span>. If a relative config file |
| or extension is specified then this is resolved relative to the deployment |
| URI. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Config_file_parser_enhancements"></a>Config file parser enhancements</h3> |
| |
| <p> |
| The config file parser has been enhanced to support specifying the property subtype, or |
| intermediate |
| type, |
| directly on the property element, for example: |
| </p> |
| |
| <div class="syntax"> |
| |
| <div> |
| <pre class="code"> |
| <layout type="log4net.Layout.PatternLayout" value="%message%newline" |
| /> |
| </pre></div> |
| </div> |
| |
| <p> |
| Implicit conversion will be attempted between the value string and the type specified, |
| and then again between the type and the target property type. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="a.NET_string_formatting_syntax"></a>.NET string formatting syntax</h3> |
| |
| <p> |
| Added .NET <span class="code">String.Format</span> style formatting syntax methods to |
| the <span class="code">ILog</span> interface. The new methods are: |
| <span class="code">DebugFormat</span>, <span class="code">InfoFormat</span>, |
| <span class="code">WarnFormat</span>, |
| <span class="code">ErrorFormat</span> |
| and <span class="code">FatalFormat</span>. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Customizable_levels"></a>Customizable levels</h3> |
| |
| <p> |
| Levels are defined by the repository <span class="code">LevelMap</span>. The defined |
| levels, the relative ordering of levels and level display names can be configured on |
| a per-repository basis. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Per-appender_security_contexts"></a>Per-appender security contexts</h3> |
| |
| <p> |
| Appenders that interact with controlled platform resources, e.g. files, can be |
| configured to use a separate security context when accessing these resources. |
| The calling thread may not have appropriate privileges to access the resource a |
| custom <span class="code">SecurityContext</span> can be used to elevate the |
| privileges of the appender. The |
| <span class="code">WindowsSecurityContext</span> |
| is used to specify alternative credentials on the Windows platform. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_new_appenders"></a>Added new appenders</h3> |
| |
| <dl> |
| |
| <dt> |
| <span class="code">AnsiColorTerminalAppender</span> |
| </dt> |
| |
| <dd> |
| |
| <p> |
| The <span class="code">AnsiColorTerminalAppender</span> writes events to |
| the application's ANSI terminal window. It can be configured to specify |
| the text and background colors for different level events. Note that Console |
| applications running on Windows do not have an ANSI terminal window and |
| should use the <span class="code">ColoredConsoleAppender</span> instead. |
| </p> |
| </dd> |
| |
| <dt> |
| <span class="code">LocalSyslogAppender</span> |
| </dt> |
| |
| <dd> |
| |
| <p> |
| Logs events to a local syslog service. This appender uses the POSIX libc syslog |
| library functions. If these functions are not available on the local system then |
| this appender will not work! |
| </p> |
| </dd> |
| |
| <dt> |
| <span class="code">RemoteSyslogAppender</span> |
| </dt> |
| |
| <dd> |
| |
| <p> |
| The <span class="code">RemoteSyslogAppender</span> uses the BSD syslog protocol to |
| log to a syslog daemon. The syslogd listens for for messages on UDP port 514. |
| </p> |
| </dd> |
| |
| <dt> |
| <span class="code">TelnetAppender</span> |
| </dt> |
| |
| <dd> |
| |
| <p> |
| The <span class="code">TelnetAppender</span> accepts socket connections and streams |
| logging messages back to the client. The output is provided in a telnet-friendly way |
| so that a log can be monitored over a TCP/IP socket. |
| This allows simple remote monitoring of application logging. |
| </p> |
| </dd> |
| </dl> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_new_LoggerMatchFilter_filter"></a> |
| Added new <span class="code">LoggerMatchFilter</span> filter |
| </h3> |
| |
| <p> |
| Added <span class="code">LoggerMatchFilter</span> which matches a string against |
| the event's logger name. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Pluggable_file_locking_models_for_the____________FileAppender"></a> |
| Pluggable file locking models for the |
| <span class="code">FileAppender</span> |
| </h3> |
| |
| <p> |
| The <span class="code">FileAppender</span> (and by extension the |
| <span class="code">RollingFileAppender</span>) now support pluggable file |
| locking models. The default model, <span class="code">ExclusiveLock</span>, |
| maintains the current exclusive file locking behavior. An alternative |
| model, <span class="code">MinimalLock</span>, can be used to support writing to |
| a single output file from multiple processes. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="RollingFileAppender____________roll_once"></a> |
| <span class="code">RollingFileAppender</span> |
| roll once |
| </h3> |
| |
| <p> |
| The <span class="code">RollingFileAppender</span> now supports a new |
| rolling style, <span class="code">Once</span>. In this mode the appender |
| will roll the file once per run. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="SmtpAppender____________authentication"></a> |
| <span class="code">SmtpAppender</span> |
| authentication |
| </h3> |
| |
| <p> |
| On the .NET 1.1 platform only, the <span class="code">SmtpAppender</span> supports |
| authenticating |
| against the mail server using either username and password or integrated NTLM authentication. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="AdoNetAppender____________ReconnectOnError"></a> |
| <span class="code">AdoNetAppender</span> |
| ReconnectOnError |
| </h3> |
| |
| <p> |
| Added new configuration property to <span class="code">AdoNetAppender</span>. |
| Setting <span class="code">ReconnectOnError</span> to |
| <span class="code">true</span> |
| will force the appender to attempt to reconnect to the database if the connection |
| is lost. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="UdpAppender____________hostname_support"></a> |
| <span class="code">UdpAppender</span> |
| hostname support |
| </h3> |
| |
| <p> |
| The <span class="code">UdpAppender</span> config property |
| <span class="code">RemoteAddress</span> |
| can now be specified as a DNS hostname string. The hostname is resolved to an IP address. |
| </p> |
| </div></div> |
| |
| <a name="a1.2.9-other"></a> |
| <div class="section" id="a1.2.9-other"> |
| <h2><a name="Other_Changes"></a>Other Changes</h2> |
| |
| <div class="section"> |
| <h3><a name="FxCop_compliance"></a>FxCop compliance</h3> |
| |
| <p> |
| Updates to bring the internal code in line with the current FxCop rules. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Separate_NUnit_tests"></a>Separate NUnit tests</h3> |
| |
| <p> |
| Moved the NUnit tests into a separate project, <span class="code">log4net.Tests</span>. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Bug_Fixes"></a>Bug Fixes</h3> |
| |
| <dl> |
| |
| <dt> |
| <span class="code">RemotingAppender</span> |
| </dt> |
| |
| <dd> |
| |
| <p> |
| Sends events from a <span class="code">ThreadPool</span> thread |
| rather than the calling thread to prevent transfer, |
| and potential loss, of the <span class="code">CallContext</span>. |
| </p> |
| </dd> |
| |
| <dt> |
| <span class="code">RollingFileAppender</span> |
| </dt> |
| |
| <dd> |
| |
| <p> |
| Fixed date rolling period detection for non UTC timezones. |
| </p> |
| </dd> |
| |
| <dt> |
| <span class="code">ColoredConsoleAppender</span> |
| </dt> |
| |
| <dd> |
| |
| <p> |
| Updated to support writing more than 30,000 chars in a single message. |
| Fixed background color overspill if the console window needs to |
| scroll the contents. |
| </p> |
| </dd> |
| </dl> |
| </div></div> |
| |
| </div> |
| |
| <a name="a1.2.0"></a> |
| <div class="section" id="a1.2.0"> |
| <h2><a name="a1.2.0"></a>1.2.0</h2> |
| |
| <div class="section"> |
| <h3><a name="Changed_assembly_name_to__________log4net"></a> |
| 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> |
| </div> |
| <div class="section"> |
| <h3><a name="Combined_Release_and_ReleaseStrong_builds"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="New_Appender:_ColoredConsoleAppender"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="New_Appender:_SmtpPickupDirAppender"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="New_Layout:_XmlLayoutSchemaLog4j"></a>New Layout: XmlLayoutSchemaLog4j</h3> |
| |
| <p> |
| This new layout formats the logging events as XML which complies with |
| the Apache 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> |
| </div> |
| <div class="section"> |
| <h3><a name="New_PatternLayout_conversion_characters"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Types_specified_in_the_config_file_are_now_loaded_ignoring_case"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Fine_grained_fixing_for_buffered_events"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Code_updated_inline_with_FxCop_1.21"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="EventLogAppender_32K_Limit"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Updated_to_support_the_Microsoft_.NET_Framework_1.1_Final"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Features_document"></a>Features document</h3> |
| |
| <p> |
| Added a new document that covers the main features of log4net. |
| See the |
| <a href="features.html">features</a> |
| document for more information. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Hierarchy_disabled_until_it_is_configured"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="New_examples_in_VisualBasic.NET_JScript_and_Managed_C"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Code_and_Documentation_Updates"></a>Code and Documentation Updates</h3> |
| |
| <p> |
| Code fixes. Documentation and manual updates. |
| See the ChangeLog for more information. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_document_with_example_appender_configurations"></a>Added document with example appender configurations</h3> |
| |
| <p> |
| See the |
| <a href="config-examples.html">Example Appender Configuration</a> |
| document for more information. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_support_for_multiple_frameworks"></a>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 border="0" class="bodyTable" cellspacing="0"> |
| <colgroup> |
| <col style="text-align: left;" /> |
| </colgroup> |
| |
| <tr class="a"> |
| |
| <th> |
| Framework |
| </th> |
| |
| <th> |
| Website |
| </th> |
| </tr> |
| |
| <tr class="b" style="vertical-align: top;"> |
| |
| <td>Microsoft .NET Framework 1.1 Final Beta (1.1.4322)</td> |
| |
| <td> |
| <a class="externalLink" href="http://msdn.microsoft.com/net">http://msdn.microsoft.com/net</a> |
| </td> |
| </tr> |
| |
| <tr class="a" style="vertical-align: top;"> |
| |
| <td>Microsoft .NET Compact Framework 1.0 (1.0.5000)</td> |
| |
| <td> |
| <a class="externalLink" href="http://msdn.microsoft.com/vstudio/device/compactfx.asp"> |
| http://msdn.microsoft.com/vstudio/device/compactfx.asp |
| </a> |
| </td> |
| </tr> |
| |
| <tr class="b" style="vertical-align: top;"> |
| |
| <td>Mono 0.23</td> |
| |
| <td> |
| <a class="externalLink" href="http://www.go-mono.org">http://www.go-mono.org</a> |
| </td> |
| </tr> |
| |
| <tr class="a" style="vertical-align: top;"> |
| |
| <td>Microsoft Shared Source CLI 1.0</td> |
| |
| <td> |
| <a class="externalLink" href="http://msdn.microsoft.com/library/en-us/dndotnet/html/mssharsourcecli.asp"> |
| http://msdn.microsoft.com/library/en-us/dndotnet/html/mssharsourcecli.asp |
| </a> |
| </td> |
| </tr> |
| </table> |
| </div> |
| <br /> |
| |
| <p> |
| Not all frameworks are created equal and some features have been excluded from |
| some of the builds. See the <a href="framework-support.html">Framework Support</a> document for more |
| information. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="New_build_system_using_NAnt"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="New_source_code__distribution_layout"></a>New source code & distribution layout</h3> |
| |
| <p> |
| The source code & distribution layout has been updated to support the new |
| build environment and multiple target frameworks. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Removed_DomainAttribute.UseDefaultDomain_property"></a>Removed DomainAttribute.UseDefaultDomain property</h3> |
| |
| <p> |
| Updated default behavior of <span class="code">DefaultRepositorySelector</span>. Assemblies |
| are now by default placed into the default domain. To specify another domain, |
| the <span class="code">DomainAttribute</span> must be used. This is the opposite behavior |
| to what was previously available. If you were previously specifying the |
| <span class="code">DomainAttribute.UseDefaultDomain</span> |
| property then you should remove it, and if the default behavior is now |
| sufficient, you do not need to specify the <span class="code">DomainAttribute</span> at all. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Updated_configuration_file_parser"></a>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"><object></span> tag, the type attribute can now be |
| specified on the property element directly. |
| </p> |
| |
| <p> |
| For example: |
| </p> |
| |
| <div class="syntax"> |
| |
| <div> |
| <pre class="code"> |
| <appender> |
| <param name="Evaluator"> |
| <object type="log4net.spi.LevelEvaluator"> |
| <constructor> |
| <param type="log4net.spi.Level" value="DEBUG"/> |
| </constructor> |
| </object> |
| </param> |
| </appender> |
| </pre></div> |
| </div> |
| |
| <p> |
| becomes: |
| </p> |
| |
| <div class="syntax"> |
| |
| <div> |
| <pre class="code"> |
| <appender> |
| <evaluator type="log4net.spi.LevelEvaluator"> |
| <threshold value="DEBUG"/> |
| </evaluator> |
| </appender> |
| </pre></div> |
| </div> |
| </div> |
| <div class="section"> |
| <h3><a name="Support_for_event_ID"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Updated_ADONetAppender"></a>Updated ADONetAppender</h3> |
| |
| <p></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></p> |
| </div> |
| <div class="section"> |
| <h3><a name="Support_for_front-end_extension"></a>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 border="0" class="bodyTable" cellspacing="0"> |
| <colgroup> |
| <col style="width: 50%; text-align: left;" /> |
| <col style="width: 50%; text-align: left;" /> |
| </colgroup> |
| |
| <tr class="a"> |
| |
| <th> |
| Extension |
| </th> |
| |
| <th> |
| Description |
| </th> |
| </tr> |
| |
| <tr class="b" style="vertical-align: top;"> |
| |
| <td>log4net.Ext.Trace</td> |
| |
| <td>Adds trace logging methods</td> |
| </tr> |
| |
| <tr class="a" style="vertical-align: top;"> |
| |
| <td>log4net.Ext.EventID</td> |
| |
| <td>Adds additional eventId parameter to all methods</td> |
| </tr> |
| </table> |
| </div> |
| |
| <p></p> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_ForwardingAppender"></a>Added ForwardingAppender</h3> |
| |
| <p>Forwards events to multiple sub appenders after applying filter rules.</p> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_BufferingForwardingAppender"></a>Added BufferingForwardingAppender</h3> |
| |
| <p>Forward events to sub appenders after buffering them.</p> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_ASPNetTraceAppender"></a>Added ASPNetTraceAppender</h3> |
| |
| <p>Logs events to the ASP.NET trace system.</p> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_NetSendAppender"></a>Added NetSendAppender</h3> |
| |
| <p>Delivers logging events using the Windows Messenger service.</p> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_UdpAppender"></a>Added UdpAppender</h3> |
| |
| <p> |
| Sends logging events as connectionless UDP datagrams to a remote host or a |
| multicast group. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Removed_obsolete_methods"></a>Removed obsolete methods</h3> |
| </div> |
| <div class="section"> |
| <h3><a name="Lots_of_updates_to_improve_our_compliance_with_FxCop"></a>Lots of updates to improve our compliance with FxCop</h3> |
| </div> |
| <div class="section"> |
| <h3><a name="Improved_SDK_documentation"></a>Improved SDK documentation</h3> |
| </div> |
| <div class="section"> |
| <h3><a name="Fixed_Exception_thrown_when_DOM_Configurator_called_with_a_null_XML__________Element."></a> |
| 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> |
| </div> |
| <div class="section"> |
| <h3><a name="Made_level_lookup_case_insensitive"></a>Made level lookup case insensitive</h3> |
| </div> |
| <div class="section"> |
| <h3><a name="Prevented_the_Hierarchys_Threshold_level_from_being_set_to_a_null_reference"></a>Prevented the Hierarchy's Threshold level from being set to a null reference</h3> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_event_specific_properties_to_the_logging_event_object"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_a_plugin_framework"></a>Added a plugin framework</h3> |
| |
| <p> |
| An <span class="code">IPlugin</span> interface can be attached to any repository. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="A_new_RemoteLoggingServerPlugin_plugin_acts_as_the_server_for_the__________RemotingAppender"></a> |
| A new RemoteLoggingServerPlugin plugin acts as the server for the |
| RemotingAppender |
| </h3> |
| </div> |
| <div class="section"> |
| <h3><a name="Updated_the_core_log4net_framework_to_work_in_an_environment_with_no__________permissions"></a> |
| 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> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_support_for_domain_aliasing_using_the_AliasDomainAttribute"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_events_for_repository_creation_configuration_change_configuration_reset__________and_repository_shutdown"></a> |
| Added events for repository creation, configuration change, configuration reset |
| and repository shutdown |
| </h3> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_LevelMap_to_the_ILoggerRepository_interface"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Moved_hierarchy_specific_config_file_parser_to_new_DOMHierarchyConfigurator_class"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_OnlyFixPartialEventData_property_to_the_buffered_appenders"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="XML_entity_references_are_supported_in_the_XML_config_file."></a>XML entity references are supported in the XML config file.</h3> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_support_for_expanding_environment_variables_in_param_values"></a>Added support for expanding environment variables in <param> 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> |
| </div> |
| <div class="section"> |
| <h3><a name="Upgraded_to_use_NUnit_2.0"></a>Upgraded to use NUnit 2.0</h3> |
| </div> |
| <div class="section"> |
| <h3><a name="File_appenders_can_specify_the_encoding_to_use_for_the_file"></a>File appenders can specify the encoding to use for the file</h3> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_strong_named_configuration"></a>Added strong named configuration</h3> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_log4net.Ext.Trace_extension"></a>Added log4net.Ext.Trace extension</h3> |
| |
| <p>This is a separate assembly that adds a trace level to log4net.</p> |
| </div> |
| <div class="section"> |
| <h3><a name="The_default_log_file_output_directory_is_now_the_application_base_directory_not__________the_current_directory"></a> |
| The default log file output directory is now the application base directory not |
| the current directory |
| </h3> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_MemoryAppender"></a>Added MemoryAppender</h3> |
| |
| <p>Stores all the logging events in an in-memory buffer.</p> |
| </div> |
| <div class="section"> |
| <h3><a name="Moved_the_Hierarchy_implementation_into_a_separate_namespace"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Refactored_the_DOMConfigurator_and_BasicConfigurator"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Replaced_the_DOMConfiguratorAttribute_UseExecutableDomain__________property_with_UseDefaultDomain"></a> |
| 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> |
| </div> |
| <div class="section"> |
| <h3><a name="A_few_good_bug_fixes"></a>A few good bug fixes!</h3> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_ADONetAppender"></a>Added ADONetAppender</h3> |
| |
| <p>Thanks to TechnologyOneCorp.com.</p> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_TraceLogAssembly_extensibility_example"></a>Added TraceLogAssembly extensibility example</h3> |
| </div> |
| <div class="section"> |
| <h3><a name="Lots_of_bug_fixes"></a>Lots of bug fixes</h3> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_6_new_examples"></a>Added 6 new examples</h3> |
| </div> |
| <div class="section"> |
| <h3><a name="Split_Category_class_into_Logger_and_LogManager_classes"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Replaced_Priority_class_with_Level_class"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_ILoggerRepository_interface_implemented_by_Hierarchy"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Enhanced_NUnit_tests"></a>Enhanced NUnit tests</h3> |
| |
| <p> |
| All the NUnit tests can be run using a single TestSuite: NUnitGUI |
| log4net.LogManager+AllTests,log4net.dll. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_support_for_serializing_LoggingEvents"></a>Added support for serializing LoggingEvents</h3> |
| |
| <p> |
| The <span class="code">LoggingEvent</span> class is serializable. All local state is |
| captured before serialization occurs. This now allows |
| <span class="code">LoggingEvent</span> |
| objects to be serialized between applications or machines. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_RemotingAppender"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_support_for_rendering_composite_objects"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_support_for_rendering_exceptions"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_ITriggeringEventEvaluator_interface"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_regex_matching_to_the_MDCFilter_NDCFilter_and_StringMatchFilter"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_XMLLayout"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_support_for_logger_and_level_elements_in_the__________DOMConfigurator"></a> |
| Added support for <logger> and <level> 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"><logger></span> and |
| <span class="code"><level></span> |
| elements to be used in place of the <span class="code"><category></span> and |
| <span class="code"><priority></span> |
| elements. The old elements are still accepted for backward compatibility. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_Threshold_property_to_Hierarchy"></a>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> |
| </div> |
| <div class="section"> |
| <h3><a name="Added_support_for_logging_domains"></a>Added support for logging domains</h3> |
| |
| <p> |
| The <span class="code">LogManager</span> supports multiple logging domains. The |
| <span class="code">LogManager</span> |
| uses an instance of the <span class="code">IRepositorySelector</span> class to map from |
| domains to <span class="code">ILoggerRepository</span> instances. The default implementation |
| is to have a separate <span class="code">ILoggerRepository</span> for each domain. When a |
| call is made to the static methods on <span class="code">LogManager</span> the domain can be |
| specified (as a string) or the domain can be inferred automatically from the |
| calling assembly. The default behavior is for each assembly loaded into the |
| process to have its own domain and <span class="code">ILoggerRepository</span>. These can |
| each be configured separately. This allows standalone assemblies to use log4net |
| without conflicting with other modules in the process. The domain for the |
| assembly is configured using metadata attributes defined on the assembly. |
| </p> |
| </div> |
| <div class="section"> |
| <h3><a name="DOMConfigurator_can_set_params_to_arbitrary_objects"></a>DOMConfigurator can set params to arbitrary objects</h3> |
| |
| <p> |
| Using a new <span class="code"><object></span> element, params can now be set to any |
| creatable object. |
| </p> |
| </div></div> |
| |
| </div> |
| |
| |
| </td> |
| </tr> |
| </table> |
| </div> |
| |
| <div class="footer"> |
| <p>Copyright © 2004-2024 <a class="external" href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.</p> |
| <p>Apache log4net, Apache, log4net, the Apache feather logo, the Apache Logging Services project logo and the Built by Maven logo are trademarks of The Apache Software Foundation.</p> |
| <p>Site powered by <a class="external" href="http://getbootstrap.com/">Twitter Bootstrap</a>. Icons from <a class="external" href="http://glyphicons.com/">Glyphicons Free</a>.</p> |
| </div> |
| </div> |
| </body> |
| </html> |