Skip to content

Commit

Permalink
feat: Implemented basic logging
Browse files Browse the repository at this point in the history
  • Loading branch information
kojicmarko committed Feb 23, 2024
1 parent c979336 commit 59332b2
Show file tree
Hide file tree
Showing 6 changed files with 54 additions and 6 deletions.
3 changes: 3 additions & 0 deletions src/main.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
from fastapi import FastAPI

from src.projects import router as projects_router
from src.utils.logger.main import setup_logging

setup_logging()

app = FastAPI()

Expand Down
8 changes: 2 additions & 6 deletions src/projects/router.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,18 @@
from src.database import get_db
from src.projects import service as project_service
from src.projects.schemas import Project, ProjectCreate, ProjectUpdate
from src.utils.logger.main import logger

router = APIRouter(prefix="/projects")


@router.get("/", status_code=status.HTTP_200_OK)
def read_projects(db: Session = Depends(get_db)) -> list[Project]:
"""Read all projects"""
return project_service.read_all(db)


@router.get("/{proj_id}/info", status_code=status.HTTP_200_OK)
def read_project(proj_id: str, db: Session = Depends(get_db)) -> Project:
"""Read project description"""
project = project_service.read(proj_id, db)
if not project:
raise HTTPException(status_code=404, detail="Project not found")
Expand All @@ -26,7 +25,7 @@ def read_project(proj_id: str, db: Session = Depends(get_db)) -> Project:

@router.post("/", status_code=status.HTTP_201_CREATED)
def create_project(project: ProjectCreate, db: Session = Depends(get_db)) -> Project:
"""Create new project"""
logger.debug(f"Created Project {project.model_dump()}")
new_project = project_service.create(project, db)
return new_project

Expand All @@ -35,7 +34,6 @@ def create_project(project: ProjectCreate, db: Session = Depends(get_db)) -> Pro
def update_project(
proj_id: str, project: ProjectUpdate, db: Session = Depends(get_db)
) -> Project:
"""Update project"""
updated_project = project_service.update(proj_id, project, db)
if not updated_project:
raise HTTPException(
Expand All @@ -46,8 +44,6 @@ def update_project(

@router.delete("/{proj_id}", status_code=status.HTTP_204_NO_CONTENT)
def delete_project(proj_id: str, db: Session = Depends(get_db)) -> None:
"""Delete project"""

deleted_project = project_service.delete(proj_id, db)
if not deleted_project:
raise HTTPException(
Expand Down
Empty file added src/utils/__init__.py
Empty file.
Empty file added src/utils/logger/__init__.py
Empty file.
35 changes: 35 additions & 0 deletions src/utils/logger/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"simple": {
"format": "%(levelname)s: %(message)s"
},
"detailed": {
"format": "[%(levelname)s|%(module)s|L%(lineno)d] %(asctime)s: %(message)s",
"datefmt": "%Y-%m-%dT%H:%M:%S%z"
}
},
"handlers": {
"stderr": {
"class": "logging.StreamHandler",
"level": "WARNING",
"formatter": "simple",
"stream": "ext://sys.stderr"
},
"stdout": {
"class": "logging.StreamHandler",
"formatter": "simple",
"stream": "ext://sys.stdout"
}
},
"loggers": {
"pyweb": {
"level": "DEBUG",
"handlers": [
"stdout",
"stderr"
]
}
}
}
14 changes: 14 additions & 0 deletions src/utils/logger/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import json
import logging.config
import logging.handlers
import pathlib

logger = logging.getLogger("pyweb")


def setup_logging() -> None:
config_file = pathlib.Path("src/utils/logger/config.json")
with open(config_file) as f:
config = json.load(f)

logging.config.dictConfig(config)

0 comments on commit 59332b2

Please sign in to comment.