首页 > 解决方案 > aiohttp中的自定义访问日志

问题描述

我希望在 aiohttp 服务器的访问日志中记录请求的其他属性。例如,我有中间件,它user为每个请求添加属性,我想将此值存储在extra属性中以用于访问日志记录。文档建议覆盖aiohttp.helpers.AccessLogger确实似乎是一个好的开始,但是接下来我该怎么做,我应该将自定义记录器的实例放在哪里?我查看了代码,看起来这在应用程序创建阶段是不可能的,而是在应用程序运行时。但是我正在使用不同的方法运行应用程序,因此在多个地方修改启动并不那么方便(例如,我在本地使用aiohttp-devtools runserver和 gunicorn 进行部署)。

那么这里应该有什么正确的方法呢?(我也想对错误日志做同样的事情,但这似乎更复杂,所以现在我只是使用另一个中间件来捕获错误并创建我需要的日志记录)。

标签: pythonpython-asyncioaiohttp

解决方案


考虑到开发日志配置通常与生产日志配置非常不同,因此保留两种不同的方法gunicorn并且aiohttp-devtools完全没问题。

对于开发服务器,您可能需要在控制台上记录所有内容,登台和生产以不同方式写入日志。


推荐阅读