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>