[
https://issues.apache.org/jira/browse/LOG4NET-129?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stefan Bodewig updated LOG4NET-129:
-----------------------------------
Affects Version/s: (was: 1.2.11)
Fix Version/s: 1.2.11
> 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/[email protected]/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