求めていたのは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 が定義されていないので、どうすればログに出力できるのかを悩んでいたのだけれど、これで解決。