discourse/config/initializers/100-silence_logger.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

43 lines
1.1 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
2013-02-06 03:16:51 +08:00
class SilenceLogger < Rails::Rack::Logger
PATH_INFO = "PATH_INFO"
HTTP_X_SILENCE_LOGGER = "HTTP_X_SILENCE_LOGGER"
2013-02-06 03:16:51 +08:00
def initialize(app, opts = {})
@app = app
@opts = opts
@opts[:silenced] ||= []
2013-02-26 00:42:20 +08:00
# Rails introduces something called taggers in the Logger, needs to be initialized
2013-02-06 03:16:51 +08:00
super(app)
end
def call(env)
path_info = env[PATH_INFO]
override = false
2013-02-06 03:16:51 +08:00
if env[HTTP_X_SILENCE_LOGGER] || @opts[:silenced].include?(path_info) ||
2014-05-31 00:16:23 +08:00
path_info.start_with?("/logs") || path_info.start_with?("/user_avatar") ||
path_info.start_with?("/letter_avatar")
if ::Logster::Logger === Rails.logger
override = true
Rails.logger.override_level = Logger::WARN
end
@app.call(env)
2013-02-06 03:16:51 +08:00
else
super(env)
end
ensure
Rails.logger.override_level = nil if override
2013-02-06 03:16:51 +08:00
end
end
silenced = %w[
/mini-profiler-resources/results
/mini-profiler-resources/includes.js
/mini-profiler-resources/includes.css
/mini-profiler-resources/jquery.tmpl.js
]
Rails.configuration.middleware.swap Rails::Rack::Logger, SilenceLogger, silenced: silenced