我已经安装了 Ramaze(在 Windows XP 上),它建议我还安装 win32console 以在它运行时获得彩色日志输出。
但是,这样做之后,我得到的是转义码而不是颜色,如下所示:
W [2009-04-29 09:02:55 $5064] WARN | : ←[33mNo explicit root folder found, assuming it is C:/Projects/Ruby/Ramaze/Conferences←[0m
D [2009-04-29 09:02:55 $5064] DEBUG | : ←[34mUsing webrick←[0m
I [2009-04-29 09:02:55 $5064] INFO | : ←[37mWEBrick 1.3.1←[0m
I [2009-04-29 09:02:55 $5064] INFO | : ←[37mruby 1.8.6 (2008-08-11) [i386-mswin32]←[0m
D [2009-04-29 09:02:55 $5064] DEBUG | : ←[34mTCPServer.new(0.0.0.0, 7000)←[0m
D [2009-04-29 09:02:55 $5064] DEBUG | : ←[34mRack::Handler::WEBrick is mounted on /.←[0m
I [2009-04-29 09:02:55 $5064] INFO | : ←[37mWEBrick::HTTPServer#start: pid=5064 port=7000←[0m
即使在全新安装 Ruby/Ramaze/win32console 时也会发生这种情况
我的设置是:
- 带有 SP#3 的 Windows XP
- ruby 1.8.6 (2008-08-11 补丁级别 287) [i386-mswin32]
- rubygems 版本 1.3.1
- win32console gem 1.2.0 版
顺便说一句,以下测试程序似乎可以工作,所以我想知道这是否是我机器上的 Ramaze/win32console 问题。
#!/usr/bin/ruby
require 'rubygems'
require 'win32console'
[0, 1, 4, 5, 7].each do |attr|
puts '----------------------------------------------------------------'
puts "ESC[#{attr};Foreground;Background"
30.upto(37) do |fg|
40.upto(47) do |bg|
print "\033[#{attr};#{fg};#{bg}m #{fg};#{bg} "
end
puts "\033[0m"
end
end