notifier/server.py

76 lines
2.1 KiB
Python
Raw Normal View History

2024-02-04 05:03:29 +00:00
import logging
2024-02-16 23:56:15 +00:00
import sys
2023-11-23 22:58:55 +00:00
from settings import PORT
2024-02-16 23:56:15 +00:00
2023-11-23 22:58:55 +00:00
log_settings = {
2024-02-16 23:56:15 +00:00
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'default': {
'()': 'uvicorn.logging.DefaultFormatter',
'fmt': '%(levelprefix)s %(message)s',
'use_colors': None,
2023-11-23 22:58:55 +00:00
},
2024-02-16 23:56:15 +00:00
'access': {
'()': 'uvicorn.logging.AccessFormatter',
'fmt': '%(levelprefix)s %(client_addr)s - "%(request_line)s" %(status_code)s',
2023-11-23 22:58:55 +00:00
},
},
2024-02-16 23:56:15 +00:00
'handlers': {
'default': {
'formatter': 'default',
'class': 'logging.StreamHandler',
'stream': 'ext://sys.stderr',
2023-11-23 22:58:55 +00:00
},
2024-02-16 23:56:15 +00:00
'access': {
'formatter': 'access',
'class': 'logging.StreamHandler',
'stream': 'ext://sys.stdout',
2023-11-23 22:58:55 +00:00
},
},
2024-02-16 23:56:15 +00:00
'loggers': {
'uvicorn': {'handlers': ['default'], 'level': 'INFO'},
'uvicorn.error': {'level': 'INFO', 'handlers': ['default'], 'propagate': True},
'uvicorn.access': {'handlers': ['access'], 'level': 'INFO', 'propagate': False},
2023-11-23 22:58:55 +00:00
},
}
local_headers = [
2024-02-16 23:56:15 +00:00
('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, HEAD'),
('Access-Control-Allow-Origin', 'https://localhost:3000'),
2023-11-23 22:58:55 +00:00
(
2024-02-16 23:56:15 +00:00
'Access-Control-Allow-Headers',
'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization',
2023-11-23 22:58:55 +00:00
),
2024-02-16 23:56:15 +00:00
('Access-Control-Expose-Headers', 'Content-Length,Content-Range'),
('Access-Control-Allow-Credentials', 'true'),
2023-11-23 22:58:55 +00:00
]
2024-02-16 23:56:15 +00:00
logger = logging.getLogger('[server] ')
2024-02-04 05:03:29 +00:00
logger.setLevel(logging.DEBUG)
2023-11-23 22:58:55 +00:00
def exception_handler(_et, exc, _tb):
logger.error(..., exc_info=(type(exc), exc, exc.__traceback__))
2024-02-16 23:56:15 +00:00
if __name__ == '__main__':
2023-11-23 22:58:55 +00:00
sys.excepthook = exception_handler
2024-02-04 05:03:29 +00:00
from granian.constants import Interfaces
from granian.server import Granian
2024-02-16 23:56:15 +00:00
print('[server] started')
2024-02-04 05:03:29 +00:00
granian_instance = Granian(
2024-02-16 23:56:15 +00:00
'main:app',
address='0.0.0.0', # noqa S104
2024-02-04 05:03:29 +00:00
port=PORT,
workers=2,
threads=2,
websockets=False,
interface=Interfaces.ASGI,
)
granian_instance.serve()