我很惊讶,我无法在SO上找到它。Ruby on Rails - 如何以彩色打印日志消息
我希望能够在我的日志输出中输入控制台的特定字符串段。所以somethng这样的:
"This part of the message in Green: This part in Blue"
可能这样写的:
Rails.logger.debug("This part of the message in Green: ".green + "This part in Blue".blue)
我很惊讶,我无法在SO上找到它。Ruby on Rails - 如何以彩色打印日志消息
我希望能够在我的日志输出中输入控制台的特定字符串段。所以somethng这样的:
"This part of the message in Green: This part in Blue"
可能这样写的:
Rails.logger.debug("This part of the message in Green: ".green + "This part in Blue".blue)
基本上你想要做的就是嵌入彩色ANSI转义序列到您的调试字符串,就像你在一个普通的Ruby会是什么程序。有几种方法去这个问题:
使用rainbow
宝石,它允许你这样做:
require 'rainbow' Rails.logger.debug(Rainbow("This message is Green").green)
或require
的混入直接方法添加到字符串类:
require 'rainbow/ext/string' Rails.logger.debug("This is Green - ".green + "This is Blue".blue)
彩虹宝石会自动添加开始和结束字符串的转义序列。
使用colorize
宝石,其做同样的事情作为彩虹混入到String类:
require 'colorize' Rails.logger.debug("This is Green - ".green + "This is Blue".blue)
把转义序列中的自己,用这样的事情:
Rails.logger.debug("\033[32mThis message is Green\033[0m")
将您自己的扩展写入String类。举例来说,参见this answer或this answer。
更多的想法,看到Colorized Ruby output
真棒!谢谢! – 2015-05-19 22:12:47
非常好!谢谢! – Neil 2016-05-15 22:58:45
使用'rainbow'宝石,'colorize'使用疯狂不兼容的许可证。 – Barry 2016-11-01 09:05:36