summary refs log tree commit
path: root/lib/rack/logger.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rack/logger.rb')
-rw-r--r--lib/rack/logger.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/rack/logger.rb b/lib/rack/logger.rb
new file mode 100644
index 00000000..d67d8ce2
--- /dev/null
+++ b/lib/rack/logger.rb
@@ -0,0 +1,20 @@
+require 'logger'
+
+module Rack
+  # Sets up rack.logger to write to rack.errors stream
+  class Logger
+    def initialize(app, level = ::Logger::INFO)
+      @app, @level = app, level
+    end
+
+    def call(env)
+      logger = ::Logger.new(env['rack.errors'])
+      logger.level = @level
+
+      env['rack.logger'] = logger
+      @app.call(env)
+    ensure
+      logger.close
+    end
+  end
+end