Ruby on rails 为什么Rails会更改记录器的颜色转义序列?
我有一个带有记录器的简单ruby脚本,我为记录器设置了一个格式化程序,以提供彩色输出:Ruby on rails 为什么Rails会更改记录器的颜色转义序列?,ruby-on-rails,ruby,logging,colors,Ruby On Rails,Ruby,Logging,Colors,我有一个带有记录器的简单ruby脚本,我为记录器设置了一个格式化程序,以提供彩色输出: require 'colorize' require 'mono_logger' logger = MonoLogger.new(target_file) logger.formatter = proc do |severity, datetime, progname, msg| meta = "#{severity.to_s[0].red} #{datetime.strftime('%y-%m-%d
require 'colorize'
require 'mono_logger'
logger = MonoLogger.new(target_file)
logger.formatter = proc do |severity, datetime, progname, msg|
meta = "#{severity.to_s[0].red} #{datetime.strftime('%y-%m-%d %H:%M:%S.%6N').white}"
"#{meta} #{msg}\n"
end
这很好,所有的logger.info
调用都以正确的颜色转义序列保存,并在使用tail
查看文件时以黑/红显示
在该ruby脚本中,我加载了一个rails环境,以便访问应用程序模型,如下所示:
require File.expand_path('../../../../config/environment', __FILE__)
在该行之后,每个日志调用都不会保存正确的颜色转义序列。看起来rails做了一些替换之类的事情
在要求之前
:
\033[0;31;49mI\033[0m [0;37;49m14-09-19 15:38:36.472544\033[0m Starting boot process
\033[0;31;49mI\033[0m [0;37;49m14-09-19 15:38:36.472788\033[0m Loading rails environment
\033[1;31mI\033[0m [1;37m14-09-19 15:38:39.949944\033[0m Using config config/config.rb
\033[1;31mD\033[0m [1;37m14-09-19 15:38:47.105813\033[0m Setting up clockwork
\033[1;31mI\033[0m [1;37m14-09-19 15:38:47.805399\033[0m Setting up EventMachine
在要求之后
:
\033[0;31;49mI\033[0m [0;37;49m14-09-19 15:38:36.472544\033[0m Starting boot process
\033[0;31;49mI\033[0m [0;37;49m14-09-19 15:38:36.472788\033[0m Loading rails environment
\033[1;31mI\033[0m [1;37m14-09-19 15:38:39.949944\033[0m Using config config/config.rb
\033[1;31mD\033[0m [1;37m14-09-19 15:38:47.105813\033[0m Setting up clockwork
\033[1;31mI\033[0m [1;37m14-09-19 15:38:47.805399\033[0m Setting up EventMachine
有什么办法解决这个问题吗?看起来Rails有自己的
.green
,.blue
。。。字符串的方法。如果您使用.colorize(:green)
而不是。green
一切都像一个符咒