How GemFire Logging Works

Pivotal GemFire uses Apache Log4j 2 as the basis for its logging system.

GemFire uses Apache Log4j 2 API and Core libraries as the basis for its logging system. Log4j 2 API is a popular and powerful front-end logging API used by all the GemFire classes to generate log statements. Log4j 2 Core is a backend implementation for logging; you can route any of the front-end logging API libraries to log to this backend. GemFire uses the Core backend to run two custom Log4j 2 Appenders: AlertAppender and LogWriterAppender.

GemFire has been tested with Log4j 2.11. GemFire requires the log4j-api-2.11.0.jar and log4j-core-2.11.0.jar JAR files to be in the classpath. Both of these JARs are distributed in the <path-to-product>/lib directory and included in the appropriate *-dependencies.jar convenience libraries.

AlertAppender is the component that generates GemFire alerts that are then managed by the JMX Management and Monitoring system. See Notification Federation for more details.

LogWriterAppender is the component that is configured by all the log-* GemFire properties such as log-file, log-file-size-limit and log-disk-space-limit.

Both of these appenders are created and controlled programmatically. You configure their behavior with the log-* GemFire properties and the alert level that is configured within the JMX Management & Monitoring system. These appenders do not currently support configuration within a log4j2.xml config file.

Advanced users may wish to define their own log4j2.xml. See Advanced Users—Configuring Log4j 2 for GemFire for more details.