Added rack logger middleware that tails the environment log
This commit is contained in:
parent
96ab01e8f2
commit
e9ae2b2f4c
|
@ -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
|
Loading…
Reference in New Issue