From 8dbcfe8cafdcf36d0b000b2ccaf5059fd2210c1e Mon Sep 17 00:00:00 2001 From: Chad Wilson <29788154+chadlwilson@users.noreply.github.com> Date: Fri, 19 Sep 2025 11:31:32 +0800 Subject: [PATCH] [fix] Add missing 'debug' zero-argument logging signature -Fixes #329 --- History.md | 4 ++++ src/main/java/org/jruby/rack/ext/Logger.java | 5 +++++ src/spec/ruby/jruby/rack/logger_spec.rb | 20 ++++++++++++++++++++ 3 files changed, 29 insertions(+) diff --git a/History.md b/History.md index 33e64ae42..c42fcc855 100644 --- a/History.md +++ b/History.md @@ -1,3 +1,7 @@ +## 1.2.6 (UNRELEASED) + +- Add missing block-only signature for debug logging + ## 1.2.5 - Fix use of jruby-rack under Java 8 (#324) diff --git a/src/main/java/org/jruby/rack/ext/Logger.java b/src/main/java/org/jruby/rack/ext/Logger.java index 5f723187f..36d5659e4 100644 --- a/src/main/java/org/jruby/rack/ext/Logger.java +++ b/src/main/java/org/jruby/rack/ext/Logger.java @@ -246,6 +246,11 @@ public IRubyObject debug(final ThreadContext context, return context.runtime.newBoolean( add(DEBUG, context, msg, block) ); } + @JRubyMethod(name = "debug") + public IRubyObject debug(final ThreadContext context, final Block block) { + return debug(context, context.nil, block); + } + // // :call-seq: // info(message) diff --git a/src/spec/ruby/jruby/rack/logger_spec.rb b/src/spec/ruby/jruby/rack/logger_spec.rb index 0b9bf298d..b98b64f2b 100644 --- a/src/spec/ruby/jruby/rack/logger_spec.rb +++ b/src/spec/ruby/jruby/rack/logger_spec.rb @@ -86,6 +86,26 @@ expect(logger.warn?).to be true end + [:debug, :info, :warn, :error, :fatal].each do |level| + it "logs at #{level} level" do + logger.public_send(level, 'message') + expect(real_logger.logged_content).to eql "#{level.to_s.upcase}: message\n" + + real_logger.reset + logger.public_send(level, 'message') { 'ignored' } + expect(real_logger.logged_content).to eql "#{level.to_s.upcase}: message\n" + + real_logger.reset + logger.public_send(level, nil) { 'message' } + expect(real_logger.logged_content).to eql "#{level.to_s.upcase}: message\n" + + + real_logger.reset + logger.public_send(level) { 'message' } + expect(real_logger.logged_content).to eql "#{level.to_s.upcase}: message\n" + end + end + it "disables real logger's formatting when formatter is set" do real_logger.formatting = true expect(real_logger.formatting?).to be true