discourse/config/initializers/102-truncate-logs.rb
Loïc Guitaut ca4af53be8 DEV: Upgrade Rails to version 7.1 (#27539)
* DEV: Upgrade Rails to 7.1

* FIX: Remove references to `Rails.logger.chained`

`Rails.logger.chained` was provided by Logster before Rails 7.1
introduced their broadcast logger. Now all the loggers are added to
`Rails.logger.broadcasts`.

Some code in our initializers was still using `chained` instead of
`broadcasts`.

* DEV: Make parameters optional to all FakeLogger methods

* FIX: Set `override_level` on Logster loggers (#27519)

A followup to f595d599dd

* FIX: Don’t duplicate Rack response

---------

Co-authored-by: Jarek Radosz <jradosz@gmail.com>
2024-06-21 09:44:06 +02:00

28 lines
795 B
Ruby

# frozen_string_literal: true
if Rails.env.production? || ENV["ENABLE_LOGS_TRUNCATION"] == "1"
def set_or_extend_truncate_logs_formatter(logger)
if logger.formatter
logger.formatter.extend(
Module.new do
def call(*args)
truncate_logs_formatter.call(super(*args))
end
def truncate_logs_formatter
@formatter ||=
TruncateLogsFormatter.new(log_line_max_chars: GlobalSetting.log_line_max_chars)
end
end,
)
else
logger.formatter =
TruncateLogsFormatter.new(log_line_max_chars: GlobalSetting.log_line_max_chars)
end
end
Rails.application.config.to_prepare do
Rails.logger.broadcasts.each { |logger| set_or_extend_truncate_logs_formatter(logger) }
end
end