import sys from pathlib import Path from loguru import logger LOG_DIR = Path("/app") / "storage" / "logs" LOG_DIR.mkdir(parents=True, exist_ok=True) LOG_FILE = LOG_DIR / "app.log" # Configure loguru logger logger.remove() # Remove default handler logger.add(sys.stderr, level="INFO") # Add stderr handler logger.add( LOG_FILE, rotation="10 MB", # Rotate when file reaches 10 MB retention="30 days", # Keep logs for 30 days compression="zip", # Compress rotated logs level="DEBUG", ) # Create a function to log user activity def log_activity(user_id: str, action: str, object_type: str, object_id: str = None): """ Log user activity. Args: user_id: ID of the user performing the action action: The action performed (e.g., "create", "update", "delete") object_type: The type of object the action was performed on (e.g., "invoice", "client") object_id: The ID of the object the action was performed on (optional) """ if object_id: logger.info(f"User {user_id} {action}d {object_type} {object_id}") else: logger.info(f"User {user_id} {action}d {object_type}")