mirror of
https://github.com/tiqi-group/pydase.git
synced 2025-04-21 00:40:01 +02:00
updates logging to remove uvicorn dependency
This commit is contained in:
parent
369d0b1126
commit
9de4071120
@ -2,11 +2,12 @@ import asyncio
|
|||||||
import logging
|
import logging
|
||||||
import logging.config
|
import logging.config
|
||||||
import sys
|
import sys
|
||||||
|
from collections.abc import Callable
|
||||||
from copy import copy
|
from copy import copy
|
||||||
|
from typing import ClassVar, Literal
|
||||||
|
|
||||||
|
import click
|
||||||
import socketio # type: ignore[import-untyped]
|
import socketio # type: ignore[import-untyped]
|
||||||
import uvicorn.config
|
|
||||||
import uvicorn.logging
|
|
||||||
|
|
||||||
import pydase.config
|
import pydase.config
|
||||||
|
|
||||||
@ -41,7 +42,7 @@ LOGGING_CONFIG = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class DefaultFormatter(uvicorn.logging.ColourizedFormatter):
|
class DefaultFormatter(logging.Formatter):
|
||||||
"""
|
"""
|
||||||
A custom log formatter class that:
|
A custom log formatter class that:
|
||||||
|
|
||||||
@ -50,6 +51,36 @@ class DefaultFormatter(uvicorn.logging.ColourizedFormatter):
|
|||||||
for formatting the output, instead of the plain text message.
|
for formatting the output, instead of the plain text message.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
level_name_colors: ClassVar[dict[int, Callable[..., str]]] = {
|
||||||
|
logging.DEBUG: lambda level_name: click.style(str(level_name), fg="cyan"),
|
||||||
|
logging.INFO: lambda level_name: click.style(str(level_name), fg="green"),
|
||||||
|
logging.WARNING: lambda level_name: click.style(str(level_name), fg="yellow"),
|
||||||
|
logging.ERROR: lambda level_name: click.style(str(level_name), fg="red"),
|
||||||
|
logging.CRITICAL: lambda level_name: click.style(
|
||||||
|
str(level_name), fg="bright_red"
|
||||||
|
),
|
||||||
|
}
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
fmt: str | None = None,
|
||||||
|
datefmt: str | None = None,
|
||||||
|
style: Literal["%", "{", "$"] = "%",
|
||||||
|
use_colors: bool | None = None,
|
||||||
|
):
|
||||||
|
if use_colors in (True, False):
|
||||||
|
self.use_colors = use_colors
|
||||||
|
else:
|
||||||
|
self.use_colors = sys.stdout.isatty()
|
||||||
|
super().__init__(fmt=fmt, datefmt=datefmt, style=style)
|
||||||
|
|
||||||
|
def color_level_name(self, level_name: str, level_no: int) -> str:
|
||||||
|
def default(level_name: str) -> str:
|
||||||
|
return str(level_name)
|
||||||
|
|
||||||
|
func = self.level_name_colors.get(level_no, default)
|
||||||
|
return func(level_name)
|
||||||
|
|
||||||
def formatMessage(self, record: logging.LogRecord) -> str: # noqa: N802
|
def formatMessage(self, record: logging.LogRecord) -> str: # noqa: N802
|
||||||
recordcopy = copy(record)
|
recordcopy = copy(record)
|
||||||
levelname = recordcopy.levelname
|
levelname = recordcopy.levelname
|
||||||
@ -78,7 +109,8 @@ class SocketIOHandler(logging.Handler):
|
|||||||
self._sio = sio
|
self._sio = sio
|
||||||
|
|
||||||
def format(self, record: logging.LogRecord) -> str:
|
def format(self, record: logging.LogRecord) -> str:
|
||||||
return f"{record.name}:{record.funcName}:{record.lineno} - {record.message}"
|
msg = record.getMessage()
|
||||||
|
return f"{record.name}:{record.funcName}:{record.lineno} - {msg}"
|
||||||
|
|
||||||
def emit(self, record: logging.LogRecord) -> None:
|
def emit(self, record: logging.LogRecord) -> None:
|
||||||
log_entry = self.format(record)
|
log_entry = self.format(record)
|
||||||
@ -108,18 +140,3 @@ def setup_logging() -> None:
|
|||||||
logger.debug("Configuring pydase logging.")
|
logger.debug("Configuring pydase logging.")
|
||||||
|
|
||||||
logging.config.dictConfig(LOGGING_CONFIG)
|
logging.config.dictConfig(LOGGING_CONFIG)
|
||||||
|
|
||||||
# configuring uvicorn logger
|
|
||||||
uvicorn.config.LOGGING_CONFIG["formatters"]["default"]["fmt"] = (
|
|
||||||
"%(asctime)s.%(msecs)03d | %(levelprefix)s %(message)s"
|
|
||||||
)
|
|
||||||
uvicorn.config.LOGGING_CONFIG["formatters"]["default"]["datefmt"] = (
|
|
||||||
"%Y-%m-%d %H:%M:%S"
|
|
||||||
)
|
|
||||||
uvicorn.config.LOGGING_CONFIG["formatters"]["access"]["fmt"] = (
|
|
||||||
"%(asctime)s.%(msecs)03d | %(levelprefix)s %(client_addr)s "
|
|
||||||
'- "%(request_line)s" %(status_code)s'
|
|
||||||
)
|
|
||||||
uvicorn.config.LOGGING_CONFIG["formatters"]["access"]["datefmt"] = (
|
|
||||||
"%Y-%m-%d %H:%M:%S"
|
|
||||||
)
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user