diff --git a/util/src/main/java/org/killbill/billing/util/glue/Eh107CacheManagerProvider.java b/util/src/main/java/org/killbill/billing/util/glue/Eh107CacheManagerProvider.java
index 005afa3..95677b2 100644
--- a/util/src/main/java/org/killbill/billing/util/glue/Eh107CacheManagerProvider.java
+++ b/util/src/main/java/org/killbill/billing/util/glue/Eh107CacheManagerProvider.java
@@ -27,6 +27,7 @@ import javax.cache.spi.CachingProvider;
import javax.inject.Inject;
import javax.inject.Provider;
+import org.ehcache.core.spi.store.InternalCacheManager;
import org.killbill.billing.util.cache.BaseCacheLoader;
import org.killbill.billing.util.config.definition.EhCacheConfig;
import org.slf4j.Logger;
@@ -65,6 +66,8 @@ public class Eh107CacheManagerProvider extends CacheProviderBase implements Prov
cacheManager = cachingProvider.getCacheManager();
}
+ cacheManager.unwrap(InternalCacheManager.class).registerListener(new EhcacheLoggingListener());
+
for (final BaseCacheLoader<?, ?> cacheLoader : cacheLoaders) {
createCache(cacheManager,
cacheLoader.getCacheType().getCacheName(),
diff --git a/util/src/main/java/org/killbill/billing/util/glue/EhcacheLoggingListener.java b/util/src/main/java/org/killbill/billing/util/glue/EhcacheLoggingListener.java
new file mode 100644
index 0000000..721072e
--- /dev/null
+++ b/util/src/main/java/org/killbill/billing/util/glue/EhcacheLoggingListener.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2014-2017 Groupon, Inc
+ * Copyright 2014-2017 The Billing Project, LLC
+ *
+ * The Billing Project licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.killbill.billing.util.glue;
+
+import org.ehcache.Cache;
+import org.ehcache.Status;
+import org.ehcache.core.events.CacheManagerListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class EhcacheLoggingListener implements CacheManagerListener {
+
+ private static final Logger logger = LoggerFactory.getLogger(EhcacheLoggingListener.class);
+
+ @Override
+ public void cacheAdded(final String alias, final Cache<?, ?> cache) {
+ logger.info("Added Ehcache '{}'", alias);
+ }
+
+ @Override
+ public void cacheRemoved(final String alias, final Cache<?, ?> cache) {
+ logger.info("Removed Ehcache '{}'", alias);
+ }
+
+ @Override
+ public void stateTransition(final Status from, final Status to) {
+ logger.info("Transitioning Ehcache from '{}' to '{}'", from, to);
+ }
+}