From 3a73a12129bc9aa73a1df0cfdfec8797dfc8f19e Mon Sep 17 00:00:00 2001 From: Alex Schofield Date: Fri, 7 Feb 2025 18:38:28 +0000 Subject: wip: add logging for normal run and debugging --- src/discover.py | 20 +++++++++++++------- src/logger.py | 21 +++++++++++++++++++++ 2 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 src/logger.py diff --git a/src/discover.py b/src/discover.py index f5d12ec..0d83ed4 100644 --- a/src/discover.py +++ b/src/discover.py @@ -1,28 +1,34 @@ import asyncio from bleak import BleakScanner import os +from logger import get_logger + +logger = get_logger("Discovery") async def discover(debug=False): try: + logger.info("Starting Bluetooth discovery...") devices = await BleakScanner.discover() + logger.info("Conpleted Bluetooth discovery!") if debug: - return [{"name": device.name, "address": device.address} for device in devices] + filtered_devices = [{"name": device.name, "address": device.address} for device in devices] + if not filtered_devices: + logger.error("No Bluetooth devices found!") else: - return [ + filtered_devices = [ {"name": device.name, "address": device.address} for device in devices if device.name and "TP350S" in device.name ] - except Exception: - return [] + except Exception as e: + logger.error(f"There was an issue during Bluetooth discovery: \n {e}") + raise async def main(debug_flag=None): check_debug = debug_flag if debug_flag is not None else os.getenv("DEBUG", "FALSE").upper() == "TRUE" if check_debug: print("DEBUG MODE ENABLED") devices = await discover(debug=check_debug) - print(devices) - return devices if __name__ == "__main__": - asyncio.run(main()) \ No newline at end of file + asyncio.run(main()) diff --git a/src/logger.py b/src/logger.py new file mode 100644 index 0000000..e2775bf --- /dev/null +++ b/src/logger.py @@ -0,0 +1,21 @@ +import logging +import os + +def get_logger(name: str) -> logging.Logger: + logger = logging.getLogger(name) + + if not logger.hasHandlers(): + if os.getenv("DEBUG", "FALSE").upper() == "TRUE": + log_level = logging.DEBUG + else: + log_level = logging.INFO + + logger.setLevel(log_level) + + handler = logging.StreamHandler() + format = logging.Formatter("%(asctime)s - %(levelname)s - %(name)s - %(message)s") + handler.setFormatter(format) + + logger.addHandler(handler) + + return logger -- cgit v1.2.3