summary refs log tree commit
diff options
context:
space:
mode:
-rw-r--r--lib/rack/common_logger.rb2
-rw-r--r--test/spec_common_logger.rb4
2 files changed, 3 insertions, 3 deletions
diff --git a/lib/rack/common_logger.rb b/lib/rack/common_logger.rb
index 6235cef2..42bc135b 100644
--- a/lib/rack/common_logger.rb
+++ b/lib/rack/common_logger.rb
@@ -65,7 +65,7 @@ module Rack
         length,
         Utils.clock_time - began_at)
 
-      msg.gsub!(/[^[:print:]\n]/) { |c| "\\x#{c.ord}" }
+      msg.gsub!(/[^[:print:]\n]/) { |c| sprintf("\\x%x", c.ord) }
 
       logger = @logger || request.get_header(RACK_ERRORS)
       # Standard library logger doesn't support write but it supports << which actually
diff --git a/test/spec_common_logger.rb b/test/spec_common_logger.rb
index f5f182aa..be020073 100644
--- a/test/spec_common_logger.rb
+++ b/test/spec_common_logger.rb
@@ -110,9 +110,9 @@ describe Rack::CommonLogger do
   it "escapes non printable characters except newline" do
     logdev = StringIO.new
     log = Logger.new(logdev)
-    Rack::MockRequest.new(Rack::CommonLogger.new(app_without_lint, log)).request("GET\b", "/hello")
+    Rack::MockRequest.new(Rack::CommonLogger.new(app_without_lint, log)).request("GET\x1f", "/hello")
 
-    logdev.string.must_match(/GET\\x8 \/hello HTTP\/1\.1/)
+    logdev.string.must_match(/GET\\x1f \/hello HTTP\/1\.1/)
   end
 
   it "log path with PATH_INFO" do