Config und logging eingebaut

This commit is contained in:
Eduard Wisch 2025-03-17 21:05:11 +01:00
parent b6965971ac
commit deb7a85474
3 changed files with 50 additions and 6 deletions

5
app/cfg/settings.yaml Normal file
View file

@ -0,0 +1,5 @@
log_file: "server.log"
log_level: "DEBUG"
server_ip: "0.0.0.0"
server_port: 8000
task_max: 1

27
app/class_settings.py Normal file
View file

@ -0,0 +1,27 @@
import logging
import yaml
class Settings:
def __init__(self):
self.yaml = None
self.read()
def read(self):
with open("app/cfg/settings.yaml", "r", encoding="utf-8") as file:
self.yaml = yaml.safe_load(file)
def write(self):
with open("app/cfg/settings.yaml", "w", encoding="utf8") as file:
yaml.dump(self.yaml, file, default_flow_style=False, indent=4)
def set_logging(self):
print(self.yaml)
logging.basicConfig(
level=self.yaml["log_level"],
format="%(asctime)s - %(levelname)s - %(message)s",
handlers=[
logging.StreamHandler(),
logging.FileHandler(f"app/logs/{self.yaml['log_file']}")
]
)

View file

@ -1,10 +1,15 @@
import websockets
import asyncio
import json
from app.class_settings import Settings
class Server:
def __init__(self):
self.ip = "0.0.0.0"
self.port = 8000
obj_settings = Settings()
obj_settings.set_logging()
self.yaml = obj_settings.yaml
try:
asyncio.run(self.start())
@ -18,13 +23,20 @@ class Server:
async for message in websocket:
print(f"Server hat Empfangen: {message}")
response = f"Server antwortet: {message.upper()}"
await websocket.send(response)
data = json.loads(message)
if data.get("data_path"):
pass
elif data.get("data_command"):
pass
#response = f"Server antwortet: {message.upper()}"
#await websocket.send(response)
except websockets.exceptions.ConnectionClosed:
print("Server sagt: Client getrennt")
async def start(self):
server = await websockets.serve(self.handle_client, self.ip, self.port)
print(f"Websocket Server läuft auf IP: {self.ip} Port: {self.port}")
server = await websockets.serve(self.handle_client, self.yaml['server_ip'], self.yaml['server_port'])
print(f"Websocket Server läuft auf IP: {self.yaml['server_ip']} Port: {self.yaml['server_port']}")
await server.wait_closed()