diff --git a/py/lora_manager.py b/py/lora_manager.py index f2fa3f4b..e211d75e 100644 --- a/py/lora_manager.py +++ b/py/lora_manager.py @@ -32,7 +32,22 @@ class LoraManager: # Configure aiohttp access logger to be less verbose logging.getLogger('aiohttp.access').setLevel(logging.WARNING) - logging.getLogger("asyncio").setLevel(logging.WARNING) + + # Add specific suppression for connection reset errors + class ConnectionResetFilter(logging.Filter): + def filter(self, record): + # Filter out connection reset errors that are not critical + if "ConnectionResetError" in str(record.getMessage()): + return False + if "_call_connection_lost" in str(record.getMessage()): + return False + if "WinError 10054" in str(record.getMessage()): + return False + return True + + # Apply the filter to asyncio logger + asyncio_logger = logging.getLogger("asyncio") + asyncio_logger.addFilter(ConnectionResetFilter()) added_targets = set() # Track already added target paths @@ -141,10 +156,6 @@ class LoraManager: async def _initialize_services(cls): """Initialize all services using the ServiceRegistry""" try: - # Ensure aiohttp access logger is configured with reduced verbosity - logging.getLogger('aiohttp.access').setLevel(logging.WARNING) - logging.getLogger("asyncio").setLevel(logging.WARNING) - # Initialize CivitaiClient first to ensure it's ready for other services await ServiceRegistry.get_civitai_client() diff --git a/standalone.py b/standalone.py index 9421e00b..ff97bf26 100644 --- a/standalone.py +++ b/standalone.py @@ -105,7 +105,22 @@ logger = logging.getLogger("lora-manager-standalone") # Configure aiohttp access logger to be less verbose logging.getLogger('aiohttp.access').setLevel(logging.WARNING) -logging.getLogger("asyncio").setLevel(logging.WARNING) + +# Add specific suppression for connection reset errors +class ConnectionResetFilter(logging.Filter): + def filter(self, record): + # Filter out connection reset errors that are not critical + if "ConnectionResetError" in str(record.getMessage()): + return False + if "_call_connection_lost" in str(record.getMessage()): + return False + if "WinError 10054" in str(record.getMessage()): + return False + return True + +# Apply the filter to asyncio logger +asyncio_logger = logging.getLogger("asyncio") +asyncio_logger.addFilter(ConnectionResetFilter()) # Now we can import the global config from our local modules from py.config import config @@ -126,7 +141,6 @@ class StandaloneServer: async def _configure_access_logger(self, app): """Configure access logger to reduce verbosity""" logging.getLogger('aiohttp.access').setLevel(logging.WARNING) - logging.getLogger("asyncio").setLevel(logging.WARNING) # If using aiohttp>=3.8.0, configure access logger through app directly if hasattr(app, 'access_logger'): @@ -223,7 +237,6 @@ class StandaloneLoraManager(LoraManager): # Configure aiohttp access logger to be less verbose logging.getLogger('aiohttp.access').setLevel(logging.WARNING) - logging.getLogger("asyncio").setLevel(logging.WARNING) added_targets = set() # Track already added target paths @@ -376,7 +389,6 @@ async def main(): # Explicitly configure aiohttp access logger regardless of selected log level logging.getLogger('aiohttp.access').setLevel(logging.WARNING) - logging.getLogger("asyncio").setLevel(logging.WARNING) # Create the server instance server = StandaloneServer()