mirror of
https://github.com/grillazz/fastapi-sqlalchemy-asyncpg.git
synced 2025-08-26 16:40:40 +03:00
commit
cba912ab90
@ -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"
|
||||||
|
@ -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
|
||||||
|
@ -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:
|
||||||
|
@ -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
70
logging-granian.json
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user