diff --git a/halfapi/cli/domain.py b/halfapi/cli/domain.py index 1b2754a..29d7a95 100644 --- a/halfapi/cli/domain.py +++ b/halfapi/cli/domain.py @@ -3,7 +3,6 @@ cli/domain.py Defines the "halfapi domain" cli commands """ # builtins -import logging import sys import click @@ -16,7 +15,7 @@ from ..lib.schemas import schema_dict_dom from ..lib.routes import api_routes -logger = logging.getLogger('halfapi') +from ..logging import logger ################# # domain create # diff --git a/halfapi/cli/init.py b/halfapi/cli/init.py index 6ed16f9..d1e295b 100644 --- a/halfapi/cli/init.py +++ b/halfapi/cli/init.py @@ -5,7 +5,6 @@ cli/init.py Defines the "halfapi init" cli commands Helps the user to create a new project """ # builtins -import logging import os import sys import re @@ -17,7 +16,7 @@ from ..conf import CONF_DIR from .cli import cli -logger = logging.getLogger('halfapi') +from ..logging import logger TMPL_HALFAPI_ETC = """[project] name = {project} diff --git a/halfapi/lib/acl.py b/halfapi/lib/acl.py index 660df02..4af7e14 100644 --- a/halfapi/lib/acl.py +++ b/halfapi/lib/acl.py @@ -2,14 +2,12 @@ """ Base ACL module that contains generic functions for domains ACL """ -import logging from functools import wraps from json import JSONDecodeError from starlette.authentication import UnauthenticatedUser from starlette.exceptions import HTTPException - -logger = logging.getLogger('uvicorn.asgi') +from ..logging import logger def public(*args, **kwargs) -> bool: "Unlimited access" diff --git a/halfapi/lib/domain.py b/halfapi/lib/domain.py index f68f61b..d00c960 100644 --- a/halfapi/lib/domain.py +++ b/halfapi/lib/domain.py @@ -8,7 +8,6 @@ import re import sys import importlib import inspect -import logging from types import ModuleType, FunctionType from typing import Coroutine, Generator from typing import Dict, List, Tuple, Iterator @@ -20,7 +19,7 @@ from halfapi.lib.responses import ORJSONResponse from halfapi.lib.router import read_router from halfapi.lib.constants import VERBS -logger = logging.getLogger("uvicorn.asgi") +from ..logging import logger class MissingAclError(Exception): pass diff --git a/halfapi/lib/domain_middleware.py b/halfapi/lib/domain_middleware.py index 2f78c0d..7da8bb7 100644 --- a/halfapi/lib/domain_middleware.py +++ b/halfapi/lib/domain_middleware.py @@ -1,15 +1,13 @@ """ DomainMiddleware """ -import logging - from starlette.datastructures import URL from starlette.middleware.base import (BaseHTTPMiddleware, RequestResponseEndpoint) from starlette.requests import Request from starlette.responses import Response -logger = logging.getLogger('uvicorn.asgi') +from ..logging import logger class DomainMiddleware(BaseHTTPMiddleware): """ diff --git a/halfapi/lib/jwt_middleware.py b/halfapi/lib/jwt_middleware.py index b0b9284..9d53f9c 100644 --- a/halfapi/lib/jwt_middleware.py +++ b/halfapi/lib/jwt_middleware.py @@ -12,7 +12,6 @@ Raises: from os import environ import typing -import logging from uuid import UUID import jwt @@ -22,7 +21,7 @@ from starlette.authentication import ( from starlette.requests import HTTPConnection from starlette.exceptions import HTTPException -logger = logging.getLogger('uvicorn.error') +from ..logging import logger SECRET=None try: diff --git a/halfapi/lib/routes.py b/halfapi/lib/routes.py index ce86c66..99e1ae7 100644 --- a/halfapi/lib/routes.py +++ b/halfapi/lib/routes.py @@ -15,7 +15,6 @@ Exception : """ from datetime import datetime from functools import partial, wraps -import logging from typing import Callable, List, Dict, Generator, Tuple from types import ModuleType, FunctionType @@ -27,8 +26,7 @@ from starlette.responses import Response, PlainTextResponse from halfapi.lib.domain import gen_router_routes, domain_acls from ..conf import DOMAINSDICT - -logger = logging.getLogger('uvicorn.asgi') +from ..logging import logger class DomainNotFoundError(Exception): """ Exception when a domain is not importable diff --git a/halfapi/lib/schemas.py b/halfapi/lib/schemas.py index 5a56fa3..21e27d8 100644 --- a/halfapi/lib/schemas.py +++ b/halfapi/lib/schemas.py @@ -11,17 +11,16 @@ Constant : """ import os -import logging from typing import Dict, Coroutine from types import ModuleType from starlette.schemas import SchemaGenerator from .. import __version__ +from ..logging import logger from .routes import gen_starlette_routes, api_routes, api_acls from .responses import ORJSONResponse -logger = logging.getLogger('uvicorn.asgi') SCHEMAS = SchemaGenerator( {"openapi": "3.0.0", "info": {"title": "HalfAPI", "version": __version__}} ) diff --git a/halfapi/lib/timing.py b/halfapi/lib/timing.py index 4e5be63..370c159 100644 --- a/halfapi/lib/timing.py +++ b/halfapi/lib/timing.py @@ -9,7 +9,7 @@ import logging from timing_asgi import TimingClient -logger = logging.getLogger('uvicorn.asgi') +from ..logging import logger class HTimingClient(TimingClient): """ Used to redefine TimingClient.timing diff --git a/halfapi/logging.py b/halfapi/logging.py index 057099d..0e34e02 100644 --- a/halfapi/logging.py +++ b/halfapi/logging.py @@ -28,4 +28,4 @@ def config_logging(level=logging.INFO): logging.getLogger('uvicorn.error').propagate = True config_logging() -logger = logging.getLogger('uvicorn.asgi') +logger = logging.getLogger() diff --git a/tests/conftest.py b/tests/conftest.py index db0e732..2d02538 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -23,7 +23,8 @@ from halfapi.cli.init import init, format_halfapi_etc from halfapi.cli.domain import domain, create_domain from halfapi.lib.responses import ORJSONResponse from halfapi.lib.jwt_middleware import JWTAuthenticationBackend -logger = logging.getLogger('halfapitest') + +logger = logging.getLogger() PROJNAME = os.environ.get('PROJ','tmp_api') diff --git a/tests/dummy_domain/routers/config/__init__.py b/tests/dummy_domain/routers/config/__init__.py index 75a6449..90978fb 100644 --- a/tests/dummy_domain/routers/config/__init__.py +++ b/tests/dummy_domain/routers/config/__init__.py @@ -1,6 +1,5 @@ from halfapi.lib import acl -import logging -logger = logging.getLogger('uvicorn.asgi') +from halfapi.logging import logger ACLS = { 'GET' : [{'acl':acl.public}]