8
我想更改應用程序(ruby)的日誌記錄級別。可配置的紅寶石記錄器設置:Logger.new()。level = variable
那麼,IRB不是滿意了,扔了「NameError:錯誤常量名記錄儀:: WARN」在我的臉上。啊!我被侮辱了。
我可以在一個case /什麼時候解決這個問題,或者做log.level = 1,但必須有一個更優雅的方式!
有沒有人有任何想法?
-daniel
我想更改應用程序(ruby)的日誌記錄級別。可配置的紅寶石記錄器設置:Logger.new()。level = variable
那麼,IRB不是滿意了,扔了「NameError:錯誤常量名記錄儀:: WARN」在我的臉上。啊!我被侮辱了。
我可以在一個case /什麼時候解決這個問題,或者做log.level = 1,但必須有一個更優雅的方式!
有沒有人有任何想法?
-daniel
你爲什麼不只是用在你的config
哈希的常量?
config = { :level => Logger::WARN }
然後,你不必與const_get
或類似的東西混帳;你可以簡單地做log.level = config[:level]
。
如果絕對必須是一個字符串,可以刪除命名空間前綴和Logger
模塊調用const_get
:
irb(main):012:0> Logger.const_get 'WARN'
=> 2
如果真的有可能成爲合格的字符串,則可能嘗試使用this blog's qualified_const_get
method(這不是內置的!)。
該常量不能存儲在配置中,因爲config是從yaml文件加載的,但Logger.const_get'WARN'對我來說非常適用! – Daniel 2010-04-06 00:50:52