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) ||
64       line.start_with?(RUBY_STDLIB) ||
65       line.start_with?(INTERNAL) ||
66       (ignore && line =~ ignore))
67   end
68 
69   if c
70     c = if formatter = caller_logging_formatter
71       formatter.call(c)
72     else
73       "(source: #{c})"
74     end
75   end
76 
77   c
78 end