Скрыть рендеринг частичных данных из журналов рельсов
Я полагаю, что по умолчанию при ведении журнала рельсов на производстве не выводится рендеринг всех партиалов. Это должно войти в разработку, но не в производство.
Однако, я вижу это в производстве, и я не уверен, как удалить это. Мои журналы слишком шумные. Моя производственная среда - это Heroku, работающий с Unicorn и использующий Papertrail для просмотра моих логов. Я знаю, что Unicorn делает что-то непонятное с журналами, и чтобы они работали должным образом, мне сначала нужно было добавить это в мой production.rb:
config.logger = Logger.new(STDOUT)
config.logger.level = Logger.const_get('INFO')
(поясняется здесь: http://help.papertrailapp.com/kb/configuration/unicorn)
Но даже с log_level INFO я вижу огромные блоки во всех моих журналах:
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_caption.html.erb (0.7ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_rights.html.erb (2.1ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_category.html.erb (4.8ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_caption.html.erb (0.3ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_rights.html.erb (0.4ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_category.html.erb (4.4ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_caption.html.erb (0.3ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_rights.html.erb (0.3ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_category.html.erb (1.8ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_caption.html.erb (0.4ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_rights.html.erb (4.6ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_category.html.erb (2.1ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_caption.html.erb (0.3ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_rights.html.erb (0.4ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_category.html.erb (4.1ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_caption.html.erb (0.2ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_rights.html.erb (1.8ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_category.html.erb (6.0ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_caption.html.erb (0.5ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_rights.html.erb (0.8ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_category.html.erb (1.9ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_caption.html.erb (0.3ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_rights.html.erb (0.7ms)
Ответы
Ответ 1
Я получил следующий ответ от papertrail:
Я думаю, что самый быстрый способ справиться с этим - использовать нашу фильтрацию журналов функциональность. Это позволит вам отбросить все, что соответствует регулярному выражению, и избавит вас от необходимости внесения изменений в конфигурацию приложения.
В долгосрочной перспективе вы, вероятно, захотите отключить эти сообщения в источник. Логун, вероятно, лучший выбор для этого. Вы можете найти его также удаляет несколько других бит, но дайте ему понять, и дайте мне знать, что вы думаете.
Я знаю, что в данный момент это, вероятно, не имеет отношения к вам, но для в будущем вы также можете найти другие полезные советы здесь. Это охватывает логарифм, удаление статических запросов и ненужных действий,
Сообщите мне, если вам нужна помощь в том, что упоминалось выше.
Ответ 2
Для Rails 4 (по крайней мере):
Попробуйте это в вашей конфигурации /environment/development.rb
config.action_view.logger = nil
Ответ 3
Используйте Lograge, он удаляет времена рендеринга для частичных
Ответ 4
Вместо того, чтобы полностью отключить ведение журнала действий (как описано в другом ответе), я решил изменить уровень ведения журнала для рендеринга на DEBUG
. Таким образом, его можно легко исключить из производственных журналов, установив уровень журнала INFO
или выше.
Обратите внимание, это для рельсов 5.2. Я не уверен, будет ли это работать на других версиях.
module ViewLoggingOverride
def info(progname = nil, &block)
logger.debug(progname, &block) if logger
end
end
ActionView::LogSubscriber.include(ViewLoggingOverride)
Соответствующий код рельсов:
https://github.com/rails/rails/blob/5-2-stable/actionview/lib/action_view/log_subscriber.rb
https://github.com/rails/rails/blob/5-2-stable/activesupport/lib/active_support/log_subscriber.rb#L93-L99