diff --git a/lib/grape_logging/loggers/database_time.rb b/lib/grape_logging/loggers/database_time.rb index ec754fc..c93ca14 100644 --- a/lib/grape_logging/loggers/database_time.rb +++ b/lib/grape_logging/loggers/database_time.rb @@ -3,12 +3,17 @@ module GrapeLogging class DatabaseTime < GrapeLogging::Loggers::Base def before @duration = 0 - ActiveSupport::Notifications.subscribe('sql.active_record') do |*args| + @subscription = ActiveSupport::Notifications.subscribe('sql.active_record') do |*args| event = ActiveSupport::Notifications::Event.new(*args) @duration += event.duration end end + def after + ensure + ActiveSupport::Notifications.unsubscribe(@subscription) if @subscription + end + def parameters(request, response) { time: { diff --git a/lib/grape_logging/middleware/request_logger.rb b/lib/grape_logging/middleware/request_logger.rb index 63b6e60..f61b1bc 100644 --- a/lib/grape_logging/middleware/request_logger.rb +++ b/lib/grape_logging/middleware/request_logger.rb @@ -22,7 +22,7 @@ module GrapeLogging def after stop_time - parameters = parameters(request, response) + parameters = get_parameters @included_loggers.each do |included_logger| parameters.merge! included_logger.parameters(request, response) do |key, oldval, newval| oldval.respond_to?(:merge) ? oldval.merge(newval) : newval @@ -38,12 +38,10 @@ module GrapeLogging def call!(env) super - ensure - ActiveSupport::Notifications.unsubscribe(@subscription) if @subscription end protected - def parameters(request, response) + def get_parameters { status: response.status, time: {