@Cacheable 命中的 Spring 缓存日志记录

新手上路,请多包涵

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

我想获得某种控制台日志语句,例如 "INFO: i got those values from the cache, NOT from the host. awesome"

有没有一种干净简单的方法来做到这一点?我们正在使用 slf4j 显然顺便说一句,如果有兴趣的话。

原文由 BassSultan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.4k
2 个回答

Spring 本身在 org.springframework.cache logger in trace 级别下记录它的一些缓存抽象行为。因此,如果您将 org.springframework.cache 记录器下的日志附加到适当的附加程序,您将在控制台上获得一些有用的信息。如果您使用的是 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>

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

在缓存“persons”中找到键“Page request [number: 0, size 20, sort: null]”的缓存条目

原文由 Ali Dehghani 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

 logging.level.org.springframework.cache=TRACE

原文由 Rafael Renan Pacheco 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题