首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可配置拼音记录器设置: Logger.new().level = variable

可配置拼音记录器设置: Logger.new().level = variable
EN

Stack Overflow用户
提问于 2010-04-05 23:55:39
回答 1查看 3.7K关注 0票数 8

我想要更改应用程序(ruby)的日志记录级别。

代码语言:javascript
复制
require 'logger'

config = { :level => 'Logger::WARN' }

log = Logger.new STDOUT
log.level = Kernel.const_get config[:level]

嗯,irb对此并不满意,并在我面前抛出了"NameError:错误的常量名称记录器::警告“。啊!我被侮辱了。

我可以在一个案例中/什么时候解决这个问题,或者log.level = 1,但肯定有更好的方法!

有谁有什么想法吗?

-daniel

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-06 00:08:26

为什么不在config散列中使用文字常量呢?

代码语言:javascript
复制
config = { :level => Logger::WARN }

然后,您就不必再使用const_get或类似的东西了;您只需执行log.level = config[:level]即可。

如果它绝对必须是一个字符串,您可以删除名称空间前缀,并在Logger模块上调用const_get

代码语言:javascript
复制
irb(main):012:0> Logger.const_get 'WARN'
=> 2

如果它真的必须是限定字符串,您可以尝试使用this blog's qualified_const_get method (它不是内置的!)。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2579362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档