Ruby on rails 使用Log4r时出错
我在使用Log4r时遇到问题Ruby on rails 使用Log4r时出错,ruby-on-rails,ruby,logging,log4r,Ruby On Rails,Ruby,Logging,Log4r,我在使用Log4r时遇到问题 uninitialized constant Log4r::Logger::RootLogger 我试过了,但还是出错了: >> require "log4r" => true >> Log4r::DEBUG NameError: uninitialized constant Log4r::DEBUG >> Log4r::Logger.root => uninitialized constant Log4r::Log
uninitialized constant Log4r::Logger::RootLogger
我试过了,但还是出错了:
>> require "log4r"
=> true
>> Log4r::DEBUG
NameError: uninitialized constant Log4r::DEBUG
>> Log4r::Logger.root
=> uninitialized constant Log4r::Logger::RootLogger
from /var/lib/gems/1.9.1/gems/log4r-1.1.11/lib/log4r/staticlogger.rb:5:in `root'
from (irb):5
from /usr/bin/irb:12:in `<main>'
>需要“log4r”
=>正确
>>Log4r::调试
NameError:未初始化的常量Log4r::DEBUG
>>Log4r::Logger.root
=>未初始化的常量Log4r::Logger::RootLogger
from/var/lib/gems/1.9.1/gems/log4r-1.1.11/lib/log4r/staticlogger.rb:5:in'root'
来自(irb):5
from/usr/bin/irb:12:in`'
您的Log4r::Logger.root的问题取决于版本(实际版本1.1.11有此问题)
您可以使用:
一些背景:
有一个常量Log4r::Log4rConfig::LogLevels
定义不同的级别。创建第一个记录器时,将定义级别常量。您也可以使用Log4r来定义它们。定义_级别(*Log4r::Log4rConfig::LogLevels)
此技术允许它启用。尽管
Log4r::Logger.root
不再启用常量,但您后面提到的答案中包含的代码确实引入了常量:
Log4r.define_levels(*Log4r::Log4rConfig::LogLevels)
根据以下规定:
MacbookAir1:so1 palfvin$ irb
2.0.0p247 :001 > require 'log4r'
=> true
2.0.0p247 :002 > Log4r.define_levels(*Log4r::Log4rConfig::LogLevels)
=> 5
2.0.0p247 :003 > Log4r::DEBUG
=> 1
2.0.0p247 :004 >
你能解释一下你为什么要使用Log4r以及你想要实现什么吗?我在我的应用程序中使用Log4r-用于日志。但我在浏览器中看到了这个乘客错误-当尝试访问我的应用程序时。可能的重复版本V1.1.11(昨天发布)有重大更改,因此我建议使用以前的版本1.1.10(请参阅我的)。我昨天创建了一个新版本,我发现了问题所在,因为错误是来自/var/lib/gems/1.9.1/gems/log4r-1.1.11的
,而这个版本是昨天发布的,我猜他们有问题。所以我强制使用了上一个版本,一切正常。访问Log4r::DEBUG
时出现相同的未定义常量错误?(请参阅更新的答案,了解我正在测试的Ruby版本信息)。
Log4r.define_levels(*Log4r::Log4rConfig::LogLevels)
MacbookAir1:so1 palfvin$ irb
2.0.0p247 :001 > require 'log4r'
=> true
2.0.0p247 :002 > Log4r.define_levels(*Log4r::Log4rConfig::LogLevels)
=> 5
2.0.0p247 :003 > Log4r::DEBUG
=> 1
2.0.0p247 :004 >