backup
This commit is contained in:
@@ -107,15 +107,20 @@ def _external_logging_processor(
|
||||
return event_dict
|
||||
|
||||
|
||||
def _configure_logging(log_level: str, settings: Settings | None = None) -> None:
|
||||
def _configure_logging(log_level: str, log_file: str | None, settings: Settings | None = None) -> None:
|
||||
"""Configure structlog for production JSON output.
|
||||
|
||||
Args:
|
||||
log_level: One of ``debug``, ``info``, ``warning``, ``error``, ``critical``.
|
||||
log_file: Optional file path to write logs to (in addition to stdout).
|
||||
settings: Optional Settings object to configure external logging.
|
||||
"""
|
||||
level: int = logging.getLevelName(log_level.upper())
|
||||
logging.basicConfig(level=level, stream=sys.stdout, format="%(message)s")
|
||||
handlers: list[logging.Handler] = [logging.StreamHandler(sys.stdout)]
|
||||
if log_file:
|
||||
os.makedirs(os.path.dirname(log_file), exist_ok=True)
|
||||
handlers.append(logging.FileHandler(log_file))
|
||||
logging.basicConfig(level=level, handlers=handlers, format="%(message)s")
|
||||
|
||||
processors = [
|
||||
structlog.contextvars.merge_contextvars,
|
||||
@@ -225,7 +230,7 @@ async def _lifespan(app: FastAPI) -> AsyncGenerator[None, None]:
|
||||
raise RuntimeError(msg) from exc
|
||||
|
||||
# Now configure logging with the handler in place
|
||||
_configure_logging(settings.log_level, settings)
|
||||
_configure_logging(settings.log_level, settings.log_file, settings)
|
||||
|
||||
log.info("bangui_starting_up", database_path=settings.database_path)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user