mirror of
https://github.com/plausible/analytics.git
synced 2024-10-26 18:32:25 +03:00
Enable JSON log formatting (#3512)
* Enable JSON log formatting if `LOG_FORMAT=json` is set, the app will start logging JSON-formatted messages. By the way, the Repo :loggers configration was removed since it's been already deprecated by Ecto v3 (https://hexdocs.pm/ecto/changelog.html#deprecations-4). * Update changelog
This commit is contained in:
parent
c64ab6b6ee
commit
671904aefd
@ -15,6 +15,7 @@ All notable changes to this project will be documented in this file.
|
||||
- Add searching sites by domain in /sites view
|
||||
- Add last 24h plots to /sites view
|
||||
- Add site pinning to /sites view
|
||||
- Add support for JSON logger, via LOG_FORMAT=json environment variable
|
||||
|
||||
### Removed
|
||||
- Removed the nested custom event property breakdown UI when filtering by a goal in Goal Conversions
|
||||
|
@ -13,11 +13,6 @@ config :plausible, PlausibleWeb.Endpoint,
|
||||
accepts: ~w(html json)
|
||||
]
|
||||
|
||||
# Configures Elixir's Logger
|
||||
config :logger, :console,
|
||||
format: "$time $metadata[$level] $message\n",
|
||||
metadata: [:request_id]
|
||||
|
||||
# Use Jason for JSON parsing in Phoenix
|
||||
config :phoenix, :json_library, Jason
|
||||
|
||||
|
@ -21,6 +21,5 @@ config :plausible, PlausibleWeb.Endpoint,
|
||||
]
|
||||
]
|
||||
|
||||
config :logger, :console, format: "[$level] $message\n"
|
||||
config :phoenix, :stacktrace_depth, 20
|
||||
config :phoenix, :plug_init_mode, :runtime
|
||||
|
@ -8,6 +8,36 @@ end
|
||||
|
||||
config_dir = System.get_env("CONFIG_DIR", "/run/secrets")
|
||||
|
||||
log_format =
|
||||
get_var_from_path_or_env(config_dir, "LOG_FORMAT", "standard")
|
||||
|
||||
log_level =
|
||||
config_dir
|
||||
|> get_var_from_path_or_env("LOG_LEVEL", "warn")
|
||||
|> String.to_existing_atom()
|
||||
|
||||
config :logger,
|
||||
level: log_level,
|
||||
backends: [:console]
|
||||
|
||||
config :logger, Sentry.LoggerBackend,
|
||||
capture_log_messages: true,
|
||||
level: :error
|
||||
|
||||
case String.downcase(log_format) do
|
||||
"standard" ->
|
||||
config :logger, :console,
|
||||
format: "$time $metadata[$level] $message\n",
|
||||
metadata: [:request_id]
|
||||
|
||||
"json" ->
|
||||
config :logger, :console,
|
||||
format: {ExJsonLogger, :format},
|
||||
metadata: [
|
||||
:request_id
|
||||
]
|
||||
end
|
||||
|
||||
# Listen IP supports IPv4 and IPv6 addresses.
|
||||
listen_ip =
|
||||
(
|
||||
@ -167,7 +197,6 @@ maxmind_edition = get_var_from_path_or_env(config_dir, "MAXMIND_EDITION", "GeoLi
|
||||
maxmind_cache_dir = get_var_from_path_or_env(config_dir, "PERSISTENT_CACHE_DIR")
|
||||
|
||||
if System.get_env("DISABLE_AUTH") do
|
||||
require Logger
|
||||
Logger.warning("DISABLE_AUTH env var is no longer supported")
|
||||
end
|
||||
|
||||
@ -196,11 +225,6 @@ end
|
||||
hcaptcha_sitekey = get_var_from_path_or_env(config_dir, "HCAPTCHA_SITEKEY")
|
||||
hcaptcha_secret = get_var_from_path_or_env(config_dir, "HCAPTCHA_SECRET")
|
||||
|
||||
log_level =
|
||||
config_dir
|
||||
|> get_var_from_path_or_env("LOG_LEVEL", "warn")
|
||||
|> String.to_existing_atom()
|
||||
|
||||
custom_script_name =
|
||||
config_dir
|
||||
|> get_var_from_path_or_env("CUSTOM_SCRIPT_NAME", "script")
|
||||
@ -293,10 +317,6 @@ config :sentry,
|
||||
filter: Plausible.SentryFilter,
|
||||
before_send_event: {Plausible.SentryFilter, :before_send}
|
||||
|
||||
config :logger, Sentry.LoggerBackend,
|
||||
capture_log_messages: true,
|
||||
level: :error
|
||||
|
||||
config :plausible, :paddle,
|
||||
vendor_auth_code: paddle_auth_code,
|
||||
vendor_id: paddle_vendor_id
|
||||
@ -328,7 +348,6 @@ ch_transport_opts =
|
||||
end
|
||||
|
||||
config :plausible, Plausible.ClickhouseRepo,
|
||||
loggers: [Ecto.LogEntry],
|
||||
queue_target: 500,
|
||||
queue_interval: 2000,
|
||||
url: ch_db_url,
|
||||
@ -338,7 +357,6 @@ config :plausible, Plausible.ClickhouseRepo,
|
||||
]
|
||||
|
||||
config :plausible, Plausible.IngestRepo,
|
||||
loggers: [Ecto.LogEntry],
|
||||
queue_target: 500,
|
||||
queue_interval: 2000,
|
||||
url: ch_db_url,
|
||||
@ -348,7 +366,6 @@ config :plausible, Plausible.IngestRepo,
|
||||
pool_size: ingest_pool_size
|
||||
|
||||
config :plausible, Plausible.AsyncInsertRepo,
|
||||
loggers: [Ecto.LogEntry],
|
||||
queue_target: 500,
|
||||
queue_interval: 2000,
|
||||
url: ch_db_url,
|
||||
@ -360,7 +377,6 @@ config :plausible, Plausible.AsyncInsertRepo,
|
||||
]
|
||||
|
||||
config :plausible, Plausible.ImportDeletionRepo,
|
||||
loggers: [Ecto.LogEntry],
|
||||
queue_target: 500,
|
||||
queue_interval: 2000,
|
||||
url: ch_db_url,
|
||||
@ -593,10 +609,6 @@ if geonames_source_file do
|
||||
config :location, :geonames_source_file, geonames_source_file
|
||||
end
|
||||
|
||||
config :logger,
|
||||
level: log_level,
|
||||
backends: [:console]
|
||||
|
||||
if honeycomb_api_key && honeycomb_dataset do
|
||||
config :opentelemetry,
|
||||
resource: Plausible.OpenTelemetry.resource_attributes(runtime_metadata),
|
||||
|
3
mix.exs
3
mix.exs
@ -126,7 +126,8 @@ defmodule Plausible.MixProject do
|
||||
{:paginator, git: "https://github.com/duffelhq/paginator.git"},
|
||||
{:scrivener_ecto, "~> 2.0"},
|
||||
{:esbuild, "~> 0.7", runtime: Mix.env() == :dev},
|
||||
{:tailwind, "~> 0.2.0", runtime: Mix.env() == :dev}
|
||||
{:tailwind, "~> 0.2.0", runtime: Mix.env() == :dev},
|
||||
{:ex_json_logger, "~> 1.3.0"}
|
||||
]
|
||||
end
|
||||
|
||||
|
2
mix.lock
2
mix.lock
@ -42,6 +42,7 @@
|
||||
"ex_cldr_currencies": {:hex, :ex_cldr_currencies, "2.15.0", "aadd34e91cfac7ef6b03fe8f47f8c6fa8c5daf3f89b5d9fee64ec545ded839cf", [:mix], [{:ex_cldr, "~> 2.34", [hex: :ex_cldr, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "0521316396c66877a2d636219767560bb2397c583341fcb154ecf9f3000e6ff8"},
|
||||
"ex_cldr_numbers": {:hex, :ex_cldr_numbers, "2.31.3", "6ec8b18c395c0e8788d46da806f8f2abcbe4b0d809226d2a91363e9ccd85f2f5", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:digital_token, "~> 0.3 or ~> 1.0", [hex: :digital_token, repo: "hexpm", optional: false]}, {:ex_cldr, "~> 2.37", [hex: :ex_cldr, repo: "hexpm", optional: false]}, {:ex_cldr_currencies, ">= 2.14.2", [hex: :ex_cldr_currencies, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "b519de08ecc4a6402038f3aa75e8654f78ebd6fa714b7e585531504e648588fd"},
|
||||
"ex_doc": {:hex, :ex_doc, "0.30.3", "bfca4d340e3b95f2eb26e72e4890da83e2b3a5c5b0e52607333bf5017284b063", [:mix], [{:earmark_parser, "~> 1.4.31", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "fbc8702046c1d25edf79de376297e608ac78cdc3a29f075484773ad1718918b6"},
|
||||
"ex_json_logger": {:hex, :ex_json_logger, "1.3.0", "d1027c7086ce3a0b2234fe321707c09058cd511923f81875d6cdd9dd8b13741b", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "75b58ac2b82babcbb604a4a23a5880f1b835aa410a33f7940179a98aee386294"},
|
||||
"ex_machina": {:hex, :ex_machina, "2.7.0", "b792cc3127fd0680fecdb6299235b4727a4944a09ff0fa904cc639272cd92dc7", [:mix], [{:ecto, "~> 2.2 or ~> 3.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_sql, "~> 3.0", [hex: :ecto_sql, repo: "hexpm", optional: true]}], "hexpm", "419aa7a39bde11894c87a615c4ecaa52d8f107bbdd81d810465186f783245bf8"},
|
||||
"ex_money": {:hex, :ex_money, "5.15.0", "677dcd8466fcc8b91ac134a6414587dbed5420391f6dc3d42f71b049a3414d39", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:ex_cldr_numbers, "~> 2.31", [hex: :ex_cldr_numbers, repo: "hexpm", optional: false]}, {:gringotts, "~> 1.1", [hex: :gringotts, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.0 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:poison, "~> 3.0 or ~> 4.0 or ~> 5.0", [hex: :poison, repo: "hexpm", optional: true]}], "hexpm", "802728b06e004b42db784d84cd1417b2aaf9ba116051149edc08fe184c838f06"},
|
||||
"exactor": {:hex, :exactor, "2.2.4", "5efb4ddeb2c48d9a1d7c9b465a6fffdd82300eb9618ece5d34c3334d5d7245b1", [:mix], [], "hexpm", "1222419f706e01bfa1095aec9acf6421367dcfab798a6f67c54cf784733cd6b5"},
|
||||
@ -134,7 +135,6 @@
|
||||
"sleeplocks": {:hex, :sleeplocks, "1.1.1", "3d462a0639a6ef36cc75d6038b7393ae537ab394641beb59830a1b8271faeed3", [:rebar3], [], "hexpm", "84ee37aeff4d0d92b290fff986d6a95ac5eedf9b383fadfd1d88e9b84a1c02e1"},
|
||||
"ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.7", "354c321cf377240c7b8716899e182ce4890c5938111a1296add3ec74cf1715df", [:make, :mix, :rebar3], [], "hexpm", "fe4c190e8f37401d30167c8c405eda19469f34577987c76dde613e838bbc67f8"},
|
||||
"tailwind": {:hex, :tailwind, "0.2.1", "83d8eadbe71a8e8f67861fe7f8d51658ecfb258387123afe4d9dc194eddc36b0", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}], "hexpm", "e8a13f6107c95f73e58ed1b4221744e1eb5a093cd1da244432067e19c8c9a277"},
|
||||
|
||||
"telemetry": {:hex, :telemetry, "1.2.1", "68fdfe8d8f05a8428483a97d7aab2f268aaff24b49e0f599faa091f1d4e7f61c", [:rebar3], [], "hexpm", "dad9ce9d8effc621708f99eac538ef1cbe05d6a874dd741de2e689c47feafed5"},
|
||||
"telemetry_metrics": {:hex, :telemetry_metrics, "0.6.1", "315d9163a1d4660aedc3fee73f33f1d355dcc76c5c3ab3d59e76e3edf80eef1f", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7be9e0871c41732c233be71e4be11b96e56177bf15dde64a8ac9ce72ac9834c6"},
|
||||
"telemetry_metrics_prometheus_core": {:hex, :telemetry_metrics_prometheus_core, "1.1.0", "4e15f6d7dbedb3a4e3aed2262b7e1407f166fcb9c30ca3f96635dfbbef99965c", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "0dd10e7fe8070095df063798f82709b0a1224c31b8baf6278b423898d591a069"},
|
||||
|
Loading…
Reference in New Issue
Block a user