[debug] added /halfapi/log as a debug route that generates all type of logs

This commit is contained in:
Maxime Alves LIRMM@home 2020-11-12 17:56:05 +01:00
parent d4a6bb1a04
commit f4ba64f186
2 changed files with 21 additions and 1 deletions

View File

@ -9,6 +9,8 @@ It defines the following globals :
- application (the asgi application itself - a starlette object)
"""
import logging
# asgi framework
from starlette.applications import Starlette
from starlette.authentication import UnauthenticatedUser
@ -27,9 +29,10 @@ from halfapi.lib.jwt_middleware import JWTAuthenticationBackend
from halfapi.lib.responses import (ORJSONResponse, UnauthorizedResponse,
NotFoundResponse, InternalServerErrorResponse, NotImplementedResponse)
from halfapi.lib.routes import gen_starlette_routes, api_routes
from halfapi.lib.routes import gen_starlette_routes, api_routes, debug_routes
from halfapi.lib.schemas import get_api_routes, schema_json, get_acls
logger = logging.getLogger('uvicorn.asgi')
routes = [ Route('/', get_api_routes) ]
@ -43,6 +46,10 @@ routes += [
Route('/halfapi/acls', get_acls)
]
if not PRODUCTION:
for route in debug_routes():
routes.append( route )
for route in gen_starlette_routes(DOMAINSDICT()):
routes.append(route)

View File

@ -1,4 +1,5 @@
#!/usr/bin/env python3
from datetime import datetime
from functools import wraps
import logging
from typing import Callable, List, Dict, Generator
@ -7,6 +8,7 @@ from types import ModuleType, FunctionType
from starlette.exceptions import HTTPException
from starlette.routing import Route
from starlette.requests import Request
from starlette.responses import Response
from halfapi.lib.domain import gen_domain_routes, VERBS
@ -140,3 +142,14 @@ def api_acls(request):
res[domain][acl_name] = fct_result
return res
def debug_routes():
async def debug_log(request: Request, *args, **kwargs):
logger.debug('debuglog# %s', {datetime.now().isoformat()})
logger.info('debuglog# %s', {datetime.now().isoformat()})
logger.warning('debuglog# %s', {datetime.now().isoformat()})
logger.error('debuglog# %s', {datetime.now().isoformat()})
logger.critical('debuglog# %s', {datetime.now().isoformat()})
return Response('')
yield Route('/halfapi/log', debug_log)