Class: Protobuf::Rpc::Middleware::Logger::Instrumenter

Inherits:
Object
  • Object
show all
Defined in:
lib/protobuf/rpc/middleware/logger.rb

Overview

TODO: Replace this with ActiveSupport::Notifications and log subscribers TODO: Consider adopting Rails-style logging so we can track serialization time as well as ActiveRecord time, etc.:

Started GET "/" for 127.0.0.1 at 2014-02-12 09:40:29 -0700
Processing by ReleasesController#index as HTML
  Rendered releases/_release.html.erb (0.0ms)
  Rendered releases/_release.html.erb (0.0ms)
  Rendered releases/_release.html.erb (0.0ms)
  Rendered releases/_release.html.erb (0.0ms)
  Rendered releases/index.html.erb within layouts/application (11.0ms)
Completed 200 OK in 142ms (Views: 117.6ms | ActiveRecord: 1.7ms)

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#envObject (readonly)

Returns the value of attribute env.



46
47
48
# File 'lib/protobuf/rpc/middleware/logger.rb', line 46

def env
  @env
end

Instance Method Details

#flush(env) ⇒ Object



48
49
50
# File 'lib/protobuf/rpc/middleware/logger.rb', line 48

def flush(env)
  ::Protobuf::Logging.logger.info { to_s(env) }
end

#startObject



52
53
54
# File 'lib/protobuf/rpc/middleware/logger.rb', line 52

def start
  @start_time = ::Time.now.utc
end

#stopObject



56
57
58
# File 'lib/protobuf/rpc/middleware/logger.rb', line 56

def stop
  @end_time = ::Time.now.utc
end

#to_s(env) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/protobuf/rpc/middleware/logger.rb', line 60

def to_s(env)
  @env = env

  [
    "[SRV]",
    env.client_host,
    env.worker_id,
    rpc,
    sizes,
    elapsed_time,
    @end_time.try(:iso8601),
  ].compact.join(' - ')
end