如何在Phoenix Server运行时在Controller中记录内容?

She*_*yar 58 elixir phoenix-framework

我正在尝试在服务器运行时从我的Phoenix应用程序中的一个控制器上打印一些调试信息.

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

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

    # ... 
  end
end
Run Code Online (Sandbox Code Playgroud)

She*_*yar 85

好的,事实证明它很直接.您需要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
Run Code Online (Sandbox Code Playgroud)

支持的级别是:

  • :debug - 用于与调试相关的消息
  • :info - 任何形式的信息
  • :warn - 警告
  • :error - 错误

来源:Elixir - Logger文档

  • 如果你想检查日志中的某些东西,你可以``Logger.debug"debugging#{inspect thing}"```thing`是你要输出的对象(http://stackoverflow.com/questions/28951208/elixir-记录仪换列表元组,等等) (2认同)

Art*_*llé 11

您也可以这样做,IO.puts或者IO.inspect它会显示出来,但如果您尝试打印的内容没有实现String.Chars协议,则IO.puts会很麻烦