View Javadoc

1   package com.atlassian.vcache.internal.core;
2   
3   import org.slf4j.Logger;
4   import org.slf4j.LoggerFactory;
5   
6   import static java.util.Objects.requireNonNull;
7   
8   /**
9    * Implementation of {@link ExternalCacheKeyGenerator} that logs at <tt>debug</tt> level the key before and after.
10   *
11   * @since 1.0.0
12   */
13  public class LoggingExternalCacheKeyGenerator extends ExternalCacheKeyGenerator {
14      private static final Logger log = LoggerFactory.getLogger(LoggingExternalCacheKeyGenerator.class);
15  
16      private final ExternalCacheKeyGenerator delegate;
17  
18      public LoggingExternalCacheKeyGenerator(String productIdentifier, ExternalCacheKeyGenerator delegate) {
19          super(productIdentifier);
20          this.delegate = requireNonNull(delegate);
21      }
22  
23      @Override
24      protected String encode(String plain) {
25          final String result = delegate.encode(plain);
26          log.debug("Generated key {} from {}", result, plain);
27          return result;
28      }
29  }