I believe the caching has already been implemented but don't have any
references to mention right now.

On Tue, 22 Feb 2022 at 09:56, Denis Petker <denis.pet...@rohde-schwarz.com>
wrote:

> Hi Davyd
>
> Thanks for the quick response! Agreed, I also don't think, that the
> username doesn't change for a process.
> If we say, that the username isn't going to change for a process, I think
> there is no reason in printing the user name per log statement. However,
> the ticket LOG4NET-205 has been raised by someone, who obviously was
> interested in filtering log events by username?
>
> So what you mean technically is to retrieve the username once at startup
> and cache for the remaining runtime? In order to be backward compatible, we
> then still need to maintain the UserName property in the LoggingEvent class
> I guess. So the username would then be provided to LoggingEvent objects
> from whatever is creating them?
>
>
> -----Original Message-----
> From: Davyd McColl <dav...@gmail.com>
> Sent: Monday, February 21, 2022 6:43 PM
> To: dev@logging.apache.org; Petker Denis 8BM3 <
> denis.pet...@rohde-schwarz.com>
> Subject: *EXT* [Newsletter] Re: log4net - performance hit because UserName
> is fetched always
>
> Hi Denis
>
> Thanks for the report (:
> I'm happy to review contributions, though for this particular issue, it
> seems like the resolution is to cache the resolved user name, rather than
> allowing specifying the name via config. The whole point of this property
> is to log the username under which the process is run (: The username for a
> process isn't going to change (at least, I'm not aware of a process for
> doing so), so it feels like the correct approach is simply to cache. Please
> feel free to raise a PR at github. I recognise that I'm not the fastest
> responder - there's just one of me and it seems like there's always
> something vying for my attention - but I do try to respond to pull requests
> as quickly as possible.
> I have another fix in the works for xml layouts anyway, though I was
> pursuing that with respect to another reported issue, but I could let that
> issue go for now for a hastier release.
> -d
> On Feb 21 2022, at 7:22 pm, Denis Petker <denis.pet...@rohde-schwarz.com>
> wrote:
> >
> > Hi all,
> >
> > we have upgraded the log4net version from 1.2.10 to the newest version
> 2.0.14 and are now facing performace issues. I already have done some
> investigation looking at the log4net code.
> > With the ticket LOG4NET-205 (
> https://issues.apache.org/jira/browse/LOG4NET-205) a change has been
> introduced, which makes log4net not acceptable for us in terms of
> performance. (Commit 5c023f6a22bfb93873a5ce0d6f5ac7e7275e2914) The change
> has been done in order to be able to use UserName and Identity in the
> PropertyFilter. It adds 'internal' properties representing the UserName and
> Identity to the m_compositeProperties so that they are now accessible in
> the PropertyFilter. That works as intended so far. See the attached diff
> illustrating the change.
> >
> > The problem is, that fetching the UserName from the system is pretty
> expensive. With the change above UserName is fetched always, regardless of
> whether we use UserName or not. I did some benchmarking and this change
> slowed down logging by a factor of 60. I also don’t see any way to get
> around this by changing the configuration. I believe this can only be fixed
> by changing code.
> >
> > I would suggest, rather than adding 'internal' properties to
> m_compositeProperties, we should make the function
> LoggingEvent.LookupProperty to look after the native properties, when
> corresponding keys are specified. E.g. when the key "UserName" is
> specified, we could return the value of the property LoggingEvent.UserName
> etc.
> >
> > In the meantime we want to use a changed version of log4net for our
> purposes. I wonder, whether this change could be integrated into the
> official version? I’ve never contributed to a public github project before,
> so don’t know how to proceed really.
> >
> > Thanks,
> > Denis
> >
> >
> > This is the historic change causing the problem.
> >
> >
> > --
> > Denis Petker
> > Next Generation Solutions | 8BM3
> >
> >
> >
> > Rohde & Schwarz GmbH & Co. KG
> > Hanomaghof 1 | 30449 Hanover
> > Phone: +49 511 678 07 146 | Fax: +49 511 678 07 200
> > Internet: www.rohde-schwarz.com (http://www.rohde-schwarz.com/)
> >
> > ------------------------------------------------------------
> > Geschäftsführung / Executive Board: Christian Leicher (Vorsitzender /
> Chairman), Peter Riedel, Sitz der Gesellschaft / Company's Place of
> Business: München, Registereintrag / Commercial Register No.: HRA 16 270,
> Persönlich haftender Gesellschafter / Personally Liable Partner: RUSEG
> Verwaltungs-GmbH, Sitz der Gesellschaft / Company's Place of Business:
> München, Registereintrag / Commercial Register No.: HRB 7 534,
> Umsatzsteuer-Identifikationsnummer (USt-IdNr.) / VAT Identification No.: DE
> 130 256 683, Elektro-Altgeräte Register (EAR) / WEEE Register No.: DE 240
> 437 86
> >
> >
>


-- 
Dominik Psenner

Reply via email to