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