Java 如果为@Cacheable调用了缓存,则记录Spring日志

Java 如果为@Cacheable调用了缓存,则记录Spring日志,java,spring,caching,logging,Java,Spring,Caching,Logging,我有一个简单的Spring3.2Web应用程序,它连接到MySQL数据库。我的问题很简单:我在dao中有一个方法,它用@Cacheable注释。如果方法转到db,或者其结果是从缓存加载的,是否有方法记录?例如,我希望看到以下日志: Object with id 'x' was retrieved from database at 23:44:30 / 2015.... Object with id 'x' was retrived from cache at... 谢谢您,您可以使用()-它是

我有一个简单的Spring3.2Web应用程序,它连接到MySQL数据库。我的问题很简单:我在dao中有一个方法,它用@Cacheable注释。如果方法转到db,或者其结果是从缓存加载的,是否有方法记录?例如,我希望看到以下日志:

Object with id 'x' was retrieved from database at 23:44:30 / 2015....
Object with id 'x' was retrived from cache at...

谢谢您,您可以使用()-它是普通jdbc连接的包装器,用于记录每个执行的语句。

如果要调用持久性层,您可以在服务层中记录消息。这里有一个方法,来自我正在做的一些代码。我只在缓存未命中时获取日志项

@Cacheable(value = CACHE_PICO)
@Transactional(readOnly = true)
@PostAuthorize(PICO_READ + OR + ALLOWED_FOR_ADMIN)
public Pico get(long id) {
    log.info("cached missed for pico {}", id);
    return _picoRepository.findOne(id);
}

Spring在
TRACE
级别注销
org.springframework.cache
类别下的缓存命中和未命中。

我知道,但我想看看是否调用了缓存。在这种情况下,我什么也看不到。我希望你能理解但希望你知道什么时候调用它,因此,没有DB日志的每个inovation都由缓存解决。这样,您必须修改每个可缓存方法。我已启用此方法,并且我得到的所有条目都是操作栏的
计算缓存键“SimpleKey foo”
是否需要启用其他内容才能查看命中/未命中?我正在使用咖啡因,但也找不到一种方法来记录它们