aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/rack
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib/rails/rack')
-rw-r--r--railties/lib/rails/rack/log_tailer.rb35
-rw-r--r--railties/lib/rails/rack/logger.rb28
2 files changed, 35 insertions, 28 deletions
diff --git a/railties/lib/rails/rack/log_tailer.rb b/railties/lib/rails/rack/log_tailer.rb
new file mode 100644
index 0000000000..a237cee6bc
--- /dev/null
+++ b/railties/lib/rails/rack/log_tailer.rb
@@ -0,0 +1,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
diff --git a/railties/lib/rails/rack/logger.rb b/railties/lib/rails/rack/logger.rb
deleted file mode 100644
index 25a814f1db..0000000000
--- a/railties/lib/rails/rack/logger.rb
+++ /dev/null
@@ -1,28 +0,0 @@
-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.to_f
- end
-
- def call(env)
- response = @app.call(env)
- ::File.open(@path, 'r') do |f|
- f.seek @cursor
- if f.mtime.to_f > @last_checked
- contents = f.read
- @last_checked = f.mtime.to_f
- @cursor += contents.length
- print contents
- end
- end
- response
- end
- end
- end
-end