aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/rack
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2010-01-21 13:05:30 +0100
committerJosé Valim <jose.valim@gmail.com>2010-01-21 13:09:12 +0100
commit378464a2e47bb849f3351cb8c87366554b7ce74d (patch)
tree98a0aeb321ae4005f45e9c9d4147da1fbef0f7d5 /railties/lib/rails/rack
parentdcb8b64975832ac75d92104da3c95876e56eec66 (diff)
downloadrails-378464a2e47bb849f3351cb8c87366554b7ce74d.tar.gz
rails-378464a2e47bb849f3351cb8c87366554b7ce74d.tar.bz2
rails-378464a2e47bb849f3351cb8c87366554b7ce74d.zip
Default to sync instrumentation.
Diffstat (limited to 'railties/lib/rails/rack')
-rw-r--r--railties/lib/rails/rack/logger.rb38
1 files changed, 38 insertions, 0 deletions
diff --git a/railties/lib/rails/rack/logger.rb b/railties/lib/rails/rack/logger.rb
new file mode 100644
index 0000000000..91a613092f
--- /dev/null
+++ b/railties/lib/rails/rack/logger.rb
@@ -0,0 +1,38 @@
+require 'rails/subscriber'
+
+module Rails
+ module Rack
+ # Log the request started and flush all loggers after it.
+ class Logger < Rails::Subscriber
+ def initialize(app)
+ @app = app
+ end
+
+ def call(env)
+ @env = env
+ before_dispatch
+ result = @app.call(@env)
+ after_dispatch
+ result
+ end
+
+ protected
+
+ def request
+ @request ||= ActionDispatch::Request.new(@env)
+ end
+
+ def before_dispatch
+ path = request.request_uri.inspect rescue "unknown"
+
+ info "\n\nStarted #{request.method.to_s.upcase} #{path} " <<
+ "for #{request.remote_ip} at #{Time.now.to_s(:db)}"
+ end
+
+ def after_dispatch
+ Rails::Subscriber.flush_all!
+ end
+
+ end
+ end
+end