Fre*_*Ben 17 ruby console logging ruby-on-rails colors
我很惊讶我已经无法在SO上找到这个了.
我希望能够在我的日志输出中为控制台输入特定的字符串段.所以有点像这样:
"This part of the message in Green: This part in Blue"
Run Code Online (Sandbox Code Playgroud)
可能写得像这样:
Rails.logger.debug("This part of the message in Green: ".green + "This part in Blue".blue)
Run Code Online (Sandbox Code Playgroud)
Fre*_*Ben 35
基本上你要做的是将ANSI转义序列的颜色嵌入到调试字符串中,就像在常规Ruby程序中一样.有几种方法可以解决这个问题:
使用rainbowgem,它允许你这样做:
require 'rainbow'
Rails.logger.debug(Rainbow("This message is Green").green)
或者requiremixin将方法直接添加到字符串类:
require 'rainbow/ext/string'
Rails.logger.debug("This is Green - ".green + "This is Blue".blue)
Rainbow gem会自动将开始和结束转义序列添加到字符串中.
使用colorizegem,它与Rainbow mixin做同样的事情到String类:
require 'colorize'
Rails.logger.debug("This is Green - ".green + "This is Blue".blue)
使用以下内容将转义序列放入自己:
Rails.logger.debug("\033[32mThis message is Green\033[0m")
有关更多想法,请参阅Colorized Ruby输出
pru*_*wan 12
从Rails 5 开始,可以通过以下方式使用对 sql 日志着色的内部支持ActiveSupport::LogSubscriber:
logger.debug ActiveSupport::LogSubscriber.new.send(:color, "message", :red)
Run Code Online (Sandbox Code Playgroud)