问题
I'm trying to print some debug information from one of my Controllers in my Phoenix app when the server is running.
defmodule PhoenixApp.TopicController do
use PhoenixApp.Web, :controller
def index(conn, _params) do
log("this text")
# ...
end
end
回答1:
Okay, turns out it's pretty straight forward. You need to require the Logger
elixir module in your controller and call one of it's methods to log your text.
defmodule PhoenixApp.TopicController do
require Logger
def index(conn, _params) do
Logger.info "Logging this text!"
Logger.debug "Var value: #{inspect(var)}"
# ...
end
end
Supported levels are:
:debug
- for debug-related messages:info
- for information of any kind:warn
- for warnings:error
- for errors
Source: Elixir - Logger Documentation
回答2:
You can also just do IO.puts
or IO.inspect
and it'll show up, but IO.puts can be troublesome if what you're trying to print doesn't implement the String.Chars protocol
来源:https://stackoverflow.com/questions/30958616/how-to-log-something-in-controller-when-phoenix-server-is-running