Currently I am working with a Spring Cache and the @Cacheable
/@CacheEvict
annotations.
I would like to get some sort of a console log statement
You can enable trace level logging.
Eg., in application.properties put 'trace=true'.
Spring logging documentation
Spring itself logs some of its Caching Abstractions behaviors under the org.springframework.cache
logger in trace
level. So, if you append logs under the org.springframework.cache
logger to an appropriate appender, you would have some useful information on, say, the console. If you're using Logback, you could use something like the following in your 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>
With this configuration, you should see something like following on your console:
Cache entry for key 'Page request [number: 0, size 20, sort: null]' found in cache 'persons'
I don't think it is a good idea to open trace log all the time, even it is only for cache log.
The better way is, EHcache has this hit/miss metrics already, you can get it by JMX
or spring boot actuator
.
To use by JMX, you can refer this
To use Spring Boot Actuator
, you can refer this.
And for Spring Boot 2 you can add in your application.properties:
logging.level.org.springframework.cache=TRACE