Tag: logging

如何rspec模拟ruby rails logger类

嗨我,并尝试rspec模拟以下类: class Person def initialize(personid) Rails.logger.debug “Creating person with id #{personid}” end end 使用这个: require ‘spec_helper’ describe Person do describe “#initialize” do let(:rails_mock) { double(“Rails”).as_null_object } let(:logger_mock) { double(“Rails.logger”).as_null_object } it “logs a message” do rails_mock.stub(:logger).and_return(logger_mock) logger_mock.should_receive(:debug) Person.new “dummy” end end end 并收到此消息: RSpec :: Mocks :: MockExpectationError 🙁 Double“Rails.logger”)。debug(any args) 预计:1次 收到:0次 任何帮助都会很棒!

在Ruby Application中正确使用Log4r

我必须真的遗漏一些明显的东西,但我在Ruby应用程序中普遍使用Log4r时遇到了麻烦。 我可以毫无问题地登录,但开销似乎很笨拙我设置的方式。 我基本上将完整路径传递给文件名以登录我的应用程序中的每个类。 调用的ruby脚本从ARGV中的一个参数中提取日志文件,然后传递给我并在我在ruby中调用的每个类中设置。 在每个类中,我使用patternFormatter将类/文件名插入到日志语句中。 有没有更好的方法来使这项工作? 感觉无论我想到什么都需要将某些内容传递给我的ruby应用程序中的每个类。 我可以在yaml配置文件中设置日志文件,但是我也会将配置文件传递给每个类。 任何建议? 如果这没有意义,我可以尝试发布一些更具体的代码示例来进一步解释我的意思。 谢谢!

如何将特定请求详细信息记录到rails服务器日志

我通常不喜欢直接询问如何在不了解正在发生的事情的情况下做些什么,但我对rails很新,我很难完成这个。 基本上,我需要在单个日志语句中捕获每个请求的以下信息(如果可能) 日志输入日期 日志输入时间 HTTP方法 请求的URL 港口 请求者的IP地址 请求者的用户代理 引用url HTTP响应代码 主机名 自定义日志格式的首选方法是什么? 是否可以只修改现有日志并将其传递给它? 或者我是否需要扩展和覆盖我需要的行为? 我不需要将其保存到不同的日志文件或任何内容,只需在每个请求中输出到STDOUT。 任何有关这方面的帮助将不胜感激。 谢谢!

如何获取触发查询的代码行?

rails 3.2中有哪种方法(一个gem,一个插件或其他东西)知道哪一行代码触发了数据库查询? 例如,在我的日志中,我有: User Load (0.4ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 5 LIMIT 1 我怎么知道触发查询的代码行? 谢谢…

如何将Heroku日志保存到文本文件

我遇到了Heroku中的日志问题。 当我想查看日志时,有时我错过了几行。 如何将Heroku服务器日志保存到file.txt或任何其他文件?

观察/阅读不断增长的日志文件

我有一个不断增长的日志文件。 如何通过Ruby脚本观察和解析它? 该脚本将在写入文件时解析每个新行,并在新行包含字符串’ERROR’时将某些内容输出到屏幕

将每个SQL查询记录到Rails中的数据库

我想保存一些SQL查询rails执行的日志文件(即CREATE,UPDATE和DELETE),因此我需要拦截所有查询,然后使用一些regexp过滤它们并根据需要记录它们。 我会把这样的东西放在rails代码中?

在Sinatra中使用Rack :: CommonLogger

我有一个与Sinatra一起编写的小型Web服务器。 我希望能够将消息记录到日志文件中。 我通过http://www.sinatrarb.com/api/index.html和www.sinatrarb.com/intro.html阅读,我看到Rack有一个名为Rack :: CommonLogger的东西,但我找不到如何访问和用于记录消息的任何示例。 我的应用程序很简单所以我把它写成顶级DSL,但我可以切换到从SinatraBaseinheritance它,如果这是所需要的一部分。