[ 
https://issues.apache.org/jira/browse/LOG4NET-130?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Bodewig updated LOG4NET-130:
-----------------------------------

    Fix Version/s: 1.2 Maintenance Release

> AdoNetAppender fails to insert the correct timestamp when logging from a web 
> service.
> -------------------------------------------------------------------------------------
>
>                 Key: LOG4NET-130
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-130
>             Project: Log4net
>          Issue Type: Bug
>          Components: Appenders
>         Environment: C# web service running on Windows Server 2003 using the 
> .Net 2.0 Framework.
>            Reporter: Matthew Lee
>             Fix For: 1.2 Maintenance Release
>
>
> I have a C# console application which calls a C# web service.  Both 
> applications are written under the .Net 2.0 Framework.  Both applications are 
> using a "global" xml configuration file, which is loaded via the 
> XmlConfigurator.  The configuration uses 2 appenders, the AdoNetAppender and 
> the EventLogAppender.
> The "global" configuration file that I mentioned earlier is an xml file that 
> is hosted by our local web server.  Each application takes the configuration 
> file from the URL specified.  Then each application injects its own name in 
> the ApplicationName section of the EventLogAppender.  This is done so that 
> the names in the EventLog are meaningful instead of having a GUID for the 
> application name.
> The code looks like this:
>         private static readonly log4net.ILog oLog = 
> log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
>         static int Main(string[] args)
>         {
>             
> /*******************************************************************/
>             // Setup the log4net configuration.  Here we'll use a cool trick. 
>             // Log4net can be setup to load it's settings from an xml document
>             // which we'll get from a URL.  This allows us to update the 
> config
>             // whenever we want to without redeploying individual programs.
>             
> /*******************************************************************/
>             XmlDocument oDoc = new XmlDocument();
>             oDoc.Load(Properties.Settings.Default.log4net_config_url);
>             foreach (XmlNode oNode in 
> oDoc.SelectNodes("log4net/appender[@name='EventLogAppender']"))
>             {
>                 if (oNode != null)
>                 {
>                         XmlAttribute oValueAttribute = 
> oDoc.CreateAttribute("value");
>                         oValueAttribute.Value = oLog.Logger.Name.ToString();
>                         XmlNode oNameNode = 
> oDoc.CreateNode(XmlNodeType.Element, "applicationName", "");
>                         oNameNode.Attributes.Append(oValueAttribute);
>                         oNode.AppendChild(oNameNode);
>                 }
>             }
>             log4net.Config.XmlConfigurator.Configure(oDoc.DocumentElement);
> The problems that I am having are that:
> 1.    If the web service is not loaded in memory, the first call to the web 
> service does not log anything to the database.  I do, however, get events in 
> the Application Event Log on the web server.
> 2.    After the first call to the web service, on subseqent web service calls 
> the AdoNetAppender inserts records with timestamps left over from the prvious 
> call.  So for example, if I call the web service for the first time at 1:22; 
> nothing is inserted into the database from the web service.  If my second 
> call is at 1:26, the records that the web service inserts have a timestamp of 
> 1:22.  If I call the web service a 3rd time at 1:29, the records the web 
> service insert have a timestamp of 1:26.
> 3.    Changes to hosted XML file (which are then read by the XmlConfigurator) 
> do not take effect until the web service is reloaded in IIS.  I do have the 
> [assembly: log4net.Config.XmlConfigurator(Watch = true)] flag set.  But, I'm 
> guessing that because the assembly stays loaded in IIS, this doesn't really 
> have much effect.
> I suspect that the problems in #1 and #2 are defects of the AdoNetAppender.  
> I suspect that problem #3 is something that I'll have to live with.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to