class Hanami::Events::CloudPubsub::Middleware::Logging

Middleware used for logging useful information about an event

Public Class Methods

new(logger: nil) click to toggle source
# File lib/hanami/events/cloud_pubsub/middleware/logging.rb, line 9
def initialize(logger: nil)
  @logger = logger
end

Public Instance Methods

call(msg, **opts) { |**opts| ... } click to toggle source
# File lib/hanami/events/cloud_pubsub/middleware/logging.rb, line 13
          def call(msg, **opts)
            started_at = Process.clock_gettime(Process::CLOCK_MONOTONIC)
            yield(**opts)
          ensure
            ended_at = Process.clock_gettime(Process::CLOCK_MONOTONIC)
            seconds = ended_at - started_at
            logger.info <<~MSG
              Processed message(id: #{msg.message_id}) took #{seconds} seconds to process
            MSG
          end

Private Instance Methods

logger() click to toggle source
# File lib/hanami/events/cloud_pubsub/middleware/logging.rb, line 26
def logger
  @logger || CloudPubsub.logger
end