【发布时间】:2019-10-29 05:40:57
【问题描述】:
默认情况下,我的 Phoenix 应用程序会在大约 5 行日志输出中记录有关每个 HTTP 请求的基本信息。只要我将日志级别设置为:debug,我就可以看到每个请求的方法、路径、控制器和操作、参数、响应代码和持续时间:
2019-06-14 16:05:35.099 [info] GET /manage/projects/7qDjSk
2019-06-14 16:05:35.103 [debug] Processing with RTLWeb.Manage.ProjectController.show/2
Parameters: %{"project_uuid" => "7qDjSk"}
Pipelines: [:browser, :require_login]
2019-06-14 16:05:35.116 [info] Sent 200 in 17ms
这是一个很好的起点。但我想自定义应用程序以将所有这些信息记录在一行上,这很有帮助,例如。在Papertrail 等工具中筛选大量日志输出时。特别是我希望每个请求都以如下格式显示:
[PUT /manage/projects/74/prompts/290] params=%{"project_uuid" => "74", "prompt" => %{"html" => "<div>Test question 3</div>"}, "prompt_uuid" => "290"} user=38 (Topher Hunt) status=302 redirected_to=/manage/projects/74 duration=423ms
在the Phoenix.Controller docs 我看到我可以为 Phoenix 控制器日志配置日志级别,或者完全禁用它,但我没有看到自定义格式的方法。我该怎么做?
【问题讨论】:
标签: logging elixir phoenix-framework