Actuellement, je travaille avec un cache Spring et les annotations @Cacheable
/@CacheEvict
.
J'aimerais obtenir une sorte d'instruction du journal de la console telle que "INFO: i got those values from the cache, NOT from the Host. awesome"
Y a-t-il un moyen propre et facile de faire cela? Nous utilisons slf4j
apparemment btw, si cela présente un intérêt quelconque.
Spring lui-même consigne certains de ses comportements de mise en cache d'abstractions sous l'enregistreur org.springframework.cache
au niveau trace
. Ainsi, si vous ajoutez des journaux sous le journal org.springframework.cache
à un appender approprié, vous obtiendrez des informations utiles sur, par exemple, la console. Si vous utilisez Logback, vous pouvez utiliser quelque chose comme ceci dans votre 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>
Avec cette configuration, vous devriez voir quelque chose comme suivre sur votre console:
Entrée de cache pour la clé 'Page request [numéro: 0, taille 20, sort: null]' trouvé dans la cache 'personnes'
Vous pouvez activer la journalisation au niveau de la trace.
Par exemple, dans application.properties, mettez 'trace = true'.
Et pour Spring Boot 2, vous pouvez ajouter dans votre application.properties:
logging.level.org.springframework.cache=TRACE