aio-libs / aio-libs/aiohttp

access logging refactoring

Open
#3,795 8 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
16.5k
Forks
2.4k
Avg merge
17h 22m
Merged PRs (30d)
212

Description

## Long story short

Now `access_log_class`, `access_log` and `access_log_format` are used by public API to control access logger settings.

It is a design mistake, sorry.

The proposal is:
1. deprecate `access_log_class` and `access_log_format` parameters
2. deprecate `logging.Logger` value for `access_log`
3. accept `AbstractAsyncAccessLogger` as `access_log` parameter.
4. process `access_log=None` as default, keep the default behavior as is now
5. move access logger creation logic from `web_protocol.py` to `web_runner.py`
6. explicitly deprecate access logging params in `web_server` as well.

The API uses too much `kwargs` now, backward-compatible changes are possible but need very careful review. All existing public API for access log setup should work in aiohttp 4.0 and can be removed in 5.0

The issue requires a lot of work.
I'm happy to review it but have no capacity to do it myself in a few months.
We are looking for a champion :)

See also #3777 and #3767

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.