linux 终端下输出显示颜色color for xterm in ruby lang.

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"


你可能感兴趣的:(sql,linux,F#,Ruby,ActiveRecord)