我们如何查看 Rails 开发日志?

Posted

技术标签:

【中文标题】我们如何查看 Rails 开发日志?【英文标题】:How can we watch the Rails development log? 【发布时间】:2010-11-04 04:24:37 【问题描述】:

我团队的一名成员正在 Windows XP 上开发 Rails 应用程序。我们发现,当我们运行应用程序时,无论是在 NetBeans 中启动它还是通过打开控制台并调用 script/server,Rails 开发日志都不会滚动。只有 Webrick 启动消息。该应用程序确实在运行,但是当我们在浏览器中点击不同的页面时,我们没有看到任何日志输出。

当我在我的 OS X 系统上查看相同的应用程序时,日志输出按预期工作。

我确实确保它在 Rails“开发”环境中运行。

有什么想法会禁止记录吗?

environment.rb 文件是否有会影响它的配置参数?

【问题讨论】:

使用 windows 的坏主意。 我使用过适用于 Linux 的 Windows 子系统,完全没有发现任何问题。 【参考方案1】:

查看log/ 目录 - 应该有一个development.log。我敢打赌你的输出就在那里。

如果不是,请确保该目录是可写的。

关于如何在运行时查看它:如果您安装了 git bash 或其他一些 shell(如 cygwin),那么您可以打开一个 shell 并执行 tail -f log/development.log 这将在日志附加内容时滚动给它。

【讨论】:

嗨莎拉!谢谢,是的,我为他设置了一个运行 tail -f 的 Git Bash 控制台窗口。然而,令我困惑的是,Webrick 没有将所有 Rails 日志输出发送到标准输出。我认为这应该默认发生。 是的,这很奇怪。当我在一个目录中(在 git bash 中,在 XP Pro 上)运行 ruby​​ 脚本/服务器时,我看到了输出。我尝试了使用和不使用“ruby”,甚至在 cmd.exe 中。不过,每次它都等到它有一个充满输出的窗口才能输出任何东西。什么版本的 Rails/Ruby/WEBrick?我在 2.3.2/1.8.6/1.3.1。 2.3.2/1.8.6/不确定 WEBrick -- 我目前无法访问那台 XP 机器。 IN PRODUCTION:这在生产模式下非常有用 - 当您在开发模式下运行服务器时,而不是作为守护进程,在 linux 中,您可以默认在控制台中预览日志。问题是当您在服务器上安装应用程序时:使用此命令,错误跟踪会容易得多【参考方案2】:

Rails Configuration 文档建议您在配置中可能将 log_level 设置为 :debug 以外的其他值。

还有一个查看请求的替代位置:Rails 应用程序中的 log/development.log 文件。如果那里什么也没写,那么你的问题一定是在配置中。在 *nix 系统上我会运行:

$ tail -f log/development.log

并观察运行的请求。他们告诉我有一个Windows version of tail

【讨论】:

【参考方案3】:
less -R log/development.log

我刚开始用这个。

【讨论】:

【参考方案4】:

我总是使用log/development.log 来查看日志。只需 tail -f 它使用 cygwin 或其他东西。

也许您的 Windows 环境正在使用 WEBrick,而 OS X 环境正在使用 Mongrel 或其他网络服务器。我注意到,对于某些网络服务器,日志输出(也)直接写入 shell,而对于其他服务器,日志输出仅写入日志文件。

【讨论】:

【参考方案5】:

试试这个,获取开发日志:

tail -f log/development.log

确保您位于应用程序路径中。

【讨论】:

【参考方案6】:

当开发日志变得太大时,Netbeans 似乎停止在控制台窗口中显示开发日志。至少这是我的经验。

【讨论】:

【参考方案7】:

您可以使用以下命令查看运行时日志:

tailf log/development.log

此外,如果您只想要日志中的第一行或最后一行,您可以使用以下命令获取这些行(日志中的第一行/最后 100 行):

例如:

前 100 行:

head -n 100 log/development.log 

最后 100 行:

tail -n 100 log/development.log

谢谢!

【讨论】:

【参考方案8】:

没有深入研究Webrick的来源,我怀疑显示的信息量默认情况下并不大。你确定你在 OSX 上运行 Webrick 而不是 Mongrel?

事实上,继续使用 Webrick 有什么特别的原因吗?在 Phusion Passenger 出现之前,Mongrel 已经成为事实上首选的前端服务器,并且在 Windows 上运行良好。如果您安装它 (gem install mongrel),Rails 将默认使用它。

在我的开发环境中,运行 Webrick(在我弄清楚了如何 - 已经很久了)我得到了非常简短的输出:只是“GET”请求的记录。切换到 Mongrel,我得到了完整的作品:请求、参数、SQL、计时等。

【讨论】:

谢谢。这真的很有帮助。是的,在我运行 Mongrel 的 OS X 机器上。我同事的 XP 系统正在运行 Webrick。我会尝试在那里安装 Mongrel。【参考方案9】:

我在 grep 中使用 tail

tail -f log/development.log | grep Started -A 1

效果很好。

【讨论】:

【参考方案10】:

你可以试试这个命令

$ tail -f development.log


$ tail -f log/development.log

【讨论】:

以上是关于我们如何查看 Rails 开发日志?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Rails 开发中忽略延迟作业查询日志记录

如何让我的 Rails 5 日志向我显示与 Rails 4 一样的每个操作的详细信息?

ELK

如何禁用某个列的 ActiveRecord 日志记录?

苹果手机崩溃日志怎么看

如何显示 RSpec 测试生成的 SQL 查询日志?