    # File lib/active_support/cache.rb, line 53
          def fetch(key, options = {})
            @logger_off = true
            if !options[:force] && value = read(key, options)
              @logger_off = false
              log("hit", key, options)
              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)

              value
            end
          end