我在伞形项目中有一个应用程序的记录器配置如下:
config :logger,
backends: [:console],
level: :debug,
format: "\n$time $metadata[$level] $levelpad$message\n",
metadata: [:application, :module, :function, :file, :line]
在工作进程中,我已记录:
Logger.info("Connected to RabbitMQ.")
但它不会记录任何元数据,如应用程序,模块或函数。
21:40:05.590 [info] Connected to RabbitMQ.
记录元数据的正确方法是什么?
答案 0 :(得分:2)
我们需要使用:console
使用config/3
设置配置密钥。以下配置显示元数据:
config :logger, :console,
level: :debug,
format: "\n$time $metadata[$level] $levelpad$message\n",
metadata: [:application, :module, :function, :file, :line]
以下是如何在config / config.exs文件中配置:console后端的示例:
config :logger, :console, format: "\n$time $metadata[$level] $levelpad$message\n" metadata: [:user_id]
上面的示例适用于元数据。
但是,文档中的另一个示例是在:console
关键字列表中添加backends
,并且未将:console
设置为配置密钥。这不显示控制台的元数据。
在config / config.exs文件中配置:backends和compile_time_purge_level选项:
config :logger,
backends: [:console],
compile_time_purge_level: :info