Elixir OTP 24 doesn't apply custom Logger backend

I have an umbrella application which has logger configuration in the root config.exs file:

config :logger,
  compile_time_purge_level: :debug,
  backends: [
    {LoggerFileBackend, :backends_log}
  ]

config :logger, :backends_log,
  path: "path/to/awesome.log",
  level: :debug,
  metadata: :all

After updating OTP from 22 to 24 version (elixir 1.12.3, erlang 24.1), backends_log is not starting and all logs are going to STDOUT with default console backend.
But configuration is still same:

Application.get_all_env(:kernel)
=> [
  logger: [
    {:handler, :default, :logger_std_h,
     %{
       config: %{type: :standard_io},
       formatter: {:logger_formatter,
        %{legacy_header: true, single_line: false}}
     }}
  ],
  logger_sasl_compatible: false,
  logger_level: :notice,
  shell_docs_ansi: :auto
]

Application.get_all_env(:logger)
=> [
  handle_sasl_reports: true,
  discard_threshold: 5000,
  compile_time_purge_matching: [],
  sync_threshold: 10000,
  utc_log: false,
  console: [],
  backends_log: [path: "path/to/awesome.log", level: :debug, metadata: :all],
  start_options: [],
  pdu_format_reviewer_error_count: [level: :error],
  compile_time_application: nil,
  backends: [
    {LoggerFileBackend, :backends_log}
  ],
  discard_threshold_periodic_check: 30000,
  translators: [
    {Plug.Cowboy.Translator, :translate},
    {Logger.Translator, :translate}
  ],
  compile_time_purge_level: :debug,
  truncate: 8096,
  log_counter: [level: :debug],
  handle_otp_reports: true,
  discard_threshold_for_error_logger: 500,
  translator_inspect_opts: []
]

:logger.get_primary_config()
=> %{
  filter_default: :log,
  filters: [process_disabled: {&Logger.Filter.process_disabled/2, []}],
  level: :debug,
  metadata: %{}
}

I can fix this problem with Runtime Configuration

    Logger.add_backend({LoggerFileBackend, :backends_log})
    Logger.configure_backend(
       {LoggerFileBackend, :backends_log},
       path: "path/to/awesome.log",
       level: :debug,
       metadata: :all
    )
    Logger.remove_backend(Logger.Backends.Console)

but I think Application Configuration is more proper way.

How should I fix this problem?

Did the :logger application started? That may be the source of the problem, as kernel.logger is updated only when Logger application starts. Just beware, that logger configuration is not applied during compilation, it is only runtime thing.

Yes, it did

:application.ensure_all_started(:logger)
=> {:ok, []}