Беглый взгляд на logger.rb показывает код, подобный следующему:
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
Так что, хотя я не могу ручаться за то, получает ли он безопасность потоков правильно , я могу подтвердить, что он предпринимает согласованные усилия, чтобы сделать это правильно!
P.S. Часто легко ответить на подобные вопросы, прочитав код: -)