【问题标题】:Ruby on rails 4 logging issueRuby on rails 4 日志记录问题
【发布时间】:2015-12-09 16:56:56
【问题描述】:

当我查看 ror 框架呈现的视图时,所有内容都会记录在控制台上,但是当用户在页面上执行的某些操作对我的服务器进行 ajax 调用时,我没有记录该部分,在控制台看不到执行的SQL,也很难调试问题。

我还能做些什么来打开 ajax 请求的日志记录?

【问题讨论】:

  • 默认情况下它们应该被记录 - 尝试在 log/development.log 上运行 tail - 这与控制台中的 rails 服务器有不同的结果吗?
  • @house9 不,它们是一样的,在开发日志中仅此而已
  • 在浏览器的网络选项卡上,您是否看到对您的 Rails 服务器的 ajax HTTP 请求?如果是,它必须将某些内容记录到 development.log 中?
  • @house9 是的,它访问了我的服务器,并且服务器返回了有效负载,我还可以通过在控制器方法中放置 binding.pry 来调试该调用,一旦发出 ajax 请求,它将在那里停止,但日志中仍然没有任何内容
  • 它甚至没有记录 Started POST "/foo" for 127.0.0.1 at 2015-12-09 ... Processing by FoosController#create as JSON 的 ajax 请求?如果没有,您的应用程序控制器中可能有一些之前或周围的过滤器,或者可能在您正在使用的 gem 中,它正在使日志记录静音?

标签: ruby-on-rails ajax ruby-on-rails-4


【解决方案1】:
  1. 尝试直接从浏览器访问 AJAX 端点,或者使用 curl 更好。

    在任何一种情况下,检查响应是否especially the headers 并与另一个正确记录的端点进行比较。

  2. 使用pry 之类的东西来确认您确实在点击您认为您正在点击的代码。

  3. 检查spring。很容易被其他进程发现。

【讨论】:

    【解决方案2】:

    我会将此添加为评论,但我没有足够的代表.. 在您的浏览器开发人员工具中,转到网络选项卡,并确保请求甚至发送到服务器。如果其他所有内容都正确记录,则可能不会。假设您处于开发环境中,您可能还希望确保您的记录器级别处于调试模式,以显示更多描述性信息,例如 SQL。如果您需要在特定环境文件中运行记录器(即使它应该默认设置),请尝试:

    config.logger = Logger.new(STDOUT)

    【讨论】: