The memory appender cannot be used safely in an application that uses more than one thread to interact with logging.
When using this code to retrieve and then clear events logged in the memory appender:
var events = memoryAppender.GetEvents();
The executing thread may be preempted between these two calls and additional logging events logged. These events are then cleared when the thread resumes execution - and are never seen/processed.
I expect to be be able to retrieve and clear the list of current events in one call that guarantees that no events are ever lost.