diff options
author | José Valim <jose.valim@gmail.com> | 2010-01-21 13:05:30 +0100 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-01-21 13:09:12 +0100 |
commit | 378464a2e47bb849f3351cb8c87366554b7ce74d (patch) | |
tree | 98a0aeb321ae4005f45e9c9d4147da1fbef0f7d5 /railties/lib/rails/rack | |
parent | dcb8b64975832ac75d92104da3c95876e56eec66 (diff) | |
download | rails-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.rb | 38 |
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 |