ML-158: force single-line log output in production

Three-layer architecture:
- Logster v2 handles HTTP request and LiveView socket telemetry in logfmt format
- Custom formatter as safety net escaping any remaining embedded newlines
- Config flag (single_line_logging) gating Logster attachment to prod only

Dev environment retains multi-line format for readability.
This commit is contained in:
Claudio Ortolina
2026-05-04 15:01:10 +01:00
parent 0f19afb0aa
commit 7c6760d7db
10 changed files with 407 additions and 8 deletions
+2
View File
@@ -97,6 +97,8 @@ config :tailwind,
cd: Path.expand("..", __DIR__)
]
config :music_library, :single_line_logging, false
# Configures Elixir's Logger
config :logger, :default_formatter,
format: "$time $metadata[$level] $message\n",
+13
View File
@@ -11,6 +11,19 @@ config :music_library, MusicLibraryWeb.Endpoint,
# Do not print debug messages in production
config :logger, level: :info
# Force single-line log output
config :phoenix, :logger, false
config :music_library, :single_line_logging, true
config :logster,
extra_fields: [:request_id],
filter_parameters: Application.get_env(:phoenix, :filter_parameters, ["password"])
config :logger, :default_formatter,
format: {MusicLibrary.Logger.SingleLineFormatter, :format},
metadata: [:request_id, :pid]
config :music_library, monitoring_routes: true
config :error_tracker, enabled: true