about summary refs log tree commit homepage
path: root/lib/clogger/pure.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2012-11-02 20:09:28 -0700
committerEric Wong <normalperson@yhbt.net>2012-11-02 20:09:28 -0700
commitaaf1279e3e73e301b8f65b651933ebe287b82b4d (patch)
treeaf080b511188bb86869a107831b350deafc2b71a /lib/clogger/pure.rb
parent4bcd56a4f02b8a167d28505182cc6ff723fb027c (diff)
downloadclogger-aaf1279e3e73e301b8f65b651933ebe287b82b4d.tar.gz
avoid calling "<<" on env["rack.errors"]
Rack::Lint::ErrorWrapper forbids the "<<" method.  This
fallback only comes into play when no log destination
(via :logger or :path) is specified and is rarely an
issue in real setups.
Diffstat (limited to 'lib/clogger/pure.rb')
-rw-r--r--lib/clogger/pure.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/clogger/pure.rb b/lib/clogger/pure.rb
index 24392e7..44f4e62 100644
--- a/lib/clogger/pure.rb
+++ b/lib/clogger/pure.rb
@@ -161,7 +161,7 @@ private
   end
 
   def log(env, status, headers)
-    (@logger || env['rack.errors']) << @fmt_ops.map { |op|
+    str = @fmt_ops.map { |op|
       case op[0]
       when OP_LITERAL; op[1]
       when OP_REQUEST; byte_xs(env[op[1]] || "-")
@@ -182,5 +182,13 @@ private
         raise "EDOOFUS #{op.inspect}"
       end
     }.join('')
+
+    l = @logger
+    if l
+      l << str
+    else
+      env['rack.errors'].write(str)
+    end
+    nil
   end
 end