web-dev-qa-db-ja.com

Phoenixサーバーの実行中にコントローラーに何かを記録する方法は?

サーバーの実行中に、Phoenixアプリでコントローラーの1つからデバッグ情報を出力しようとしています。

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

  def index(conn, _params) do
    log("this text")

    # ... 
  end
end
58
Sheharyar

さて、それはかなり簡単です。コントローラにLogger elixirモジュールを必要とし、そのメソッドの1つを呼び出してテキストを記録する必要があります。

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 Documentation

84
Sheharyar

単にIO.puts または IO.inspectが表示されますが、印刷しようとしているものがString.Charsプロトコルを実装していない場合、IO.putsは面倒です。

11
Arthur Collé