blob: a237cee6bc68f2c1226d37f63e17020712c0fed7 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
module Rails
module Rack
class LogTailer
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.to_f
@file = ::File.open(path, 'r')
end
def call(env)
response = @app.call(env)
tail_log
response
end
def tail_log
@file.seek @cursor
mod = @file.mtime.to_f
if mod > @last_checked
contents = @file.read
@last_checked = mod
@cursor += contents.size
$stdout.print contents
end
end
end
end
end
|