Skip to content

Commit 0cc87d1

Browse files
committed
Fix Logger process-level calls on older Elixir
Elixir 1.11-1.13 expose Logger.put_process_level/1 and Logger.delete_process_level/0, while newer versions use process-aware arities. Add a compatibility helper in ConfigTest that dispatches by function_exported?/3 and uses apply/3 to avoid compile-time undefined-function warnings, which restores OTP 24 CI runs.
1 parent 2b4698a commit 0cc87d1

1 file changed

Lines changed: 14 additions & 2 deletions

File tree

test/appsignal/config_test.exs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1490,8 +1490,20 @@ defmodule Appsignal.ConfigTest do
14901490
end
14911491

14921492
defp without_logger(fun) do
1493-
Logger.put_process_level(self(), :none)
1493+
put_process_level(self(), :none)
14941494
fun.()
1495-
Logger.delete_process_level(self())
1495+
delete_process_level(self())
1496+
end
1497+
1498+
# Logger process-level APIs differ between Elixir versions:
1499+
# older versions expose arities without pid, newer versions include pid.
1500+
# Use dynamic dispatch so OTP 24 CI (Elixir 1.11-1.13) and newer
1501+
# versions both compile and run these tests.
1502+
if function_exported?(Logger, :put_process_level, 2) do
1503+
defp put_process_level(pid, level), do: apply(Logger, :put_process_level, [pid, level])
1504+
defp delete_process_level(pid), do: apply(Logger, :delete_process_level, [pid])
1505+
else
1506+
defp put_process_level(_pid, level), do: apply(Logger, :put_process_level, [level])
1507+
defp delete_process_level(_pid), do: apply(Logger, :delete_process_level, [])
14961508
end
14971509
end

0 commit comments

Comments
 (0)