# File lib/phusion_passenger/classic_rails_extensions/analytics_logging/as_cache_extension.rb, line 29
        def fetch_2_1(key, options = {})
                @logger_off = true
                if !options[:force] && value = read(key, options)
                        @logger_off = false
                        log("hit", key, options)
                        PhusionPassenger.log_cache_hit(nil, key)
                        value
                elsif block_given?
                        @logger_off = false
                        log("miss", key, options)

                        value = nil
                        seconds = Benchmark.realtime { value = yield }

                        @logger_off = true
                        write(key, value, options)
                        @logger_off = false

                        log("write (will save #{'%.5f' % seconds})", key, nil)
                        PhusionPassenger.log_cache_miss(nil, key, seconds * 1_000_000)

                        value
                else
                        PhusionPassenger.log_cache_miss(nil, key)
                        value
                end
        end