当 Phoenix Server 为 运行 时,如何在 Controller 中记录某些内容?

How to Log something in Controller when Phoenix Server is running?

当服务器 运行。

时,我正在尝试从 Phoenix 应用程序中的一个控制器打印一些调试信息
defmodule PhoenixApp.TopicController do
  use PhoenixApp.Web, :controller

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

    # ... 
  end
end

好的,事实证明这很简单。您需要在您的控制器中引入 Logger 长生不老药模块,并调用其中一种方法来记录您的文本。

defmodule PhoenixApp.TopicController do
    require Logger

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

        # ...
    end
end

支持的级别是:

  • :debug - 调试相关消息
  • :info - 获取任何类型的信息
  • :warn - 用于警告
  • :error - 错误

来源:Elixir - Logger Documentation

您也可以只执行 IO.putsIO.inspect 它会显示出来,但是如果您尝试打印的内容没有实现 IO.puts 可能会很麻烦String.Chars 协议