Skip to content

Commit e712ee8

Browse files
committed
Load MessageLoggerMiddleware based on logger's effective level
1 parent e165eec commit e712ee8

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

tests/test_config.py

+23
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import sys
66
import typing
77
from pathlib import Path
8+
from typing import Optional
89
from unittest.mock import MagicMock
910

1011
import pytest
@@ -491,6 +492,28 @@ def test_config_log_level(log_level: int) -> None:
491492
assert config.log_level == log_level
492493

493494

495+
@pytest.mark.parametrize("log_level", [None, 0, 5, 10, 20, 30, 40, 50])
496+
@pytest.mark.parametrize("uvicorn_logger_level", [None, 0, 5, 10, 20, 30, 40, 50])
497+
def test_config_log_effective_level(
498+
log_level: Optional[int], uvicorn_logger_level: Optional[int]
499+
) -> None:
500+
default_level = 30
501+
log_config = {
502+
"version": 1,
503+
"disable_existing_loggers": False,
504+
"loggers": {
505+
"uvicorn": {"level": uvicorn_logger_level},
506+
},
507+
}
508+
config = Config(app=asgi_app, log_level=log_level, log_config=log_config)
509+
config.load()
510+
511+
effective_level = log_level or uvicorn_logger_level or default_level
512+
assert logging.getLogger("uvicorn.error").getEffectiveLevel() == effective_level
513+
assert logging.getLogger("uvicorn.access").getEffectiveLevel() == effective_level
514+
assert logging.getLogger("uvicorn.asgi").getEffectiveLevel() == effective_level
515+
516+
494517
def test_ws_max_size() -> None:
495518
config = Config(app=asgi_app, ws_max_size=1000)
496519
config.load()

uvicorn/config.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,7 @@ def load(self) -> None:
504504
elif self.interface == "asgi2":
505505
self.loaded_app = ASGI2Middleware(self.loaded_app)
506506

507-
if logger.level <= TRACE_LOG_LEVEL:
507+
if logger.getEffectiveLevel() <= TRACE_LOG_LEVEL:
508508
self.loaded_app = MessageLoggerMiddleware(self.loaded_app)
509509
if self.proxy_headers:
510510
self.loaded_app = ProxyHeadersMiddleware(

0 commit comments

Comments
 (0)