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 Manager 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 completely within our own classes without having to add and remove custom Appender instances.
The code would then become simpler. Our custom code would not have to invoke log4j2 core APIs and a User would have control over configuring our use of log4j2 via the .xml file. Presently, a User cannot configure our AlertAppender or LogWriterAppender in log4j2.xml.