Ruby on rails 使用ActiveRecord时Rails日志的格式设置

Ruby on rails 使用ActiveRecord时Rails日志的格式设置,ruby-on-rails,activerecord,logging,ruby-on-rails-3.1,activeresource,Ruby On Rails,Activerecord,Logging,Ruby On Rails 3.1,Activeresource,因此,我有一个先前不需要ActiveRecord的应用程序-因此我们从应用程序中删除了ActiveRecord,并将日志格式化为: 在application.rb中: 注意:添加了ActiveResource logger配置,因为我们希望ActiveResource调用的URL输出如下: GET http://localhost:2524/users/ --> 200 OK 239 (13.0ms) 使用此配置进行日志记录为我们提供了ActiveResource调用和我们自己使用Ra

因此,我有一个先前不需要ActiveRecord的应用程序-因此我们从应用程序中删除了ActiveRecord,并将日志格式化为:

在application.rb中:

注意:添加了ActiveResource logger配置,因为我们希望ActiveResource调用的URL输出如下:

GET http://localhost:2524/users/
 --> 200 OK 239 (13.0ms)
使用此配置进行日志记录为我们提供了ActiveResource调用和我们自己使用
Rails.logger进行日志记录的良好输出组合

然而,我们需要将ActiveRecord重新添加到应用程序中,因为我们需要将会话存储从cookie存储更改为ActiveRecord存储。自从重新添加ActiveRecord以来,日志记录不再正常工作

以前的日志输出:

Started GET "/audit/?key1=value1&key2=value2" for 0:0:0:0:0:0:0:1%0 at 2012-08-15 15:39:58 -0400
[15 Aug 15:39]  INFO -   Processing by AuditController#index as HTML
[15 Aug 15:39]  INFO -   Parameters: {"utf8"=>"✓", "key1"=>"value1", "key2"=>"value2"}
[15 Aug 15:39]  INFO - GET http://localhost:2524/api/users/jeff/prefs/?label=language
[15 Aug 15:39]  INFO - --> 200 OK 151 (55.0ms)
[15 Aug 15:39]  WARN - There is no user currently logged in - retrieving default theme.
[15 Aug 15:39]  INFO - GET http://localhost:2524/api/users/jeff/prefs/?label=theme
[15 Aug 15:39]  INFO - --> 200 OK 151 (35.0ms)
[20 Aug 11:40]  INFO - GET http://localhost:2524/api/users/jeff
[20 Aug 11:40]  INFO - --> 200 OK 199 (144.0ms)
[20 Aug 11:40]  INFO - GET http://localhost:2524/api/users/jeff/prefs/?label=language
[20 Aug 11:40]  INFO - --> 200 OK 148 (12.0ms)
[20 Aug 11:40]  INFO - GET http://localhost:2524/api/users/jeff/prefs/?label=theme
[20 Aug 11:40]  INFO - --> 200 OK 155 (15.0ms)
注意:我真正喜欢这种格式的是,每个请求都以一个
开始的GET
或POST或PUT等开始记录,然后是哪个控制器和函数正在进行处理,以及发送的参数是什么。这对调试非常有帮助。同样,这种格式允许我们打印出自己的
Rails.logger
日志信息

当前日志输出(使用ActiveRecord)

Started GET "/audit/?key1=value1&key2=value2" for 0:0:0:0:0:0:0:1%0 at 2012-08-15 15:39:58 -0400
[15 Aug 15:39]  INFO -   Processing by AuditController#index as HTML
[15 Aug 15:39]  INFO -   Parameters: {"utf8"=>"✓", "key1"=>"value1", "key2"=>"value2"}
[15 Aug 15:39]  INFO - GET http://localhost:2524/api/users/jeff/prefs/?label=language
[15 Aug 15:39]  INFO - --> 200 OK 151 (55.0ms)
[15 Aug 15:39]  WARN - There is no user currently logged in - retrieving default theme.
[15 Aug 15:39]  INFO - GET http://localhost:2524/api/users/jeff/prefs/?label=theme
[15 Aug 15:39]  INFO - --> 200 OK 151 (35.0ms)
[20 Aug 11:40]  INFO - GET http://localhost:2524/api/users/jeff
[20 Aug 11:40]  INFO - --> 200 OK 199 (144.0ms)
[20 Aug 11:40]  INFO - GET http://localhost:2524/api/users/jeff/prefs/?label=language
[20 Aug 11:40]  INFO - --> 200 OK 148 (12.0ms)
[20 Aug 11:40]  INFO - GET http://localhost:2524/api/users/jeff/prefs/?label=theme
[20 Aug 11:40]  INFO - --> 200 OK 155 (15.0ms)
基本上,我们现在得到的是一个恒定的URL调用流——它不记录来自Rails.logger的任何内容,而且不同请求之间没有分离——它实际上只是一个恒定的URL和响应流


我尝试过按照许多博客的建议设置
ActiveResource::Base.logger=ActiveRecord::Base.logger
,但这只会让事情变得更糟——它记录了几个URL,然后完全停止了日志记录,除非它处于错误级别(我没有设置日志记录级别,所以它应该仍然是默认的)


任何帮助或建议都将不胜感激!!谢谢

也许的实施将有助于:


嘿,谢谢你的回答!!!事实证明,我将日志恢复为不使用ActiveRecord,然后在一段时间后再次尝试使用ActiveRecord,结果要么发生了更改,要么由于工作正常而不一致。。。除此之外,我没有更好的解释了:p但是我会记住这个链接,谢谢!