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
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Change log

## Unreleased

### Fixed

* Fix console and stream handlers to respect logger runtime log-level changes

## [v0.6.0] - 2020-12-05

### Added
Expand Down
11 changes: 6 additions & 5 deletions lib/tty/logger/handlers/console.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,6 @@ class Console
# @api private
attr_reader :config

# The logging level
# @api private
attr_reader :level

# The format for the message
# @api private
attr_reader :message_format
Expand All @@ -89,7 +85,7 @@ def initialize(output: $stderr, formatter: nil, config: nil, level: nil,
@color_pattern = COLOR_PATTERNS[@formatter_name.to_sym]
@config = config
@styles = styles
@level = level || @config.level
@level = level
@mutex = Mutex.new
@pastel = Pastel.new(enabled: enable_color)
@message_format = message_format
Expand Down Expand Up @@ -145,6 +141,11 @@ def call(event)
@mutex.unlock
end

# @api private
def level
@level || @config.level
end

private

def format_backtrace(event)
Expand Down
8 changes: 5 additions & 3 deletions lib/tty/logger/handlers/stream.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,11 @@ class Stream

attr_reader :config

attr_reader :level

def initialize(output: $stderr, formatter: nil, config: nil, level: nil)
@output = Array[output].flatten
@formatter = coerce_formatter(formatter || config.formatter).new
@config = config
@level = level || @config.level
@level = level
@mutex = Mutex.new
end

Expand Down Expand Up @@ -57,6 +55,10 @@ def call(event)
ensure
@mutex.unlock
end

def level
@level || @config.level
end
end # Stream
end # Handlers
end # Logger
Expand Down
21 changes: 21 additions & 0 deletions spec/unit/handler_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,27 @@
].join)
end

it "respects logger instance-level log level configuration changes" do
logger = TTY::Logger.new(output: output) do |config|
config.handlers = [
[:console, enable_color: false]
]
config.level = :warn
end

logger.configure do |config|
config.level = :info
end

logger.info("Info")
logger.error("Error")

expect(output.string).to eq([
"#{styles[:info][:symbol]} info Info \n",
"#{styles[:error][:symbol]} error Error \n",
].join)
end

it "fails to coerce unknown object type into handler object" do
expect {
TTY::Logger.new do |config|
Expand Down
18 changes: 18 additions & 0 deletions spec/unit/handlers/stream_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,22 @@
"\"level\":\"info\",\"message\":\"Successfully deployed\"}\n"
].join)
end

it "respects logger instance-level log level configuration changes" do
logger = TTY::Logger.new(output: output) do |config|
config.handlers = [:stream]
end

logger.configure do |config|
config.level = :debug
end

logger.info("Successfully deployed")
logger.debug("A debug message")

expect(output.string).to eq([
"level=info message=\"Successfully deployed\"\n",
"level=debug message=\"A debug message\"\n",
].join)
end
end