【问题标题】:How to convert log level symbol into constant?如何将日志级别符号转换为常量?
【发布时间】:2013-02-01 20:29:23
【问题描述】:

我正在创建一个新的记录器,并希望将日志级别配置为等于 Rails 配置值。

@logger = Logger.new(STDOUT)
@logger.level = Rails.configuration.log_level

我收到一个错误,因为 level 需要整数并且 log_level 是一个符号 (:info)。如何将 :info 转换为 Logger 可以理解的内容 (Logger::INFO)?

我尝试使用:

@logger.level = "Logger::#{Rails.configuration.log_level.to_s.upcase}".constantize

但是constantize不识别符号:

NameError: uninitialized constant Logger::INFO

【问题讨论】:

  • 我不再收到错误消息。看来您的第一次尝试现在有效

标签: ruby-on-rails logging


【解决方案1】:

刚刚找到:

Logger.const_get(Rails.configuration.log_level.to_s.upcase)

【讨论】:

  • 这真的是最整洁的方法吗?在过去的七年里没有人提出任何其他建议,所以我想它一定是
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-11
  • 1970-01-01
  • 2021-04-30
  • 1970-01-01
  • 2013-11-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多