Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Log4r时出错_Ruby On Rails_Ruby_Logging_Log4r - Fatal编程技术网

Ruby on rails 使用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

我在使用Log4r时遇到问题

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 >