如何在elixir中记录map / struct

时间:2016-01-26 07:38:57

标签: elixir

如何在ELixir中记录地图/结构类型而无需实施protocol String.Chars

require Logger
Logger.debug  %{my: "map"}
** (Protocol.UndefinedError) protocol String.Chars not implemented for %{my: "map"}
    (elixir) lib/string/chars.ex:3: String.Chars.impl_for!/1
    (elixir) lib/string/chars.ex:17: String.Chars.to_string/1

2 个答案:

答案 0 :(得分:23)

您可以使用inspect/2 - https://hexdocs.pm/elixir/Kernel.html#inspect/2

它将数据结构解析为代数文档,可以使用记录器打印。

iex(4)> Logger.debug inspect(%{a: 1})
08:47:32.776 [debug] %{a: 1}
:ok

答案 1 :(得分:2)

Elixir编写arathunku's answer的方式是使用管道语法:

iex(3)> %{a: 1} |> inspect() |> Logger.debug()

23:20:30.265 [debug] %{a: 1}
:ok