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

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

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

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

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

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

【问题讨论】:

  • 使用 windows 的坏主意。
  • 我使用过适用于 Linux 的 Windows 子系统,完全没有发现任何问题。

标签: ruby-on-rails ruby windows logging git-bash


【解决方案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
                

                【讨论】:

                  猜你喜欢
                  • 2015-05-27
                  • 2011-06-22
                  • 1970-01-01
                  • 2012-06-08
                  • 1970-01-01
                  • 2012-09-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多