gpt4 book ai didi

ruby-on-rails - Ruby on Rails - 如何以彩色打印日志消息

转载 作者:数据小太阳 更新时间:2023-10-29 06:35:14 25 4
gpt4 key购买 nike

我很惊讶我已经无法在 SO 上找到它了。

我希望能够为输出到控制台的日志输出中的特定字符串段着色。所以像这样:

"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 程序中所做的那样。有几种方法可以解决这个问题:

  1. 使用 rainbow gem,它允许你这样做:

    需要'彩虹'
    Rails.logger.debug(Rainbow("This message is Green").green)

    要求 mixin 直接向字符串类添加方法:

    2021 年 3 月更新:Rainbow Gem API 已更改。现在使用它:

    需要'彩虹/细化'
    使用彩虹
    Rails.logger.debug("This is Green - ".green + "This is Blue".blue)

    上一版本(供后代使用):

    需要'rainbow/ext/string'
    Rails.logger.debug("This is Green - ".green + "This is Blue".blue)

    结束更新

    Rainbow gem 会自动将开始和结束转义序列添加到字符串中。

  2. 使用 colorize gem,它与 String 类的 rainbow mixin 做同样的事情:

    需要'着色'
    Rails.logger.debug("这是绿色 - ".green + "这是蓝色".blue)

  3. 将转义序列放入您自己中,使用类似这样的东西:

    Rails.logger.debug("\033[32mThis message is Green\033[0m")

  4. 为 String 类编写您自己的扩展。参见 this answerthis answer举个例子。

有关更多想法,请参阅 How can I use Ruby to colorize the text output to a terminal?

关于ruby-on-rails - Ruby on Rails - 如何以彩色打印日志消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25574906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com