From c17b7d63d9fe9c1c1ef2a93391ff73d17c13faa5 Mon Sep 17 00:00:00 2001 From: Jayden Date: Sun, 28 Jul 2024 11:26:02 -0500 Subject: [PATCH] feat: add log level option in env vars --- README.md | 1 + api/backend/app.py | 43 +++++++++++++++++++++++++++++-------------- docker-compose.yml | 1 + 3 files changed, 31 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 8b6e42a..f631b2f 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,7 @@ scraperr: scraperr_api: environment: + - LOG_LEVEL=INFO - MONGODB_URI=mongodb://root:example@webscrape-mongo:27017 # used to access MongoDB - SECRET_KEY=your_secret_key # used to encode authentication tokens (can be a random string) - ALGORITHM=HS256 # authentication encoding algorithm diff --git a/api/backend/app.py b/api/backend/app.py index a62c0b5..006868b 100644 --- a/api/backend/app.py +++ b/api/backend/app.py @@ -1,41 +1,56 @@ # STL +import os import uuid import logging +import traceback from io import BytesIO -from openpyxl import Workbook +from typing import Optional # PDM -from fastapi import BackgroundTasks, Depends, FastAPI, HTTPException +from fastapi import Depends, FastAPI, HTTPException, BackgroundTasks +from openpyxl import Workbook from fastapi.encoders import jsonable_encoder from fastapi.responses import JSONResponse, StreamingResponse from fastapi.middleware.cors import CORSMiddleware -import docker -from api.backend.schemas import User - -from api.backend.auth.auth_utils import get_current_user - -client = docker.from_env() # LOCAL +import docker from api.backend.job import ( - average_elements_per_link, - get_jobs_per_day, query, insert, - delete_jobs, update_job, + delete_jobs, + get_jobs_per_day, + average_elements_per_link, ) from api.backend.models import ( + UpdateJobs, DownloadJob, SubmitScrapeJob, DeleteScrapeJobs, - UpdateJobs, ) +from api.backend.schemas import User +from api.backend.auth.auth_utils import get_current_user from api.backend.auth.auth_router import auth_router -import traceback + +client = docker.from_env() + + +def get_log_level(level_name: Optional[str]) -> int: + level = logging.INFO + + if level_name: + level_name = level_name.upper() + level = getattr(logging, level_name, logging.INFO) + + return level + + +log_level = os.getenv("LOG_LEVEL") +LOG_LEVEL = get_log_level(log_level) logging.basicConfig( - level=logging.INFO, + level=LOG_LEVEL, format="%(levelname)s: %(asctime)s - %(name)s - %(message)s", handlers=[logging.StreamHandler()], ) diff --git a/docker-compose.yml b/docker-compose.yml index a275ad0..224df4d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,6 +20,7 @@ services: context: . dockerfile: docker/api/Dockerfile environment: + - LOG_LEVEL=INFO - MONGODB_URI=mongodb://root:example@webscrape-mongo:27017 # used to access MongoDB - SECRET_KEY=your_secret_key # used to encode authentication tokens (can be a random string) - ALGORITHM=HS256 # authentication encoding algorithm