module Sequel::CallerLogging

Constants

INTERNAL
RUBY_STDLIB
SEQUEL_LIB_PATH

Attributes

caller_logging_formatter[RW]

A callable to format the external caller

caller_logging_ignore[RW]

A regexp of caller lines to ignore, in addition to internal Sequel and Ruby code.

Public Instance Methods

log_connection_yield(sql, conn, args=nil) click to toggle source

Include caller information when logging query.

Calls superclass method
   # File lib/sequel/extensions/caller_logging.rb
49 def log_connection_yield(sql, conn, args=nil)
50   if !@loggers.empty? && (external_caller = external_caller_for_log)
51     sql = "#{external_caller} #{sql}"
52   end
53   super
54 end

Private Instance Methods

external_caller_for_log() click to toggle source

The caller to log, ignoring internal Sequel and Ruby code, and user specified lines to ignore.

   # File lib/sequel/extensions/caller_logging.rb
60 def external_caller_for_log
61   ignore = caller_logging_ignore
62   c = caller.find do |line|
63     !(line.start_with?(SEQUEL_LIB_PATH, RUBY_STDLIB, INTERNAL) ||
64       (ignore && line =~ ignore))
65   end
66 
67   if c
68     c = if formatter = caller_logging_formatter
69       formatter.call(c)
70     else
71       "(source: #{c})"
72     end
73   end
74 
75   c
76 end