2015-03-09 11 views
19

posso usare il registratore elisir per il controllo stringheelisir Logger per liste, tuple, ecc

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

Ma quando accedo una lista, non sembra abbastanza

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

Quando accedo elenco di parole chiave, esso errori

> 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 

Come si logger liste, tuple e tipi di dati diversi da stringhe in Elixir?

risposta

41

La soluzione migliore è utilizzare Logger.info "Here is some thing: #{inspect thing}". In questo modo, anche se thing non implementa il protocollo String.Chars, si ottiene comunque qualcosa di utile.

+0

grazie, ha funzionato !!! – User314159

+5

Se si desidera mostrare una struttura dati, l'ispezione è sicuramente la strada da percorrere. to_string è più limitato dal design. :) –