newrelic: refactor error logging.

* Factor out New Relic logging to DanbooruLogger class.
* Log all exceptions to New Relic, not just statement timeouts.
This commit is contained in:
evazion
2019-08-08 22:16:39 -05:00
parent 35dfc704bc
commit 9a6add9730
9 changed files with 27 additions and 37 deletions

View File

@@ -0,0 +1,12 @@
class DanbooruLogger
def self.log(exception, expected: false, **params)
if !expected
backtrace = Rails.backtrace_cleaner.clean(exception.backtrace).join("\n")
Rails.logger.error("#{exception.class}: #{exception.message}\n#{backtrace}")
end
if defined?(::NewRelic)
::NewRelic::Agent.notice_error(exception, expected: expected, custom_params: params)
end
end
end

View File

@@ -41,13 +41,7 @@ module Maintenance
end
def rescue_exception(exception)
backtrace = Rails.backtrace_cleaner.clean(exception.backtrace).join("\n")
Rails.logger.error("#{exception.class}: #{exception.message}\n#{backtrace}")
if defined?(NewRelic::Agent)
NewRelic::Agent.notice_error(exception, custom_params: { backtrace: backtrace })
end
DanbooruLogger.log(exception)
raise exception
end
end

View File

@@ -72,7 +72,7 @@ module Moderator
user.update(blacklisted_tags: repl.join("\n"))
end
rescue Exception => e
NewRelic::Agent.notice_error(e)
DanbooruLogger.log(e)
end
end
end

View File

@@ -56,10 +56,7 @@ class PopularSearchService
data
rescue => e
Rails.logger.error(e.to_s)
if defined?(NewRelic)
NewRelic::Agent.notice_error(e)
end
DanbooruLogger.log(e)
return []
end
end