Module: Teems::Support::ErrorLogger
- Defined in:
- lib/teems/support/error_logger.rb
Overview
Logs errors to a file for debugging
Class Method Summary collapse
- .append_error_entry(log_file, error) ⇒ Object
- .log(error, paths: XdgPaths.new) ⇒ Object
- .prepare_log_file(paths) ⇒ Object
- .write_entry(file, error) ⇒ Object
Class Method Details
.append_error_entry(log_file, error) ⇒ Object
17 18 19 20 |
# File 'lib/teems/support/error_logger.rb', line 17 def append_error_entry(log_file, error) File.open(log_file, 'a') { |file| write_entry(file, error) } log_file end |
.log(error, paths: XdgPaths.new) ⇒ Object
9 10 11 12 13 14 15 |
# File 'lib/teems/support/error_logger.rb', line 9 def log(error, paths: XdgPaths.new) log_file = prepare_log_file(paths) append_error_entry(log_file, error) rescue SystemCallError, IOError => e warn "teems: Could not write error log: #{e.}" nil end |
.prepare_log_file(paths) ⇒ Object
22 23 24 25 |
# File 'lib/teems/support/error_logger.rb', line 22 def prepare_log_file(paths) paths.ensure_cache_dir paths.cache_file('error.log') end |
.write_entry(file, error) ⇒ Object
27 28 29 30 31 32 |
# File 'lib/teems/support/error_logger.rb', line 27 def write_entry(file, error) file.puts "#{Time.now.iso8601} - #{error.class}: #{error.}" backtrace = error.backtrace file.puts backtrace.first(10).map { |line| " #{line}" }.join("\n") if backtrace file.puts end |