2015-03-09 9 views
19

मैं निरीक्षण तारअमृत लॉगर, आदि

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

लेकिन जब मैं एक सूची प्रवेश करें, तो यह नहीं लगता है के लिए अमृत लकड़हारा उपयोग कर सकते हैं सुंदर

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

जब मैं लॉग इन करें कीवर्ड सूची, यह त्रुटियों

> 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 

कैसे आप सूचियों, tuples और डेटा प्रकार अमृत में तार के अलावा अन्य लकड़हारा करते हैं?

उत्तर

41

आपकी सर्वश्रेष्ठ शर्त Logger.info "Here is some thing: #{inspect thing}" का उपयोग करना है। इस तरह अगर thingString.Chars प्रोटोकॉल को लागू नहीं करता है, तो भी आपको कुछ उपयोगी मिलता है।

+0

धन्यवाद, यह काम किया !!! – User314159

+5

यदि आप डेटा संरचना दिखाना चाहते हैं, तो निरीक्षण निश्चित रूप से जाने का तरीका है। to_string डिजाइन द्वारा अधिक प्रतिबंधित है। :) –