fix: show ARP error samples in log message text instead of metadata
- Changed error logging to include sample errors directly in message string - Ensures error details are visible regardless of logger metadata config - Extracted format_error_samples/1 helper to reduce nesting (Credo) - Helps diagnose ARP upsert failures in staging/production
This commit is contained in:
parent
e026930f25
commit
7525bfd9a3
1 changed files with 13 additions and 11 deletions
|
|
@ -1878,6 +1878,18 @@ defmodule Towerops.Snmp do
|
|||
end
|
||||
end
|
||||
|
||||
# Helper to format error samples into log message text
|
||||
defp format_error_samples([]), do: ""
|
||||
|
||||
defp format_error_samples(samples) do
|
||||
formatted_samples =
|
||||
Enum.map_join(samples, "\n", fn sample ->
|
||||
" - IP: #{sample.ip}, MAC: #{sample.mac}, errors: #{inspect(sample.errors)}"
|
||||
end)
|
||||
|
||||
"\nSample errors:\n" <> formatted_samples
|
||||
end
|
||||
|
||||
@doc """
|
||||
Bulk upserts ARP entries for a device.
|
||||
Returns `{success_count, error_count}` tuple.
|
||||
|
|
@ -1906,17 +1918,7 @@ defmodule Towerops.Snmp do
|
|||
end)
|
||||
|> tap(fn {_s, errors, error_samples} ->
|
||||
if errors > 0 do
|
||||
samples_text =
|
||||
case Enum.reverse(error_samples) do
|
||||
[] ->
|
||||
""
|
||||
|
||||
samples ->
|
||||
"\nSample errors:\n" <>
|
||||
Enum.map_join(samples, "\n", fn sample ->
|
||||
" - IP: #{sample.ip}, MAC: #{sample.mac}, errors: #{inspect(sample.errors)}"
|
||||
end)
|
||||
end
|
||||
samples_text = error_samples |> Enum.reverse() |> format_error_samples()
|
||||
|
||||
Logger.warning(
|
||||
"#{errors} ARP upsert failures for device #{device_id}#{samples_text}",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue