作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我在 JRuby on Rails 应用程序中遇到 Logger
问题。一个线程将日志级别更改为错误并且不会改回。这段代码是线程安全的,还是我应该寻找它发生的其他地方?
https://github.com/rails/rails/blob/master/activesupport/lib/active_support/benchmarkable.rb#L50
def silence
message = "ActiveSupport::Benchmarkable#silence is deprecated. It will be removed from Rails 4.1."
ActiveSupport::Deprecation.warn message
old_logger_level, logger.level = logger.level, ::Logger::ERROR if logger
yield
ensure
logger.level = old_logger_level if logger
end
最佳答案
好的,看起来在第一个线程中的 yield
期间,其他线程将执行 silence
它会将 logger.level
设置为 ERROR
,因此如果其他线程将在第一个线程之后结束,它会将级别永久设置为 ERROR
。
关于ruby-on-rails - 这个 ruby on rails 代码线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16082329/
我是一名优秀的程序员,十分优秀!