summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorNobuyoshi Nakada <[email protected]>2024-10-09 12:54:16 +0900
committergit <[email protected]>2024-12-04 07:45:37 +0000
commited47b6b32445107e870d8b1e9825141802fb8fdd (patch)
treee66ce6020e0e91f8636377a5c80988e73fcd42c2 /lib
parentc516669f26ef16228f2579f32b1a86566c04dad3 (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.rb29
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)