Using a custom Logger object errs
Closed this issue · 4 comments
From @djberg96 in #6 (see comment):
log = Logger.new(some_file)
log.formatter = proc do |severity, datetime, progname, msg|
msg = msg.sub /Bearer(.*?)\"/, 'Bearer [FILTERED]"'
"[#{datetime}] - #{severity} -- : #{msg}"
end
client = OAuth2::Client.new(<creds>)
client.connection.response(:detailed_logger, log)
/Users/djberge/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/faraday-detailed_logger-2.1.2/lib/faraday/detailed_logger/tagged_logging.rb:70:in `tagged': undefined method `tagged' for #<Proc:0x007fc99c3564a8> (NoMethodError)
from /Users/djberge/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/faraday-detailed_logger-2.1.2/lib/faraday/detailed_logger/middleware.rb:55:in `call'
from /Users/djberge/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/faraday-0.9.2/lib/faraday/adapter/net_http.rb:56:in `call'
from /Users/djberge/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/faraday-0.9.2/lib/faraday/request/url_encoded.rb:15:in `call'
from /Users/djberge/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/faraday-0.9.2/lib/faraday/rack_builder.rb:139:in `build_response'
from /Users/djberge/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/faraday-0.9.2/lib/faraday/connection.rb:377:in `run_request'
from /Users/djberge/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/oauth2-1.3.1/lib/oauth2/client.rb:99:in `request'
from /Users/djberge/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/oauth2-1.3.1/lib/oauth2/access_token.rb:107:in `request'
Hmm .. I'm not able to reproduce this behavior. The spec below passes without issue:
context "with tags configured" do
it "logs prepends the tags to each line" do
logger.formatter = proc do |severity, datetime, progname, msg|
msg = msg.sub /Bearer(.*?)\"/, 'Bearer [FILTERED]"'
"[#{datetime}] - #{severity} -- : #{msg}\n"
end
connection(logger, %w[ebi]).get("/temaki")
log.rewind
log.readlines.each do |line|
expect(line).to match(/: \[ebi\] /)
end
end
end
When that seemed to pass, I thought that maybe it errs if the logger
given didn't support tagged
, but the library already provides a shim for that with the Faraday::DetailedLogger::TaggedLogging
module. That module should automatically wrap whatever logger is given if the given logger doesn't respond to tagged
.
Are you able to reproduce this issue?
I'll try to come up with a standalone script. It might have something to do with oauth2 I suppose.
I haven't been able to replicate, so feel free to close this. If anything, it's probably an oauth2 issue.
Alright. No problem. Thanks for trying! If you run into it again, feel free to reopen.