diff options
author | Nobuyoshi Nakada <[email protected]> | 2024-10-09 12:54:16 +0900 |
---|---|---|
committer | git <[email protected]> | 2024-12-04 07:45:37 +0000 |
commit | ed47b6b32445107e870d8b1e9825141802fb8fdd (patch) | |
tree | e66ce6020e0e91f8636377a5c80988e73fcd42c2 /lib | |
parent | c516669f26ef16228f2579f32b1a86566c04dad3 (diff) |
[ruby/logger] Extract `Logger::LogDevice#handle_write_errors`
https://github.com/ruby/logger/commit/f904ad2f7c
Diffstat (limited to 'lib')
-rw-r--r-- | lib/logger/log_device.rb | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/lib/logger/log_device.rb b/lib/logger/log_device.rb index 4876adf0b7..a5c3759e80 100644 --- a/lib/logger/log_device.rb +++ b/lib/logger/log_device.rb @@ -30,29 +30,13 @@ class Logger end def write(message) - begin + handle_write_errors("writing") do synchronize do if @shift_age and @dev.respond_to?(:stat) - begin - check_shift_log - rescue *@reraise_write_errors - raise - rescue - warn("log shifting failed. #{$!}") - end - end - begin - @dev.write(message) - rescue *@reraise_write_errors - raise - rescue - warn("log writing failed. #{$!}") + handle_write_errors("shifting") {check_shift_log} end + handle_write_errors("writing") {@dev.write(message)} end - rescue *@reraise_write_errors - raise - rescue Exception => ignored - warn("log writing failed. #{ignored}") end end @@ -121,6 +105,13 @@ class Logger logdev.sync = true end logdev + + def handle_write_errors(mesg) + yield + rescue *@reraise_write_errors + raise + rescue + warn("log #{mesg} failed. #{$!}") end def add_log_header(file) |