web-dev-qa-db-ja.com

@CacheableヒットでのSpringキャッシュロギング

現在、Spring Cacheと_@Cacheable_/_@CacheEvict_アノテーションを使用しています。

_"INFO: i got those values from the cache, NOT from the Host. awesome"_のようなコンソールログステートメントを取得したい

これを行うためのクリーンで簡単な方法はありますか?興味深いことに、明らかに_slf4j_を使用しています。

17
BassSultan

Spring自体は、traceレベルのorg.springframework.cacheロガーの下にキャッシング抽象化動作の一部を記録します。したがって、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]'のキャッシュエントリ

32
Ali Dehghani

また、Spring Boot 2の場合、application.propertiesに追加できます。

logging.level.org.springframework.cache=TRACE

トレースレベルのログを有効にできます。

たとえば、application.propertiesに「trace = true」と入力します。

春のロギングドキュメント

1
Mate Šimović