diff --git a/docs/instructions.md b/docs/instructions.md index 0c4b734..54d55c9 100644 --- a/docs/instructions.md +++ b/docs/instructions.md @@ -109,21 +109,25 @@ For each task completed: ## Completed Tasks: ### ✅ Debug Logging (2026-01-07) + Verified that the logging is correctly set to INFO level and not DEBUG for both console and file handlers. The configuration in [src/infrastructure/logging/logger.py](src/infrastructure/logging/logger.py) properly uses the log level from settings, which defaults to INFO. ### ✅ Fix Download Issue (2026-01-07) -Fixed the TypeError in download functionality where `self.events.download_progress` was set to None when trying to subscribe a handler. + +Fixed the TypeError in download functionality where `self.events.download_progress` was set to None when trying to subscribe a handler. **Changes made:** -- Removed `self.events.download_progress = None` from [src/core/providers/aniworld_provider.py](src/core/providers/aniworld_provider.py#L109) -- Removed `self._events.download_status = None` and `self._events.scan_status = None` from [src/core/SeriesApp.py](src/core/SeriesApp.py#L157-158) + +- Removed `self.events.download_progress = None` from [src/core/providers/aniworld_provider.py](src/core/providers/aniworld_provider.py#L109) +- Removed `self._events.download_status = None` and `self._events.scan_status = None` from [src/core/SeriesApp.py](src/core/SeriesApp.py#L157-158) The Events library requires that events are not initialized to None. After creating the `Events()` object, event attributes are automatically handled by the library and can be subscribed to immediately. **Testing:** -- Verified event initialization works correctly for both AniworldLoader and SeriesApp -- Confirmed that event subscription works without errors -- Unit tests continue to pass (251 passed) + +- Verified event initialization works correctly for both AniworldLoader and SeriesApp +- Confirmed that event subscription works without errors +- Unit tests continue to pass (251 passed) --- diff --git a/src/server/config/development.py b/src/server/config/development.py index 761a0d0..98cbab2 100644 --- a/src/server/config/development.py +++ b/src/server/config/development.py @@ -8,7 +8,7 @@ Environment Variables: JWT_SECRET_KEY: Secret key for JWT token signing (default: dev-secret) PASSWORD_SALT: Salt for password hashing (default: dev-salt) DATABASE_URL: Development database connection string (default: SQLite) - LOG_LEVEL: Logging level (default: DEBUG) + LOG_LEVEL: Logging level (default: INFO) CORS_ORIGINS: Comma-separated list of allowed CORS origins API_RATE_LIMIT: API rate limit per minute (default: 1000) """ @@ -91,8 +91,8 @@ class DevelopmentSettings(BaseSettings): # Logging Settings # ============================================================================ - log_level: str = Field(default="DEBUG", env="LOG_LEVEL") - """Logging level (DEBUG for detailed output).""" + log_level: str = Field(default="INFO", env="LOG_LEVEL") + """Logging level (INFO for standard output).""" log_file: str = Field(default="logs/development.log", env="LOG_FILE") """Path to development log file.""" diff --git a/src/server/fastapi_app.py b/src/server/fastapi_app.py index 3ff463b..4648865 100644 --- a/src/server/fastapi_app.py +++ b/src/server/fastapi_app.py @@ -51,8 +51,8 @@ async def lifespan(_application: FastAPI): _application: The FastAPI application instance (unused but required by the lifespan protocol). """ - # Setup logging first with DEBUG level - logger = setup_logging(log_level="DEBUG") + # Setup logging first with INFO level + logger = setup_logging(log_level="INFO") # Startup try: @@ -306,5 +306,5 @@ if __name__ == "__main__": host="127.0.0.1", port=8000, reload=True, - log_level="debug" + log_level="info" )