2019-05-02 17:17:27 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2013-02-05 13:16:51 -06:00
|
|
|
class SilenceLogger < Rails::Rack::Logger
|
2023-01-07 05:59:28 -06:00
|
|
|
PATH_INFO = "PATH_INFO"
|
|
|
|
HTTP_X_SILENCE_LOGGER = "HTTP_X_SILENCE_LOGGER"
|
2014-05-06 17:23:52 -05:00
|
|
|
|
2013-02-05 13:16:51 -06:00
|
|
|
def initialize(app, opts = {})
|
|
|
|
@app = app
|
|
|
|
@opts = opts
|
|
|
|
@opts[:silenced] ||= []
|
2013-02-25 10:42:20 -06:00
|
|
|
|
|
|
|
# Rails introduces something called taggers in the Logger, needs to be initialized
|
2013-02-05 13:16:51 -06:00
|
|
|
super(app)
|
|
|
|
end
|
|
|
|
|
|
|
|
def call(env)
|
2014-05-06 17:23:52 -05:00
|
|
|
path_info = env[PATH_INFO]
|
2017-01-31 14:44:46 -06:00
|
|
|
override = false
|
2013-02-05 13:16:51 -06:00
|
|
|
|
2023-01-07 05:59:28 -06:00
|
|
|
if env[HTTP_X_SILENCE_LOGGER] || @opts[:silenced].include?(path_info) ||
|
|
|
|
path_info.start_with?("/logs") || path_info.start_with?("/user_avatar") ||
|
|
|
|
path_info.start_with?("/letter_avatar")
|
2024-06-20 03:33:01 -05:00
|
|
|
if defined?(::Logster::Logger) && Logster.logger
|
2017-01-31 14:44:46 -06:00
|
|
|
override = true
|
2024-06-20 03:33:01 -05:00
|
|
|
Logster.logger.override_level = Logger::WARN
|
2017-01-31 14:44:46 -06:00
|
|
|
end
|
2014-05-06 17:23:52 -05:00
|
|
|
@app.call(env)
|
2013-02-05 13:16:51 -06:00
|
|
|
else
|
2024-06-20 03:33:01 -05:00
|
|
|
super
|
2013-02-05 13:16:51 -06:00
|
|
|
end
|
|
|
|
ensure
|
2024-06-20 03:33:01 -05:00
|
|
|
Logster.logger.override_level = nil if override
|
2013-02-05 13:16:51 -06:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2023-01-07 05:59:28 -06:00
|
|
|
silenced = %w[
|
|
|
|
/mini-profiler-resources/results
|
|
|
|
/mini-profiler-resources/includes.js
|
|
|
|
/mini-profiler-resources/includes.css
|
|
|
|
/mini-profiler-resources/jquery.tmpl.js
|
2014-05-06 17:23:52 -05:00
|
|
|
]
|
2013-03-23 10:02:59 -05:00
|
|
|
Rails.configuration.middleware.swap Rails::Rack::Logger, SilenceLogger, silenced: silenced
|