diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-09-09 04:48:25 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-09-09 04:48:25 -0300 |
commit | 0bb59c3e8a5168703c1fd929878b631a116b4f81 (patch) | |
tree | 6fcfb231f33733240134907d84598dcb8a942aff /activerecord/lib/active_record | |
parent | 8e3ca417e233b91b7d2daefb32417a1f8386795a (diff) | |
parent | 4fda1f2fade4dafb4f94d1f2a682750d2db5da53 (diff) | |
download | rails-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')
-rw-r--r-- | activerecord/lib/active_record/log_subscriber.rb | 34 |
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 |