Java Spring缓存登录到@Cacheable hit
目前,我正在使用Spring缓存和Java Spring缓存登录到@Cacheable hit,java,spring,slf4j,spring-cache,Java,Spring,Slf4j,Spring Cache,目前,我正在使用Spring缓存和@Cacheable/@cacheexecute注释 我想得到一些控制台日志语句,比如“INFO:我从缓存中获得了这些值,而不是从主机中获得的。太棒了” 有没有一个干净简单的方法来做到这一点?我们正在使用slf4j显然是顺便说一句,如果这有什么意义的话。Spring本身将其一些缓存抽象行为记录在org.springframework.cache记录器的跟踪级别。因此,如果您将org.springframework.cachelogger下的日志追加到适当的追加器
@Cacheable
/@cacheexecute
注释
我想得到一些控制台日志语句,比如“INFO:我从缓存中获得了这些值,而不是从主机中获得的。太棒了”
有没有一个干净简单的方法来做到这一点?我们正在使用
slf4j
显然是顺便说一句,如果这有什么意义的话。Spring本身将其一些缓存抽象行为记录在org.springframework.cache
记录器的跟踪
级别。因此,如果您将org.springframework.cache
logger下的日志追加到适当的追加器中,您将获得一些关于控制台的有用信息。如果您使用的是Logback,那么可以在Logback.xml中使用如下内容:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<logger name="org.springframework.cache" level="trace">
<appender-ref ref="STDOUT" />
</logger>
</configuration>
%消息%n
使用此配置,您应该在控制台上看到如下内容:
键“页面请求[编号:0,大小20,排序:null]的缓存项”
在缓存“persons”中找到
您可以启用跟踪级别日志记录
例如,在application.properties中输入“trace=true”
对于Spring Boot 2,您可以在应用程序中添加。属性:
logging.level.org.springframework.cache=TRACE
我不认为一直打开跟踪日志是个好主意,即使它只用于缓存日志。
更好的方法是,EHcache已经有了这个命中/未命中指标,您可以通过JMX
或spring-boot-exactor
获得它
要供JMX使用,您可以参考
要使用弹簧启动执行器
,您可以参考帮助我在项目设置中找到类似配置的。。谢谢:)当然同意,除非是在本地开发人员的机器上完成。然而,这是一个非常好和有价值的提示,告诉我们如何记录和监视缓存行为。