Added rack logger middleware that tails the environment log

This commit is contained in:
Joshua Peek 2008-08-19 00:18:26 -05:00
parent 96ab01e8f2
commit e9ae2b2f4c
2 changed files with 29 additions and 0 deletions

View File

@ -1,5 +1,6 @@
module Rails
module Rack
autoload :Logger, "rails/rack/logger"
autoload :Static, "rails/rack/static"
end
end

View File

@ -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