lib/ably/logger.rb in ably-1.1.1 vs lib/ably/logger.rb in ably-1.1.2

- old
+ new

@@ -18,10 +18,12 @@ @log_level = log_level ensure_logger_interface_is_valid @logger.level = log_level + + @log_mutex = Mutex.new end # The logger used by this class, defaults to {http://www.ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html Ruby Logger} # @return {Object,Logger} attr_reader :logger @@ -36,17 +38,21 @@ # 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) + log_mutex.synchronize do + logger.public_send(method_name, *args, &block) + end 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 + attr_reader :log_mutex + def client @client end def color(color_value, string)