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

Stefan Bodewig resolved LOG4NET-129.
------------------------------------

    Resolution: Fixed

fixed with svn revision 1169688

> EventLogAppender EventID parsing does not handle Active Properties properly
> ---------------------------------------------------------------------------
>
>                 Key: LOG4NET-129
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-129
>             Project: Log4net
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 1.2.10
>            Reporter: Michael Christensen
>            Priority: Minor
>             Fix For: 1.2.11
>
>         Attachments: EventLogAppender.patch
>
>
> The EventLogAppender supports setting the EventID of the Event being logged 
> through Context Properties, as described here:
> http://www.mail-archive.com/log4net-user@logging.apache.org/msg02396.html
> However, since GlobalContext is inappropriate for storing the EventID (as it 
> is likely to be specific for any given individual call to Log) and 
> ThreadContext cannot be used reliably when running in the context of ASP.NET 
> (since ASP.NET might switch the request between threads during execution, as 
> outlined here: 
> http://piers7.blogspot.com/2005/12/log4net-context-problems-with-aspnet.html 
> ), it would be nice to be able to use an Active Property instead (which 
> could, for instance, delegate calls for the EventID to data stored in 
> HttpContext)
> Unfortunately, this does not work, since the EventLogAppender assumes that 
> the Context Property holding the EventID is either int or string. The 
> relevant code is found in EventLogAppender.cs, in the override protected void 
> Append(LoggingEvent loggingEvent) method:
> if (eventIDPropertyObj is int)
> {
>       eventID = (int)eventIDPropertyObj;
> }
> else
> {
>       string eventIDPropertyString = eventIDPropertyObj as string;
> }
> Any Active Property object will end up as null through the "as string" call, 
> and be ignored.
> Suggested naive fix: If eventIDPropertyString is non-null and of other type 
> than int or string, call ToString() on the object and TryParse as int. Or use 
> whatever handling of Active Properties found elsewhere in log4net.

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

        

Reply via email to