Skip to content

Commit 60fa436

Browse files
committed
fixed logging setup
1 parent 0606f55 commit 60fa436

2 files changed

Lines changed: 21 additions & 1 deletion

File tree

hypertrade/daemon.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from starlette.middleware.trustedhost import TrustedHostMiddleware
1313

1414
from .config import get_settings
15-
from .logging import log_startup_banner, log_endpoints
15+
from .logging import log_startup_banner, log_endpoints, configure_logging
1616
from .middleware.logging import LoggingMiddleware
1717
from .middleware.content_limit import ContentLengthLimitMiddleware
1818
from .middleware.rate_limit import RateLimitMiddleware
@@ -104,6 +104,9 @@ def create_daemon() -> FastAPI:
104104
except ValidationError:
105105
_please_die_gracefully()
106106

107+
# Configure logging based on settings
108+
configure_logging(settings.log_level)
109+
107110
app.state.settings = settings
108111

109112
# Pre-bind optional Telegram notifier to avoid per-request env access

hypertrade/logging.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,23 @@
1313
# Use uvicorn.error logger (guaranteed to exist + colored in dev)
1414
log = pylog.getLogger("uvicorn.error")
1515

16+
17+
def configure_logging(log_level: str = "INFO") -> None:
18+
"""Configure Python logging to use the specified level."""
19+
level = log_level.upper()
20+
valid_levels = {"CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG", "NOTSET"}
21+
22+
if level not in valid_levels:
23+
level = "INFO"
24+
25+
# Configure uvicorn loggers
26+
pylog.getLogger("uvicorn").setLevel(level)
27+
pylog.getLogger("uvicorn.access").setLevel(level)
28+
pylog.getLogger("uvicorn.error").setLevel(level)
29+
30+
# Configure app logger
31+
pylog.getLogger("hypertrade").setLevel(level)
32+
1633
# pylint: disable=too-few-public-methods
1734
class _MessageFilter(pylog.Filter):
1835
def __init__(self, *, deny_contains: Optional[List[str]] = None):

0 commit comments

Comments
 (0)