diff options
author | Senya <senya@riseup.net> | 2019-07-24 22:39:15 +0300 |
---|---|---|
committer | Senya <senya@riseup.net> | 2019-07-24 22:42:24 +0300 |
commit | 56ec504db6c130d448ffc1d68c9fdd95fdfc1130 (patch) | |
tree | e639d73ef40f242dcdd798bca83a7d11488a2d1e /activesupport/CHANGELOG.md | |
parent | 01a28f3e6bf9f1550aca9b86b8805051c97a14d6 (diff) | |
download | rails-56ec504db6c130d448ffc1d68c9fdd95fdfc1130.tar.gz rails-56ec504db6c130d448ffc1d68c9fdd95fdfc1130.tar.bz2 rails-56ec504db6c130d448ffc1d68c9fdd95fdfc1130.zip |
Make ActiveSupport::Logger Fiber-safe
Use Fiber.current.__id__ in ActiveSupport::Logger#local_level= in order
to make log level local to Ruby Fibers in addition to Threads.
Diffstat (limited to 'activesupport/CHANGELOG.md')
-rw-r--r-- | activesupport/CHANGELOG.md | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md index d56d4c22de..5d6bb7a0b3 100644 --- a/activesupport/CHANGELOG.md +++ b/activesupport/CHANGELOG.md @@ -1,3 +1,35 @@ +* Make ActiveSupport::Logger Fiber-safe. Fixes #36752. + + Use `Fiber.current.__id__` in `ActiveSupport::Logger#local_level=` in order + to make log level local to Ruby Fibers in addition to Threads. + + Example: + + logger = ActiveSupport::Logger.new(STDOUT) + logger.level = 1 + p "Main is debug? #{logger.debug?}" + + Fiber.new { + logger.local_level = 0 + p "Thread is debug? #{logger.debug?}" + }.resume + + p "Main is debug? #{logger.debug?}" + + Before: + + Main is debug? false + Thread is debug? true + Main is debug? true + + After: + + Main is debug? false + Thread is debug? true + Main is debug? false + + *Alexander Varnin* + * Allow the `on_rotation` proc used when decrypting/verifying a message to be passed at the constructor level. |