module SilentStream::Enhanced
Public Instance Methods
silence_all(switch = true, temporary_level = Logger::ERROR, logger = nil) { || ... }
click to toggle source
param switch is true or false By default it is true, when means we don't want logging. Switching it to false enables logging again. By default ERROR log level continues to be logged. The return value is the return value of the block,
so you can use it without changing code structure.
This method is not thread-safe.
# File lib/silent_stream.rb, line 25 def silence_all(switch = true, temporary_level = Logger::ERROR, logger = nil) if !switch || silent_stream_no_silence yield else begin logger ||= silent_stream_logger old_logger_level = silent_stream_reset_logger_level(logger, temporary_level) # silence STDOUT (like puts) silence_stream(STDOUT) do yield end ensure silent_stream_reset_logger_level(logger, old_logger_level) end end end
Private Instance Methods
silent_stream_logger()
click to toggle source
# File lib/silent_stream.rb, line 48 def silent_stream_logger defined?(Rails) ? Rails.logger : nil end
silent_stream_no_silence()
click to toggle source
# File lib/silent_stream.rb, line 44 def silent_stream_no_silence ENV['NO_SILENCE'] == 'true' end
silent_stream_reset_logger_level(logger, temporary_level)
click to toggle source
returns previous logger's level
# File lib/silent_stream.rb, line 53 def silent_stream_reset_logger_level(logger, temporary_level) logger && (old_logger_level = logger.level || true) && (logger.level = temporary_level) old_logger_level end