Advertisement
NikolayGorshenin

DictConfig

Apr 14th, 2021 (edited)
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.41 KB | None | 0 0
  1. from api.config import get_settings
  2.  
  3. settings = get_settings()
  4.  
  5. APP_HOST = settings.APP_HOST
  6. APP_PORT = settings.APP_PORT
  7. APP_NAME = settings.APP_NAME
  8. PATH_PREFIX = settings.PATH_PREFIX
  9.  
  10.  
  11.  
  12. def write_log(msg):
  13.     print(msg)
  14.  
  15.  
  16. def get_log_config() -> dict:
  17.     return {
  18.     'version': 1,
  19.     'disable_existing_loggers': False,
  20.     'formatters': {
  21.         'simple': {
  22.             'format': f"[%(asctime)s] %(levelname)s [{APP_HOST}:{APP_PORT}{PATH_PREFIX}"
  23.                       f"/%(filename)s::%(funcName)s:%(lineno)d] %(message)s"
  24.         },
  25.     },
  26.     'handlers': {
  27.         'async_handler': {
  28.             'level': 'INFO',
  29.             'formatter': 'simple',
  30.             'class': 'asynclog.AsyncLogDispatcher',
  31.             'func': 'api.config.log_config.write_log',
  32.         }
  33.     },
  34.     'loggers': {
  35.         f'{APP_NAME}': {
  36.             'handlers': ['async_handler'],
  37.             'level': 'DEBUG',
  38.             'propagate': False,
  39.         },
  40.         'uvicorn': {
  41.             'handlers': ['async_handler'],
  42.             'level': 'INFO',
  43.             'propagate': False,
  44.         },
  45.       # Не даем стандартному логгеру fastapi работать по пустякам и замедлять работу сервиса
  46.         'uvicorn.access': {
  47.             'handlers': ['async_handler'],
  48.             'level': 'ERROR',
  49.             'propagate': False,
  50.         },
  51.     },
  52. }
  53.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement