mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-28 02:18:50 +00:00
There was slight API change in the way LoggerJSON's configuration is
generation, so I took the time to do a little fixing and cleanup here.
Specifically, we should be using the `new/1` callback to create the
Logger config which fixes the below exception due to missing config
keys:
```
FORMATTER CRASH: {report,[{formatter_crashed,'Elixir.LoggerJSON.Formatters.GoogleCloud'},{config,[{metadata,{all_except,[socket,conn]}},{redactors,[{'Elixir.LoggerJSON.Redactors.RedactKeys',[<<"password">>,<<"secret">>,<<"nonce">>,<<"fragment">>,<<"state">>,<<"token">>,<<"public_key">>,<<"private_key">>,<<"preshared_key">>,<<"session">>,<<"sessions">>]}]}]},{log_event,#{meta => #{line => 15,pid => <0.308.0>,time => 1744145139650804,file => "lib/logger.ex",gl => <0.281.0>,domain => [elixir],application => libcluster,mfa => {'Elixir.Cluster.Logger',info,2}},msg => {string,<<"[libcluster:default] connected to :\"web@web.cluster.local\"">>},level => info}},{reason,{error,{badmatch,[{metadata,{all_except,[socket,conn]}},{redactors,[{'Elixir.LoggerJSON.Redactors.RedactKeys',[<<"password">>,<<"secret">>,<<"nonce">>,<<"fragment">>,<<"state">>,<<"token">>,<<"public_key">>,<<"private_key">>,<<"preshared_key">>,<<"session">>,<<"sessions">>]}]}]},[{'Elixir.LoggerJSON.Formatters.GoogleCloud',format,2,[{file,"lib/logger_json/formatters/google_cloud.ex"},{line,148}]}]}}]}
```
Supersedes #8714
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
42 lines
967 B
Elixir
42 lines
967 B
Elixir
defmodule API.Application do
|
|
use Application
|
|
|
|
@impl true
|
|
def start(_type, _args) do
|
|
configure_logger()
|
|
|
|
_ = :opentelemetry_cowboy.setup()
|
|
_ = OpentelemetryPhoenix.setup(adapter: :cowboy2)
|
|
|
|
children = [
|
|
API.Endpoint,
|
|
API.RateLimit
|
|
]
|
|
|
|
opts = [strategy: :one_for_one, name: API.Supervisor]
|
|
Supervisor.start_link(children, opts)
|
|
end
|
|
|
|
@impl true
|
|
def config_change(changed, _new, removed) do
|
|
API.Endpoint.config_change(changed, removed)
|
|
:ok
|
|
end
|
|
|
|
defp configure_logger do
|
|
if config = Application.get_env(:logger_json, :config) do
|
|
formatter = LoggerJSON.Formatters.GoogleCloud.new(config)
|
|
:logger.update_handler_config(:default, :formatter, formatter)
|
|
end
|
|
|
|
# Configure Sentry to capture Logger messages
|
|
:logger.add_handler(:sentry, Sentry.LoggerHandler, %{
|
|
config: %{
|
|
level: :warning,
|
|
metadata: :all,
|
|
capture_log_messages: true
|
|
}
|
|
})
|
|
end
|
|
end
|