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)