Как войти что-то в контроллер, когда Phoenix Server работает?


Я пытаюсь распечатать некоторую отладочную информацию с одного из моих контроллеров в моем приложении Phoenix, когда сервер работает.

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
2   51   2015-06-20 23:33:43

2 ответа:

хорошо, оказывается, это довольно прямо вперед. Вам нужно требовать 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 - для сообщений, связанных с отладкой
  • :info - для информации любого рода
  • :warn - для предупреждения
  • :error - ошибок

источник: эликсир - Документация Регистратора

вы также можете просто сделать IO.puts или IO.inspect и он появится, но IO.puts может быть проблематичным, если то, что вы пытаетесь напечатать, не реализует строку.Протокол символов