lib/ably/logger.rb in ably-0.8.15 vs lib/ably/logger.rb in ably-1.0.0
- old
+ new
@@ -32,10 +32,19 @@
# The log level ranging from DEBUG to FATAL, refer to http://www.ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html
# @return {Integer}
attr_reader :log_level
- def_delegators :logger, :fatal, :error, :warn, :info, :debug
+ # Catch exceptiosn in blocks passed to the logger, log the error and continue
+ %w(fatal error warn info debug).each do |method_name|
+ define_method(method_name) do |*args, &block|
+ begin
+ logger.public_send(method_name, *args, &block)
+ rescue StandardError => e
+ logger.error "Logger: Failed to log #{method_name} block - #{e.class}: #{e.message}\n#{e.backtrace.join("\n")}"
+ end
+ end
+ end
private
def client
@client
end