有没有办法在浏览器中显示Rails的日志文件?

时间:2011-04-09 17:02:37

标签: ruby-on-rails logging

这可能是(读:可能是)一个愚蠢的问题,但这里有......

是否有一种简单的,最好是非第三方的方式在浏览器中显示Rails日志?它有点旧打开一个日志文件,然后关闭它并在下一个错误时重新打开它。当然,去domain.tld/logs只需要用户身份验证是非常有用的。

4 个答案:

答案 0 :(得分:11)

作为参考,有一种非常简单的方法可以做到这一点。但是,您可能希望使用某种身份验证/授权来保护此页面。

<强>控制器:

lines = params[:lines]
if Rails.env == "production"
  @logs = `tail -n #{lines} log/production.log`
else
  @logs = `tail -n #{lines} log/development.log`
end

日志文件视图

<pre><%= @logs %></pre>

查看以显示链接:

<%= link_to "log file", log_path(lines: 100) %>

<强>路线:

get 'logs/:lines' => "pages#log", as: "log"

答案 1 :(得分:7)

您只需打开日志文件并将其内容放入浏览器即可。

现实主题:ruby: all ways to read from file

此外,您应该知道您的日志增长非常快,并且在浏览器中显示整个日志并不是一个好主意。你可以打开最后100-200行。相关主题:Reading the last n lines of a file in Ruby?

您也可以尝试此解决方案:http://newrelic.com/。它更复杂,更少主题,但非常有用。

答案 2 :(得分:6)

我为此目的创建了一个名为browserlog

安装只需将gem添加到Gemfile:

gem 'browserlog'

之后您只需要将引擎安装在您想要的路线上:

MyApp::Application.routes.draw do
  mount Browserlog::Engine => '/logs'
end

一旦设置完成,访问/日志/开发(或生产,测试等)将显示如下窗口:

browserlog_screenshot http://andredieb.com/assets/images/browserlog1.png

答案 3 :(得分:0)

Pimp my Log可用于可视化许多类型的日志,包括Ruby on Rails。

它还包括用户管理和通知。

[已编辑]

默认情况下,PimpMyLog不支持Ruby on Rails日志。必须实现正则表达式才能使用它。

[/已编辑]