Fix logging
This commit is contained in:
@ -2,17 +2,18 @@
|
||||
|
||||
import asyncio
|
||||
import code
|
||||
from collections.abc import Awaitable
|
||||
import logging
|
||||
from collections.abc import Awaitable
|
||||
from typing import Any, cast
|
||||
|
||||
import click
|
||||
from sshecret_admin.services.admin_backend import AdminBackend
|
||||
import uvicorn
|
||||
from pydantic import ValidationError
|
||||
from sqlmodel import Session, create_engine, select
|
||||
from sshecret_admin.auth.models import init_db, User, PasswordDB
|
||||
from sshecret_admin.auth.authentication import hash_password
|
||||
from sshecret_admin.auth.models import PasswordDB, User, init_db
|
||||
from sshecret_admin.core.settings import AdminServerSettings
|
||||
from sshecret_admin.services.admin_backend import AdminBackend
|
||||
|
||||
handler = logging.StreamHandler()
|
||||
formatter = logging.Formatter(
|
||||
@ -20,6 +21,12 @@ formatter = logging.Formatter(
|
||||
)
|
||||
handler.setFormatter(formatter)
|
||||
|
||||
LOG = logging.getLogger()
|
||||
LOG.addHandler(handler)
|
||||
|
||||
LOG.setLevel(logging.INFO)
|
||||
|
||||
|
||||
def create_user(session: Session, username: str, password: str) -> None:
|
||||
"""Create a user."""
|
||||
hashed_password = hash_password(password)
|
||||
@ -33,20 +40,18 @@ def create_user(session: Session, username: str, password: str) -> None:
|
||||
@click.pass_context
|
||||
def cli(ctx: click.Context, debug: bool) -> None:
|
||||
"""Sshecret Admin."""
|
||||
LOG = logging.getLogger()
|
||||
LOG.addHandler(handler)
|
||||
|
||||
if debug:
|
||||
click.echo("Setting logging to debug level")
|
||||
LOG.setLevel(logging.DEBUG)
|
||||
else:
|
||||
LOG.setLevel(logging.INFO)
|
||||
try:
|
||||
settings = AdminServerSettings() # pyright: ignore[reportCallIssue]
|
||||
except ValidationError as e:
|
||||
raise click.ClickException(
|
||||
"Error: One or more required environment options are missing."
|
||||
) from e
|
||||
|
||||
if debug:
|
||||
click.echo("Setting logging to debug level")
|
||||
LOG.setLevel(logging.DEBUG)
|
||||
settings.debug = True
|
||||
ctx.obj = settings
|
||||
|
||||
|
||||
@ -110,10 +115,22 @@ def cli_delete_user(ctx: click.Context, username: str) -> None:
|
||||
@click.option("--port", default=8822, type=click.INT)
|
||||
@click.option("--dev", is_flag=True)
|
||||
@click.option("--workers", type=click.INT)
|
||||
def cli_run(host: str, port: int, dev: bool, workers: int | None) -> None:
|
||||
@click.pass_context
|
||||
def cli_run(
|
||||
ctx: click.Context, host: str, port: int, dev: bool, workers: int | None
|
||||
) -> None:
|
||||
"""Run the server."""
|
||||
settings = cast(AdminServerSettings, ctx.obj)
|
||||
log_level = "info"
|
||||
if settings.debug:
|
||||
log_level = "debug"
|
||||
uvicorn.run(
|
||||
"sshecret_admin.core.main:app", host=host, port=port, reload=dev, workers=workers
|
||||
"sshecret_admin.core.main:app",
|
||||
host=host,
|
||||
port=port,
|
||||
reload=dev,
|
||||
workers=workers,
|
||||
log_level=log_level,
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user