[
https://issues.apache.org/jira/browse/LOG4NET-250?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stefan Bodewig updated LOG4NET-250:
-----------------------------------
Fix Version/s: 1.2 Maintenance Release
> Drastically decrease amount of time needed for LoggingEvent.UserName
> --------------------------------------------------------------------
>
> Key: LOG4NET-250
> URL: https://issues.apache.org/jira/browse/LOG4NET-250
> Project: Log4net
> Issue Type: Improvement
> Components: Core
> Affects Versions: 1.2.10
> Reporter: Hao Zhang
> Fix For: 1.2 Maintenance Release
>
>
> Currently, each LoggingEvent retrieves the logged on user using
> WindowsIdentity.GetCurrent() which takes a long time
> One can obtain drastic improvements by switching to Environment.UserDomain
> and Environment.UserName
> Here are some numbers on my box running Windows XP SP3, .NET 2.0, debug mode.
> Using Environment:
> for (int i = 0; i < 50000; i++)
> {
> var x = (Environment.UserDomainName + "\\" +
> Environment.UserName);
> }
> takes 4294 milliseconds to run (4.294) using Stopwatch
> Using WindowsIdentity:
> for (int i = 0; i < 50000; i++)
> {
> var x = (WindowsIdentity.GetCurrent().Name);
> }
> start.Stop();
> takes 20191 (20 seconds) milliseconds to run,
> Thus, it takes almost 5x longer to use WindowsIdentity.
> This isn't much of an issue if you're not logging extremely high quantities
> or do not log the user name.
> However, I'm currently using XmlLayoutSchemaLog4j which forces the retrieval
> of said information for the log4net:UserName property.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira