求めていたのはinspect/2だった
to_string/1 ではなくinspect/2 だった。
iex(1)> to_string %{a: 1, b: "hoyhoy"} ** (Protocol.UndefinedError) protocol String.Chars not implemented for %{a: 1, b: "hoyhoy"} (elixir) lib/string/chars.ex:3: String.Chars.impl_for!/1 (elixir) lib/string/chars.ex:17: String.Chars.to_string/1
iex(1)> inspect %{a: 1, b: "hoyhoy"} "%{a: 1, b: \"hoyhoy\"}"
Map には to_string が定義されていないので、どうすればログに出力できるのかを悩んでいたのだけれど、これで解決。