aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/log_subscriber.rb
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2015-09-09 04:48:25 -0300
committerRafael Mendonça França <rafaelmfranca@gmail.com>2015-09-09 04:48:25 -0300
commit0bb59c3e8a5168703c1fd929878b631a116b4f81 (patch)
tree6fcfb231f33733240134907d84598dcb8a942aff /activerecord/lib/active_record/log_subscriber.rb
parent8e3ca417e233b91b7d2daefb32417a1f8386795a (diff)
parent4fda1f2fade4dafb4f94d1f2a682750d2db5da53 (diff)
downloadrails-0bb59c3e8a5168703c1fd929878b631a116b4f81.tar.gz
rails-0bb59c3e8a5168703c1fd929878b631a116b4f81.tar.bz2
rails-0bb59c3e8a5168703c1fd929878b631a116b4f81.zip
Merge pull request #20921 from pboling/fix-sql-colors-in-log-subscriber
Fix and Improve sql logging coloration in `ActiveRecord::LogSubscriber`.
Diffstat (limited to 'activerecord/lib/active_record/log_subscriber.rb')
-rw-r--r--activerecord/lib/active_record/log_subscriber.rb34
1 files changed, 27 insertions, 7 deletions
diff --git a/activerecord/lib/active_record/log_subscriber.rb b/activerecord/lib/active_record/log_subscriber.rb
index 4d597a0ab1..b63caa4473 100644
--- a/activerecord/lib/active_record/log_subscriber.rb
+++ b/activerecord/lib/active_record/log_subscriber.rb
@@ -47,20 +47,40 @@ module ActiveRecord
binds = " " + payload[:binds].map { |attr| render_bind(attr) }.inspect
end
- name = color(name, nil, true)
+ name = colorize_payload_name(name, payload[:name])
sql = color(sql, sql_color(sql), true)
debug " #{name} #{sql}#{binds}"
end
+ private
+
+ def colorize_payload_name(name, payload_name)
+ if payload_name.blank? || payload_name == "SQL" # SQL vs Model Load/Exists
+ color(name, MAGENTA, true)
+ else
+ color(name, CYAN, true)
+ end
+ end
+
def sql_color(sql)
case sql
- when /\s*\Ainsert/i then GREEN
- when /\s*\Aselect/i then BLUE
- when /\s*\Aupdate/i then YELLOW
- when /\s*\Adelete/i then RED
- when /transaction\s*\Z/i then CYAN
- else MAGENTA
+ when /\A\s*rollback/mi
+ RED
+ when /\s*.*?select .*for update/mi, /\A\s*lock/mi
+ WHITE
+ when /\A\s*select/i
+ BLUE
+ when /\A\s*insert/i
+ GREEN
+ when /\A\s*update/i
+ YELLOW
+ when /\A\s*delete/i
+ RED
+ when /transaction\s*\Z/i
+ CYAN
+ else
+ MAGENTA
end
end