Presently Geode dynamically creates, adds and removes AlertAppender and LogWriterAppender by manipulating log4j2 core API. We should move the bulk of the Appender functionality to internal classes and just leave the Appenders registered with log4j2 during the life of the JVM.
This allows us to enable and configure our Appenders via log4j2.xml and control the Cache-controlled lifecycle internally without having to add and remove custom Appender instances.
The code would then become simpler, we could avoid invoking log4j2 core APIs, and users would have control over configuring our use of log4j2 completely within the .xml file. Presently, a user cannot configure our AlertAppender or LogWriterAppender in log4j2.xml.