Module: WorkerTools::Recorder
- Defined in:
- lib/worker_tools/recorder.rb
Instance Method Summary collapse
- #add_info(message) ⇒ Object
- #add_log(message, level = :info) ⇒ Object
- #error_to_text(error, trace_lines = 20) ⇒ Object
- #format_info_message(message) ⇒ Object
- #format_log_message(message) ⇒ Object
- #info_error_trace_lines ⇒ Object
- #log_directory ⇒ Object
- #log_error_trace_lines ⇒ Object
- #log_file_name ⇒ Object
- #logger ⇒ Object
- #record(message, level = :info) ⇒ Object
- #record_fail(error) ⇒ Object
- #with_wrapper_logger(&block) ⇒ Object
- #with_wrapper_recorder(&block) ⇒ Object
Instance Method Details
#add_info(message) ⇒ Object
36 37 38 39 |
# File 'lib/worker_tools/recorder.rb', line 36 def add_info() @information ||= '' information << "#{format_info_message(message)}\n" end |
#add_log(message, level = :info) ⇒ Object
32 33 34 |
# File 'lib/worker_tools/recorder.rb', line 32 def add_log(, level = :info) logger.public_send(level, ()) end |
#error_to_text(error, trace_lines = 20) ⇒ Object
76 77 78 79 |
# File 'lib/worker_tools/recorder.rb', line 76 def error_to_text(error, trace_lines = 20) txt = "Error: #{error.message} (#{error.class})" txt << "Backtrace:\n#{error.backtrace[0, trace_lines].join("\n\t")}" end |
#format_info_message(message) ⇒ Object
51 52 53 54 |
# File 'lib/worker_tools/recorder.rb', line 51 def () return error_to_text(, info_error_trace_lines) if .is_a?(Exception) end |
#format_log_message(message) ⇒ Object
46 47 48 49 |
# File 'lib/worker_tools/recorder.rb', line 46 def () return error_to_text(, log_error_trace_lines) if .is_a?(Exception) end |
#info_error_trace_lines ⇒ Object
72 73 74 |
# File 'lib/worker_tools/recorder.rb', line 72 def info_error_trace_lines 20 end |
#log_directory ⇒ Object
60 61 62 |
# File 'lib/worker_tools/recorder.rb', line 60 def log_directory Rails.root.join('log') end |
#log_error_trace_lines ⇒ Object
68 69 70 |
# File 'lib/worker_tools/recorder.rb', line 68 def log_error_trace_lines 20 end |
#log_file_name ⇒ Object
64 65 66 |
# File 'lib/worker_tools/recorder.rb', line 64 def log_file_name "#{self.class.name.underscore.tr('/', '_')}.log" end |
#logger ⇒ Object
56 57 58 |
# File 'lib/worker_tools/recorder.rb', line 56 def logger @logger ||= Logger.new(File.join(log_directory, log_file_name)) end |
#record(message, level = :info) ⇒ Object
41 42 43 44 |
# File 'lib/worker_tools/recorder.rb', line 41 def record(, level = :info) add_log(, level) add_info() end |
#record_fail(error) ⇒ Object
25 26 27 28 29 30 |
# File 'lib/worker_tools/recorder.rb', line 25 def record_fail(error) record "ID #{model.id} - Error" record(error, :error) model.information = information model.save!(validate: false) end |
#with_wrapper_logger(&block) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/worker_tools/recorder.rb', line 14 def with_wrapper_logger(&block) block.yield # this time we do want to catch Exception to attempt to handle some of the # critical errors. # rubocop:disable Lint/RescueException rescue Exception => e # rubocop:enable Lint/RescueException add_log(e, :error) raise end |
#with_wrapper_recorder(&block) ⇒ Object
3 4 5 6 7 8 9 10 11 12 |
# File 'lib/worker_tools/recorder.rb', line 3 def with_wrapper_recorder(&block) block.yield # this time we do want to catch Exception to attempt to handle some of the # critical errors. # rubocop:disable Lint/RescueException rescue Exception => e # rubocop:enable Lint/RescueException record_fail(e) raise end |