Conversation
This introduces ManagedLogger, which is a wrapper around Log4j2's async logging. Log4j2 separates the notion of logger (the code that collects events) and appender (the code that acts on events). The old code is kept around intentionally to minimize breakage during transition.
|
While profiling SBT during a warmed up, clean compile of scala/scala (under scala/scala#6256), I see 28% of samples found in a spin wait in the internals of disruptor: Sort of similar to a problem described in LMAX-Exchange/disruptor#155, perhaps, although the commit that closed that issue should be part of 3.3.6. Profiling: |
|
|
Thank you for this report! |
|
On a second look, I think I misread the profile. The calls to Log4J2 uses disuptor's TimeoutBlockingWaitStrategy by default (contrast with BusySpinWaitStrategy) The results shown by FlightRecorder/JMC are a bit confusing. |

This introduces ManagedLogger, which is a wrapper around Log4j2's async logging.
Log4j2 separates the notion of logger (the code that collects events) and appender (the code that acts on events). The old code is kept around intentionally to minimize breakage during transition.