记录Ehcache获取请求

时间:2011-10-31 12:53:45

标签: java caching ehcache terracotta

我正在尝试编写一个跟踪所有Ehcache GET请求的类。对于痴迷的性能 - 只有在调试时才会打开它。

我可以看到以下三个选项:

1)编写net.sf.ehcache.event.CacheEventListener的实现。这将是我的首选方式,但它只有PUT / REMOVE /等。挂钩。没有GET。卫生署!

2)编写net.sf.ehcache.statistics.CacheUsageListener的实现。这种方法的问题是这个接口更专为统计而设计,甚至不提供对当前缓存键/元素之类的东西的访问,所以我不得不做一些可怕的黑客攻击(想想:通过ThreadLocal共享状态)来实现我想要的。呸!

3)编写一个Ehcache包装器,并通过它传递所有请求。非常痛苦,因为我们以不同的方式使用Ehcache(使用Hibernate和不使用),这意味着我必须为所有这些不同的情况编写不同的包装器。添加维护难度并不是很精确,因为不可能知道,例如,GET操作是否已经过时。

我错过了其他选择吗?

1 个答案:

答案 0 :(得分:1)

第四个选项是为net.sf.ehcache.Cache 启用调试级别日志记录,以便为要跟踪信息的缓存启用缓存统计信息。 然后你会得到“Cache:”+ getName()+“store hit for”+ key“或”configuration.getName()+“cache hit,但是element expired”“log statements ...所以对于未命中。