Merge pull request #3190 from riking/thrown_logging

Delete old ErrorLog, use Logster for 500 errors
This commit is contained in:
Sam
2015-02-23 14:19:16 +11:00
16 changed files with 47 additions and 176 deletions

View File

@@ -15,7 +15,7 @@ module Discourse
# error_context() method in Jobs::Base to pass the job arguments and any
# other desired context.
# See app/jobs/base.rb for the error_context function.
def self.handle_exception(ex, context = {}, parent_logger = nil)
def self.handle_job_exception(ex, context = {}, parent_logger = nil)
context ||= {}
parent_logger ||= SidekiqExceptionHandler
@@ -26,6 +26,29 @@ module Discourse
}.merge(context))
end
def self.handle_request_exception(ex, controller, request, current_user)
cm = RailsMultisite::ConnectionManagement
context = {
current_db: cm.current_db,
current_hostname: cm.current_hostname,
rails_action: controller.action_name,
rails_controller: controller.controller_name,
}
env = request.env.dup
context.each do |key, value|
Logster.add_to_env(env, key, value)
end
begin
Thread.current[Logster::Logger::LOGSTER_ENV] = env
Logster.logger.fatal("#{ex.class.to_s}: #{ex.message} in #{controller.controller_name}##{controller.action_name}")
ensure
Thread.current[Logster::Logger::LOGSTER_ENV] = nil
end
end
# Expected less matches than what we got in a find
class TooManyMatches < Exception; end

View File

@@ -128,7 +128,7 @@ module Oneboxer
}
}
rescue => e
Discourse.handle_exception(e, message: "While trying to onebox a URL", url: url)
Discourse.handle_job_exception(e, message: "While trying to onebox a URL", url: url)
# return a blank hash, so rest of the code works
{preview: "", onebox: ""}
end

View File

@@ -67,10 +67,10 @@ module Scheduler
RailsMultisite::ConnectionManagement.establish_connection(db: db) if db
job.call
rescue => ex
Discourse.handle_exception(ex, {message: "Running deferred code '#{desc}'"})
Discourse.handle_job_exception(ex, {message: "Running deferred code '#{desc}'"})
end
rescue => ex
Discourse.handle_exception(ex, {message: "Processing deferred code queue"})
Discourse.handle_job_exception(ex, {message: "Processing deferred code queue"})
ensure
ActiveRecord::Base.connection_handler.clear_active_connections!
end

View File

@@ -42,13 +42,13 @@ module Scheduler
def keep_alive
@manager.keep_alive
rescue => ex
Discourse.handle_exception(ex, {message: "Scheduling manager keep-alive"})
Discourse.handle_job_exception(ex, {message: "Scheduling manager keep-alive"})
end
def reschedule_orphans
@manager.reschedule_orphans!
rescue => ex
Discourse.handle_exception(ex, {message: "Scheduling manager orphan rescheduler"})
Discourse.handle_job_exception(ex, {message: "Scheduling manager orphan rescheduler"})
end
def process_queue
@@ -66,7 +66,7 @@ module Scheduler
# Discourse.handle_exception was already called, and we don't have any extra info to give
failed = true
rescue => e
Discourse.handle_exception(e, {message: "Running a scheduled job", job: klass})
Discourse.handle_job_exception(e, {message: "Running a scheduled job", job: klass})
failed = true
end
duration = ((Time.now.to_f - start) * 1000).to_i
@@ -77,7 +77,7 @@ module Scheduler
@mutex.synchronize { info.write! }
end
rescue => ex
Discourse.handle_exception(ex, {message: "Processing scheduled job queue"})
Discourse.handle_job_exception(ex, {message: "Processing scheduled job queue"})
ensure
@running = false
end