jim*_*meh 29 ruby logging multithreading log4r thread-safety
简而言之,Ruby中的标准库Logger类是否是线程安全的?只有谷歌出现的有用信息才是论坛上有人说它"似乎"是线程安全的.而且我不想花时间测试记录器来试图弄清楚它是否存在.
暂时我使用的是log4r,它是线程安全的,但是如果标准库已经完成它就太过分了.
Avd*_*vdi 46
快速浏览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
Run Code Online (Sandbox Code Playgroud)
因此,虽然我不能保证它是否正确的线程安全,我可以确认它正在齐心协力做正确的事!
PS通过阅读代码,通常很容易回答这样的问题:-)