Есть ли способ отобразить файлы журнала Rails в браузере? - PullRequest
4 голосов
/ 09 апреля 2011

Это может быть (читай: вероятно, это) глупый вопрос, но здесь идет речь ...

Есть ли простой, желательно не сторонний, способ отображения журналов Rails в браузере?Это выглядит как старое открытие файла журнала, затем закрытие и повторное открытие при следующей ошибке.Было бы просто фантастически просто перейти на domain.tld/logs, что, конечно, потребовало бы аутентификации пользователя.

Ответы [ 3 ]

11 голосов
/ 13 декабря 2013

Для справки, есть очень простой способ сделать это. Однако вы хотели бы защитить эту страницу с помощью какой-либо аутентификации / авторизации.

Контроллер:

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

Просмотр файла журнала:

<code><pre><%= @logs %>

Показать для отображения ссылки:

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

Маршруты:

get 'logs/:lines' => "pages#log", as: "log"
7 голосов
/ 09 апреля 2011

Все, что вам нужно, это открыть файл журнала и поместить его содержимое в браузер.

Реализованная тема: ruby: все способы чтения из файла .

Также выследует знать, что ваши журналы растут очень быстро, и не стоит показывать весь журнал в браузере.Вы можете просто открыть последние 100-200 строк.Связанные темы: Чтение последних n строк файла в Ruby?

Также вы можете попробовать это решение: http://newrelic.com/. Это более сложное и мало офтопное, но весьма полезное.

6 голосов
/ 23 мая 2014

Я создал для этой цели browserlog .

Установка - это просто добавление драгоценного камня в Gemfile:

gem 'browserlog'

После этого все, что вам нужно, это установить двигатель на нужный вам маршрут:

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

После настройки при доступе к / logs / development (или в производство, тестирование и т. Д.) Появится следующее окно:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...