Merge pull request #167 from grillazz/158-granian-poc

158 granian poc
This commit is contained in:
Jakub Miazek 2024-08-17 20:24:09 +02:00 committed by GitHub
commit cba912ab90
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 73 additions and 59 deletions

View File

@ -34,7 +34,7 @@ ENV PYTHONPATH=/home/code/ PYTHONHASHSEED=0
COPY tests/ tests/ COPY tests/ tests/
COPY app/ app/ COPY app/ app/
COPY alembic/ alembic/ COPY alembic/ alembic/
COPY .env alembic.ini config.ini ./ COPY .env alembic.ini ./
# create a non-root user and switch to it, for security. # create a non-root user and switch to it, for security.
RUN addgroup --system --gid 1001 "app-user" RUN addgroup --system --gid 1001 "app-user"

View File

@ -7,7 +7,7 @@ services:
- .secrets - .secrets
command: bash -c " command: bash -c "
uvicorn app.main:app uvicorn app.main:app
--log-config ./uvicorn-logging.json --log-config ./logging-uvicorn.json
--host 0.0.0.0 --port 8080 --host 0.0.0.0 --port 8080
--lifespan=on --use-colors --loop uvloop --http httptools --lifespan=on --use-colors --loop uvloop --http httptools
--reload --log-level debug --reload --log-level debug

View File

@ -5,7 +5,7 @@ services:
env_file: env_file:
- .env - .env
- .secrets - .secrets
command: granian --interface asgi --host 0.0.0.0 --port 8080 --loop uvloop app.main:app --log-level debug --log-config ./logging-config.json command: granian --interface asgi --host 0.0.0.0 --port 8080 --loop uvloop app.main:app --access-log --log-level debug --log-config ./logging-granian.json
volumes: volumes:
- .:/home/code - .:/home/code
ports: ports:

View File

@ -1,56 +0,0 @@
{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"generic": {
"()": "logging.Formatter",
"fmt": "[%(process)d|%(name)-12s] %(message)s",
"datefmt": "[%Y-%m-%d %H:%M:%S %z]"
},
"access": {
"()": "logging.Formatter",
"fmt": "[%(process)d|%(name)-12s] %(message)s",
"datefmt": "[%Y-%m-%d %H:%M:%S %z]"
}
},
"handlers": {
"console": {
"formatter": "generic",
"class": "logging.StreamHandler",
"stream": "ext://sys.stdout"
},
"access": {
"formatter": "access",
"class": "logging.StreamHandler",
"stream": "ext://sys.stdout"
},
"sqlalchemy": {
"class": "app.utils.logging.RichConsoleHandler",
"formatter": "generic"
}
},
"loggers": {
"_granian": {
"handlers": [
"console"
],
"level": "INFO",
"propagate": false
},
"granian.access": {
"handlers": [
"access"
],
"level": "INFO",
"propagate": false
},
"sqlalchemy.engine.Engine": {
"handlers": [
"sqlalchemy"
],
"level": "ERROR",
"propagate": true,
"qualname": "sqlalchemy.engine.Engine"
}
}
}

70
logging-granian.json Normal file
View File

@ -0,0 +1,70 @@
{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"default": {
"()": "logging.Formatter",
"fmt": "[%(process)d|%(name)-12s] %(message)s"
}
},
"handlers": {
"access": {
"class": "app.utils.logging.RichConsoleHandler",
"omit_repeated_times": true,
"show_time": false,
"enable_link_path": false,
"tracebacks_show_locals": true,
"rich_tracebacks": true,
"formatter": "default",
"width": 140,
"style": "yellow"
},
"sqlalchemy": {
"class": "app.utils.logging.RichConsoleHandler",
"omit_repeated_times": true,
"show_time": false,
"enable_link_path": false,
"tracebacks_show_locals": true,
"rich_tracebacks": true,
"formatter": "default",
"width": 140,
"style": "magenta"
},
"stream": {
"class": "app.utils.logging.RichConsoleHandler",
"omit_repeated_times": true,
"show_time": false,
"enable_link_path": false,
"tracebacks_show_locals": true,
"rich_tracebacks": true,
"formatter": "default",
"width": 140,
"style": "white"
}
},
"loggers": {
"_granian": {
"handlers": [
"stream"
],
"propagate": false,
"level": "DEBUG"
},
"granian.access": {
"handlers": [
"access"
],
"propagate": false,
"level": "DEBUG",
"qualname": "granian.access"
},
"sqlalchemy.engine.Engine": {
"handlers": [
"sqlalchemy"
],
"level": "ERROR",
"propagate": false,
"qualname": "sqlalchemy.engine.Engine"
}
}
}