Permalink
Browse files

Added rack logger middleware that tails the environment log

  • Loading branch information...
1 parent 96ab01e commit e9ae2b2f4cae3e9ba4fc8ce91de951d18879af8b @josh josh committed Aug 19, 2008
Showing with 29 additions and 0 deletions.
  1. +1 −0 railties/lib/rails/rack.rb
  2. +28 −0 railties/lib/rails/rack/logger.rb
@@ -1,5 +1,6 @@
module Rails
module Rack
+ autoload :Logger, "rails/rack/logger"
autoload :Static, "rails/rack/static"
end
end
@@ -0,0 +1,28 @@
+module Rails
+ module Rack
+ class Logger
+ EnvironmentLog = "#{File.expand_path(Rails.root)}/log/#{Rails.env}.log"
+
+ def initialize(app, log = nil)
+ @app = app
+ @path = Pathname.new(log || EnvironmentLog).cleanpath
+ @cursor = ::File.size(@path)
+ @last_checked = Time.now
+ end
+
+ def call(env)
+ response = @app.call(env)
+ ::File.open(@path, 'r') do |f|
+ f.seek @cursor
+ if f.mtime > @last_checked
+ contents = f.read
+ @last_checked = f.mtime
+ @cursor += contents.length
+ print contents
+ end
+ end
+ response
+ end
+ end
+ end
+end

0 comments on commit e9ae2b2

Please sign in to comment.