# [EHCache] Cache Hits loggen



## byte (17. Jul 2009)

Hi,

ich benutze Hibernate mit EHCache als 2nd Level Cache. Ich würde nun gerne in meinen DAOs loggen, ob der Zugriff über die DB passiert ist oder über den Cache.

EHCache bietet ja die Möglichkeit, über einen 
	
	
	
	





```
CacheEventListener
```
 auf Ereignisse zu horchen. Komischerweise gibts da aber nur Benachrichtigungen bei einem PUT aber nicht bei einem GET.

Man kann natürlich auch den Log Level von 
	
	
	
	





```
org.hibernate.cache
```
 anpassen, aber dann wird man mit Log Messages zugemüllt und die Anwendung wird bei vielen Cache Hits stark ausgebremst.

Weiss jemand noch ne Möglichkeit?

Grüße byto


----------



## Noctarius (17. Jul 2009)

Hab mir grad mal das Javadoc angesehen und es scheint kein Event für Get zu geben. Als Alternative könntest du natürlich einen Wrapper um EHCache bauen und das entsprechende Event selber liefern wenn jemand einen Get ausführt.


----------



## byte (17. Jul 2009)

Mir ist grad eine einfachere Lösung eingefallen. Ich baue mir einen Around Advice um meine DAOs und benutze die Statistik der Session-Factory, um die Anzahl an Cache Hits / Misses zu bestimmen. Dann kann ich einfach jeweils den Ratio mitloggen.


----------



## Noctarius (17. Jul 2009)

Verdammt, da wollt ich einmal die AspectJ's nicht anmerken, weil die nahezu keiner benutzt und jetzt kommst du damit an *böse mit dem Finger wedelt* *gg*

War nämlich auch meine erste, spontane Idee.


----------

