373 votos

Cómo deshabilitar el registro de ductos activos (piñones) mensajes en Rails 3.1?

Piñones tiende a ser muy detallado en el (dev) registro por defecto en Rails 3.1 (RC1):

 Started GET "/assets/application.css" for 127.0.0.1 at 2011-06-10 17:30:45 -0400
Compiled app/assets/stylesheets/application.css.scss  (5ms)  (pid 6303)


Started GET "/assets/application.js" for 127.0.0.1 at 2011-06-10 17:30:45 -0400
Compiled app/assets/stylesheets/default.css.scss  (15ms)  (pid 6303)

...
Started GET "/assets/default/header_bg.gif" for 127.0.0.1 at 2011-06-10 17:30:45 -0400
Served asset /default/header_logo.gif - 304 Not Modified  (7ms)  (pid 6303)
Served asset /default/header_bg.gif - 304 Not Modified  (0ms)  (pid 6246)
Served asset /default/footer_bg.gif - 304 Not Modified  (49ms)  (pid 6236)
...
 

Me gustaría, ya sea reducir el nivel de verbosidad o desactivar por completo. Estoy asumiendo que hay una manera limpia para desactivar o reducir el nivel de detalle del registro mediante la adición de una línea de configuración, ya sea en environment.rb o development.rb similar a config.active_record.logger = nil que silencia declaraciones ActiveRecord SQL.

380voto

choonkeat Puntos 4457

Coloque el código siguiente en config/initializers/quiet_assets.rb

 if Rails.env.development?
  Rails.application.assets.logger = Logger.new('/dev/null')
  Rails::Rack::Logger.class_eval do
    def call_with_quiet_assets(env)
      previous_level = Rails.logger.level
      Rails.logger.level = Logger::ERROR if env['PATH_INFO'] =~ %r{^/assets/}
      call_without_quiet_assets(env)
    ensure
      Rails.logger.level = previous_level
    end
    alias_method_chain :call, :quiet_assets
  end
end
 

Actualizado: ahora trabaja para Rails 3.2 también (correcciones intento anterior before_dispatch Ahora vamos para el bastidor raíz call en su lugar)

Actualización: Una solución en rack adecuada middleware (en lugar de frágil alias_method_chain ) demacournoyer https://github.com/rails/rails/issues/2639#issuecomment-6591735

187voto

route Puntos 1291

Echa un vistazo a https://github.com/evrone/quiet_assets y justo incluirlo en su Gemfile

Para perezoso: gem 'quiet_assets', group: :development

53voto

ouranos Puntos 722

Para Rails 3.2, agregue config.assets.logger = false de su archivo de configuración del entorno de desarrollo, que normalmente se encuentra en config/environments/development.rb . Ver # 4512

27voto

colinross Puntos 1786

Eventualmente, será config.assets.logger = nil pero esa parte se aplastó actualmente en maestro (no hecho todavía)

27voto

Lisovsky Vlad Puntos 368

Dos cosas son suficientes:
1. config.assets.debug = false en config/enviroments/development.rb
2. rake assets:precompile Ver comentario deoma continuación.; esto no es necesario

Eso es todo!

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: