Skip to content

Commit

Permalink
Merge 33ab210 into f1701d9
Browse files Browse the repository at this point in the history
  • Loading branch information
ioquatix committed Mar 21, 2019
2 parents f1701d9 + 33ab210 commit 45af6d7
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 7 deletions.
4 changes: 4 additions & 0 deletions lib/async/reactor.rb
Expand Up @@ -75,6 +75,10 @@ def logger
@logger || Event::Console.logger
end

def logger=
@logger = logger
end

def to_s
"<#{self.description} stopped=#{@stopped}>"
end
Expand Down
6 changes: 5 additions & 1 deletion lib/async/task.rb
Expand Up @@ -76,7 +76,11 @@ def to_s
end

def logger
@logger ||= @parent.logger
@logger || @parent&.logger
end

def logger=
@logger = logger
end

# @attr ios [Reactor] The reactor the task was created within.
Expand Down
36 changes: 30 additions & 6 deletions spec/async/logger_spec.rb
Expand Up @@ -23,21 +23,45 @@
require 'event/capture'

RSpec.describe 'Async.logger' do
let(:name) {"nested"}
let(:message) {"Talk is cheap. Show me the code."}

let(:capture) {Event::Capture.new}
let(:logger) {Event::Logger.new(capture, name: "Nested")}
let(:logger) {Event::Logger.new(capture, name: name)}

it "can use nested logger" do
logger.verbose!

Async(logger: logger) do |task|
expect(task.logger).to be == logger
logger.warn "Thar be the dragons!"
logger.warn message
end

expect(capture.events.last).to include({
severity: :warn,
name: "Nested",
subject: "Thar be the dragons!",
name: name,
subject: message,
})
end

it "can change nested logger" do
Async(logger: logger) do |task|
expect(task.logger).to be == logger

task.logger = nil
expect(task.logger).to be == task.reactor.logger
end
end

it "can use parent logger" do
Async(logger: logger) do |parent|
child = parent.async{|task| task.yield}

expect(parent.logger).to be == logger
expect(child.logger).to be == logger

parent.logger = nil

expect(parent.logger).to be == parent.reactor.logger
expect(child.logger).to be == parent.reactor.logger
end
end
end

0 comments on commit 45af6d7

Please sign in to comment.