删除活动模型序列化程序中的日志消息

问题描述 投票:0回答:3

如何从我的日志中删除此活动模型序列化程序消息?

[active_model_serializers] Rendered ActiveModel::Serializer::CollectionSerializer with ActiveModelSerializers::Adapter::JsonApi

ruby-on-rails active-model-serializers
3个回答
9
投票

在你的

config/initializers/active_model_serializer.rb

require 'active_model_serializers'
ActiveSupport::Notifications.unsubscribe(ActiveModelSerializers::Logging::RENDER_EVENT)

这正确地取消了您对渲染事件的订阅,而不是仅仅禁用所有日志记录等。 来自:https://github.com/rails-api/active_model_serializers/blob/ab98c4a664f26077e5b3c90ea6bcbe129ec2d0b9/docs/general/logging.md


1
投票

我没有在 AMS 配置中找到任何禁用日志的东西,但是,还有其他几种方法可以通过重新定义来实现这一点

ActiveModelSerializers.logger
source

在你的

config/initializers/active_model_serializer.rb
中:

1) 提高日志级别,这样就不会记录任何内容:

ActiveModelSerializers.logger.level = Logger::Severity::UNKNOWN

2) 将AMS日志写入

/dev/null

ActiveModelSerializers.logger = ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new('/dev/null'))

0
投票

自 2018 年年中以来,您的

config/initializers/active_model_serializer.rb
中正确的做法是:

ActiveModelSerializers.logger = Logger.new(IO::NULL)

参考:https://github.com/rails-api/active_model_serializers/commit/be119b8fcbd6851787ef1b4585eceb1aa7e5316d

© www.soinside.com 2019 - 2024. All rights reserved.