Skip to content

Commit e44cb39

Browse files
committed
Merge pull request rails#16099 from tgxworld/pass_log_as_block
Prefer to pass block when logging.
2 parents d4c8068 + ee35b79 commit e44cb39

File tree

5 files changed

+46
-43
lines changed

5 files changed

+46
-43
lines changed

actionmailer/lib/action_mailer/log_subscriber.rb

+13-11
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,27 @@ module ActionMailer
66
class LogSubscriber < ActiveSupport::LogSubscriber
77
# An email was delivered.
88
def deliver(event)
9-
return unless logger.info?
10-
recipients = Array(event.payload[:to]).join(', ')
11-
info("\nSent mail to #{recipients} (#{event.duration.round(1)}ms)")
12-
debug(event.payload[:mail])
9+
info do
10+
recipients = Array(event.payload[:to]).join(', ')
11+
"\nSent mail to #{recipients} (#{event.duration.round(1)}ms)"
12+
end
13+
14+
debug { event.payload[:mail] }
1315
end
1416

1517
# An email was received.
1618
def receive(event)
17-
return unless logger.info?
18-
info("\nReceived mail (#{event.duration.round(1)}ms)")
19-
debug(event.payload[:mail])
19+
info { "\nReceived mail (#{event.duration.round(1)}ms)" }
20+
debug { event.payload[:mail] }
2021
end
2122

2223
# An email was generated.
2324
def process(event)
24-
return unless logger.debug?
25-
mailer = event.payload[:mailer]
26-
action = event.payload[:action]
27-
debug("\n#{mailer}##{action}: processed outbound mail in #{event.duration.round(1)}ms")
25+
debug do
26+
mailer = event.payload[:mailer]
27+
action = event.payload[:action]
28+
"\n#{mailer}##{action}: processed outbound mail in #{event.duration.round(1)}ms"
29+
end
2830
end
2931

3032
# Use the logger configured for ActionMailer::Base

actionpack/lib/action_controller/log_subscriber.rb

+26-25
Original file line numberDiff line numberDiff line change
@@ -16,50 +16,51 @@ def start_processing(event)
1616
end
1717

1818
def process_action(event)
19-
return unless logger.info?
20-
21-
payload = event.payload
22-
additions = ActionController::Base.log_process_action(payload)
23-
24-
status = payload[:status]
25-
if status.nil? && payload[:exception].present?
26-
exception_class_name = payload[:exception].first
27-
status = ActionDispatch::ExceptionWrapper.status_code_for_exception(exception_class_name)
19+
info do
20+
payload = event.payload
21+
additions = ActionController::Base.log_process_action(payload)
22+
23+
status = payload[:status]
24+
if status.nil? && payload[:exception].present?
25+
exception_class_name = payload[:exception].first
26+
status = ActionDispatch::ExceptionWrapper.status_code_for_exception(exception_class_name)
27+
end
28+
message = "Completed #{status} #{Rack::Utils::HTTP_STATUS_CODES[status]} in #{event.duration.round}ms"
29+
message << " (#{additions.join(" | ")})" unless additions.blank?
30+
message
2831
end
29-
message = "Completed #{status} #{Rack::Utils::HTTP_STATUS_CODES[status]} in #{event.duration.round}ms"
30-
message << " (#{additions.join(" | ")})" unless additions.blank?
31-
32-
info(message)
3332
end
3433

3534
def halted_callback(event)
36-
info("Filter chain halted as #{event.payload[:filter].inspect} rendered or redirected")
35+
info { "Filter chain halted as #{event.payload[:filter].inspect} rendered or redirected" }
3736
end
3837

3938
def send_file(event)
40-
info("Sent file #{event.payload[:path]} (#{event.duration.round(1)}ms)")
39+
info { "Sent file #{event.payload[:path]} (#{event.duration.round(1)}ms)" }
4140
end
4241

4342
def redirect_to(event)
44-
info("Redirected to #{event.payload[:location]}")
43+
info { "Redirected to #{event.payload[:location]}" }
4544
end
4645

4746
def send_data(event)
48-
info("Sent data #{event.payload[:filename]} (#{event.duration.round(1)}ms)")
47+
info { "Sent data #{event.payload[:filename]} (#{event.duration.round(1)}ms)" }
4948
end
5049

5150
def unpermitted_parameters(event)
52-
unpermitted_keys = event.payload[:keys]
53-
debug("Unpermitted parameter#{'s' if unpermitted_keys.size > 1}: #{unpermitted_keys.join(", ")}")
51+
debug do
52+
unpermitted_keys = event.payload[:keys]
53+
"Unpermitted parameter#{'s' if unpermitted_keys.size > 1}: #{unpermitted_keys.join(", ")}"
54+
end
5455
end
5556

5657
def deep_munge(event)
57-
message = "Value for params[:#{event.payload[:keys].join('][:')}] was set "\
58-
"to nil, because it was one of [], [null] or [null, null, ...]. "\
59-
"Go to http://guides.rubyonrails.org/security.html#unsafe-query-generation "\
60-
"for more information."\
61-
62-
debug(message)
58+
debug do
59+
"Value for params[:#{event.payload[:keys].join('][:')}] was set "\
60+
"to nil, because it was one of [], [null] or [null, null, ...]. "\
61+
"Go to http://guides.rubyonrails.org/security.html#unsafe-query-generation "\
62+
"for more information."\
63+
end
6364
end
6465

6566
%w(write_fragment read_fragment exist_fragment?

actionview/lib/action_view/log_subscriber.rb

+5-5
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ def initialize
1313
end
1414

1515
def render_template(event)
16-
return unless logger.info?
17-
message = " Rendered #{from_rails_root(event.payload[:identifier])}"
18-
message << " within #{from_rails_root(event.payload[:layout])}" if event.payload[:layout]
19-
message << " (#{event.duration.round(1)}ms)"
20-
info(message)
16+
info do
17+
message = " Rendered #{from_rails_root(event.payload[:identifier])}"
18+
message << " within #{from_rails_root(event.payload[:layout])}" if event.payload[:layout]
19+
message << " (#{event.duration.round(1)}ms)"
20+
end
2121
end
2222
alias :render_partial :render_template
2323
alias :render_collection :render_template

activesupport/lib/active_support/testing/tagged_logging.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ module TaggedLogging #:nodoc:
66
attr_writer :tagged_logger
77

88
def before_setup
9-
if tagged_logger
9+
if tagged_logger && tagged_logger.info?
1010
heading = "#{self.class}: #{name}"
1111
divider = '-' * heading.size
1212
tagged_logger.info divider

railties/lib/rails/rack/logger.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def call_app(request, env)
3434

3535
instrumenter = ActiveSupport::Notifications.instrumenter
3636
instrumenter.start 'request.action_dispatch', request: request
37-
logger.info started_request_message(request)
37+
logger.info { started_request_message(request) }
3838
resp = @app.call(env)
3939
resp[2] = ::Rack::BodyProxy.new(resp[2]) { finish(request) }
4040
resp

0 commit comments

Comments
 (0)