lib/sequel/database/logging.rb in sequel-3.34.1 vs lib/sequel/database/logging.rb in sequel-3.35.0
- old
+ new
@@ -15,10 +15,15 @@
# Log level at which to log SQL queries. This is actually the method
# sent to the logger, so it should be the method name symbol. The default
# is :info, it can be set to :debug to log at DEBUG level.
attr_accessor :sql_log_level
+ # Log a message at error level, with information about the exception.
+ def log_exception(exception, message)
+ log_each(:error, "#{exception.class}: #{exception.message.strip}: #{message}")
+ end
+
# Log a message at level info to all loggers.
def log_info(message, args=nil)
log_each(:info, args ? "#{message}; #{args.inspect}" : message)
end
@@ -29,10 +34,10 @@
sql = "#{sql}; #{args.inspect}" if args
start = Time.now
begin
yield
rescue => e
- log_each(:error, "#{e.class}: #{e.message.strip}: #{sql}")
+ log_exception(e, sql)
raise
ensure
log_duration(Time.now - start, sql) unless e
end
end