elixir

2016-01-26 10 views
8

में मानचित्र/संरचना को लॉग कैसे करें protocol String.Chars को लागू किए बिना ELixir में मानचित्र/संरचना प्रकार को लॉग कैसे करें?elixir

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 उपयोग कर सकते हैं - https://hexdocs.pm/elixir/Kernel.html#inspect/2

यह एक बीजगणित दस्तावेज है जो लकड़हारा के साथ मुद्रित किया जा सकता में डेटा संरचना पार्स करता है।

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

मैं तार्किक लग रहा था का निरीक्षण सोचा, लेकिन IO.inspect का उपयोग किया गया था! सिर्फ स्पष्टीकरण के लिए, यह कर्नेल है। – Krut

+0

ऊपर दिखाया गया लिंक IO.inspect है। कर्नेल.इंसेप्ट/2 का वास्तविक लिंक यहां है - http://elixir-lang.org/docs/stable/elixir/Kernel.html#inspect/2 – sat

+0

डैमिट मैंने 'आईओ.इंसेप्ट' टाइप को एक डर्प की तरह रखा था। – igorgue

0

अमृत रास्ता:

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

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