Skip to content

Commit e0568f0

Browse files
committed
Make log level an enum
1 parent 09ea5ae commit e0568f0

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

flowkit_ui_backend/util/config.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
from pydantic.networks import AnyHttpUrl
88
from pydantic.types import SecretStr
99

10+
from flowkit_ui_backend.util.logging import LogLevel
11+
1012

1113
class Settings(BaseSettings):
1214
db_port_container: int
@@ -29,7 +31,7 @@ class Settings(BaseSettings):
2931
app_name: str
3032
git_tag: Optional[str] = None
3133
dev_mode: int = 0
32-
log_level: str = "warning"
34+
log_level: LogLevel = LogLevel.WARNING
3335
jupyter_enabled: int = 0
3436
jupyter_port: Optional[int] = None
3537

flowkit_ui_backend/util/logging.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,24 @@
11
# This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
22
# If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
3+
from enum import Enum
34

45
import structlog
56
import logging.config
67
from asgi_correlation_id import correlation_id
78
from flowkit_ui_backend.util.structlog.dev import ConsoleRenderer
89
from typing import Tuple, Any
910

11+
from flowkit_ui_backend.util.structlog.types import Processor
12+
13+
14+
class LogLevel(str, Enum):
15+
TRACE = "TRACE"
16+
DEBUG = "DEBUG"
17+
INFO = "INFO"
18+
WARNING = "WARNING"
19+
ERROR = "ERROR"
20+
FATAL = "FATAL"
21+
1022

1123
def add_correlation(
1224
logger: logging.Logger, method_name: str, event_dict: dict[str, Any]
@@ -17,19 +29,19 @@ def add_correlation(
1729
return event_dict
1830

1931

20-
def setup_logging(log_level: str = "INFO", dev_mode: bool = False) -> None:
32+
def setup_logging(log_level: LogLevel = LogLevel.INFO, dev_mode: bool = False) -> None:
2133
"""
2234
Configure structured logging
2335
2436
Parameters
2537
----------
26-
log_level : str, default 'INFO'
38+
log_level : LogLevel, default 'INFO'
2739
dev_mode : bool, default False
2840
Set to true to use coloured logs and enhanced exception formatting, disables json formatting
2941
"""
3042

3143
if dev_mode:
32-
processors: Tuple[flowkit_ui_backend.util.structlog.types.Processor, ...] = (
44+
processors: Tuple[Processor, ...] = (
3345
add_correlation,
3446
structlog.processors.TimeStamper(fmt="%H:%M:%S.%f"),
3547
structlog.stdlib.add_log_level,
@@ -43,7 +55,7 @@ def setup_logging(log_level: str = "INFO", dev_mode: bool = False) -> None:
4355
)
4456

4557
else:
46-
processors: Tuple[flowkit_ui_backend.util.structlog.types.Processor, ...] = (
58+
processors: Tuple[Processor, ...] = (
4759
add_correlation,
4860
structlog.contextvars.merge_contextvars,
4961
structlog.processors.TimeStamper(fmt="iso"),

0 commit comments

Comments
 (0)