我有一个动作:
def my_action(conn, params) do
# ..............
Logger.info("test: params #{IO.inspect(params)};\r\n\r\n")
这会导致异常:
** (Protocol.UndefinedError) protocol String.Chars not implemented for %{"key1" => "var1", "key2" => "var2", # ........}.
This protocol is implemented for: Atom, BitString.................
我理解这是什么意思,但我不明白为什么会导致它?我正在使用“检查”。我应该用什么来解决它?
答案 0 :(得分:5)
IO.inspect
打印该值,然后返回该值。除了打印值,它与写入相同
"test: params #{params};\r\n\r\n"
这里您需要的是Kernel.inspect
或简单的inspect
:
Logger.info("test: params #{inspect(params)};\r\n\r\n")