Подтвердить что ты не робот

Как регистрировать что-то в контроллере при запуске 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
4b9b3361

Ответ 1

Хорошо, получается довольно просто. Вам необходимо потребовать модуль 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 - для ошибок

Источник: Документация Elixir - Logger

Ответ 2

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