Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion console-adapter-rails.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Gem::Specification.new do |spec|

spec.required_ruby_version = ">= 3.2"

spec.add_dependency "console", "~> 1.21"
spec.add_dependency "console", "~> 1.34"
spec.add_dependency "fiber-storage", "~> 1.0"
spec.add_dependency "rails", ">= 7.0"
end
10 changes: 8 additions & 2 deletions lib/console/adapter/rails/logger.rb
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,14 @@ def silenced?(severity)
# @parameter progname [String | Nil] The program name.
def add(severity, message = nil, progname = nil, &block)
return if silenced?(severity)

super(severity, message, progname, &block)

options = formatter&.tag_stack&.tags.to_a.each_with_object({}) do |tag, memo|
next unless tag.respond_to?(:to_hash)

memo.update(tag)
end

super(severity, message, progname, **options, &block)
end

# Configure Rails to use the Console logger.
Expand Down
24 changes: 23 additions & 1 deletion test/console/adapter/rails/logger.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,29 @@ def before
it "should support tags" do
expect(Rails.logger).to be(:respond_to?, :tagged)
end


it "should log tags that are Hashes" do
Rails.logger.tagged({ foo: "bar" }) do
Rails.logger.info("Hello World")
end

expect(capture.last).to have_keys(
message: be == "Hello World",
foo: be == "bar"
)
end

it "should not fail when logging string tags" do
Rails.logger.tagged("foo=bar") do
Rails.logger.info("Hello World")
end

expect(capture.last).to have_keys(
message: be == "Hello World"
)
expect(capture.last.keys).to be == %i[time severity subject arguments message]
end

it "should support silence" do
expect(Rails.logger).to be(:respond_to?, :silence)

Expand Down
Loading