Hello This method is called once per LogEvent created. And LogEvent is created in log() (or info() or warn() or ...) statement every time it's called. New LogEvent is required because there's new timestamp.
regards Grzegorz Grzybek pon., 24 cze 2019 o 06:56 RU <[email protected]> napisał(a): > Thanks, this seems to be called when using Karaf Decanter - the appender > writes logs with the log line number for all logs. Is there any detail on > how the subsequent calls are cached and is it correct to say the new > Throwable() is executed once per log? > > On Monday, June 24, 2019 at 2:42:28 PM UTC+10, Grzegorz Grzybek wrote: >> >> Helo >> >> It's not pax-logging, it's log4j1 itself. You'd have this code invoked >> also outside of OSGi. Logback and Log4j2 have similar "expensive" code. >> >> When exactly is this called? Not every time. If you decide to use >> PatternLayout (frameworks specific - different for log4j1, log4j2 and >> logback) *and* use location-aware pattern (%C, %L, %F) then >> getLocationInformation() will be called. Otherwise (like with standard >> TTCCLayout for example, where you use %c (lower case "c" meaning >> "category", not "Class"), %m, %p, ...) this code is *not* called. >> >> regards >> Grzegorz Grzybek >> >> pon., 24 cze 2019 o 06:11 Ravi Undupitiya <[email protected]> >> napisał(a): >> >>> Does this particular line which seems to be executed by Karaf for every >>> log in our system cause performance issues? Our understanding is that to >>> get the line number you need the stack trace, getting which is an expensive >>> operation. >>> >>> org.apache.log4j.spi.LoggingEvent has the following method that does the >>> expensive Throwable(): >>> >>> >>> /** >>> Set the location information for this logging event. The collected >>> information is cached for future use. >>> */ >>> public LocationInfo getLocationInformation() { >>> if(locationInfo == null) { >>> locationInfo = new LocationInfo(new Throwable(), fqnOfCategoryClass); >>> } >>> return locationInfo; >>> } >>> >>> >>> >>> How is this cached and does that mean the new Throwable() is only running >>> once per log statement? >>> >>> >>> >>> Thanks >>> >>> -- >>> -- >>> ------------------ >>> OPS4J - http://www.ops4j.org - [email protected] >>> >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "OPS4J" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/ops4j/4ac5e2e5-6012-4699-be04-f794de47a94d%40googlegroups.com >>> <https://groups.google.com/d/msgid/ops4j/4ac5e2e5-6012-4699-be04-f794de47a94d%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- > -- > ------------------ > OPS4J - http://www.ops4j.org - [email protected] > > --- > You received this message because you are subscribed to the Google Groups > "OPS4J" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/ops4j/6ba4d6a6-3b91-487c-9fff-ccd5f664cd8e%40googlegroups.com > <https://groups.google.com/d/msgid/ops4j/6ba4d6a6-3b91-487c-9fff-ccd5f664cd8e%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- -- ------------------ OPS4J - http://www.ops4j.org - [email protected] --- You received this message because you are subscribed to the Google Groups "OPS4J" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ops4j/CAAdXmhrC3JUFF7Z%2Br9dstsseBkZ9UV-%3DjG1mdbgcwrRZkEZhgw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
