feat: Added support for custom loggers

This commit is contained in:
AURUMVORXX
2025-04-21 02:42:02 +03:00
parent 10c4e8e83d
commit 226598b245

View File

@@ -12,12 +12,13 @@ class PythonWebsocketServer:
_current_server = None _current_server = None
def __init__(self, host: str, port: int, whitelist: list[str], ping_interval: int = 30, silent: bool = False): def __init__(self, host: str, port: int, whitelist: list[str], ping_interval: int = 30, silent: bool = False, logger: logging.Logger = None):
self.host: str = host self.host: str = host
self.port: int = port self.port: int = port
self.ping_interval: int = ping_interval self.ping_interval: int = ping_interval
self.whitelist = whitelist self.whitelist = whitelist
self.silent = silent self.silent = silent
self.logger = logger if logger is not None else logging.root
self.requests_list: dict[str, asyncio.Future] = dict() self.requests_list: dict[str, asyncio.Future] = dict()
self._stop_event: asyncio.Event = asyncio.Event() self._stop_event: asyncio.Event = asyncio.Event()
@@ -34,7 +35,7 @@ class PythonWebsocketServer:
port=self.port, port=self.port,
ping_interval=self.ping_interval, ping_interval=self.ping_interval,
): ):
logging.info(f'[PyG2O] Server is started at ws://{self.host}:{self.port}') self.logger.info(f'[PyG2O] Server is started at ws://{self.host}:{self.port}')
PythonWebsocketServer._current_server = self PythonWebsocketServer._current_server = self
asyncio.create_task(callEvent('onInit', **{})) asyncio.create_task(callEvent('onInit', **{}))
await self._stop_event.wait() await self._stop_event.wait()
@@ -77,7 +78,7 @@ class PythonWebsocketServer:
self.connected_socket = websocket self.connected_socket = websocket
self.is_connected = websocket self.is_connected = websocket
if (not self.silent): if (not self.silent):
logging.info(f'Client connected: {websocket.remote_address}') self.logger.info(f'Client connected: {websocket.remote_address}')
asyncio.create_task(callEvent('onWebsocketConnect', **{})) asyncio.create_task(callEvent('onWebsocketConnect', **{}))
@@ -116,12 +117,12 @@ class PythonWebsocketServer:
except json.JSONDecodeError as e: except json.JSONDecodeError as e:
logging.exception(f'[PyG2O] JSON Exception: {e}') self.logger.exception(f'[PyG2O] JSON Exception: {e}')
except Exception as e: except Exception as e:
logging.exception(f'[PyG2O] Exception: {e}') self.logger.exception(f'[PyG2O] Exception: {e}')
finally: finally:
if (not self.silent): if (not self.silent):
logging.info('Client disconnected') self.logger.info('Client disconnected')
self.is_connected = None self.is_connected = None
self.connected_socket = None self.connected_socket = None
asyncio.create_task(callEvent('onWebsocketDisconnect', **{})) asyncio.create_task(callEvent('onWebsocketDisconnect', **{}))