54. Logging and Error Management
Logging should record useful events but not leak sensitive data.
Original
print("Task saved:", task)
Secure Refactor
import logging
logging.basicConfig(filename="pydo.log", level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s")
def log_task_action(action, task):
logging.info("Action: %s - Task length: %d chars", action, len(task))
✅ Lesson: Sanitize all logs. Log metadata, not raw content.