Spring缓存登录@Cacheable命中

时间:2016-05-17 15:57:23

标签: java spring slf4j spring-cache

目前我正在使用Spring Cache和@Cacheable / @CacheEvict注释。

我想得到一些像"INFO: i got those values from the cache, NOT from the host. awesome"

这样的控制台日志语句

有干净简单的方法吗?如果有任何兴趣,我们显然使用slf4j btw。

4 个答案:

答案 0 :(得分:30)

Spring本身会在Process finished with exit code 139org.springframework.cache记录器下记录一些缓存抽象行为。因此,如果您将trace记录器下的日志追加到适当的appender,那么您可以在控制台上获得一些有用的信息。如果您使用的是Logback,则可以在org.springframework.cache中使用以下内容:

logback.xml

使用此配置,您应该在控制台上看到以下内容:

  

密钥'页面请求的缓存条目[编号:0,大小20,排序:null]'   在缓存'人'中找到

答案 1 :(得分:1)

您可以启用跟踪级别日志记录。

例如,在application.properties中,put' trace = true'。

Spring logging documentation

答案 2 :(得分:1)

对于Spring Boot 2,您可以添加application.properties:

logging.level.org.springframework.cache=TRACE

答案 3 :(得分:1)

我不认为一直打开跟踪日志是一个好主意,即使只是用于缓存日志。
更好的方法是,EHcache已具有此命中/未命中指标,您可以通过JMXspring boot actuator来获取它。

要由JMX使用,您可以参考this

要使用Spring Boot Actuator,可以参考this