2015-03-09 13 views
19

mogę korzystać z rejestratora eliksir do kontroli ciągóweliksir Logger do listy, krotki itp

> str = "string" 
> Logger.info "Here is a #{str}" 
[info] Here is a string 

Ale gdy loguję listę, to nie wygląda całkiem

> list = [1,2,3,4,5] 
> Logger.info "Here is a list: #{list}" 
[info] Here is a list: ^A^B^C^D^E^F 

Podczas logowania lista słów kluczowych, to błąd

> kwl = [a: "apple", b: "banana"] 
> Logger.info "Here is a keyword list: #{kwl}" 
    ** (ArgumentError) argument error 
    (stdlib) :unicode.characters_to_binary([a: "apple", b: "banana"]) 
    (elixir) lib/list.ex:555: List.to_string/1 

Jak rejestrować listy, krotki i typy danych inne niż ciągi w eliksiru?

Odpowiedz

41

Najlepiej jest użyć Logger.info "Here is some thing: #{inspect thing}". W ten sposób nawet jeśli thing nie wdroży protokołu String.Chars, nadal otrzymasz coś użytecznego.

+0

dziękuję, to działało !!! – User314159

+5

Jeśli chcesz pokazać strukturę danych, to inspekcja zdecydowanie jest drogą do zrobienia. to_string jest bardziej ograniczony przez projekt. :) –