Is Ruby’s stdlib Logger class thread-safe?
A quick look at logger.rb reveals code such as the following: def write(message) @mutex.synchronize do if @shift_age and @dev.respond_to?(:stat) begin check_shift_log rescue raise Logger::ShiftingError.new(“Shifting failed. #{$!}”) end end @dev.write(message) end end So while I can’t vouch for whether it gets thread-safety correct, I can confirm that it is making a concerted effort to do it … Read more