Module: Lesmok::Tags::ErrorLogging

Included in:
CachedInclude, DebugComment, DebugInclude, ErbInclude
Defined in:
lib/lesmok/tags/error_logging.rb

Instance Method Summary collapse

Instance Method Details

#log_exception(err, context) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/lesmok/tags/error_logging.rb', line 5

def log_exception(err, context)
  template_name = context[@template_name]
  err.message << " (in template '#{template_name}')" rescue nil
  err.blame_file! "#{template_name}.liquid" rescue nil
  Lesmok.logger.error "[#{self.class}] Liquid error in '#{template_name}': #{err.to_s} \n - #{err.backtrace.first(15).join("\n - ")}"
rescue => err
  Lesmok.logger.error "[#{self.class}] META ERROR: Liquid exception reporting failure: #{err.to_s} \n - #{err.backtrace.first(15).join("\n - ")}"
ensure
  raise err if Lesmok.config.debugging?
  ""
end

#with_exception_logging(context) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/lesmok/tags/error_logging.rb', line 17

def with_exception_logging(context)
  begin
    yield
  rescue => err
    log_exception(err, context)
  end
end