A simple EhCache3 based EventLogger

If you are using EhCache3 and need to know when a cache entry is created, updated etc. you can implement a simple EventLogger like this:

public class EventLogger implements CacheEventListener<Object> {
    
    private static final Logger LOG = LoggerFactory.getLogger(EventLogger.class);

    @Override
    public void onEvent(CacheEvent event) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("CacheEvent {} with key {}", event.getType(), event.getKey());
        }
    }
}

Now you include the EventLogger in the ehcache.xml:

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.ehcache.org/v3"
    xsi:schemaLocation="http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core-3.0.xsd">

    <cache-template name="default">
        <listeners>
            <listener>
                <class>de.engelh.EventLogger</class>
                <event-firing-mode>ASYNCHRONOUS</event-firing-mode>
                <event-ordering-mode>UNORDERED</event-ordering-mode>
                <events-to-fire-on>CREATED</events-to-fire-on>
                <events-to-fire-on>UPDATED</events-to-fire-on>
                <events-to-fire-on>EXPIRED</events-to-fire-on>
                <events-to-fire-on>REMOVED</events-to-fire-on>
                <events-to-fire-on>EVICTED</events-to-fire-on>
            </listener>
        </listeners>
    </cache-template>
    
    <cache alias="someCache" uses-template="default">
	...
    </cache>

</config>

Rolf Engelhard

 

Leave a Reply

Required fields are marked *.