我们如何查看 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 开发日志?的主要内容,如果未能解决你的问题,请参考以下文章