Ruby on Rails 4 日志问题

5

当我查看ror框架渲染的视图时,所有内容都会被记录在控制台中,但当页面上的某些操作由用户发出ajax调用到我的服务器时,我却无法在控制台中看到相应的日志,也看不到执行的SQL语句,这使得调试问题变得困难。

我该怎么做才能开启ajax请求的日志记录呢?


1
默认情况下,它们应该被记录 - 尝试在log/development.log上运行tail命令 - 这与控制台中的rails server有不同的结果吗? - house9
@house9 不,它们是相同的,开发日志中没有更多内容。 - Gandalf StormCrow
在浏览器的网络选项卡中,您是否看到了对您的Rails服务器发出的Ajax HTTP请求?如果是的话,它一定会记录一些内容到development.log文件中吧? - house9
@house9 是的,它会访问我的服务器,并返回有效载荷。我还可以通过在控制器方法中放置 binding.pry 来调试该调用,一旦发出 AJAX 请求,它就会在那里停止,但日志中仍然没有任何内容。 - Gandalf StormCrow
@house9 谢谢,我已经离开了,一直在尝试揭穿这个问题。 - Gandalf StormCrow
显示剩余4条评论
2个回答

2
  1. 尝试直接从浏览器或更好的方式是使用curl命令来访问AJAX端点。

    在任何一种情况下,检查响应,特别是标题并将其与另一个正确记录的端点进行比较。

  2. 使用类似pry的工具来确认您实际上正在访问您认为自己正在访问的代码。

  3. 检查spring。很容易被困在访问另一个进程中。


1
我本想将这个作为评论添加,但是我的声望不够高。在您的浏览器开发工具中,转到网络选项卡,并确保请求是否已发送到服务器。如果其他所有内容都被正确记录,那么很可能没有发送请求。假设您处于开发环境中,您还可以确保日志记录器级别处于调试模式,以显示更多描述性信息,如SQL语句。如果您需要在特定的环境文件中运行日志记录器(即使默认情况下应该设置),请尝试:

config.logger = Logger.new(STDOUT)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接