mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-25 07:16:49 +00:00
Keep Logging in the ActiveModelSerializers namespace
This commit is contained in:
@@ -2,15 +2,7 @@ require 'set'
|
||||
module ActiveModel
|
||||
class SerializableResource
|
||||
ADAPTER_OPTION_KEYS = Set.new([:include, :fields, :adapter, :meta, :meta_key, :links])
|
||||
extend ActiveModel::Callbacks
|
||||
|
||||
define_model_callbacks :render
|
||||
|
||||
around_render do |_, block, _|
|
||||
notify_active_support do
|
||||
block.call
|
||||
end
|
||||
end
|
||||
include ActiveModelSerializers::Logging
|
||||
|
||||
# Primary interface to composing a resource with a serializer and adapter.
|
||||
# @return the serializable_resource, ready for #as_json/#to_json/#serializable_hash.
|
||||
@@ -89,13 +81,5 @@ module ActiveModel
|
||||
protected
|
||||
|
||||
attr_reader :resource, :adapter_opts, :serializer_opts
|
||||
|
||||
def notify_active_support
|
||||
event_name = 'render.active_model_serializers'.freeze
|
||||
payload = { serializer: serializer, adapter: adapter }
|
||||
ActiveSupport::Notifications.instrument(event_name, payload) do
|
||||
yield
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -6,7 +6,6 @@ require 'active_model/serializer/associations'
|
||||
require 'active_model/serializer/configuration'
|
||||
require 'active_model/serializer/fieldset'
|
||||
require 'active_model/serializer/lint'
|
||||
require 'active_model/serializer/logging'
|
||||
|
||||
# ActiveModel::Serializer is an abstract class that is
|
||||
# reified when subclassed to decorate a resource.
|
||||
@@ -14,7 +13,6 @@ module ActiveModel
|
||||
class Serializer
|
||||
include Configuration
|
||||
include Associations
|
||||
include Logging
|
||||
require 'active_model/serializer/adapter'
|
||||
|
||||
# Matches
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
module ActiveModel
|
||||
class Serializer
|
||||
module Logging
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
class LogSubscriber < ActiveSupport::LogSubscriber
|
||||
def render(event)
|
||||
logger.tagged('AMS') do
|
||||
info do
|
||||
serializer = event.payload[:serializer]
|
||||
adapter = event.payload[:adapter]
|
||||
duration = event.duration.round(2)
|
||||
"Rendered #{serializer.name} with #{adapter.class} (#{duration}ms)"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def logger
|
||||
ActiveModelSerializers.logger
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
ActiveModel::Serializer::Logging::LogSubscriber.attach_to :active_model_serializers
|
||||
@@ -1,9 +1,11 @@
|
||||
require 'active_model_serializers'
|
||||
require 'rails/railtie'
|
||||
|
||||
module ActiveModel
|
||||
class Railtie < Rails::Railtie
|
||||
initializer 'active_model_serializers.logger' do
|
||||
ActiveSupport.on_load(:action_controller) do
|
||||
ActiveModelSerializers.logger = ActionController::Base.logger
|
||||
ActiveSupport.on_load(:active_model_serializers) do
|
||||
self.logger = ActionController::Base.logger
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user