2015-06-20 6 views
48

सर्वर चल रहा है जब मैं अपने फीनिक्स ऐप में अपने नियंत्रकों में से एक से कुछ डीबग जानकारी मुद्रित करने की कोशिश कर रहा हूं।फीनिक्स सर्वर चल रहा है जब नियंत्रक में कुछ लॉग इन करने के लिए कैसे?

defmodule PhoenixApp.TopicController do 
    use PhoenixApp.Web, :controller 
    alias PhoenixApp.Topic 

    plug :action 

    def index(conn, _params) do 
    # ... 

    log "this text" 

    # ... 

    render(conn, "index.html") 
    end 
end 

उत्तर

67

ठीक है, यह बहुत सरल है। आपको अपने नियंत्रक में Logger elixir मॉड्यूल की आवश्यकता है और अपने टेक्स्ट को लॉग इन करने के तरीकों में से एक को कॉल करने की आवश्यकता है।

defmodule PhoenixApp.TopicController do 
    require Logger 

    def index(conn, _params) do 
     Logger.info "Logging this text!" 
     Logger.debug "Var value: #{inspect(var)}" 

     # ... 
    end 
end 

समर्थित स्तर हैं:

  • :debug - त्रुटियों
  • के लिए - चेतावनी
  • :error के लिए - किसी भी प्रकार की जानकारी
  • :warn के लिए - डिबग-संबंधी संदेश
  • :info के लिए

स्रोत: Elixir - Logger Documentation

+2

यदि आप अपने लॉग में कुछ का निरीक्षण करना चाहते हैं, तो आप 'लॉगजर.डेबग "डिबगिंग # {निरीक्षण की बात करें}" कहां कर सकते हैं, जहां' चीज़ 'वस्तु है जिसे आप आउटपुट करना चाहते हैं (http://stackoverflow.com/ प्रश्न/28951208/अमृत-लकड़हारा के लिए सूचियों-tuples-आदि) – TimDog

10

आप, साथ ही IO.puts या IO.inspect कर सकते हैं और इसे दिखाएंगे, लेकिन IO.puts परेशानी हो सकती है अगर तुम क्या प्रिंट की कोशिश कर रहे स्ट्रिंग को लागू नहीं करता है । कोर प्रोटोकॉल

संबंधित मुद्दे