2016-01-26 16 views
8

protocol String.Charsを実装することなく、ELixirでマップ/構造体のタイプをどのように記録しますか?これは、ロガーで印刷することができます代数ドキュメントにデータ構造を解析しhttps://hexdocs.pm/elixir/Kernel.html#inspect/2エリクシルでマップ/構造体をログに記録する方法

-

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 

答えて

17

あなたはinspect/2を使用することができます。

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

は論理的に見えたが、IO.inspectを使用していました!明確にするために、それはKernel.inspectです – Krut

+0

上記のリンクはIO.inspectです。 Kernel.inspect/2への実際のリンクはここにあります - http://elixir-lang.org/docs/stable/elixir/Kernel.html#inspect/2 – sat

+0

Dammit私はderpのように 'IO.inspect'と入力し続けました。 – igorgue

0

エリクサーの道:私は検査思っ

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

23:20:30.265 [debug] %{a: 1} 
:ok 
関連する問題