File tree Expand file tree Collapse file tree 8 files changed +38
-28
lines changed Expand file tree Collapse file tree 8 files changed +38
-28
lines changed Original file line number Diff line number Diff line change 11from pydantic_settings import BaseSettings
2+ from typing import Literal
23
34
45class Settings (BaseSettings ):
5- environment : str = "DEV "
6+ environment : Literal [ "PROD" , "DEV" , "LOCAL" ] = "LOCAL "
67
78 @property
89 def is_prod (self ) -> bool :
@@ -11,6 +12,10 @@ def is_prod(self) -> bool:
1112 @property
1213 def is_dev (self ) -> bool :
1314 return self .environment == "DEV"
15+
16+ @property
17+ def is_local (self ) -> bool :
18+ return self .environment == "LOCAL"
1419
1520
16- settings = Settings ()
21+ settings = Settings ()
File renamed without changes.
Original file line number Diff line number Diff line change 33
44from google .cloud .logging_v2 .handlers import CloudLoggingFilter
55
6- from app .cloud_logging .middleware import http_request_context , cloud_trace_context
6+ from app .logging . google .middleware import http_request_context , cloud_trace_context
77
88
99class GoogleCloudLogFilter (CloudLoggingFilter ):
Original file line number Diff line number Diff line change 1- import contextvars
21import sys
2+ import contextvars
33
44from fastapi .logger import logger
55from starlette .middleware .base import BaseHTTPMiddleware , RequestResponseEndpoint
Original file line number Diff line number Diff line change 1+ from fastapi import FastAPI
2+ from fastapi .logger import logger
13import logging
2-
34import google .cloud .logging
45
5- from app .cloud_logging .filter import GoogleCloudLogFilter
6- from fastapi . logger import logger
6+ from app .logging . google .filter import GoogleCloudLogFilter
7+ from app . logging . google . middleware import LoggingMiddleware
78
89
9- def setup_logging ( ):
10+ def setup_google_logging ( app : FastAPI = None ):
1011 client = google .cloud .logging .Client ()
1112 handler = client .get_default_handler ()
1213 handler .setLevel (logging .DEBUG )
@@ -15,3 +16,5 @@ def setup_logging():
1516 logger .handlers = []
1617 logger .addHandler (handler )
1718 logger .setLevel (logging .DEBUG )
19+
20+ app .add_middleware (LoggingMiddleware )
Original file line number Diff line number Diff line change 1+ from fastapi import FastAPI
2+ from fastapi .logger import logger
3+ import logging
4+
5+ from app .config import settings
6+ from app .logging .google .setup import setup_google_logging
7+
8+ def setup_local_logging ():
9+ logger .setLevel (logging .DEBUG )
10+ console_handler = logging .StreamHandler ()
11+ console_handler .setLevel (logging .DEBUG )
12+ formatter = logging .Formatter (
13+ "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
14+ )
15+ console_handler .setFormatter (formatter )
16+ logger .addHandler (console_handler )
17+
18+ def setup_logging (app : FastAPI ):
19+ setup_local_logging () if settings .is_local else setup_google_logging (app )
Original file line number Diff line number Diff line change 1- import logging
1+ from fastapi import FastAPI
22from fastapi .logger import logger
3- from app .cloud_logging .middleware import LoggingMiddleware
4- from app .cloud_logging .setup import setup_logging
53
6- from fastapi import FastAPI
74from app .config import settings
8-
5+ from app . logging . setup import setup_logging
96
107app = FastAPI ()
11-
12- if settings .is_prod :
13- setup_logging ()
14- app .add_middleware (LoggingMiddleware )
15- else :
16- # Setup local logging
17- logger .setLevel (logging .DEBUG )
18- console_handler = logging .StreamHandler ()
19- console_handler .setLevel (logging .DEBUG )
20- formatter = logging .Formatter (
21- "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
22- )
23- console_handler .setFormatter (formatter )
24- logger .addHandler (console_handler )
25-
8+ setup_logging (app )
269
2710@app .get ("/" )
2811async def root ():
You can’t perform that action at this time.
0 commit comments