]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
:loud_sound: Refactor logging (#781)
authorSebastián Ramírez <tiangolo@gmail.com>
Mon, 9 Dec 2019 19:02:44 +0000 (20:02 +0100)
committerGitHub <noreply@github.com>
Mon, 9 Dec 2019 19:02:44 +0000 (20:02 +0100)
fastapi/encoders.py
fastapi/logger.py [new file with mode: 0644]
fastapi/openapi/models.py
fastapi/routing.py
fastapi/utils.py

index 25cd0b0269ad4827d3c2fb10861943f22d9ab885..d75664debebe61907155abc178156ea165d591f5 100644 (file)
@@ -2,7 +2,8 @@ from enum import Enum
 from types import GeneratorType
 from typing import Any, Dict, List, Set, Union
 
-from fastapi.utils import PYDANTIC_1, logger
+from fastapi.logger import logger
+from fastapi.utils import PYDANTIC_1
 from pydantic import BaseModel
 from pydantic.json import ENCODERS_BY_TYPE
 
@@ -23,9 +24,9 @@ def jsonable_encoder(
 ) -> Any:
     if skip_defaults is not None:
         logger.warning(  # pragma: nocover
-            "skip_defaults in jsonable_encoder has been deprecated in \
-            favor of exclude_unset to keep in line with Pydantic v1, support for it \
-                will be removed soon."
+            "skip_defaults in jsonable_encoder has been deprecated in favor of "
+            "exclude_unset to keep in line with Pydantic v1, support for it will be "
+            "removed soon."
         )
     if include is not None and not isinstance(include, set):
         include = set(include)
diff --git a/fastapi/logger.py b/fastapi/logger.py
new file mode 100644 (file)
index 0000000..5b2c4ad
--- /dev/null
@@ -0,0 +1,3 @@
+import logging
+
+logger = logging.getLogger("fastapi")
index 126b2dfeb8cd582bdd6b7b51a8040dc8ec17fb9f..78b9d86aeee52a1b2ffb3573c4186f75ef89ec02 100644 (file)
@@ -1,7 +1,7 @@
 from enum import Enum
 from typing import Any, Dict, List, Optional, Union
 
-from fastapi.utils import logger
+from fastapi.logger import logger
 from pydantic import BaseModel
 
 try:
@@ -21,9 +21,9 @@ try:
         # TODO: remove when removing support for Pydantic < 1.0.0
         from pydantic.types import EmailStr  # type: ignore
 except ImportError:  # pragma: no cover
-    logger.warning(
+    logger.info(
         "email-validator not installed, email fields will be treated as str.\n"
-        "To install, run: pip install email-validator"
+        "To install, run: pip install email-validator"
     )
 
     class EmailStr(str):  # type: ignore
index 547d2c4b140d19f1a1cd3ebd88a89380d5ac4bab..8f4c67ca5de928b4353048e9aeeac06e6a338fa6 100644 (file)
@@ -1,6 +1,5 @@
 import asyncio
 import inspect
-import logging
 from typing import Any, Callable, Dict, List, Optional, Sequence, Set, Type, Union
 
 from fastapi import params
@@ -13,6 +12,7 @@ from fastapi.dependencies.utils import (
 )
 from fastapi.encoders import DictIntStrAny, SetIntStr, jsonable_encoder
 from fastapi.exceptions import RequestValidationError, WebSocketRequestValidationError
+from fastapi.logger import logger
 from fastapi.openapi.constants import STATUS_CODES_WITH_NO_BODY
 from fastapi.utils import (
     PYDANTIC_1,
@@ -108,7 +108,7 @@ def get_request_handler(
                     if body_bytes:
                         body = await request.json()
         except Exception as e:
-            logging.error(f"Error getting request body: {e}")
+            logger.error(f"Error getting request body: {e}")
             raise HTTPException(
                 status_code=400, detail="There was an error parsing the body"
             ) from e
index b817a10d0fe70956906795e8670a69cbf96cd3cf..5e624f0ea28e40b5b5e9ae443ec8ff25e47aadac 100644 (file)
@@ -1,17 +1,15 @@
-import logging
 import re
 from dataclasses import is_dataclass
 from typing import Any, Dict, List, Sequence, Set, Type, cast
 
 from fastapi import routing
+from fastapi.logger import logger
 from fastapi.openapi.constants import REF_PREFIX
 from pydantic import BaseConfig, BaseModel, create_model
 from pydantic.schema import get_flat_models_from_fields, model_process_schema
 from pydantic.utils import lenient_issubclass
 from starlette.routing import BaseRoute
 
-logger = logging.getLogger("fastapi")
-
 try:
     from pydantic.fields import FieldInfo, ModelField
 
@@ -22,8 +20,8 @@ except ImportError:  # pragma: nocover
     from pydantic import Schema as FieldInfo  # type: ignore
 
     logger.warning(
-        "Pydantic versions < 1.0.0 are deprecated in FastAPI and support will be \
-            removed soon"
+        "Pydantic versions < 1.0.0 are deprecated in FastAPI and support will be "
+        "removed soon."
     )
     PYDANTIC_1 = False
 
@@ -39,9 +37,9 @@ def get_field_info(field: ModelField) -> FieldInfo:
 # TODO: remove when removing support for Pydantic < 1.0.0
 def warning_response_model_skip_defaults_deprecated() -> None:
     logger.warning(  # pragma: nocover
-        "response_model_skip_defaults has been deprecated in favor \
-                of response_model_exclude_unset to keep in line with Pydantic v1, \
-                support for it will be removed soon."
+        "response_model_skip_defaults has been deprecated in favor of "
+        "response_model_exclude_unset to keep in line with Pydantic v1, support for "
+        "it will be removed soon."
     )