这可能是(读:可能是)一个愚蠢的问题,但这里有......
是否有一种简单的,最好是非第三方的方式在浏览器中显示Rails日志?它有点旧打开一个日志文件,然后关闭它并在下一个错误时重新打开它。当然,去domain.tld/logs
只需要用户身份验证是非常有用的。
答案 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日志。必须实现正则表达式才能使用它。
[/已编辑]