linux 下,在ROR的app中,看到的有颜色的sql语句,实现方法,当然是调用 linux 的系统颜色来作设置的,当用tail -f file 查看文件的时候就可以看到不同颜色标识的文字啦.
location at :
/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/connection_adapters/abstract_adapter.rb
def format_log_entry(message, dump = nil)
if ActiveRecord::Base.colorize_logging
if @@row_even
@@row_even = false
message_color, dump_color = "4;36;1", "0;1"
else
@@row_even = true
message_color, dump_color = "4;35;1", "0"
end
log_entry = " \e[#{message_color}m#{message}\e[0m "
log_entry << "\e[#{dump_color}m%#{String === dump ? 's' : 'p'}\e[0m" % dump if dump
log_entry
else
"%s %s" % [message, dump]
end
end
linux 端颜色设置 :
1. 用echo "<ctrl-v>;<escape>;[31m测试<ctrl-v>;<escape>;[37m"
echo "^[[Xm YourChar"
(X=30,31...36?)
请注意这个转义系列的敲法是,<ctrl-v>;<escape>;[30m
echo "<ctrl-v>;<escape>;[<代码>;;<代码>;;<代码>;m"
注意,语句必须要在""之间,属性分隔符为";",如闪烁红色
echo "<ctrl-v>;<escape>;[31;5m测试"
2. 前景 背景 颜色
---------------------------------------
30 40 黑色
31 41 紅色
32 42 綠色
33 43 黃色
34 44 藍色
35 45 紫紅色
36 46 青藍色
37 47 白色
代码 意义
-------------------------
0 OFF
1 高亮显示
4 underline
5 闪烁
7 反白显示
8 不可见
3. 产生颜色(黑色背景加绿色前景色):
sco: setcolor red; echo "abcd"; setcolor white
Linux/BSD: /usr/bin/echo -e "\033[40;32m"
System V: /usr/bin/echo "\033[40;32m"
Generic Method: /usr/bin/echo "<ctrl-v>;<escape>;[40;32m"