Skip to content

Commit 159873b

Browse files
committed
Add ActiveModelSerializers.logger with default null device
1 parent 41b845f commit 159873b

File tree

3 files changed

+33
-3
lines changed

3 files changed

+33
-3
lines changed

lib/active_model/serializer/railtie.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
require 'rails/railtie'
22
module ActiveModel
33
class Railtie < Rails::Railtie
4+
initializer 'active_model_serializers.logger' do
5+
ActiveSupport.on_load(:action_controller) do
6+
ActiveModelSerializers.logger = ActionController::Base.logger
7+
end
8+
end
9+
410
initializer 'generators' do |app|
511
app.load_generators
612
require 'generators/serializer/resource_override'

lib/active_model_serializers.rb

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
1+
require 'logger'
2+
require 'active_model'
3+
require "active_support/railtie"
4+
require 'action_controller'
5+
require "action_controller/railtie"
16
module ActiveModelSerializers
7+
mattr_accessor :logger
8+
self.logger = Rails.logger || Logger.new(IO::NULL)
9+
210
module_function
311

412
def silence_warnings
@@ -11,9 +19,6 @@ def silence_warnings
1119

1220
end
1321

14-
require 'active_model'
15-
require 'action_controller'
16-
1722
require 'active_model/serializer'
1823
require 'active_model/serializable_resource'
1924
require 'active_model/serializer/version'

test/logger_test.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
require 'test_helper'
2+
3+
class ActiveModelSerializers::LoggerTest < Minitest::Test
4+
5+
def test_logger_is_set_to_action_controller_logger_when_initializer_runs
6+
assert_equal ActiveModelSerializers.logger, ActionController::Base.logger
7+
end
8+
9+
def test_logger_can_be_set
10+
original_logger = ActiveModelSerializers.logger
11+
logger = Logger.new(STDOUT)
12+
13+
ActiveModelSerializers.logger = logger
14+
15+
assert_equal ActiveModelSerializers.logger, logger
16+
ensure
17+
ActiveModelSerializers.logger = original_logger
18+
end
19+
end

0 commit comments

Comments
 (0)