Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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 如何正确使用logger以及如何在Ruby和Rails中使用相同的logger_Ruby On Rails_Ruby_Logging - Fatal编程技术网

Ruby on rails 如何正确使用logger以及如何在Ruby和Rails中使用相同的logger

Ruby on rails 如何正确使用logger以及如何在Ruby和Rails中使用相同的logger,ruby-on-rails,ruby,logging,Ruby On Rails,Ruby,Logging,很抱歉,如果这是一个非常基本的问题,但在我检查了这里的许多条目(并尝试实现解决方案)后,我仍然没有答案 目标是拥有一个ruby类,它可以在ruby脚本和RubyonRails模型中不使用任何版本(或使用尽可能少的版本)。我想要以下的 logger.info 'some tracing' 然而,当我把这样的语句放到ruby类中时,我得到了错误消息——ruby和RubyonRails中的未知方法记录器。好。当我这样修改它的时候 Rails.logger.info 'some tracing' 它

很抱歉,如果这是一个非常基本的问题,但在我检查了这里的许多条目(并尝试实现解决方案)后,我仍然没有答案

目标是拥有一个ruby类,它可以在ruby脚本和RubyonRails模型中不使用任何版本(或使用尽可能少的版本)。我想要以下的

logger.info 'some tracing'
然而,当我把这样的语句放到ruby类中时,我得到了错误消息——ruby和RubyonRails中的未知方法记录器。好。当我这样修改它的时候

Rails.logger.info 'some tracing'
它开始在rils中工作,但在没有rails的ruby中当然不起作用。我做错了什么?
我读了这篇文章,但仍然感到困惑,因为“发送消息”一节中的示例不起作用。
再次抱歉,但我认为没有其他可能连接到“蜂巢思维”并寻求帮助;-)

默认情况下,Rails使用ruby记录器

请在此处查看API文档:

以下是一个例子:

require 'logger'

logger = Logger.new(STDOUT)
logger.level = Logger::WARN

logger.debug("Created logger")
logger.info("Program started")
logger.warn("Nothing to do!")
编辑

用法:

require 'logger' 

class MyClass 

  def initialize
    @logger = logger = Logger.new(STDOUT)
    @logger.level = Logger::WARN
  end

  def say_something
    @logger.info("You can't see me I'm not important enough")
    @logger.warn("I'm visible")
  end

end

您好,@basgys,因为这是一个ruby类,所以我必须执行类似的操作,需要'logger'类myClass def initialize\@logger=logger.new…。end def someMethod\@logger.info“some trace”end正确吗?对不起,@basgys我的答案中需要一些结构化文本,输入了很多。我认为我看到的一些例子是误导性的,只是因为它们使用“logger”不是作为方法,而是作为变量,并且都需要和=logger。新的语句被放在那里