wer*_*erm 5 logging ruby-on-rails
这可能是(读:可能是)一个愚蠢的问题,但这里......
是否有一种简单的,最好是非第三方的方式在浏览器中显示Rails日志?它有点旧打开一个日志文件,然后关闭它并在下一个错误时重新打开它.当然,只需去domain.tld/logs
,这将需要用户身份验证,这将是非常有用的.
kob*_*ltz 12
作为参考,有一种非常简单的方法可以做到这一点.但是,您可能希望使用某种身份验证/授权来保护此页面.
控制器:
lines = params[:lines]
if Rails.env == "production"
@logs = `tail -n #{lines} log/production.log`
else
@logs = `tail -n #{lines} log/development.log`
end
Run Code Online (Sandbox Code Playgroud)
日志文件视图:
<pre><%= @logs %></pre>
Run Code Online (Sandbox Code Playgroud)
查看显示链接:
<%= link_to "log file", log_path(lines: 100) %>
Run Code Online (Sandbox Code Playgroud)
路线:
get 'logs/:lines' => "pages#log", as: "log"
Run Code Online (Sandbox Code Playgroud)
您只需打开日志文件并将其内容放入浏览器即可.
现实主题:ruby:从文件中读取的所有方法.
此外,您应该知道您的日志增长非常快,并且在浏览器中显示整个日志并不是一个好主意.你可以打开最后100-200行.相关主题:在Ruby中读取文件的最后n行?
您也可以尝试这个解决方案:http://newrelic.com/.它更复杂,更少主题,但非常有用.
小智 7
我创建了一个名为browserlog的目的.
安装只是将gem添加到Gemfile:
gem 'browserlog'
Run Code Online (Sandbox Code Playgroud)
之后您只需要将引擎安装在您想要的路线上:
MyApp::Application.routes.draw do
mount Browserlog::Engine => '/logs'
end
Run Code Online (Sandbox Code Playgroud)
一旦设置完成,访问/日志/开发(或生产,测试等)将显示如下窗口:
browserlog_screenshot http://andredieb.com/assets/images/browserlog1.png
归档时间: |
|
查看次数: |
8014 次 |
最近记录: |