mirror of
https://github.com/kuitoi/kuitoi-Server.git
synced 2025-08-18 00:35:36 +00:00
Handle web logs
This commit is contained in:
parent
d44cff1116
commit
5a1cb8a133
@ -28,8 +28,11 @@ if os.path.exists(log_file):
|
|||||||
break
|
break
|
||||||
index += 1
|
index += 1
|
||||||
with tarfile.open(gz_path % index, "w:gz") as tar:
|
with tarfile.open(gz_path % index, "w:gz") as tar:
|
||||||
tar.add(log_file, os.path.basename(log_file))
|
logs_files = [log_file, "./logs/web.log", "./logs/web_access.log"]
|
||||||
os.remove(log_file)
|
for file in logs_files:
|
||||||
|
if os.path.exists(file):
|
||||||
|
tar.add(file, os.path.basename(file))
|
||||||
|
os.remove(file)
|
||||||
fh = logging.FileHandler(log_file, encoding='utf-8')
|
fh = logging.FileHandler(log_file, encoding='utf-8')
|
||||||
fh.setFormatter(logging.Formatter(log_format))
|
fh.setFormatter(logging.Formatter(log_format))
|
||||||
|
|
||||||
|
@ -7,7 +7,6 @@ from fastapi.exceptions import RequestValidationError
|
|||||||
from starlette import status
|
from starlette import status
|
||||||
from starlette.exceptions import HTTPException as StarletteHTTPException
|
from starlette.exceptions import HTTPException as StarletteHTTPException
|
||||||
from starlette.responses import JSONResponse
|
from starlette.responses import JSONResponse
|
||||||
from uvicorn.config import LOGGING_CONFIG
|
|
||||||
|
|
||||||
import core.utils
|
import core.utils
|
||||||
from . import utils
|
from . import utils
|
||||||
@ -21,30 +20,6 @@ uvserver = None
|
|||||||
data_pool = []
|
data_pool = []
|
||||||
data_run = [True]
|
data_run = [True]
|
||||||
|
|
||||||
LOGGING_CONFIG["formatters"]["default"]['fmt'] = core.utils.log_format
|
|
||||||
LOGGING_CONFIG["formatters"]["access"]["fmt"] = core.utils.log_format_access
|
|
||||||
LOGGING_CONFIG["formatters"].update({
|
|
||||||
"file_default": {
|
|
||||||
"fmt": core.utils.log_format
|
|
||||||
},
|
|
||||||
"file_access": {
|
|
||||||
"fmt": core.utils.log_format_access
|
|
||||||
}
|
|
||||||
})
|
|
||||||
LOGGING_CONFIG["handlers"]["default"]['stream'] = "ext://sys.stdout"
|
|
||||||
LOGGING_CONFIG["handlers"].update({
|
|
||||||
"file_default": {
|
|
||||||
"class": "logging.handlers.RotatingFileHandler",
|
|
||||||
"filename": "webserver.log"
|
|
||||||
},
|
|
||||||
"file_access": {
|
|
||||||
"class": "logging.handlers.RotatingFileHandler",
|
|
||||||
"filename": "webserver.log"
|
|
||||||
}
|
|
||||||
})
|
|
||||||
LOGGING_CONFIG["loggers"]["uvicorn"]["handlers"].append("file_default")
|
|
||||||
LOGGING_CONFIG["loggers"]["uvicorn.access"]["handlers"].append("file_access")
|
|
||||||
|
|
||||||
|
|
||||||
def response(data=None, code=status.HTTP_200_OK, error_code=0, error_message=None):
|
def response(data=None, code=status.HTTP_200_OK, error_code=0, error_message=None):
|
||||||
if 200 >= code <= 300:
|
if 200 >= code <= 300:
|
||||||
|
@ -2,10 +2,17 @@ import asyncio
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
import click
|
import click
|
||||||
from uvicorn.server import Server, logger
|
import uvicorn.server as uvs
|
||||||
|
from uvicorn.config import LOGGING_CONFIG
|
||||||
|
|
||||||
from uvicorn.lifespan import on
|
from uvicorn.lifespan import on
|
||||||
|
|
||||||
|
import core.utils
|
||||||
|
|
||||||
|
# logger = core.utils.get_logger("uvicorn")
|
||||||
|
# uvs.logger = logger
|
||||||
|
logger = uvs.logger
|
||||||
|
|
||||||
|
|
||||||
def ev_log_started_message(self, listeners) -> None:
|
def ev_log_started_message(self, listeners) -> None:
|
||||||
cfg = self.config
|
cfg = self.config
|
||||||
@ -42,7 +49,7 @@ async def ev_shutdown(self, sockets=None) -> None:
|
|||||||
try:
|
try:
|
||||||
await asyncio.wait_for(self._wait_tasks_to_complete(), timeout=self.config.timeout_graceful_shutdown)
|
await asyncio.wait_for(self._wait_tasks_to_complete(), timeout=self.config.timeout_graceful_shutdown)
|
||||||
except asyncio.TimeoutError:
|
except asyncio.TimeoutError:
|
||||||
logger.error("Cancel %s running task(s), timeout graceful shutdown exceeded",len(self.server_state.tasks))
|
logger.error("Cancel %s running task(s), timeout graceful shutdown exceeded", len(self.server_state.tasks))
|
||||||
for t in self.server_state.tasks:
|
for t in self.server_state.tasks:
|
||||||
if sys.version_info < (3, 9):
|
if sys.version_info < (3, 9):
|
||||||
t.cancel()
|
t.cancel()
|
||||||
@ -81,7 +88,34 @@ async def on_shutdown(self) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def hack_fastapi():
|
def hack_fastapi():
|
||||||
Server.shutdown = ev_shutdown
|
uvs.Server.shutdown = ev_shutdown
|
||||||
Server._log_started_message = ev_log_started_message
|
uvs.Server._log_started_message = ev_log_started_message
|
||||||
on.LifespanOn.startup = on_startup
|
on.LifespanOn.startup = on_startup
|
||||||
on.LifespanOn.shutdown = on_shutdown
|
on.LifespanOn.shutdown = on_shutdown
|
||||||
|
|
||||||
|
LOGGING_CONFIG["formatters"]["default"]['fmt'] = core.utils.log_format
|
||||||
|
LOGGING_CONFIG["formatters"]["access"]["fmt"] = core.utils.log_format_access
|
||||||
|
LOGGING_CONFIG["formatters"].update({
|
||||||
|
"file_default": {
|
||||||
|
"fmt": core.utils.log_format
|
||||||
|
},
|
||||||
|
"file_access": {
|
||||||
|
"fmt": core.utils.log_format_access
|
||||||
|
}
|
||||||
|
})
|
||||||
|
LOGGING_CONFIG["handlers"]["default"]['stream'] = "ext://sys.stdout"
|
||||||
|
LOGGING_CONFIG["handlers"].update({
|
||||||
|
"file_default": {
|
||||||
|
"class": "logging.handlers.RotatingFileHandler",
|
||||||
|
"filename": "./logs/web.log",
|
||||||
|
"encoding": "utf-8",
|
||||||
|
},
|
||||||
|
"file_access": {
|
||||||
|
"class": "logging.handlers.RotatingFileHandler",
|
||||||
|
"filename": "./logs/web_access.log",
|
||||||
|
}
|
||||||
|
})
|
||||||
|
LOGGING_CONFIG["loggers"]["uvicorn"]["handlers"].append("file_default")
|
||||||
|
LOGGING_CONFIG["loggers"]["uvicorn.access"]["handlers"].append("file_access")
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user