<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.apache.logging.log4net.devel">
    <title>gmane.comp.apache.logging.log4net.devel</title>
    <link>http://blog.gmane.org/gmane.comp.apache.logging.log4net.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/387"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/386"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/385"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/383"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/380"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/379"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/376"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/370"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/369"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/366"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/365"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/364"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/359"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/355"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/352"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/348"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/341"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/339"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/332"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/330"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/387">
    <title>[jira] Created: (LOG4NET-179) Log file does not get created by release version of App.exe</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/387</link>
    <description>Log file does not get created by release version of App.exe
-----------------------------------------------------------

                 Key: LOG4NET-179
                 URL: https://issues.apache.org/jira/browse/LOG4NET-179
             Project: Log4net
          Issue Type: Test
    Affects Versions: 1.2.10
         Environment: Visual Studio 2005, language C#, OS Windows XP Professional
            Reporter: Shetal Shah


I have a windows application that uses log4net. 

My app.config section has
&lt;log4net&gt;
    &lt;appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"&gt;
      &lt;file value="nul" /&gt;
      &lt;appendToFile value="false" /&gt;
      &lt;rollingStyle value="Size" /&gt;
      &lt;maxSizeRollBackups value="10" /&gt;
      &lt;maximumFileSize value="2MB" /&gt;
      &lt;layout type="log4net.Layout.PatternLayout"&gt;
        &lt;param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /&gt;
      &lt;/layout&gt;
    &lt;/appender&gt;
    &lt;root&gt;
      &lt;level value="ALL" /&gt;
      &lt;appender-ref ref="RollingFileAppender" /&gt;
      &lt;appender-ref ref="UdpAppender" /&gt;
    &lt;/root&gt;
  &lt;/log4net&gt;

When I build my exe in debug mode and run it, it works fine and 

log4net.Repository.ILoggerRepository RootRep;
RootRep = log4net.LogManager.GetRepository();

RootRep is configured and has one appender.

Now, same code but when I compile the exe in release mode, it does not create log file. RootRep is not configured and it has 0 appender.

I am not sure what is different between debug and release exe.

Any help is greatly appriciated.

Thanks
Shetal Shah

</description>
    <dc:creator>Shetal Shah (JIRA</dc:creator>
    <dc:date>2008-10-06T18:49:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/386">
    <title>[jira] Created: (LOG4NET-178) Log4Net stops logging after appdomain recycle of aps.net2.0 application</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/386</link>
    <description>Log4Net stops logging after appdomain recycle of aps.net2.0 application
-----------------------------------------------------------------------

                 Key: LOG4NET-178
                 URL: https://issues.apache.org/jira/browse/LOG4NET-178
             Project: Log4net
          Issue Type: Bug
          Components: Appenders
    Affects Versions: 1.2.10
         Environment: Windows server 2003
            Reporter: Richard Nijkamp


Dear sir/madam,

 We are using Log4Net 1.2.10. We encounter the problem that Log4net doesn't continue logging after an event that triggers an appdomain recycle/restart.

 In the global.asax we start the logging with:

 private static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

Logging works flawless when the application is started for the first time. After sometime it might occur that the appdomain gets recycled due to inactivity of the web application. We use the following code in Application_end():

log.Info("*** Application end ***");

log4net.LogManager.Shutdown();

After this function the application gets restarted and the Application_start() method executes and writes new lines to the log. The problem is that the log4net doesn't write the new lines after the restart. Could you explain why log4net might stop working after an appdomain restart of an asp.net2.0 web application? If I want log4net to work properly again I need to restart IIS manually.

 Looking forward to your reply.

Best regards,

Richard Nijkamp


</description>
    <dc:creator>Richard Nijkamp (JIRA</dc:creator>
    <dc:date>2008-10-06T08:37:45</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/385">
    <title>[jira] Created: (LOG4NET-177) How to get the pattern convert string form layout?</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/385</link>
    <description>How to get the pattern convert string form layout?
--------------------------------------------------

                 Key: LOG4NET-177
                 URL: https://issues.apache.org/jira/browse/LOG4NET-177
             Project: Log4net
          Issue Type: Test
    Affects Versions: 1.2.10
            Reporter: anvy0314


Hi, I want to get the whole string after pattern format, how to do it, thanks!

Like this string "2008-10-06 15:50:45,875 [192.168.7.103] DEBUG PingTestLogger..." before write to the log file.

</description>
    <dc:creator>anvy0314 (JIRA</dc:creator>
    <dc:date>2008-10-06T08:11:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/383">
    <title>[jira] Created: (LOG4NET-176) Buildable with VS 2008 and .NET FW 3.5</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/383</link>
    <description>Buildable with VS 2008 and .NET FW 3.5
--------------------------------------

                 Key: LOG4NET-176
                 URL: https://issues.apache.org/jira/browse/LOG4NET-176
             Project: Log4net
          Issue Type: New Feature
          Components: Builds
         Environment: Windows, log4net trunk, vs 2008 .net 3.5
            Reporter: Nicklas Norling
            Priority: Minor
             Fix For: v.Next


Providing a patch for the changes I'm using when compiling log4net locally using vs2008 and .net 3.5. The patch is created against trunk &lt; at &gt; 701632. It adds project and solution files for vs 2008, adds compilation symbol NET_3_5 which is then added to all conditional compilation statements that have NET_2_0 today. Also the AssemblyInfo.cs has a .NET 3.5 section added. Since the project files have to be manually updated when new files are added to trunk I would appretiate it if this patch (or one with similar functions) where added to trunk.

</description>
    <dc:creator>Nicklas Norling (JIRA</dc:creator>
    <dc:date>2008-10-04T13:19:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/380">
    <title>Configuration system enhancement</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/380</link>
    <description>Hi

    We are using log4net through out all our applications and are very 
happy with it. I would like to know however if you ever considered 
enhancing the configuration system. I would be especially interested in 
being able to fully initialize log4net programmatically. All the sample 
I have been able to find are always using an xml description but there 
are parameters we need to pass to a special appender we have develop 
that simply cannot be serialized.

Bests

François Dumont



</description>
    <dc:creator>François Dumont</dc:creator>
    <dc:date>2008-10-01T19:34:28</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/379">
    <title>Appender to run at a Schedule Time</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/379</link>
    <description>
Hi,

I need to run the smtp appender at a specified interval of time.
Any ideas how I can do this to that the appender will run at specific
intervals and send all the buffered messages.

Any pointers will be helpful.
Thanks in advance.

Thanks,
Hemant
</description>
    <dc:creator>HemantJPatel</dc:creator>
    <dc:date>2008-09-30T15:29:53</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/376">
    <title>[jira] Created: (LOG4NET-175) RollingFileAppender generates unexpected filename and/or causes IIS to hang</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/376</link>
    <description>RollingFileAppender generates unexpected filename and/or causes IIS to hang
---------------------------------------------------------------------------

                 Key: LOG4NET-175
                 URL: https://issues.apache.org/jira/browse/LOG4NET-175
             Project: Log4net
          Issue Type: Bug
          Components: Appenders
    Affects Versions: 1.2.9
         Environment: win32
            Reporter: Devan Iyer


We are using rolling file appender in an IIS managed C# application. Our log4Net deployment is configured with the following options specified in basic.xml: &lt;appendToFile value="false" /&gt; &lt;countDirection value="0" /&gt; &lt;maximumFileSize value="512KB" /&gt; &lt;maxSizeRollBackups value="100" /&gt; &lt;rollingStyle value="Once" /&gt; &lt;staticLogFileName value="false" /&gt;. The file pattern for our log file name is "abc_%date{yyyyMMdd_HHmmss}_%processid_.log".

We have observed in our production environment that occasionally filenames would be created with patterns like "abc_%date{yyyyMMdd_HHmmss}_%processid_.log.1", "abc_%date{yyyyMMdd_HHmmss}_%processid_.log.1.2", "abc_%date{yyyyMMdd_HHmmss}_%processid_.log.1.2.3", etc. We have observed filenames with the dot+sequential numbers pattern after the .log to be anything from ".1" to ".220". This is one of two unexpected behaviours observed.

 

The second unexpected behaviour seems to a special case of the first that occasionally causes IIS to hang (100% CPU consumption). An analysis of several crash dumps taken at the time of the hang indicated that RollingFileAppender had in memory a filename of the same pattern as above but with the number of characters [base filename pattern]+[recurring extension pattern] exceeding 255 characters. It is very likely that an attempt to create a file by such name on NTFS would throw exceptions at various levels - managed and native - and hence the file itself is never created.

 

To the best of our knowledge, there were no events to trigger the filename to be rolled. As indicated in the configuration options, we are using RollingStyle of "Once". (The log file content is minimal at the time the symptoms occur - total file size is about 2K - and the times of occurrence are totally non related).

 

We have been unable to capture the workflow leading up to the symptoms above due to the high number of users and document types in our production environment. The permissions on the logging folder are static. However, we have found a simple workflow in our lab environment, using permissions, that produce similar symptoms. This workflow is:

 

- Right click on the logging folder and select "Properties"

- Under the "Security" tab ensure that IIS_WPG group doesn't have write access to the logging folder.

- Restart IIS

- Launch our application and view a document.  Check the logging folder to make sure that a logfile is not created.

- View a few more documents

- Change the permission on the logging folder and ensure IIS_WPG group has write access to the folder.  DO NOT restart IIS after changing the permission.

- Launch our application and view another document.

- At this point a logfile with a filename pattern described will be found in the logging folder.

 

As mentioned, it is unlikely that permissions are the trigger in our event but it is likely that the same code is creating these unexpected patterns irrespective of the trigger.


</description>
    <dc:creator>Devan Iyer (JIRA</dc:creator>
    <dc:date>2008-09-29T23:10:45</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/370">
    <title>How to find where log4net is logging to at runtime</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/370</link>
    <description>
Hi,

I am using this code to load in an XML config file:

FileInfo configFile = new FileInfo("C:\\Log4Net.Config");
log4net.Config.XmlConfigurator.ConfigureAndWatch(configFile);

How can I then find out where Log4Net is logging to so I can display this
info to my user and tell them to look in the log file at X?

Thanks

Amy
</description>
    <dc:creator>lilalfyalien</dc:creator>
    <dc:date>2008-09-18T10:47:54</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/369">
    <title>RollingFileAppender generates unexpected filename and/or causes IIS to hang</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/369</link>
    <description>We are using rolling file appender in an IIS managed C# application. Our
log4Net deployment is configured with the following options specified in
basic.xml: &lt;appendToFile value="false" /&gt; &lt;countDirection value="0" /&gt;
&lt;maximumFileSize value="512KB" /&gt; &lt;maxSizeRollBackups value="100" /&gt;
&lt;rollingStyle value="Once" /&gt; &lt;staticLogFileName value="false" /&gt;. The
file pattern for our log file name is
"abc_%date{yyyyMMdd_HHmmss}_%processid_.log".

We have observed in our production environment that occasionally
filenames would be created with patterns like
"abc_%date{yyyyMMdd_HHmmss}_%processid_.log.1",
"abc_%date{yyyyMMdd_HHmmss}_%processid_.log.1.2",
"abc_%date{yyyyMMdd_HHmmss}_%processid_.log.1.2.3", etc. We have
observed filenames with the dot+sequential numbers pattern after the
.log to be anything from ".1" to ".220". This is one of two unexpected
behaviours observed.
 
The second unexpected behaviour seems to a special case of the first
that occasionally causes IIS to hang (100% CPU consumption). An analysis
of several crash dumps taken at the time of the hang indicated that
RollingFileAppender had in memory a filename of the same pattern as
above but with the number of characters [base filename
pattern]+[recurring extension pattern] exceeding 255 characters. It is
very likely that an attempt to create a file by such name on NTFS would
throw exceptions at various levels - managed and native - and hence the
file itself is never created.
 
To the best of our knowledge, there were no events to trigger the
filename to be rolled. As indicated in the configuration options, we are
using RollingStyle of "Once". (The log file content is minimal at the
time the symptoms occur - total file size is about 2K - and the times of
occurrence are totally non related).
 
We have been unable to capture the workflow leading up to the symptoms
above due to the high number of users and document types in our
production environment. The permissions on the logging folder are
static. However, we have found a simple workflow in our lab environment,
using permissions, that produce similar symptoms. This workflow is:
 
- Right click on the logging folder and select "Properties"
- Under the "Security" tab ensure that IIS_WPG group doesn't have write
access to the logging folder.
- Restart IIS
- Launch our application and view a document.  Check the logging folder
to make sure that a logfile is not created.
- View a few more documents
- Change the permission on the logging folder and ensure IIS_WPG group
has write access to the folder.  DO NOT restart IIS after changing the
permission.
- Launch our application and view another document.
- At this point a logfile with a filename pattern described will be
found in the logging folder.
 
As mentioned, it is unlikely that permissions are the trigger in our
event but it is likely that the same code is creating these unexpected
patterns irrespective of the trigger.

</description>
    <dc:creator>Iyer, Devan</dc:creator>
    <dc:date>2008-09-16T20:09:36</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/366">
    <title>Same file read/write from Multiple process</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/366</link>
    <description>
Hi All,

I am considering to use Log4Net in a web service to write to a single log
file. I want to know whether writing to a single file in this manner through
Log4Net is safe.  The current code I have implemented is in C# in which I am
writing to a single file which gives me error "The process cannot access the
file XXXXX because it is beign used by another process" 

To resolve the above problem I am considering using Log4Net.  If anyone has
any experience in using Log4Net please confirm me that this error will not
happen in Log4Net.

Thanks
pradeeptp
</description>
    <dc:creator>Pradeeptp</dc:creator>
    <dc:date>2008-09-11T12:27:02</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/365">
    <title>[jira] Created: (LOG4NET-174) log4net.dll references assemblies that are not part of the .NET 3.5 SP1 client profile</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/365</link>
    <description>log4net.dll references assemblies that are not part of the .NET 3.5 SP1 client profile
--------------------------------------------------------------------------------------

                 Key: LOG4NET-174
                 URL: https://issues.apache.org/jira/browse/LOG4NET-174
             Project: Log4net
          Issue Type: Bug
          Components: Builds
    Affects Versions: 1.2.10
         Environment: .Net 3.5 SP1
            Reporter: Kuno Meyer


.Net 3.5 SP1 / VS 2008 SP1 has a new build feature: the "client-only framework subset" switch in the projects settings, meaning that the developer can specify that only a limited subset of the .Net framework is used. This helps in reducing the size of installers that include the .Net framework.

Unfortunately, log4net.dll (1.2.10) has references to System.Web, which is not part of this "client-only framework subset". This leads to the following compilation warning:
&lt;&lt;&lt;
C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets : warning MSB3253: The referenced assembly "log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL" has a dependency on "System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which is not listed as part of the "Client" TargetFrameworkSubset. If this dependent reference is required, you may get compilation errors.

My proposal is to split log4net.dll into a new log4net.dll (core+generic appenders) and into a separate appender DLL (log4net.server.dll) for deployment on servers only.

</description>
    <dc:creator>Kuno Meyer (JIRA</dc:creator>
    <dc:date>2008-09-10T15:22:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/364">
    <title>[jira] Created: (LOG4NET-173) Request for NMS Appender</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/364</link>
    <description>Request for NMS Appender
------------------------

                 Key: LOG4NET-173
                 URL: https://issues.apache.org/jira/browse/LOG4NET-173
             Project: Log4net
          Issue Type: Wish
          Components: Appenders
    Affects Versions: v.Next
            Reporter: Mark Keenan
            Priority: Minor


Based on some messages in the ActiveMQ forum, I believe the NMS developers are getting close to a 1.0 release.  An NMS based appender for log4net would be extremely useful.


I'm not sure how much of the JMS appender could be ported from log4j but maybe that's a good starting point?

</description>
    <dc:creator>Mark Keenan (JIRA</dc:creator>
    <dc:date>2008-09-02T19:23:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/359">
    <title>[jira] Created: (LOG4NET-172) Web Service Appender</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/359</link>
    <description>Web Service Appender
--------------------

                 Key: LOG4NET-172
                 URL: https://issues.apache.org/jira/browse/LOG4NET-172
             Project: Log4net
          Issue Type: New Feature
          Components: Appenders
            Reporter: Brandon Wood
            Priority: Minor
         Attachments: WebServiceAppender.cs

I have created a web service appender for a project I'm working on, and would like to contribute the code to log4net.

</description>
    <dc:creator>Brandon Wood (JIRA</dc:creator>
    <dc:date>2008-08-26T18:30:46</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/355">
    <title>svn commit: r688531 - in /logging/log4net/trunk/src: Core/TimeEvaluator.cs log4net.vs2005.csproj</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/355</link>
    <description>Author: rgrabowski
Date: Sun Aug 24 10:17:25 2008
New Revision: 688531

URL: http://svn.apache.org/viewvc?rev=688531&amp;view=rev
Log:
Fix for LOG4NET-155. Added TimeEvaluator that will trigger a buffer flush if a certain amount of time has elapsed since the last event.

Added:
    logging/log4net/trunk/src/Core/TimeEvaluator.cs
Modified:
    logging/log4net/trunk/src/log4net.vs2005.csproj

Added: logging/log4net/trunk/src/Core/TimeEvaluator.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Core/TimeEvaluator.cs?rev=688531&amp;view=auto
==============================================================================
--- logging/log4net/trunk/src/Core/TimeEvaluator.cs (added)
+++ logging/log4net/trunk/src/Core/TimeEvaluator.cs Sun Aug 24 10:17:25 2008
&lt; at &gt;&lt; at &gt; -0,0 +1,147 &lt; at &gt;&lt; at &gt;
+#region Copyright &amp; License
+//
+// Copyright 2001-2005 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#endregion
+
+using System;
+
+namespace log4net.Core
+{
+    /// &lt;summary&gt;
+    /// An evaluator that triggers after specified number of seconds.
+    /// &lt;/summary&gt;
+    /// &lt;remarks&gt;
+    /// &lt;para&gt;
+    /// This evaluator will trigger if the specified time period 
+    /// &lt;see cref="Interval"/&gt; has passed since last check.
+    /// &lt;/para&gt;
+    /// &lt;/remarks&gt;
+    /// &lt;author&gt;Robert Sevcik&lt;/author&gt;
+    public class TimeEvaluator : ITriggeringEventEvaluator
+    {
+        /// &lt;summary&gt;
+        /// The time threshold for triggering in seconds. Zero means it won't trigger at all.
+        /// &lt;/summary&gt;
+        private int m_interval;
+
+        /// &lt;summary&gt;
+        /// The time of last check. This gets updated when the object is created and when the evaluator triggers.
+        /// &lt;/summary&gt;
+        private DateTime m_lasttime;
+
+        /// &lt;summary&gt;
+        /// The default time threshold for triggering in seconds. Zero means it won't trigger at all.
+        /// &lt;/summary&gt;
+        const int DEFAULT_INTERVAL = 0;
+
+        /// &lt;summary&gt;
+        /// Create a new evaluator using the &lt;see cref="DEFAULT_INTERVAL"/&gt; time threshold in seconds.
+        /// &lt;/summary&gt;
+        /// &lt;remarks&gt;
+        /// &lt;para&gt;
+        /// Create a new evaluator using the &lt;see cref="DEFAULT_INTERVAL"/&gt; time threshold in seconds.
+        /// &lt;/para&gt;
+        /// &lt;para&gt;
+        /// This evaluator will trigger if the specified time period 
+        /// &lt;see cref="Interval"/&gt; has passed since last check.
+        /// &lt;/para&gt;
+        /// &lt;/remarks&gt;
+        public TimeEvaluator()
+            : this(DEFAULT_INTERVAL)
+        {
+        }
+
+        /// &lt;summary&gt;
+        /// Create a new evaluator using the specified time threshold in seconds.
+        /// &lt;/summary&gt;
+        /// &lt;param name="interval"&gt;
+        /// The time threshold in seconds to trigger after.
+        /// Zero means it won't trigger at all.
+        /// &lt;/param&gt;
+        /// &lt;remarks&gt;
+        /// &lt;para&gt;
+        /// Create a new evaluator using the specified time threshold in seconds.
+        /// &lt;/para&gt;
+        /// &lt;para&gt;
+        /// This evaluator will trigger if the specified time period 
+        /// &lt;see cref="Interval"/&gt; has passed since last check.
+        /// &lt;/para&gt;
+        /// &lt;/remarks&gt;
+        public TimeEvaluator(int interval)
+        {
+            m_interval = interval;
+            m_lasttime = DateTime.Now;
+        }
+
+        /// &lt;summary&gt;
+        /// The time threshold in seconds to trigger after
+        /// &lt;/summary&gt;
+        /// &lt;value&gt;
+        /// The time threshold in seconds to trigger after.
+        /// Zero means it won't trigger at all.
+        /// &lt;/value&gt;
+        /// &lt;remarks&gt;
+        /// &lt;para&gt;
+        /// This evaluator will trigger if the specified time period 
+        /// &lt;see cref="Interval"/&gt; has passed since last check.
+        /// &lt;/para&gt;
+        /// &lt;/remarks&gt;
+        public int Interval
+        {
+            get { return m_interval; }
+            set { m_interval = value; }
+        }
+
+        /// &lt;summary&gt;
+        /// Is this &lt;paramref name="loggingEvent"/&gt; the triggering event?
+        /// &lt;/summary&gt;
+        /// &lt;param name="loggingEvent"&gt;The event to check&lt;/param&gt;
+        /// &lt;returns&gt;This method returns &lt;c&gt;true&lt;/c&gt;, if the specified time period 
+        /// &lt;see cref="Interval"/&gt; has passed since last check.. 
+        /// Otherwise it returns &lt;c&gt;false&lt;/c&gt;&lt;/returns&gt;
+        /// &lt;remarks&gt;
+        /// &lt;para&gt;
+        /// This evaluator will trigger if the specified time period 
+        /// &lt;see cref="Interval"/&gt; has passed since last check.
+        /// &lt;/para&gt;
+        /// &lt;/remarks&gt;
+        public bool IsTriggeringEvent(LoggingEvent loggingEvent)
+        {
+            if (loggingEvent == null)
+            {
+                throw new ArgumentNullException("loggingEvent");
+            }
+
+            // disable the evaluator if threshold is zero
+            if (m_interval == 0) return false;
+
+            lock (this) // avoid triggering multiple times
+            {
+                TimeSpan passed = DateTime.Now.Subtract(m_lasttime);
+
+                if (passed.TotalSeconds &gt; m_interval)
+                {
+                    m_lasttime = DateTime.Now;
+                    return true;
+                }
+                else
+                {
+                    return false;
+                }
+            }
+        }
+    }
+}

Modified: logging/log4net/trunk/src/log4net.vs2005.csproj
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/log4net.vs2005.csproj?rev=688531&amp;r1=688530&amp;r2=688531&amp;view=diff
==============================================================================
--- logging/log4net/trunk/src/log4net.vs2005.csproj (original)
+++ logging/log4net/trunk/src/log4net.vs2005.csproj Sun Aug 24 10:17:25 2008
&lt; at &gt;&lt; at &gt; -281,6 +281,7 &lt; at &gt;&lt; at &gt;
     &lt;Compile Include="Core\SecurityContextProvider.cs"&gt;
       &lt;SubType&gt;Code&lt;/SubType&gt;
     &lt;/Compile&gt;
+    &lt;Compile Include="Core\TimeEvaluator.cs" /&gt;
     &lt;Compile Include="Core\WrapperMap.cs"&gt;
       &lt;SubType&gt;Code&lt;/SubType&gt;
     &lt;/Compile&gt;



</description>
    <dc:creator>rgrabowski&lt; at &gt;apache.org</dc:creator>
    <dc:date>2008-08-24T17:17:25</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/352">
    <title>svn commit: r688527 - /logging/log4net/trunk/src/Config/XmlConfigurator.cs</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/352</link>
    <description>Author: rgrabowski
Date: Sun Aug 24 10:00:02 2008
New Revision: 688527

URL: http://svn.apache.org/viewvc?rev=688527&amp;view=rev
Log:
Fix for LOG4NET-158. XMLConfigurator.ConfigureAndWatch() won't leak resources when called multiple times. Internal FileWatcher is properly disposed when a change is detected.

Modified:
    logging/log4net/trunk/src/Config/XmlConfigurator.cs

Modified: logging/log4net/trunk/src/Config/XmlConfigurator.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Config/XmlConfigurator.cs?rev=688527&amp;r1=688526&amp;r2=688527&amp;view=diff
==============================================================================
--- logging/log4net/trunk/src/Config/XmlConfigurator.cs (original)
+++ logging/log4net/trunk/src/Config/XmlConfigurator.cs Sun Aug 24 10:00:02 2008
&lt; at &gt;&lt; at &gt; -870,9 +870,23 &lt; at &gt;&lt; at &gt;
 
 try
 {
-// Create a watch handler that will reload the
-// configuration whenever the config file is modified.
-ConfigureAndWatchHandler.StartWatching(repository, configFile);
+                    lock (m_repositoryName2ConfigAndWatchHandler)
+                    {
+                        // support multiple repositories each having their own watcher
+                        ConfigureAndWatchHandler handler =
+                            (ConfigureAndWatchHandler)m_repositoryName2ConfigAndWatchHandler[repository.Name];
+
+                        if (handler != null)
+                        {
+                            m_repositoryName2ConfigAndWatchHandler.Remove(repository.Name);
+                            handler.Dispose();
+                        }
+
+                        // Create and start a watch handler that will reload the
+                        // configuration whenever the config file is modified.
+                        handler = new ConfigureAndWatchHandler(repository, configFile);
+                        m_repositoryName2ConfigAndWatchHandler[repository.Name] = handler;
+                    }
 }
 catch(Exception ex)
 {
&lt; at &gt;&lt; at &gt; -903,24 +917,9 &lt; at &gt;&lt; at &gt;
 /// elapse.
 /// &lt;/para&gt;
 /// &lt;/remarks&gt;
-private sealed class ConfigureAndWatchHandler
+private sealed class ConfigureAndWatchHandler : IDisposable
 {
 /// &lt;summary&gt;
-/// Watch a specified config file used to configure a repository
-/// &lt;/summary&gt;
-/// &lt;param name="repository"&gt;The repository to configure.&lt;/param&gt;
-/// &lt;param name="configFile"&gt;The configuration file to watch.&lt;/param&gt;
-/// &lt;remarks&gt;
-/// &lt;para&gt;
-/// Watch a specified config file used to configure a repository
-/// &lt;/para&gt;
-/// &lt;/remarks&gt;
-internal static void StartWatching(ILoggerRepository repository, FileInfo configFile)
-{
-new ConfigureAndWatchHandler(repository, configFile);
-}
-
-/// &lt;summary&gt;
 /// Holds the FileInfo used to configure the XmlConfigurator
 /// &lt;/summary&gt;
 private FileInfo m_configFile;
&lt; at &gt;&lt; at &gt; -941,8 +940,15 &lt; at &gt;&lt; at &gt;
 /// &lt;/summary&gt;
 private const int TimeoutMillis = 500;
 
+            /// &lt;summary&gt;
+            /// Watches file for changes. This object should be disposed when no longer
+            /// needed to free system handles on the watched resources.
+            /// &lt;/summary&gt;
+            private FileSystemWatcher m_watcher;
+
 /// &lt;summary&gt;
-/// Initializes a new instance of the &lt;see cref="ConfigureAndWatchHandler" /&gt; class.
+/// Initializes a new instance of the &lt;see cref="ConfigureAndWatchHandler" /&gt; class to
+            /// watch a specified config file used to configure a repository.
 /// &lt;/summary&gt;
 /// &lt;param name="repository"&gt;The repository to configure.&lt;/param&gt;
 /// &lt;param name="configFile"&gt;The configuration file to watch.&lt;/param&gt;
&lt; at &gt;&lt; at &gt; -951,31 +957,31 &lt; at &gt;&lt; at &gt;
 /// Initializes a new instance of the &lt;see cref="ConfigureAndWatchHandler" /&gt; class.
 /// &lt;/para&gt;
 /// &lt;/remarks&gt;
-private ConfigureAndWatchHandler(ILoggerRepository repository, FileInfo configFile)
+public ConfigureAndWatchHandler(ILoggerRepository repository, FileInfo configFile)
 {
 m_repository = repository;
 m_configFile = configFile;
 
 // Create a new FileSystemWatcher and set its properties.
-FileSystemWatcher watcher = new FileSystemWatcher();
+m_watcher = new FileSystemWatcher();
 
-watcher.Path = m_configFile.DirectoryName;
-watcher.Filter = m_configFile.Name;
+m_watcher.Path = m_configFile.DirectoryName;
+m_watcher.Filter = m_configFile.Name;
 
 // Set the notification filters
-watcher.NotifyFilter = NotifyFilters.CreationTime | NotifyFilters.LastWrite | NotifyFilters.FileName;
+m_watcher.NotifyFilter = NotifyFilters.CreationTime | NotifyFilters.LastWrite | NotifyFilters.FileName;
 
 // Add event handlers. OnChanged will do for all event handlers that fire a FileSystemEventArgs
-watcher.Changed += new FileSystemEventHandler(ConfigureAndWatchHandler_OnChanged);
-watcher.Created += new FileSystemEventHandler(ConfigureAndWatchHandler_OnChanged);
-watcher.Deleted += new FileSystemEventHandler(ConfigureAndWatchHandler_OnChanged);
-watcher.Renamed += new RenamedEventHandler(ConfigureAndWatchHandler_OnRenamed);
+m_watcher.Changed += new FileSystemEventHandler(ConfigureAndWatchHandler_OnChanged);
+m_watcher.Created += new FileSystemEventHandler(ConfigureAndWatchHandler_OnChanged);
+m_watcher.Deleted += new FileSystemEventHandler(ConfigureAndWatchHandler_OnChanged);
+m_watcher.Renamed += new RenamedEventHandler(ConfigureAndWatchHandler_OnRenamed);
 
 // Begin watching.
-watcher.EnableRaisingEvents = true;
+m_watcher.EnableRaisingEvents = true;
 
 // Create the timer that will be used to deliver events. Set as disabled
-m_timer = new Timer(new TimerCallback(OnWatchedFileChange), null, Timeout.Infinite, Timeout.Infinite);
+                m_timer = new Timer(new TimerCallback(OnWatchedFileChange), null, Timeout.Infinite, Timeout.Infinite);
 }
 
 /// &lt;summary&gt;
&lt; at &gt;&lt; at &gt; -1024,6 +1030,16 &lt; at &gt;&lt; at &gt;
 {
 XmlConfigurator.InternalConfigure(m_repository, m_configFile);
 }
+
+            /// &lt;summary&gt;
+            /// Release the handles held by the watcher and timer.
+            /// &lt;/summary&gt;
+            public void Dispose()
+            {
+                m_watcher.EnableRaisingEvents = false;
+                m_watcher.Dispose();
+                m_timer.Dispose();
+            }
 }
 #endif
 
&lt; at &gt;&lt; at &gt; -1083,6 +1099,13 &lt; at &gt;&lt; at &gt;
 
     #region Private Static Fields
 
+        /// &lt;summary&gt;
+        /// Maps repository names to ConfigAndWatchHandler instances to allow a particular
+        /// ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is 
+        /// reconfigured.
+        /// &lt;/summary&gt;
+        private readonly static Hashtable m_repositoryName2ConfigAndWatchHandler = new Hashtable();
+
     /// &lt;summary&gt;
     /// The fully qualified type of the XmlConfigurator class.
     /// &lt;/summary&gt;



</description>
    <dc:creator>rgrabowski&lt; at &gt;apache.org</dc:creator>
    <dc:date>2008-08-24T17:00:03</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/348">
    <title>svn commit: r688521 - /logging/log4net/trunk/xdocs/src/release/example-apps.xml</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/348</link>
    <description>Author: rgrabowski
Date: Sun Aug 24 08:42:32 2008
New Revision: 688521

URL: http://svn.apache.org/viewvc?rev=688521&amp;view=rev
Log:
Fix for LOG4NET-126. Changed link to downloads page from "downloads.html" to "download.html".

Modified:
    logging/log4net/trunk/xdocs/src/release/example-apps.xml

Modified: logging/log4net/trunk/xdocs/src/release/example-apps.xml
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/xdocs/src/release/example-apps.xml?rev=688521&amp;r1=688520&amp;r2=688521&amp;view=diff
==============================================================================
--- logging/log4net/trunk/xdocs/src/release/example-apps.xml (original)
+++ logging/log4net/trunk/xdocs/src/release/example-apps.xml Sun Aug 24 08:42:32 2008
&lt; at &gt;&lt; at &gt; -63,7 +63,7 &lt; at &gt;&lt; at &gt;
             &lt;section id="overview" name="Overview"&gt;
                 &lt;p&gt;
                     &lt;strong&gt;The following examples are only available in the log4net release download, not
-                    on-line. To obtain the examples &lt;a href="../downloads.html"&gt;download&lt;/a&gt; one of the log4net releases.
+                    on-line. To obtain the examples &lt;a href="../download.html"&gt;download&lt;/a&gt; one of the log4net releases.
                     &lt;/strong&gt;
                 &lt;/p&gt;
             &lt;/section&gt;



</description>
    <dc:creator>rgrabowski&lt; at &gt;apache.org</dc:creator>
    <dc:date>2008-08-24T15:42:33</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/341">
    <title>svn commit: r688416 - /logging/log4net/trunk/src/Appender/SmtpAppender.cs</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/341</link>
    <description>Author: rgrabowski
Date: Sat Aug 23 14:14:24 2008
New Revision: 688416

URL: http://svn.apache.org/viewvc?rev=688416&amp;view=rev
Log:
Fix for LOG4NET-128. Explain the comma/semicolon differences between various versions of the Framework.

Modified:
    logging/log4net/trunk/src/Appender/SmtpAppender.cs

Modified: logging/log4net/trunk/src/Appender/SmtpAppender.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Appender/SmtpAppender.cs?rev=688416&amp;r1=688415&amp;r2=688416&amp;view=diff
==============================================================================
--- logging/log4net/trunk/src/Appender/SmtpAppender.cs (original)
+++ logging/log4net/trunk/src/Appender/SmtpAppender.cs Sat Aug 23 14:14:24 2008
&lt; at &gt;&lt; at &gt; -92,12 +92,20 &lt; at &gt;&lt; at &gt;
 /// Gets or sets a semicolon-delimited list of recipient e-mail addresses.
 /// &lt;/summary&gt;
 /// &lt;value&gt;
-/// A semicolon-delimited list of e-mail addresses.
+        /// &lt;para&gt;
+        /// For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses.
+        /// &lt;/para&gt;
+        /// &lt;para&gt;
+        /// For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses.
+        /// &lt;/para&gt;
 /// &lt;/value&gt;
 /// &lt;remarks&gt;
-/// &lt;para&gt;
-/// A semicolon-delimited list of recipient e-mail addresses.
-/// &lt;/para&gt;
+        /// &lt;para&gt;
+        /// For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses.
+        /// &lt;/para&gt;
+        /// &lt;para&gt;
+        /// For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses.
+        /// &lt;/para&gt;
 /// &lt;/remarks&gt;
 public string To
 {
&lt; at &gt;&lt; at &gt; -110,11 +118,19 &lt; at &gt;&lt; at &gt;
         /// that will be carbon copied.
         /// &lt;/summary&gt;
         /// &lt;value&gt;
-        /// A semicolon-delimited list of e-mail addresses.
+        /// &lt;para&gt;
+        /// For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses.
+        /// &lt;/para&gt;
+        /// &lt;para&gt;
+        /// For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses.
+        /// &lt;/para&gt;
         /// &lt;/value&gt;
         /// &lt;remarks&gt;
         /// &lt;para&gt;
-        /// A semicolon-delimited list of recipient e-mail addresses.
+        /// For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses.
+        /// &lt;/para&gt;
+        /// &lt;para&gt;
+        /// For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses.
         /// &lt;/para&gt;
         /// &lt;/remarks&gt;
         public string Cc



</description>
    <dc:creator>rgrabowski&lt; at &gt;apache.org</dc:creator>
    <dc:date>2008-08-23T21:14:25</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/339">
    <title>svn commit: r688413 - /logging/log4net/trunk/src/Appender/SmtpAppender.cs</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/339</link>
    <description>Author: rgrabowski
Date: Sat Aug 23 14:06:28 2008
New Revision: 688413

URL: http://svn.apache.org/viewvc?rev=688413&amp;view=rev
Log:
Fix for LOG4NET-168. Add ReplyTo property to SmtpAppender.

Modified:
    logging/log4net/trunk/src/Appender/SmtpAppender.cs

Modified: logging/log4net/trunk/src/Appender/SmtpAppender.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Appender/SmtpAppender.cs?rev=688413&amp;r1=688412&amp;r2=688413&amp;view=diff
==============================================================================
--- logging/log4net/trunk/src/Appender/SmtpAppender.cs (original)
+++ logging/log4net/trunk/src/Appender/SmtpAppender.cs Sat Aug 23 14:06:28 2008
&lt; at &gt;&lt; at &gt; -319,6 +319,18 &lt; at &gt;&lt; at &gt;
             get { return m_enableSsl; }
             set { m_enableSsl = value; }
         }
+
+        /// &lt;summary&gt;
+        /// Gets or sets the reply-to e-mail address.
+        /// &lt;/summary&gt;
+        /// &lt;remarks&gt;
+        /// This is available on MS .NET 2.0 runtime and higher
+        /// &lt;/remarks&gt;
+        public string ReplyTo
+        {
+            get { return m_replyTo; }
+            set { m_replyTo = value; }
+        }
 #endif
 
 #endregion // Public Instance Properties
&lt; at &gt;&lt; at &gt; -398,7 +410,7 &lt; at &gt;&lt; at &gt;
 
 // Create and configure the smtp client
 SmtpClient smtpClient = new SmtpClient();
-if (m_smtpHost != null &amp;&amp; m_smtpHost.Length &gt; 0)
+if (!String.IsNullOrEmpty(m_smtpHost))
 {
 smtpClient.Host = m_smtpHost;
 }
&lt; at &gt;&lt; at &gt; -429,6 +441,10 &lt; at &gt;&lt; at &gt;
             {
                 mailMessage.Bcc.Add(m_bcc);
             }
+            if (!String.IsNullOrEmpty(m_replyTo))
+            {
+                mailMessage.ReplyTo = new MailAddress(m_replyTo);
+            }
     mailMessage.Subject = m_subject;
 mailMessage.Priority = m_mailPriority;
 
&lt; at &gt;&lt; at &gt; -533,6 +549,7 &lt; at &gt;&lt; at &gt;
 
 #if NET_2_0
         private bool m_enableSsl = false;
+        private string m_replyTo;
 #endif
 
 #endregion // Private Instance Fields



</description>
    <dc:creator>rgrabowski&lt; at &gt;apache.org</dc:creator>
    <dc:date>2008-08-23T21:06:29</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/332">
    <title>svn commit: r688397 - in /logging/log4net/trunk: src/Core/LoggingEvent.cs xdocs/src/release/manual/contexts.xml</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/332</link>
    <description>Author: rgrabowski
Date: Sat Aug 23 11:56:17 2008
New Revision: 688397

URL: http://svn.apache.org/viewvc?rev=688397&amp;view=rev
Log:
Fix for LOG4NET-140. Improve documentation for IFixingRequired to explain how data can be evaluated immediately when a logging event is created or delayed until being written to an appender.

Modified:
    logging/log4net/trunk/src/Core/LoggingEvent.cs
    logging/log4net/trunk/xdocs/src/release/manual/contexts.xml

Modified: logging/log4net/trunk/src/Core/LoggingEvent.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Core/LoggingEvent.cs?rev=688397&amp;r1=688396&amp;r2=688397&amp;view=diff
==============================================================================
--- logging/log4net/trunk/src/Core/LoggingEvent.cs (original)
+++ logging/log4net/trunk/src/Core/LoggingEvent.cs Sat Aug 23 11:56:17 2008
&lt; at &gt;&lt; at &gt; -228,7 +228,7 &lt; at &gt;&lt; at &gt;
 Exception = 0x100,
 
 /// &lt;summary&gt;
-/// Fix the event properties
+/// Fix the event properties. Active properties must implement &lt;see cref="IFixingRequired"/&gt; in order to be eligible for fixing.
 /// &lt;/summary&gt;
 Properties = 0x200,
 

Modified: logging/log4net/trunk/xdocs/src/release/manual/contexts.xml
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/xdocs/src/release/manual/contexts.xml?rev=688397&amp;r1=688396&amp;r2=688397&amp;view=diff
==============================================================================
--- logging/log4net/trunk/xdocs/src/release/manual/contexts.xml (original)
+++ logging/log4net/trunk/xdocs/src/release/manual/contexts.xml Sat Aug 23 11:56:17 2008
&lt; at &gt;&lt; at &gt; -149,9 +149,28 &lt; at &gt;&lt; at &gt;
                         string by calling the &lt;span class="code"&gt;ToString&lt;/span&gt; method the current number of bytes 
                         allocated by the garbage collector will be returned and included in the output.
                     &lt;/p&gt;
-                    
-                &lt;/section&gt;
-                
+&lt;p&gt;
+Note that the &lt;span class="code"&gt;ToString&lt;/span&gt;method will not be
+called until the &lt;span class="code"&gt;LoggingEvent&lt;/span&gt;is rendered, as
+explained in the &lt;a href="#fixing"&gt;Fixing&lt;/a&gt;section. An active property
+is not eligible to be fixed unless it implements 
+&lt;a href="../sdk/log4net.Core.IFixingRequired.html"&gt; IFixingRequired&lt;/a&gt;.
+&lt;/p&gt;
+&lt;/section&gt;
+&lt;/section&gt;
+
+&lt;section id="fixing" name="Fixing"&gt;
+&lt;p&gt;
+Some properties, e.g. the current thread property, or any 
+&lt;a href="#active"&gt;active properties&lt;/a&gt;, are not realised
+until their containing &lt;span class="code"&gt;LoggingEvent&lt;/span&gt;is rendered. If the 
+&lt;span class="code"&gt;LoggingEvent&lt;/span&gt;is been sent to a buffering appender (such as 
+&lt;a href="../sdk/log4net.Appender.AdoNetAppender.html"&gt;AdoNetAppender&lt;/a&gt;) then this rendering will not happen
+unless the &lt;a href="../sdk/log4net.Appender.BufferingAppenderSkeleton.html"&gt;
+BufferingAppenderSkeleton&lt;/a&gt;'s &lt;a href="../sdk/log4net.Appender.BufferingAppenderSkeleton.Fix.html"&gt;
+Fix property&lt;/a&gt;has been set. In addition, an active property is not eligible to be fixed unless it implements 
+&lt;a href="../sdk/log4net.Core.IFixingRequired.html"&gt;IFixingRequired&lt;/a&gt;.
+&lt;/p&gt;
             &lt;/section&gt;
             
             &lt;section id="stacks" name="Context Stacks"&gt;



</description>
    <dc:creator>rgrabowski&lt; at &gt;apache.org</dc:creator>
    <dc:date>2008-08-23T18:56:17</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/330">
    <title>[jira] Created: (LOG4NET-171) Log file locking causing an error to be thrown from the RollingFileAppender</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/330</link>
    <description>Log file locking causing an error to be thrown from the RollingFileAppender
---------------------------------------------------------------------------

                 Key: LOG4NET-171
                 URL: https://issues.apache.org/jira/browse/LOG4NET-171
             Project: Log4net
          Issue Type: Bug
          Components: Core
    Affects Versions: 1.2.10
         Environment: Windows 2003 Server (scheduled jobs/.exe that may be overlapping)
            Reporter: Steven Myron
            Priority: Critical


Scheduled processes (~ 15 minutes apart) seem to be overlapping possibly causing file sharing violations for the log file that log4net is writing to.  This file is statically named and is written to using the RollingFileAppender.  This abruptly terminates the application and presents an unexpected error to the client.

</description>
    <dc:creator>Steven Myron (JIRA</dc:creator>
    <dc:date>2008-08-22T21:00:45</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/328">
    <title>[jira] Created: (LOG4NET-170) Documentation improvement re: fixing and active properties</title>
    <link>http://comments.gmane.org/gmane.comp.apache.logging.log4net.devel/328</link>
    <description>Documentation improvement re: fixing and active properties
----------------------------------------------------------

                 Key: LOG4NET-170
                 URL: https://issues.apache.org/jira/browse/LOG4NET-170
             Project: Log4net
          Issue Type: Improvement
          Components: Documentation
    Affects Versions: 1.2.10
            Reporter: Jerry Shea
            Priority: Minor


Documentation improvement - see http://www.nabble.com/ASP.NET%2C-AdoNetAppender-and-deferred-property-execution-tt18865968.html

</description>
    <dc:creator>Jerry Shea (JIRA</dc:creator>
    <dc:date>2008-08-22T11:42:44</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.apache.logging.log4net.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.apache.logging.log4net.devel</link>
  </textinput>
</rdf:RDF>
