Module: Fig::VerboseLogging
- Defined in:
- lib/fig/verbose_logging.rb
Overview
Core verbose logging infrastructure with timing support
Constant Summary collapse
- @@verbose_enabled =
false
Class Method Summary collapse
- .disable_verbose! ⇒ Object
- .enable_verbose! ⇒ Object
- .format_duration(seconds) ⇒ Object
- .should_log_verbose? ⇒ Boolean
- .time_operation(operation_name, &block) ⇒ Object
- .verbose(message) ⇒ Object
- .verbose_enabled? ⇒ Boolean
Class Method Details
.disable_verbose! ⇒ Object
15 16 17 |
# File 'lib/fig/verbose_logging.rb', line 15 def self.disable_verbose! @@verbose_enabled = false end |
.enable_verbose! ⇒ Object
11 12 13 |
# File 'lib/fig/verbose_logging.rb', line 11 def self.enable_verbose! @@verbose_enabled = true end |
.format_duration(seconds) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/fig/verbose_logging.rb', line 56 def self.format_duration(seconds) if seconds < 1.0 "#{(seconds * 1000).round(1)}ms" elsif seconds < 60.0 "#{seconds.round(2)}s" else minutes = (seconds / 60).floor remaining_seconds = seconds - (minutes * 60) "#{minutes}m #{remaining_seconds.round(1)}s" end end |
.should_log_verbose? ⇒ Boolean
23 24 25 |
# File 'lib/fig/verbose_logging.rb', line 23 def self.should_log_verbose? @@verbose_enabled || Fig::Logging.debug? end |
.time_operation(operation_name, &block) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/fig/verbose_logging.rb', line 38 def self.time_operation(operation_name, &block) return yield unless should_log_verbose? start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC) verbose "starting #{operation_name}" begin result = yield duration = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start_time verbose "completed #{operation_name} in #{format_duration(duration)}" result rescue => error duration = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start_time verbose "failed #{operation_name} after #{format_duration(duration)}: #{error.class.name}: #{error.}" raise end end |
.verbose(message) ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/fig/verbose_logging.rb', line 27 def self.verbose() return unless should_log_verbose? if Fig::Logging.info? Fig::Logging.info "[VERBOSE] #{}" else # fallback to stderr if logging is completely disabled $stderr.puts "[VERBOSE] #{}" if @@verbose_enabled end end |
.verbose_enabled? ⇒ Boolean
19 20 21 |
# File 'lib/fig/verbose_logging.rb', line 19 def self.verbose_enabled? @@verbose_enabled end |