Skip to content

Commit ca0eda6

Browse files
implements stdout log handler
1 parent 47311c5 commit ca0eda6

11 files changed

Lines changed: 30 additions & 40 deletions

File tree

lib/__init__.py

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
11
# lib/__init__.py
22
import logging
3+
import sys
34

4-
logging.basicConfig(
5-
level=logging.INFO,
6-
filename='app.log',
7-
filemode='a',
8-
format='%(asctime)s - %(levelname)s - %(message)s',
9-
)
5+
logger = logging.getLogger(__name__)
6+
logger.setLevel(logging.INFO)
7+
8+
# Creates log handlers
9+
file_handler = logging.FileHandler("app.log")
10+
stdout_handler = logging.StreamHandler(sys.stdout)
11+
12+
# Creates log formatter and add it to handlers
13+
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
14+
file_handler.setFormatter(formatter)
15+
stdout_handler.setFormatter(formatter)
16+
17+
if not logger.hasHandlers():
18+
logger.addHandler(file_handler)
19+
logger.addHandler(stdout_handler)
1020

1121

1222
def parse_error(error):
@@ -15,4 +25,4 @@ def parse_error(error):
1525
return f"{exc_type} exception: {exc_obj}"
1626

1727

18-
from .api import app # noqa
28+
from .api import app # noqa

lib/api.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,9 @@
88
from fastapi.openapi.utils import get_openapi
99
from fastapi.responses import RedirectResponse, JSONResponse
1010

11-
from lib import logging, parse_error
11+
from lib import logger, parse_error
1212
from lib.routes import flight, environment, motor, rocket
1313

14-
logger = logging.getLogger(__name__)
15-
1614
app = FastAPI(
1715
swagger_ui_parameters={
1816
"defaultModelsExpandDepth": 0,

lib/controllers/environment.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from rocketpy.environment.environment import Environment as RocketPyEnvironment
55
from fastapi import HTTPException, status
66

7-
from lib import logging, parse_error
7+
from lib import logger, parse_error
88
from lib.models.environment import Env
99
from lib.repositories.environment import EnvRepository
1010
from lib.views.environment import (
@@ -17,8 +17,6 @@
1717
EnvPickle,
1818
)
1919

20-
logger = logging.getLogger(__name__)
21-
2220

2321
class EnvController:
2422
"""

lib/controllers/flight.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import jsonpickle
77

8-
from lib import logging, parse_error
8+
from lib import logger, parse_error
99
from lib.models.rocket import Rocket, RocketOptions
1010
from lib.models.motor import MotorKinds
1111
from lib.models.flight import Flight
@@ -32,8 +32,6 @@
3232
from lib.controllers.environment import EnvController
3333
from lib.controllers.rocket import RocketController
3434

35-
logger = logging.getLogger(__name__)
36-
3735

3836
class FlightController:
3937
"""

lib/controllers/motor.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from rocketpy.motors.hybrid_motor import HybridMotor
66
import jsonpickle
77

8-
from lib import logging, parse_error
8+
from lib import logger, parse_error
99
from lib.models.motor import Motor, MotorKinds
1010
from lib.repositories.motor import MotorRepository
1111
from lib.views.motor import (
@@ -17,8 +17,6 @@
1717
MotorPickle,
1818
)
1919

20-
logger = logging.getLogger(__name__)
21-
2220

2321
class MotorController:
2422
"""

lib/controllers/rocket.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
)
1717
from rocketpy.rocket.aero_surface import Tail as RocketPyTail
1818

19-
from lib import logging, parse_error
19+
from lib import logger, parse_error
2020
from lib.controllers.motor import MotorController
2121
from lib.models.rocket import Rocket, RocketOptions
2222
from lib.models.motor import MotorKinds
@@ -36,8 +36,6 @@
3636
RocketPickle,
3737
)
3838

39-
logger = logging.getLogger(__name__)
40-
4139

4240
class RocketController:
4341
"""

lib/repositories/environment.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
from typing import Union
2-
from lib import logging, parse_error
2+
from lib import logger, parse_error
33
from lib.models.environment import Env
44
from lib.repositories.repo import Repository
55

6-
logger = logging.getLogger(__name__)
7-
86

97
class EnvRepository(Repository):
108
"""

lib/repositories/flight.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
from typing import Union
2-
from lib import logging, parse_error
2+
from lib import logger, parse_error
33
from lib.models.flight import Flight
44
from lib.repositories.repo import Repository
55

6-
logger = logging.getLogger(__name__)
7-
86

97
class FlightRepository(Repository):
108
"""

lib/repositories/motor.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
from typing import Union
2-
from lib import logging, parse_error
2+
from lib import logger, parse_error
33
from lib.models.motor import Motor
44
from lib.repositories.repo import Repository
55

6-
logger = logging.getLogger(__name__)
7-
86

97
class MotorRepository(Repository):
108
"""

lib/repositories/repo.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
import asyncio
2-
import logging
32
from motor.motor_asyncio import AsyncIOMotorClient
43
from pymongo.server_api import ServerApi
4+
from lib import logger
55
from lib.secrets import Secrets
66

7-
logger = logging.getLogger(__name__)
8-
97

108
class Repository:
119
"""
@@ -37,7 +35,7 @@ def _on_init_done(self, future):
3735
try:
3836
future.result()
3937
except Exception as e:
40-
logging.error("Initialization failed: %s", e, exc_info=True)
38+
logger.error("Initialization failed: %s", e, exc_info=True)
4139
raise e from e
4240

4341
async def _async_init(self):
@@ -68,9 +66,9 @@ def _initialize_connection(self):
6866
serverSelectionTimeoutMS=15000,
6967
)
7068
self._collection = self._client.rocketpy[self._collection_name]
71-
logging.info("MongoDB client initialized for %s", self.__class__)
69+
logger.info("MongoDB client initialized for %s", self.__class__)
7270
except Exception as e:
73-
logging.error(
71+
logger.error(
7472
f"Failed to initialize MongoDB client: {e}", exc_info=True
7573
)
7674
raise ConnectionError(

0 commit comments

Comments
 (0)