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

7

这可能是一个愚蠢的问题(请注意:很可能是),但是我还是想问一下...

有没有一种简单的、最好是非第三方的方法在浏览器中显示Rails日志?每次打开日志文件,然后关闭它并在下一个错误时重新打开它真的很烦人。如果只需转到domain.tld/logs就可以查看日志,那将是超级棒的,当然需要用户身份验证。

4个回答

12

参考资料,有一种非常简单的方法可以实现这个功能。但是,您可能希望使用某种身份验证/授权方式来保护此页面。

控制器:

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"

4
if-else 改为 log/#{Rails.env}.log,这样是否更加健壮一些?请注意不要改变原意。 - alexanderbird
@alexanderbird 当然,今天我会。 - kobaltz

10

当别人给你解决方案时,一切都变得如此简单 :) 谢谢您,先生! - werm
你只需要打开日志文件并将其内容放入浏览器中即可。抱歉,你不明白我的意思吗? - Jyothu

9
我为此创建了一个名为browserlog的工具。点击这里可以查看这个工具。
安装非常简单,只需要将这个gem添加到Gemfile中即可:
gem 'browserlog'

之后,您只需要将引擎安装在所需路线上即可:
MyApp::Application.routes.draw do
  mount Browserlog::Engine => '/logs'
end

一旦设置完成,访问/logs/development(或production、test等)将显示如下窗口:
browserlog_screenshot
(来源:andredieb.com)

-1

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

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

[编辑]

默认情况下,PimpMyLog 不支持 Ruby on Rails 日志。需要实现正则表达式才能与其配合使用。

[/编辑]


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